** 本記事は、Malware increasingly targets Discord for abuseの翻訳です。最新の情報は英語記事をご覧ください。**
マルウェアを拡散・管理する攻撃者は、以前より正規のオンラインサービスを悪用してきました。マルウェアによる TLS の利用状況を調査したところ、マルウェアが生成するネットワークトラフィックの半分以上が TLS による暗号化を利用しており、そのうち 20% においてはマルウェアが正規のオンラインサービスと通信していることがわかりました。
この調査の期間中ダウンロードされた、TLS で保護されたマルウェアのうち 4 % が、あるサービスから来ていることがわかりました。Discord です。Discord は、ゲームを中心としたテキストおよびボイスチャットのプラットフォームとして人気が高まっており、マルウェア運用者の関心を高めています。
Discord は、ユーザーがファイルをアップロードして他のユーザーと共有できる独自のコンテンツ配信ネットワーク (CDN) を運営しています。また、Discord は API を公開しており、開発者はクライアントアプリケーションを介さずに Discord と通信する方法を新しく作ることができます。今回、Discord の CDN でホスティングされた大量のマルウェアや、Discord の API を利用してデータを送受信するマルウェアが確認されました。
パスワードを盗むマルウェアの中には、Discord のアカウントを特に狙うものがあります。SophosLabs では、Discord のチャットボット API を利用してコマンドアンドコントロール (C&C) サーバーと通信したり、盗んだ情報をDiscord のプライベートサーバーやチャンネルに流出させたりするマルウェアも確認されました。
Discord はオンラインゲームに特化したサービスであるため、Fortnite、Minecraft、Roblox などの若者向けタイトルのプレイヤーを含む多数のゲーマーに利用されています。Discord のネットワークで発見された悪意あるファイルの中には、Discord と連携しているゲームのチートツールが含まれていました。このツールは、Discord のプロトコルの脆弱性を利用して、対戦相手のゲームをクラッシュさせるものだとされています。また、無害ではあるものの、「いたずら」を行うアプリケーションも見つかりました。
しかし、今回発見されたマルウェアの中で最も大きな割合を占めるのは認証情報や個人情報を盗み取るもので、多種多様な情報窃取マルウェアや、汎用性の高い RAT が含まれていました。これらのマルウェアの背後の攻撃者は、ソーシャルエンジニアリングを利用して認証情報を盗み取るマルウェアを拡散し、取得した Discord の認証情報を利用して、さらに別の Discord ユーザーを標的にしています。
また、Discord の CDN でホストされているランサムウェアもいくつか確認されましたが、そのほとんどが古いもので、身代金を支払う方法がなくなっているため、ただユーザーのファイルを暗号化して被害を与えるだけのものになっています。Discord でホストされているファイルには、スパイウェアに始まり金融情報や取引情報を盗む偽装アプリに至るまで、複数の Android 向けマルウェアパッケージも含まれていました。
拡大するさまざまな脅威
Discord の悪用は他の Web ベースのサービスの悪用と同様、新しい現象ではありませんが、急速に拡大しています。ソフォス製品は、直近二ヶ月だけで Discord の悪用を 2020 年の同時期の約 140 倍検知・ブロックしました。
今年の第二四半期には、Discord の CDN でマルウェアにリンクされた 17,000 もの固有の URL を検出しました。この数字は、Discord 内でホストされていないマルウェアで、Discord のアプリケーションインターフェイスをさまざまな形で悪用しているものは含みません。本記事公開時には、これらの URL のうち、悪意のある Windows の .exe ファイルにリンクされた 4,700 以上の URL がアクティブなままでした。
脅威の拡大の理由は簡単です。Discord は、持続的で可用性の高いグローバルな配信ネットワークを提供しており、マルウェアの運用に適するからです。また、Discord のメッセージング API も、マルウェアのコマンドアンドコントロールに簡単に悪用することができます。Internet Relay Chat や、最近では Slack、Telegram などが C2 (コマンドアンドコントロール) チャネルとして利用されています。
Discord の利用者数の増加は、攻撃者やマルウェアの運用者にとってはソーシャルエンジニアリングによって個人情報や認証情報を盗むための悪意のあるコードを広める標的が増え続けていることを意味します。また、Discord のユーザーの中には、金銭的な利益を得る目的というよりもむしろ悪意を持って他人のコンピュータに危害を加えようとする人もいるようです。
マルウェアの配信者や攻撃者に悪用されているサービスは Discord だけではなく、また同社はコンテンツの削除要請に対応しています。しかし、Discord のユーザーは、サービス上の悪質なコンテンツの脅威に常に注意を払う必要があります。また、身を守る時は、クラウドサービスからのいかなるトラフィックも、サービス自体が有名であるからといって常に「安全」だと思ってはいけません。
最新のテレメトリデータを使用して、これらの URL から数千の固有のマルウェアのサンプルと 400 以上のアーカイブファイルを取得できました。この数には、Discord (またはアップロード者) によって削除されたファイルが含まれていないため、マルウェアの総数を表すものではありません。しかし、Discord の CDN には新たなマルウェアが投稿され続けており、Discord をコマンドアンドコントロールネットワークとして利用するマルウェアも引き続き確認されています。
偽装ツール
Discord は、コミュニティ内での大量のテキストおよびボイスメッセージのやりとりに最適化されたクラウドベースのサービスです。Discord は、サーバーインスタンスのライブストリーミングやボイスチャットの質を向上させたり、サーバーにカスタム機能を追加したりできる「サーバーブースト」などの、プラットフォームを通じて提供されるプレミアムサービスから収益を得ています。
しかし、Discord のアプリケーションプログラミングインターフェイス (API) へのアクセスを含む基本プラットフォームは無料で提供されています。Discord のサーバーは、無料のものも含めて、サードパーティのアプリケーションと連携するように設定することができます。たとえば、サーバーのチャンネルにコンテンツを投稿するボットや、Discord 上に追加機能を構築して提供するアプリケーション、Discord のメッセージングプラットフォームに直接接続するゲームなどがあります。
Discord の「サーバー」は、Elixir で書かれた、Erlang の仮想マシン上の Google Cloud インスタンスで、Cloudflare 社がフロントエンドを担当しています。サーバーは公開にも非公開にも設定できますが、サーバーの「管理者」は、ユーザーがそのサーバーのチャンネルに参加してコンテンツにアクセスするための招待キーを設定することができます。
Discord は、本来のメッセージやストリーミング用としてだけでなく、あらゆる種類のデジタルコンテンツを提供するネットワークとしても機能します。最もシンプルなものは、Discord のユーザーがチャットやプライベートメッセージとともにアップロードする添付ファイルです。Discord は、添付ファイルの保存に Google Cloud Storage を使用しています。メッセージの一部としてファイルがアップロードされると、Web 上のどこからでもストレージオブジェクトアドレスを表す URL を介してファイルにアクセスできます。Discord のサーバーインスタンスと同様に、ストレージオブジェクトも Cloudflare 社がフロントエンドを担当しています。
この構造により、Discord は何億ものアクティブユーザーに対応できる規模の大きさと、サービス拒否 (DoS) 攻撃への耐性を兼ね備えており、ゲームコミュニティを扱う上で強みになっています。一度 Discord にアップロードされたファイルは、報告されたり削除されたりしない限り、無期限に保存されます。
Discord にはある程度のマルウェアスクリーニング機能が備え付けられていますが、多くの種類の悪質なコンテンツが気づかれずにすり抜けています。また、悪意を持ったユーザーが発覚しても、その人物はアカウントを削除して新しいアカウントを作成することができます。Discord による不正行為の取締りはユーザーからの報告に大きく依存しています。なので、Discord のアーキテクチャが、必ずしも Discord のユーザーコミュニティ内に位置しない標的に対しての活動にのみ利用された場合、問題が報告されずに何ヶ月も放置されることがあります。
アカウントへの不正ログイン
Discord の CDN からマルウェアが配信される主な方法として、ソーシャルエンジニアリングが挙げられます。この手法は、チャットチャンネルやプライベートメッセージを利用して、嘘の説明文が付されたファイルや外部リンクを投稿し、読者にダウンロードや実行を促すものです。その中には、ゲームのチートや、有料コンテンツをアンロックできると謳った「機能拡張ツール」、ライセンスキーの生成や認証の迂回など、ゲームプレイヤーにとって有用なツールに扮したファイルが多数含まれていました。しかし、宣伝通りのものも中にはありましたが、大半は何らかの形で情報を盗むことを目的としたハックツールでした。
認証情報を盗む攻撃者のうち、かなりの割合が Discord 自体を標的にしています。Discord 用のトークンロガー (記録機) は、Discord ユーザーの認証に使用される OAuth トークンを、他の認証情報やシステム情報 (Steam やその他のゲームプラットフォームのトークンなど) とともに盗みます。盗まれたトークンは、ウェブフック接続を介して Discord チャンネルに「ログ (記録)」されます。ロガーの運用者は記録された OAuth トークンを収集し、アカウントへの不正アクセスを試みます。
トークンロガーの作成はそれほど難しくありません。Python をベースにした概念実証 (PoC) 用のトークンロガーは GitHub で見つけることができ、マルウェアの運用者は任意のサーバーと通信するような実行ファイルに簡単にカスタマイズすることができます。トークンロガーによる攻撃の中には、盗まれたアカウントを利用して、開発中のゲームをテストするようユーザーに依頼するソーシャルエンジニアリング詐欺があります。この「ゲーム」は、Python スクリプトをコンパイルしたもので、概念実証に類似しています。
一度認証情報が盗まれると、その情報はソーシャルエンジニアリングを通じて他の認証情報を盗むために利用され続けることもあります。トークンロガーは端末の指紋データも収集し、標的の端末から他のクッキーや認証情報トークンもスクレイピングしようとするため、アカウントを失うだけでなく、さらなる被害が発生する可能性があります。
また、作成者によって PirateMonsterInjector と名付けられた別の情報窃取ツールは、Discord 独自の API を使用して、Discord の OAuth トークンやその他の盗んだ情報を、Discord サーバーのプライベートチャットにダンプして返します。この行為は、Discord の API コードを含み、Discord やその他のアプリケーションに関連するシステムからデータをスクレイピングする、悪意のある Web サイト (monster[.]casa) から JavaScript を取得することで行われます。
さらに広く認証情報を窃取する仕組みも存在します。いくつかのマルウェアはペイロードの実行ファイルや DLL をダウンロードし、それを使ってより広範囲のデータ窃盗を行っていました。
これらのファイルの中には、「Agent Tesla」と呼ばれる、広く使用されている情報窃取マルウェアが多数発見されました。ある例では、感染を広げた最初のファイルは PURCHASE_ORDER_1_1.exe と名付けられていました。Agent Tesla が感染プロセスの一環としてペイロードをダウンロードすることは珍しいことではありませんが、そのペイロードが Discord の CDN でもホストされていたことは意外でした。
このマルウェアは、midnight.exe というペイロード実行ファイルを CDN から直接ダウンロードして実行していました。このペイロードは、さらに別の Web サイトから TextEditor.dll という名前の DLL をダウンロードし、実行中のシステムプロセスに挿入します。(Agent Tesla による攻撃については以前にも記事にしています。)
別の事例では、悪意を持って改変されたバージョンの Minecraft インストーラが見つかりました。このインストーラは、実際にフルバージョンの Minecraft をインストールしますが、インストールされたファイルには細工が施されています。このインストーラは、Saint と呼ばれる特別な機能を持つ「Mod」を装い、標的のシステムからキー入力やスクリーンショット、感染したコンピュータのカメラからの画像をキャプチャできる Java アプリケーションを一緒にインストールしていました。ファイル内の Java クラスが、このマルウェアの機能をはっきりと示しています。
情報を盗むマルウェアやバックドアが、ソーシャルエンジニアリング攻撃の一環として使用されていることを示すファイル名を使用しているケースが多く確認されました。たとえば fortniat.exe というファイルは、「FortNite 用のマルチツール」として宣伝されていますが、実際には Meterpreter のバックドアをドロップするマルウェアパッケージでした。
さらに別のマルウェアは、プライバシーの保護を重視している Web ブラウザ「Browzar」のインストーラを名乗っていました。このインストーラはブラウザをインストールする傍ら、情報窃取マルウェア「Agent Tesla」をドロップしていました。
また、Adobe Photoshop などの、人気が高い一方で高価な商用ソフトウェアの海賊版をインストールすると称するファイル群も確認されました。中にはもちろん、Discord のプレミアム版である Discord Nitro の有料機能を利用できるとするツールもありました。
Discord のキージェネレータ「nitrogen」
上記のファイル群のうち少なくとも 50 個に、年間 100 ドルのサービスに加入していないユーザーのアカウントで Discord Nitro の機能をアンロックしたり、一ヶ月間 Nitro へのアップグレードを付与する「ギフトコード」を生成したりすることを暗示するような名前が付けられていました。このようなツールの多くは、Nitro と「コードジェネレータ (code generator)」を組み合わせた名称である「nitrogen」を自称しています。
いくつかのファイルでは、無料の Discord アカウントを Discord Nitro にアップグレードする際に使用するコードに似たものが生成されましたが、ほとんどは何も生成しませんでした。あるファイルは、レジストリキーを削除したり、数十種類のエンドポイントセキュリティツールのプロセスやサービスを終了させたりしようとするバッチスクリプトをドロップします。「antiav.bat」と名付けられたこのスクリプトは、ユーザーがプログラムを起動した直後に、システムの %TEMP% ディレクトリから実行されます。
「nitrogen」ユーティリティのバッチスクリプトは、Windows の主要なセキュリティ機能を無効にします。この動作は Windows が「ユーザーアカウント制御 (UAC) をオフにするため」コンピュータを再起動するようユーザーに促す画面が表示されることで確認できます。UAC とは、Windows ユーザーが管理者権限でアプリケーションを実行することを許可するための確認画面を表示する機能です。UAC がオフにされると、ユーザーが許可しなくともファイルが管理者権限で実行されてしまいます。
これらのプログラムの多くは、さまざまな方法で感染したシステムをプロファイルし、コマンドアンドコントロールサーバーにアップロードするためのデータファイルを生成します。多くのファイルは古いものであったため、アップロード先のサーバーからの応答はありませんでしたが、プロファイリングデータがハードドライブに書き込まれる様子を確認することができました。
多くの例では、システムのプロファイリングに加えて、マルウェア運用者が被害者のアカウントを使用して Discord にログインできるようにするためブラウザの「トークン」を取得しようとしたり、ユーザーの入力を監視してコマンドアンドコントロールサーバーに渡そうとするキー入力ロガーコンポーネントをインストールしたりしていました。テストシステム上で Discord に使用されていた認証情報は Windows の Discord アプリで使用されていたものだけであり、ブラウザを通じてサービスにログインしていなかったため、ほとんどのトークン窃取ツールは、テスト機からトークンを取得することはできませんでした。
多くの場合、盗み出したトークンの値は、Discord 自体の API を使用して、Discord 上の特定の URL へのHTTPS POST リクエストにより、他の Discord チャンネルやユーザーアカウントに直接送信されていました。ときおり、Slack のチャンネルにデータを送信しようとするマルウェアも確認されました。
これらの「トークン窃取」マルウェアの中には、被害者のアバター画像や、ifconfig.me、ipify.org、iplogger.com、wtfismyip.com などのサービスを利用して取得した被害者の公開 IP アドレスをも盗み出すものがあります。これらの高度な窃取ツールは、ブラウザだけでなく、Discord のクライアントアプリケーションからもトークンを抽出することができます。
窃取ツールはその後特定の Discord チャンネルの URL に、きれいに書式を整えた投稿を行います。
窃取ツールの中には、悪意のある Visual Basic Script ファイルを Github や Pastebin から直接ダウンロードしようとするものがありました。幸いなことに、これらのサイトではすでにペイロードスクリプトがロックされていたり無効化されていたりしたため、窃取ツールは処理を完了することができませんでした。
ランサムウェアによる「いたずら」
Discord 経由で配布されたマルウェアの中には、ゲーム関連の名前が付けられた、明らかに他人のコンピュータに危害を加えることだけを目的としたものもありました。また、「Roblox_hack.exe」という名前のファイルには、Discord の CDN で見つかったいくつかのランサムウェアのうちの一つである WinLock ランサムウェアの亜種が実際に搭載されていました。このランサムウェアは、ファイルを暗号化するのではなく、被害者をデスクトップ環境からロックしてしまいます。
また、Discord の CDN には、Somhoveran / LockScreen という画面ロックマルウェアの類似種も広く存在していました。このマルウェアは、身代金の支払い期限を示すカウントダウンを行います。Somhoveran は、Windows Management Instrumentation を使用して、感染したシステムの情報を収集し、そのデータの一部を画面に表示します。
さらに厄介な、旧型のランサムウェアも Discord の CDN で発見されました。2016 年に初めて報告された暗号化ランサムウェア「Petya」です。
Petya の Tor サイトは消滅しているため、このファイルが恐喝目的で共有されたものなのか、それとも単に受信者のコンピュータをロックするためのものなのかは不明です。ほとんどのアンチマルウェア製品 (Windows Defender を含む) は Petya をブロックしますので、大多数の Windows 機にとっては脅威というよりもいたずらに過ぎませんが、古いコンピュータや、「ゲームのパフォーマンスを向上させるため」手動で実行してしまう人にとっては危険な場合があります。
Android を標的にしたマルウェア
Discord を通じて配信されているマルウェアは、Windows だけを標的にしたものではありません。テレメトリの結果、Android デバイス上で実行可能な 58 の固有の悪意のあるアプリが発見されました。これらの中には金融取引に特化したマルウェアやスパイウェアなどが含まれています。ソフォス製品による検出結果は以下の通りです。
Andr/Banker-GTV | 41 |
Andr/Banker-GZA | 1 |
Andr/Banker-HAC | 4 |
Andr/FakeApp-BK | 1 |
Andr/Xgen2-LP | 1 |
Andr/Xgen2-XN | 1 |
Andr/Xgen2-XP | 3 |
Andr/Xgen2-YD | 2 |
90 日間のテレメトリの結果、Android の .apk 実行ファイルにリンクされている URL が Discord ドメイン上に 205 個 (同一のファイルへの複数のリンクも含まれています) 発見されました。これらの URL のリストを Discord に報告したところ、Discord はこれらのファイルを削除しましたが、数週間後に再度調査したところ、その間にさらに多くのファイルが出現していました。
本記事公開時に残っていたものとしては、広告を不正にクリックするアプリ (Andr/Hiddad-P に分類)、デバイス上に他のマルウェアをドロップするアプリ (Andr/Dropr-IC および Andr/Dropr-IO)、リモートの攻撃者が被害者のモバイルデバイスにアクセスすることを可能にするバックドア (事実上 Metasploit フレームワーク Meterperter (Andr/Bckdr-RXM and Andr/Spy-AZW) であるものを含む)、オンライン金融取引の認証情報を盗み出して攻撃者に転送する Anubis バンキングトロイのの木馬 (Andr/Banker-GTV) のコピーなどがあります。
Android を標的にしたマルウェアのファイルには、金融取引やゲームのアップデート用の正規アプリであると思わせるような名前とアイコンが付けられていました。中には、COVID-19 の接触追跡アプリの名前とアイコンを使用しているものもありました。いくつかのアプリはデバイス内でポップアップを生成し、ユーザーに「デバイス管理者」としてアプリをアクティベートするよう要求しました。これにより、アプリはデバイスをほぼ完全に制御できるようになります。
Discord のユーザーを標的にした攻撃ツール
他の開発者向けのプラットフォームと同様に、開発者向けの機能は悪用される可能性があります。今回発見された悪質なアプリケーションの中には、ゲームプレイ環境を変更したり、影響を与えたりするゲームチートとして宣伝されているアプリケーションがありました。たとえば、「Conrado’s FiveM Crasher」は、コミュニティが運営するサーバーでホストされている Grand Theft Auto のマルチプレイヤーサーバー用のゲームチートで、Discord と連携された FiveM からデータを引き出し、ゲームプレイ中に近くにいるプレイヤーを「クラッシュ」させます。
ソフォスが回収した Linux ベースの悪意あるアーカイブの一つに、virus_de_prost_ce_esti.rar (ルーマニア語で「なんてばかなウイルスでしょう」という意味) と名付けられたファイルがあります。このアーカイブには、11 個の ELF バイナリ、7個のテキストファイル (IP アドレスを記載した長いリストを含む)、およびそれらをさまざまな順序で実行する Python スクリプトが含まれていました。このアーカイブは、ゲームサーバーを混乱させ、ラグやクラッシュを引き起こすことを意図したものです。
この Python スクリプトの内部コメントによると、このスクリプトは Amazon の AWS および NFO Servers (Minecraft、Counter Strike、Battlefield、Medal of Honor などのマルチプレイヤーゲームのプライベートゲームサーバーをホスティングするサービス) というふたつのプラットフォームでホストされているサーバーを攻撃するように設計されています。
増加する脅威
Discord は、ソフォスが報告した悪意のあるファイルのほとんどを削除する対応を取りました。関係者によると、同社は現在、社内でセキュリティ態勢の向上に努めているとのことです。しかし、Discord がマルウェアの温床であることに変わりはありません。また、Discord でホストされていないマルウェアであっても、Discord の API は、Discord の TLS で保護されたネットワークトラフィック (およびサービスの評価の高さ) の裏に隠れている悪意のあるコマンドアンドコントロールネットワーク機能のための肥沃な土壌となっています。
Discord のマルウェアの中には、コンピュータをロックしたり、特定のプラットフォームへのアクセスを妨げたりすることを特に目的としたものもありますが、情報窃取ツールやリモートアクセスツールなどの危険なマルウェアが蔓延していることは、ゲーム愛好家に限らず大きなリスクをもたらします。Discord を低コストのコラボレーションプラットフォームとして利用する企業が増えているなか、Discord の認証情報が失われることによる被害の可能性は、企業にとって新たな脅威となります。
身近に Discord のユーザーがいなくても、マルウェア運用者による Discord の悪用は脅威となっています。エンドポイントプロテクション (企業レベルでは TLS インスペクション) は、これらの脅威に対する保護を提供することができますが、Discord 自体にはマルウェアやソーシャルエンジニアリングに対する保護はほとんど備え付けられていません。Discord のユーザーは遭遇した脅威を報告して身を守ることしかできませんが、新たな脅威は日々出現しています。
ソフォス製品による保護
今回の調査では、9000 以上のマルウェアのサンプルを解析しました。これらのファイルが保護されたマシン上で実行された場合に行われる可能性のある静的検出および動的検出をすべてリストアップすることは現実的ではありませんが、Labs チームによってすべてのファイルが処理され、既存の防御システムがこれらのファイルによる被害を完全にブロックできるようになりました。/p>
最近のダウンロードで取得されたファイルのハッシュであるセキュリティ侵害の痕跡 (IoC) が SophosLabs の Github で公開されています。SophosLabs は、マルウェアの削除要請に迅速に対応してくれた Discord の Trust & Safety チームに謝意を表します。