コンプライアンス
Webサイトテストツール「OpenBullet」を悪用したアカウントリスト攻撃の手口を解説
本ブログ記事では、サイバー犯罪者が正規のWebサイトテストツール「OpenBullet」を悪用して、標的にアカウントリスト攻撃を実行する手口について詳説します。最後に、ユーザや組織が複数のパスワードを効率的かつ安全に管理できる方法についての推奨事項を示し、アカウントの乗っ取りにつながるアカウントリスト攻撃から安全を確保し続けるための対策方法もお伝えします。
アカウントリスト攻撃などの不正アクセスに関与するサイバー犯罪の脅威動向は減少する気配がなく、着実に増加しています。CDNサービス「Akamai」の報告では、2018年1月から2019年12月までに合計880億件のアカウントリスト攻撃が発生したとされています。アカウントリスト攻撃とは、実際に使用されているIDとパスワードがセットになったアカウントのリストを利用してWebサイトやオンラインサービスへの不正ログインを試行する攻撃のことです。「リスト型アカウントハッキング」、「クレデンシャルスタッフィング」などと呼ばれる場合もあります。不正ログインに成功した場合、金銭的利益に動機づけられた攻撃者は、被害者の銀行口座や機密情報に自由にアクセスできるようになります。またサイバー犯罪者は、詐取した認証情報をアンダーグラウンドフォーラムや闇市場などで販売して利益を得ています。
認証情報を窃取するビジネスがますます儲かるようになるにつれて、サイバー犯罪者は、不正な目的のために正規ソフトウェアを悪用することで自身の攻撃ツールや攻撃手口を高度化させています。本ブログ記事では、サイバー犯罪者が正規のWebサイトテストツール「OpenBullet」を悪用して、標的にアカウントリスト攻撃を実行する手口について詳説します。アンダーグラウンドでは最近、OpenBulletの設定スクリプトが取引される市場が形成されています。トレンドマイクロでは、一部の攻撃者が隠匿機能を備えたスクリプトを注入してOpenBullet用設定スクリプトのサプライチェーンを侵害する手口について調査しました。最後に、ユーザや組織が複数のパスワードを効率的かつ安全に管理できる方法についての推奨事項を示し、アカウントの乗っ取りにつながるアカウントリスト攻撃から安全を確保し続けるための対策方法もお伝えします。
■ OpenBulletとは
OpenBulletは、開発者がテスト対象とするWebサイト上で特定のリクエストを実行できるようにする無料のWebサイトテストツールです。このオープンソースのテストツールはGitHub上に公開されており、データのスクレイピングや解析、自動化されたペネトレーションテストの実行、またはWebアプリケーションをテストするためのポータブルフレームワークであるSeleniumを使用した単体テストなど、さまざまなタスクに利用できます。
ユーザはOpenBulletを利用することで、ペネトレーションテストなどの正当な目的のために、さまざまなWebサイト上でアカウントリスト攻撃を想定した複数の「ログインID+パスワード」の組み合わせを試行することができます。ただし、サイバー犯罪者がさまざまなWebサイト上で有効な認証情報を見つけて不正な利益を得るためにOpenBulletを悪用する可能性もあります。
ユーザはOpenBulletを利用することで、あらかじめ構築された設定ファイルあるいは構成をテスト対象であるWebサイト毎に1つずつインポートすることができます。またOpenBulletは、必要に応じて設定ファイルを変更するために柔軟性のあるエディターも備えています。WebサイトはOpenBulletのような自動化されたテストツールに対抗するために、ユーザによるアクセス方法をわずかに調整する傾向があるため、柔軟性を備えたエディターは必須の機能です。
なお、OpenBulletのGitHubページには、ユーザが所有していないWebサイトへのアカウントリスト攻撃にOpenBulletを使用するべきではないという警告が掲載されています(図1)。
■ 悪用される可能性のあるOpenBulletの機能
Wordlists(単語リスト)
ユーザはWordlistsタブを使用することで、テスト対象であるWebサイトに接続試行する際に利用可能な何千もの単語をインポートすることができます。
登録される単語リストは、「電子メールアドレス+パスワード」あるいは「ログインID+パスワード」のような単純なものになります。
単語リストは、OpenBulletツールでは提供されていません。そのためユーザは、自身で単語リストを探して利用する必要があります。一方で、OpenBulletには単語リスト生成機能が備わっています。
トレンドマイクロは一例として、以下のような特徴を持つ単語リストをOpenBullet上で生成しました。
- 3桁の数字の後に「@example.com」が続くユーザの電子メールアドレス
- 「abc」の後に2桁の数字が続くユーザのパスワード
この具体例は、サイバー犯罪者が利用する実際の手口を正確に反映しているわけではありませんが、OpenBulletでアカウントリスト攻撃に利用可能な単語リストが簡単に作成できるということを示しています。
Runner(ランナー)
ユーザがOpenBulletを利用してアカウントリスト攻撃を実行するためにRunnerタブを選択すると、テストされているすべてのWebサイトの進捗状況および有効性を示した数が表示されます。さらにユーザは、複数のRunnerを同時に起動することもできます。
Proxies(プロキシ)
優れたセキュリティを備えた一部のWebサイトは、ペネトレーションテスター(あるいはサイバー犯罪者)のIPアドレスをブロックリストに登録している可能性があります。特に、複数の異なるアカウントへのログインを何度も試行するために同じIPアドレスを使用している場合はブロックリストに登録されている可能性が高くなります。サイバー犯罪者はこのような状況を避けるためにプロキシを悪用します。
プロキシは、OpenBulletの重要な部分です。プロキシは各試行において異なるIPアドレスを使用し、ユーザに複数回のログイン試行を可能にします。さらにプロキシは、各接続試行の時間間隔を設定することができます。このため、通常は非常に短い期間に多くの接続試行を発生させる異常なログインアクティビティとなるのに対して、各接続試行間の時間が設定された接続試行は、テスト対象であるWebサイト上でアラームを発生させないようにすることができます。
OpenBullet内のプロキシでは、HTTP、Socks4、Socks4a、Socks5などのさまざまな種類のプロトコルが受け入れられています。OpenBulletに追加されるプロキシが多いほど、攻撃者にとっては有利となります。またOpenBullet内ではプロキシが提供されていないため、ユーザは、自身で用意したプロキシを使用する必要があります。プロキシは、アンダーグラウンドフォーラムや有料プロキシサービスなどから購入するか、インターネットスキャン技術を駆使して見つけ出すこともできます。
ツール、プラグイン、設定
プラグインは、さまざまな目的のためにOpenBulletに簡単にインポートすることができます。たとえば、追加のプラグインを使用することでユーザは以下のことが可能になります。
- ユーザ名とパスワードのリストから作成可能なすべての組み合わせを生成する
- 有効性が示されたリストをRunnerタブからインスタントメッセージ・プラットフォームへ直接エクスポートする
- 大規模な仮想プライベートネットワーク(VPN)上でログインに成功したログイン名とパスワードの組み合わせを使用して、動作しているすべてのプロキシの一覧を取得する
ユーザの目的に、テスト対象とするWebサイトとの間でのデータの送受信が含まれている限り、潜在的な攻撃活動は無限にあると考えられます。
ユーザはOpenBulletのSettingsタブ上でキャプチャ認証のバイパスやSeleniumを使用してシステム設定を調整することができます。ユーザは、キャプチャ認証をバイパスするためにAPIキーが必要になります。しかしながら、これらのAPIキーはOpenBullet内で提供されていません。
Configs(設定ファイル)
Configsは、OpenBulletツールの心臓部です。これは、テストが必要なすべてのWebサイトのOpenBulletにインポートされるファイルです。各Webサイトでは、認証方法やログイン方法が異なるため、Webサイト毎に一意の設定ファイルが必要となります。
OpenBulletは、プレーンテキストファイル(.loli、別称:「LoliScripts」)または暗号化されたファイル(.lolix)を含む、複数の設定ファイルをサポートしています。
OpenBulletでは、「Stacker」と呼ばれるインターフェースを使用して設定ファイルの作成や変更を行うことができます。このインターフェースは、Stacker内の「Blocks」と呼ばれる複数のタスクを次々と実行することで動作します。
ある大手小売企業を攻撃対象としたConfigsを詳しく見てみましょう。以下に示す特定のConfigsを使用することで、単に認証用のログイン情報が有効かどうかを確認できるだけでなく、それ以上のことができることがわかります。
図6では、REQUEST、KEY CHECK、REQUEST、および4つのPARSEブロックという7つの異なるブロックが見て取れます。各ブロックは、Runnerが起動されると、OpenBulletによって次々と呼び出されます。
サイバー犯罪者はLoliScript code内で直接Configsタブを確認して編集することもできます(図8)。
図8のスクリプトはサイバー犯罪者がログインすると被害企業の支払い設定ページに到達し、気付かれないようクレジットカード情報を抽出できることを示しています。
これは、サイバー犯罪者がOpenBullet上で実行できる不正活動の顕著な一例です。
■ OpenBullet用設定ファイルの販売
一部のOpenBullet用設定ファイルはオンラインで簡単に見つかりますが、より機密性の高い設定ファイルは、専用サイトやアンダーグラウンドフォーラム、マーケットプレイスなどで販売されています。一般的な設定ファイルの価格は当該調査時点では平均して5~10米ドル(約550~1,100円)でした。
Webサイトが利用する認証プロセスの一部は常に変更されるため、設定ファイルの使用期間に制限が設けられていることがあります。このため、必要に応じた設定ファイルの更新ライセンスを販売するビジネスモデルが広く採用されています。
ある設定ファイルを1つ5ドルで購入した場合、数週間は利用できるかもしれませんが、ログインプロセスに変更が適用されると陳腐化してしまいます。このためユーザは、必要なアップデートをすべて入手するために月額ライセンスを支払う傾向にあります。
また、攻撃者が無料で設定ファイルを共有してユーザにより高度な設定ファイルを購入するよう仕向けることも珍しくありません。
■ アカウントリスト攻撃に悪用されるその他のソフトウェア
OpenBulletの亜種
OpenBulletはオープンソースであるため、サードパーティの開発者により、「anom」と呼ばれる独自のスクリプトをサポートするソフトウェア(SilverBulletやOpenBullet Mod、Anomalyなど)が作成されました。これらのバージョンの中には、サイバー犯罪での利用を想定してさらに調整されたものもあり、オンラインフォーラム上で簡単に見つけることができます。
その他のソフトウェア
OpenBullet以外にも、アカウントリスト攻撃を実行するためのソフトウェアはGitHubやアンダーグラウンドフォーラム上で入手可能です。
アンダーグラウンド市場には他のツールも存在しますが、OpenBulletは包括的なサポートと幅広い可能性の両方を提供しているため、サイバー犯罪者が好んで悪用しているツールであると考えられます。特に、一般に広く採用されていることと、利用可能な設定ファイルの数が多いことがサイバー犯罪者の間で人気を集めています。
バックドア化した設定ファイル
OpenBulletが公式に提供している設定ファイル形式は難読化されていません。しかしながら、非公式の設定ファイル形式には何らかの形で難読化が施されているものが多く存在します。これによりバックドア型マルウェア、あるいはバックドア「hit logger」(図13)のパッキングが可能となります。実際、OpenBullet用設定ファイル内で数多くのバックドアが確認されています。このことから、図13に示すように、「hit logger」を削除するためのチュートリアルが存在します。
多くのチュートリアルでは、難読化されたコードを実行しないために、暗号化されていない拡張子 .loli / .ini / .anom のみを使用し、暗号化された拡張子 .lolix / .sccfg / .lolim / .lolip は使用しないようにアドバイスしています。典型的なバックドア化した設定ファイルを図14に示します。
基本的にバックドアは特定の場所にデータを送信する動作を備えています。図14の例では、バックドアの背後にいる攻撃者が管理する特定のWebサイトにユーザ名とパスワードを流出させるために、常にGETリクエストが実行されています。その他の種類のバックドアは、詐取したデータを特定のWebサイトや「Discord」のようなメッセージングアプリ上に掲載するために利用されます。
■ サイバー犯罪者が認証情報を不正に入手するその他の手口
サイバー犯罪者は、正規ソフトウェアを悪用したり、悪意のあるソフトウェアを利用したりする以外にも、ユーザの認証情報を窃取するために試行錯誤を繰り返している攻撃手法があります。その手法の1つにフィッシングキャンペーンがあります。トレンドマイクロがリリースしたホワイトペーパー「クラウドメール脅威ラウンドアップ 2021年版」では、2020年の一年間で5,465,969件の認証情報を狙うフィッシング攻撃が検出され、ブロックしたことを報告しています。
ただし、フィッシングキャンペーンで窃取できる認証情報はせいぜい数百件程度です。また、1回のキャンペーンで数千通(数百万通とは言わないまでも)のフィッシングメールを送信することと同時に、メール受信者を誘導するためのフィッシングサイトを事前に構築してホストしておく必要があります。このように、フィッシングキャンペーンを実行するには通常、資源と時間が必要です。そのため、サイバー犯罪者は労力のかからない別の攻撃手段を選択する可能性があります。
サイバー犯罪者は、窃取された認証情報をオンラインで検索する以外にも、大規模なフォーラムなどのWebサイトを侵害し、それらのデータベースをダンプします。そのためWebサイトの管理者は、データベースが暗号化されていることを確認することが重要です。
認証情報はアンダーグラウンドサイトやフォーラムから購入することもできます。場合によっては、認証情報が無料で入手できることもあります。
また、テキストファイルに保存された認証情報を購入することもでき、サイバー犯罪者にとっては認証情報の再利用が容易になります。
■ 詐取した認証情報の典型的な利用用途
攻撃者の活動は不正な手段で認証情報を窃取しただけで終わることはなく、むしろ、攻撃活動の始まりに過ぎません。サイバー犯罪者は詐取した認証情報を様々な用途に悪用することで、さらに大きな被害を生み出す可能性があります。一例としてトレンドマイクロは、サイバー犯罪者がコロナ禍に苦しむ人々の個人識別情報(PII)やクレジットカード情報などの詐取した認証情報を、オンラインポーカーやラップバトルに参加するサイバー犯罪者への賞品として授与していることを報告しました。このほか、詐取した認証情報の典型的な悪用方法を以下に示します。
■ 複数のパスワードを安全に管理する方法
セキュリティ専門家は、Webサイトやオンラインサービス毎に推測が困難なパスワードを使用することを常に推奨しています。
この推奨内容は理にかなっていますが、多くの人はアクセスが必要なWebサイト毎に設定したパスワードの一覧をすべて管理するのは困難だと感じています。パスワード管理ソフトなどを提供するNordPass社の調査では、人々はオンラインアカウントやサービスのために平均100個のパスワードを覚えておく必要があることが明らかとなりました。この事実を考えると、パスワード管理における困難は避けられないように思えます。一部の人々はパスワードを管理するために、認証情報をメモなどに書き留めたり、オンラインストレージに保存したりして、実用的に管理している人もいます。しかし、これらの管理方法は本質的にリスクが高いと言えます。万が一、攻撃者がパスワードの書き記されたドキュメントを入手したり、認証情報を含むファイルにアクセスしたりした場合、それらに記述されているすべてのWebサイトやサービスにアクセスできるようになってしまうからです。
幸いなことにユーザは、パスワード管理ソフトを利用することで上記のような負担を軽減させることができます。パスワード管理ソフトは、パスワードを効率的かつ暗号化された方法で安全に保存・管理できるデジタル保管庫です。トレンドマイクロからは「パスワードマネージャー」というパスワード管理ソフトを提供しています。
これらのソフトウェアはパスワードを暗号化して保存するとともに、アクセス時にはマスターパスワードを必要とします。つまり、ユーザは自身のマスターパスワードを覚えておくだけで、その後はすべてのアカウントに強力で一意なパスワードを作成することができるようになります。また、パスワード管理ソフトの中にはオートコンプリート機能を備えたものもあり、キーボードショートカットを使って登録サイトにログインすることができます。
■ アカウントリスト攻撃の被害に遭わないためには
アカウントリスト攻撃から保護するためにユーザや組織ができることは以下の通りです。
- パスワードを適切に管理する。ユーザは脆弱なパスワードの使用を避ける必要があります。組織は一般によく使用されているパスワードのブロックリストを実装して、ユーザが脆弱なパスワードを作成できないように事前に対策する必要があります。また、さまざまなオンラインアカウントやサービスで認証情報を再利用することも避ける必要があります。パスワードを作成する際には、それぞれが一意のものであることを確認してください。
- Webサイトやサービス上で多要素認証(MFA)を有効化する。最近では多要素認証を提供するWebサイトやサービスが増えています。一般的に多要素認証は、特定のデバイスやアプリケーション上に生成・保存される外部ワンタイムパスワード(OTP)、指紋認証、ソフトウェアのセキュリティトークンまたは証明書、USBセキュリティ認証キーなどを組み合わせて構成されています。これらは、アカウントリスト攻撃に対する最も効果的な防御策です。
- 暗証番号(PIN方式)を作成するか、追加のセキュリティ質問を設定する。ユーザは一部のWebサイトで提供されている追加の認証方法として、セキュリティ質問に答えたり、PIN認証プロセスを利用することもできます。
- ログイン試行の記録・分析を可能にする。Webサイトや電子メールサービスプロバイダなどのサービスの中には、ログイン試行の記録・分析を行っているものがあります。これらの分析は、次のようなさまざまな要因に基づいています。
- ブラウザ情報:ユーザが選択したことのないWebブラウザでログインしようと試みた場合、不正なログイン試行である可能性があります。
- IPアドレス:ユーザが突然IPアドレスや国コードを変更した場合、不正なログインを試みたことを示す指標となる場合があります。
- ユーザ行動分析(異常な行動を検知):ユーザは、自動化されたツールやボット型マルウェアと同じようにはWebサイトを閲覧しません。そのため、ユーザの行動を注意深く分析することで、アカウントを保護するための警告やアクションを起こすことができます。
ここで重要なのは、CAPTCHA認証はアカウントリスト攻撃を阻止する対策として十分ではないという点です。なぜなら、図5で示したとおり、OpenBulletではキャプチャ認証を回避する目的で、複数の異なるCAPTCHA APIキーを利用することができるからです。
■ 結論
データ漏洩が日常化し、憂慮すべき脅威となってきていることは否定できません。2021年2月には、32億という驚異的な数の認証情報をまとめたデータ「Compilation of Many Breaches(COMB)」がインターネット上に公開されました。このような事例のように、アカウントリスト攻撃による被害は今後も増加し続けることが予想されます。
2要素認証(2FA)や多要素認証を利用してアカウントの安全性を高めることができるオンラインサービスが増えているにもかかわらず、これらのセキュリティツールの実装率は低いのが現状です。米国メディア企業「CNET社」の調査によると、人々は2要素認証や多要素認証の利用を無視する傾向があり、自身のパスワードはすでに十分に強力でこれらのセキュリティ慣行は不要であると考えているようです。一例として米国ニュースサイト「The Verge」の報告(2018年)では、Gmailのアクティブユーザの90%が2要素認証を有効化していないことが明らかとなっています。
パスワード管理ソフトについても同様で、これらはたくさんの一意のパスワードを確保するのに有効的ですが、多くのユーザはいまだに利用しないどころか、信用すらしていません。セキュリティベンダ「Password Manager社」および市場・データ分析会社「YouGov社」の調査によると、アメリカ人の65%がパスワード管理ソフトを信用していないことが判明しました。 サイバー犯罪者が詐取した認証情報を悪用している事実に考慮した場合、強力かつ一意的で安全なパスワードを作成し、パスワード管理ソフトに保存することの重要性を強調するプロモーション活動を積極的に実施する必要があります。実際に、認証情報のセキュリティに関する推奨事項が広く普及することで、ユーザや組織は大きなメリットを得ることができます。
参考記事:
- 「How Cybercriminals Abuse OpenBullet for Credential Stuffing」
by Cedric Pernet, Fyodor Yarochkin, Vladimir Kropotov, Trend Micro
記事構成:岡本 勝之(セキュリティエバンジェリスト)
高橋 哲朗(スレットマーケティンググループ)
翻訳:益見 和宏(Core Technology Marketing, Trend Micro™ Research)