Azim Khodjibaev の寄稿に基づき、Vitor Ventura が投稿しました。
はじめに
この 1 か月半の間、Telegram(暗号化されたエンドツーエンドのインスタント メッセージング サービス)からキャッシュやキー ファイルを収集するマルウェアの出現が確認されています。このマルウェアが最初に確認されたのは 2018 年 4 月 4 日です。その後、4 月 10 日には亜種の出現も確認されました。
最初のバージョンは、ブラウザのクレデンシャルとクッキーのほか、システム上のすべてのテキスト ファイルを盗み出すだけでした。しかし亜種では、Telegram のデスクトップ キャッシュとキー ファイルや、Steam の Web サイトのログイン情報を収集する機能も加えられています。
Talos ではインテリジェンス リサーチにより、マルウェアの作者である可能性が高い人物を特定しています。この人物は、収集した Telegram のファイルを使用して Telegram のセッションを乗っ取る方法や、配布用にパッケージ化する方法について、手順を紹介する複数の YouTube ビデオを投稿していました。
今回のマルウェアでは、盗み出した情報を保存する際に、ハードコード化された複数の pcloud.com アカウント情報を参照しています。これらの情報は暗号化されていないため、クレデンシャルにアクセスできれば誰でも閲覧可能です。
マルウェアの主な標的はロシア語圏で、アノニマイザー サービス関連の IP アドレスを意図的に回避しています。
デスクトップ版 Telegram の免責事項
このマルウェアは、Telegram の脆弱性を発見したり、エクスプロイトしたりしません。ただし、デスクトップ版の Telegram は Secret Chats に非対応でデフォルト設定が脆弱であるため影響を受けます。
https://core.telegram.org/tsi/e2ee-simple#2-why-are-there-no-secret-chats-on-desktop-apps
上記のスニペットは、telegram.org の Web サイトからの抜粋です。Telegram のデスクトップ版と Web 版では Secret Chats に未対応であることを明記しています。Telegram のデスクトップ版と Web 版はクラウドベースのため、ローカルに保存されるファイルについては配慮されていません。マルウェアが突いているのはこの点、つまりバグや脆弱性ではなく、Secret Chats に未対応の部分です。またデスクトップ版の Telegram では、自動ログアウトがデフォルトで無効になっています。こうした 2 つの要因が重なったことで、マルウェアによるセッション情報の(そしてチャット内容の)窃盗を許しています。
ただし、Telegram そのものが侵害されたわけではなく、モバイル プラットフォームで使用される Secret Chats にも影響はありません。
デスクトップ版 Telegram のデータ値
マルウェアは、Telegram のキャッシュ データ全体を収集して ZIP 化してから、ファイルを抽出します。
データの不正転送を準備するために使用されるコード
調査を進める中で、こうした情報にアクセスし、Telegram セッションの窃盗に利用する方法を解説したチュートリアル ビデオを発見しました。ビデオの内容を要約すると、セッションがオープンの場合に、キャッシュとマップ ファイルを既存のデスクトップ版 Telegram 内に復元することで窃盗が可能になるとしています。さらに、標的のセッションや連絡先、過去のチャットにもアクセスできるとしています。ビデオの作者は、マルウェアの作者と同じである可能性が高いと考えられます。
しかし、これはかなり珍しいケースだと言えます。Talos が把握している限り、キャッシュ情報を復号できるツールは存在しないはずです。一方で、GitHub の TelegramDesktop リポジトリでは、こうしたキャッシュ情報を復号するツールは可能だとする議論がこちらのページ [英語] で展開されています。
デスクトップ版 Telegram のファイルを暗号化するためのキーは、ユーザのパスワードで暗号化されたマップ ファイル内に保存されています。
GitHub.com のTelegramDesktop リポジトリ
攻撃者がこれらのファイルのパスワードを持っていないとしても、ブルートフォース攻撃でファイルに侵入するのは難しくないでしょう。実際に上記のコードは、公開済みのコンポーネントを使用すれば簡単にブルートフォース攻撃が実行できることを物語っています。Telegram は暗号化に AES を使用しているため、OpenCL や HashCat 向けアドオンを使用すればブルートフォース攻撃を短時間で完了できます。
攻撃者がアクセスできるのはローカルのキャッシュ データのみだと考えられます。ただし Telegram の該当版はクラウドベースのため、キャッシュ データの中身について確かなことは何も言えません。唯一確かなのは、チャット データがクラウドに保存されることです。
マルウェアの作者
マルウェアのさまざまな亜種を分析していくと、「Racoon Hacker」というユーザに到達しました。この人物は、Eyenot(Енот/Enot)や Racoon Pogoromist(原文のまま)としても知られています。
ビデオをざっと分析したところ、Racoon Hacker はロシア語を母語とする人物で、プログラミング言語「Python」に長けているようです。投稿記事やビデオの数は多くないものの、そのすべてが、他のアカウント乗っ取りツールやペイロード ローダーについて言及しています。類似のプラットフォームや手口についても頻繁に言及しており、それらを活用したマルウェアの亜種を紹介しています。
キリル文字ベースのユーザ パス
Racoon Hacker がキリル文字ベースの言語を中心に使用していることは、上記画像の 1 行目から明らかです。ユーザ ホーム ディレクトリは、CP-1251 という文字符号化方式を使って復号されています。この方式は、主にロシア語やウクライナ語といった言語で使われています。
Racoon Hacker は、Telegram セッションを乗っ取る方法を紹介した YouTube ビデオ(URL は上述のとおり)を投稿しています。ビデオを詳しく見ていくと、「Enot」というユーザへの言及が 2 か所で確認されました。
「Enot」への言及
2017 年秋以降、Racoon Hacker はロシアの中堅ハッキング フォーラム「Lolzteam.net」にて活発に活動してきました。現在は「Racoon Pogoromist」という名前で、マルウェアのカスタマイズ プロセスを概説した「Telegram breaking in 2018(2018年 Telegram への侵入)」というタイトルの記事 [ロシア語] を投稿しています。
Telegram セッションの窃盗ツールに関するブログ投稿
別の中堅ハッキング フォーラムである sft.st でも、同じソフトウェアが宣伝されています。こちらでは、GitHub 上の Python スクリプトやその他のツールへのリンクが掲載されており、他のユーザも複製できる状態にあります。
GitHub を参照している sft.st フォーラムの記事
GitHub の「Enot272」アカウントからは Python スクリプトがすでに削除されていますが、Talos ではコンテンツ一覧を取得できました。
GitHub の Stealer_for_Telegram_Desktop リポジトリ コンテンツ
リポジトリ コンテンツは同じビデオのファイル名を参照しており、各ビデオへのリンクも含んでいます。これらの事実から、Racoon Hacker は Enot272 と同一ユーザである可能性が高いと言えます。Stealer_for_Telegram_Desktop はすでに削除されていますが、現時点で GitHub の「Enot272」アカウントはまだ有効です。アカウントを詳しく調べたところ、Racoon Hacker と、マルウェアの亜種との関連性を示す 2 つの点が明らかになりました。
GitHub.com の「Enot272」アカウントの詳細
このユーザのアバターは、ビデオが投稿された YouTube アカウントと同じものです。星が付いているコードは 2 個しかありませんが、そのうちの 1 つ(2 個目)は、データをクラウド ストレージ サービス(pcloud.com)へ不正転送するための API としてマルウェアの亜種で使用されています。この API はあまり人気ではないようで、合計で 8 つしか星が付いていません。
さらにこちらのビデオは、今回のマルウェアと Racoon Hacker との非常に強い関連性を示しています。ビデオでは、AutoIt で作成したローダーの使用方法が説明されています。
testytest1enot.ucoz.net のファイル マネージャのコンテンツ
ビデオの 3 分 6 秒のところで、testytest1enot.ucoz.net からのコンテンツが表示されます。ここでは、2 つのファイル名(dist1.txt と sdadasda.txt)を確認できます。マルウェア サンプルのうち 2 つは完全に同じファイルを参照しており、ドロッパーが参照する URL とも完全に一致しています。
URL 全体(亜種のひとつ)
ローダーのクレジットは別のユーザですが、この Telegrab も同じローダー/ドロッパーを使って配布されています。
enotproject.exe から返されたコード
ユーザ「Enot272」による関与は、マルウェアが回避すべき IP リストのダウンロード先(URL)からも判明しています。
マルウェアの詳細
今回のキャンペーンは、異なる言語で記述されたさまざまなダウンローダーを使って配布されています。少なくとも 3 つの言語(Go、AutoIT、Python)で記述されたものと、4 つ目の言語(DotNet)で記述されたプロトタイプが確認されています。そのうちの 1 つは、実行ファイルにコンパイルされた AutoIT スクリプトです。
AutoIT スクリプトを逆コンパイルすると、実行形式のファインダー(whiteproblem.exe)をダウンロードできることが確認されました。このファイル名は、確認された数あるファイル名の一例にすぎません(IOC セクションを参照)。
ファイルのダウンロード後の動作については、Go で記述された実行可能な finder.exe によって、2 種類に分かれます。1 つは、finder.exe だけを使います。もう 1 つは、finder.exe とは別に自己解凍形式の RAR ファイルとして配布します。RAR ファイルには enotproject.exe や dpapi.exe といった名前の Python スタブ実行ファイルが含まれています。
自己解凍形式の RAR ヘッダー
ファイルが解凍されると、上記の画像のとおりセットアップ変数に従って finder.exe が起動します。
finder.exe は、ハード ドライブ上で既定のユーザの Chrome ブラウザのクレデンシャルとセッション クッキーを検索します。また、ハードドライブを検索しながら、システム上のすべてのテキスト ファイル(.txt)を収集します。このタイプはさらに、finder.exe の実行中に 2 つ目の実行ファイル(enotproject.exe または dpapi.exe)を起動します。
2 つ目の実行ファイルは、収集した情報を不正転送します。データは、GitHub のこちらのページ [英語] で入手できるオープン ソース ライブラリを使って pcloud.com にアップロードされます。
pCouldClient.Login() の呼び出し
ここでの認証には、finder.exe 内にハードコード化されたクレデンシャルが使われます。finder.exe のサンプルでは、5 つの pcloud.com アカウントを確認しています。コードを分析した限り、不正転送されたデータは暗号化されていませんでした。つまり、クレデンシャルさえ分かれば誰でもこれらのデータにアクセスできることになり、危険性がさらに増しています。
2 つ目のタイプは enotproject.exe や dpapi.exe という名称が付けられ、Python で記述されており、PyInstaller を使って実行ファイル化されています。dpapi.exe のタイムスタンプは一般的に enotproject.exe のものより古く、コード自体も簡素です。こうした背景からマルウェアの進化の過程を読み取れます。
enotproject.exe には、Telegram や Steam のデータを収集するコードが追加されています。このコードは https://enot272[.]neocities[.]org/IPLogger-output.txt からリストをダウンロードし、標的の IP アドレスが含まれていないか確認します。標的がリストに含まれている場合は、マルウェアが終了するようになっています。ダウンロードしたリストには、中国とロシアの IP アドレスに加え、他国における匿名サービスも掲載されています。
Steam や Telegram の情報を収集するタイプのマルウェアは、2018 年 4 月 10 日に初めて配布が確認されました。
また、Python コードの 3 つ目のタイプも実行ファイル(py2exe)内で確認されています。このタイプは、2 つ目の亜種で見られた enotproject.exe と同じようなコードですが、スタンドアロン型のマルウェアです。不正転送コードが存在しないため、悪意のある攻撃者がどのようにして情報を収集しているのか、判明していません。タイムスタンプから、流行中の亜種としては最新であることが分かります。
ただしマルウェアには永続的なメカニズムがなく、悪意のある攻撃者は情報収集に特化していると考えられます。
まとめ
このマルウェアの最も興味深い特長は、Telegram セッションを盗み出すことです。制限はあるものの、セッションを盗み出すことで、標的の連絡先と過去のチャット情報まで抽出できるのです。脆弱性をエクスプロイトせずにこうした情報を収集するマルウェアは多くありません。今回のマルウェアは、暗号化されたメッセージング システムのユーザに対する警鐘を鳴らしています。こうしたシステムでは機能が明確には説明されておらず、脆弱なデフォルト設定によってユーザのプライバシーが危険にさらされるおそれがあります。
巨大な犯罪組織が利用する大規模なボット ネットワークに比べると、今回の脅威は微々たる問題かもしれません。しかし今回のマルウェアは小規模であるがゆえに企業のセキュリティ網をくぐり抜け、何千というクレデンシャルを 1 か月足らずで盗み出しています。プライバシーにも重大な影響を与えています。盗み出したクレデンシャルやクッキーを悪用すれば、vk.com、yandex.com、gmail.com、google.com といった Web サイトにログインして個人情報にアクセスできます。分析したマルウェアのサンプルは特に高度なものではありませんが、目的達成には十分です。
今回のマルウェアには永続化手段がないため、標的マシン上で毎回(再起動後を除く)実行される必要があります。
カバレッジ
お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。
Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。
CWS や WSA の Web スキャンは、悪意のある Web サイトへのアクセスを阻止し、それらの攻撃に使用されたマルウェアを検出します。
E メール セキュリティは、攻撃の一環として攻撃者が送りつける不正なE メールをブロックします。
NGFW や NGIPS、および Meraki MX などのネットワーク セキュリティ アプライアンスで、この脅威に関連付けられた悪意のあるアクティビティを検出できます。
AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を組み込みます。
シスコのセキュア インターネット ゲートウェイ(SIG)であるUmbrellaは、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。
オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.org で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。
IOC(侵入の痕跡)
URL
#下記のリストに IP が掲載されている場合は exit:
https://enot272[.]neocities[.]org/IPLogger-output.txt
#分散ポイント:
http://testytest1enot[.]ucoz8[.]net/dist4.txt
http://testytest1enot[.]ucoz[.]net/sdadasda.txt
http://testytest1enot[.]ucoz[.]net/dist1.txt
http://testytest1enot[.]ucoz[.]net/wolf.txt
http://enotal1f[.]beget[.]tech/new/whiteproblem.exe
http://enotal1f[.]beget[.]tech/123Vlades925.zip
http://enotal1f[.]beget[.]tech/new/uraura.exe
http://enotal1f[.]beget[.]tech/new/sergejbatalov.exe
http://enotal1f[.]beget[.]tech/nickky5.zip
SHA256
4ebf3e5afa85a48a34cf0e344c685c9f97d59c002d54eb3ee19d6b79bae9e4dd
a5dbbbc7996967cf7f16f998fab6dbc09a087082a0d17287418b8ffc2b6228f3
2be87bc7e1cee08a3abc7f8fefcfab697bd28404441f2b8ee8fafba356164902
683aca7614f51d52e2121e240dd2d5fc72858d7dbc6e27f97be83a987f9c5103
da0d0bc24c204e5771f4d7334b322caed6cb0021b719741900b94d91fe01a7c4
c0b505299214d21c5f89aea4d381dbd76ef5ce9a38770b693578d4647e61a471
005bdb6b31dc26406694749f1de59d5cce330de603e8b407c80e8ff7dddda4a3
cb5abc9a8ef7936892e4627fe4d94d28120bb653002c1fd6f1a449ce86d9e909
8b8b7d5da95a731f699ccc5c81f410f7d3b48b4986d5be2dee084cb269931151
6344f5fe0081dcff6345055d2f90e163ec8eb214edfff44fe56fc2d1ed14d322
04235dc68d798863ca1177864c7dba300cf1def2c6eb79885338fc8279b8aa49
e6fa65c97244ff34348b958bb53c2046897d4c5137d06a9dff327597f5b5430f
4ebf3e5afa85a48a34cf0e344c685c9f97d59c002d54eb3ee19d6b79bae9e4dd
2b73bdabd16316804a9f175b7078769bdced003dbe7ee944088abae67a0a5fee
2c365caa7c41a871c5a32c357ffb832ef9fa1cf72f0033c84e9a4a4bdaeae992
b8cd344fd7d8dd400db31f981b8a11b0aabe6b118d9aa498aa269144b441eb96
2e608a18562ad0427b02cc225db8703eb55be189bf2bccc9250b3b30022fdd90
2a990c1e97b0329b2c4f75766314d1fe91f554b3ac524d4229b6068d007c8e33
5bc214d0bf18ded3bd18595e96b609137207aeeb0786778f86191fbdfdbc0522
286b7bf5ab74a5ed919b2caff250084e35ace2df1ed1b1c9e4ea556ba73f9e1b
831b7b91b48c5c745b04731949c1ed32a2e9e68df66b6cc7f9e0b1fb0c6df5eb
31dd4401c496ceaa8c5d75bc0e8f7f5a1b648f5e5942e074fbb5c683d9eaf408
0f44cbc19862c6a2208d506564c3a3676e22c8203d2f3055a88c00c00ebf1c1e
c9c46a0f78abc1de95af1f26dd7c357146ce8ce462bd450617c138a81c2e119d
3e6044de4c65c6e4290d22a03c8c67c18dbc264de0b8da0f4a8711415073fe15
3e5dea4055b80ba3903b5ef0a4ad6130775337d3a068b721671e982ae4effda1
6d728e557152d8f5613ca8ea06329f1a08e8e13923ed0fa0a5142c3dd7cb0155
57bdbb582ad09382aa3d4e015269eddd56f7d712d11cde58cf0debac9fcd1829
a9822090b68066332178fcd8fbaaf706ad478e0a7a5b50e1b99bda52bc6ab081
a9e4d7aa5b6d83943aa4845dc467040ae4cd223ef603a5ab2d1896d9c2573932
bb3219959f1e25a415adf56481be96da1145c03e347d8852de310070256a09cc
本稿は 2018年5月16日に Talos Group のブログに投稿された「TeleGrab – Grizzly Attacks on Secure Messaging」の抄訳です。