サイバー犯罪集団「テレボット」によるサプライチェーン攻撃

この記事をシェア

2016年から身代金要求ウイルス(ランサムウェア)が世界的に大量発生しているが、2017年には特に「ワナクライ」を発端として、「エックスデータ」や「ペトヤ亜種」などウクライナを標的とした、かなり精巧なマルウェアが頻出している。これらはみな「テレボット」グループの仕業と目される。

この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト「Welivesecurity」の記事を翻訳したものである。

サイバー犯罪集団「テレボット」によるサプライチェーン攻撃

2017年7月、ランサムウェア「ペトヤ」(Petya)によく似たランサムウェア「ペトヤ亜種」の発生がメディアの注目を一身に集めた。しかし、これは単独の出来事にとどまらない。いくつかの類似した亜種が断続的に用いられ、特にウクライナで起こっているいくつかの攻撃に連なっている。ESETはこれを「Diskcoder.C」として検知する。別名はエクスペトロ (ExPetr)、ペトロラップ(PetrWrap)、ペトヤ( Petya)もしくはノットペトヤ(NotPetya)である。当記事ではこのマルウェアの流行についてその詳細を述べ、以前は公にされていなかった攻撃についての関連する情報も取り上げる。

ウクライナでのサプライチェーン攻撃の時系列

ウクライナでのサプライチェーン攻撃の時系列

テレボット

2016年12月、ESETの研究者はテレボットと名付けたグループによって仕掛けられた破壊的な攻撃について、詳細な論考を発表した。そこで具体的に特に取り上げたのは、金融機関に対する攻撃と、このグループに利用されたマルウェア「キルディスク」(KillDisk)のLinux版についてである。この犯行グループはウクライナの様々な重要インフラと位置付けられるコンピューターシステムに対してサイバー攻撃を仕掛けた。更に、このグループは2015年12月のウクライナでの大停電を引き起こした悪名高きブラックエナジー(BlackEnergy)グループとも関わりがある。

攻撃の最終段階で、テレボットグループはキルディスクを使って、毎回、被害者のディスク上にあるファイルを特異な拡張子を持ったファイルへと上書きした。キルディスクは2016年の攻撃の第一波で利用されたとき、暗号化するのではなく標的となったファイルに上書きし、しかも攻撃者との連絡に必要な情報はなかった。単にテレビ番組「ミスターロボット」(Mr. Robot)をほうふつとさせる画像を表示するだけだった。すなわち、このグループにとって身代金を集めることは最優先事項ではなかったのである。

2016年第一波の攻撃でキルディスクにより表示された画像

2016年第一波の攻撃でキルディスクにより表示された画像

攻撃の第二波において、キルディスクを裏で操るサイバー破壊工作者は、典型的なランサムウェアであるように見えるように、連絡先情報を付け足した。しかしながらそこで、この攻撃者は約2,500万円相当の法外な額のビットコイン(222BTC)を要求した。このことから推察できるのは、彼らの関心があるのはビットコインではなく、本当の目的は攻撃の対象となった企業にダメージを与えることにあったのだろう、ということだ。

2016年の第二波の攻撃でキルディスクによって表示された身代金の要求画面

2016年の第二波の攻撃でキルディスクによって表示された身代金の要求画面

2017年になっても、テレボットグループはサイバー攻撃を止めなかった。それどころか、彼らの手口はより洗練された。2017年1~3月、テレボットの攻撃者たちはウクライナのソフトウェア会社(M.E.Doc社とは関係のない会社)に侵入した。そしてそこからVPNを通じていくつかの金融機関の内部ネットワークにアクセスをしたのである。

その攻撃の間、テレボットの背後にいる人物は2つのランサムウェアとその最新版によってツール群の強化を行ったのである。

テレボットグループが頻繁に用いた初代のバックドアは「Python/TeleBot.A」である。このバックドアのプログラミング言語がその後、PhytonではなくRustに変更されていた。ただし、機能面に変わりはなかった。マルウェアの操作者からコマンドを受け取りレスポンスにメッセージングアプリのボット機能「Telegram Bot API」を悪用する標準的なバックドアであった。

トロイの木馬Win32/TeleBot.ABに逆アセンブルをかけたコード

トロイの木馬Win32/TeleBot.ABに逆アセンブルをかけたコード

2代目のバックドアはVBSで書かれ、無料プログラム「script2exe」を使ってパッケージ化された。非常に複雑で判読し難いが、初代の攻撃と同じ程度の機能を備えていた。

難読なバージョンであるVBSバックドア

難読なバージョンであるVBSバックドア

このVBSバックドアは「130.185.250[.]171」にあるC&Cサーバーを利用していた。ファイアウォールのログをチェックする人に疑念を抱かせずに接続させるために、攻撃者はドメインを「transfinane.com[.]ua」で登録し、その IPアドレスにホストを設定した。図6で明らかなように、このサーバーは「severalwdadwajunior」という名の接続経路を匿名化するTorのリレー機能を使っていたのである

テレボットグループにより運用されたTorリレーの情報

テレボットグループにより運用されたTorリレーの情報

加えて攻撃者は次のツールを利用している。

  • CredRaptor (パスワード窃取に用いられる)
  • Plainpwd (Mimikatzを改造したもので、メモリーからWindowsの認証情報を復元するのに利用される)
  • PsExec (Windowsのトラブルシューティングツール集「SysInternals」のうちの1つで、マルウェアと攻撃者の通信を確立した後の、ATP攻撃の後半過程において利用される)

上に述べたように、攻撃の最終段階において、攻撃者は盗みだしたWindowsの認証情報とWindows管理用のユーティリティ「SysInternals」に含まれている「PsExec」をこのランサムウェアが利用できるように設定する。このランサムウェアはESETによって「Win32/Filecoder.NKH」として検知される。一旦実行されるとアルゴリズムAES-128及び RSA-1024を用いて全てのファイルを暗号化してしまう(但し、C:\Windowsにある辞書ファイルを除く)。マルウェアは既に暗号化されたファイルに「.xcrypted」というファイル拡張子を付け加える。

暗号化が終了すると、このマルウェアは次のような内容のテキストファイル「!readme.txt」を作り出す。

 こちらまでご連絡ください:openy0urm1nd@protonmail.ch

Windows向けのマルウェアに加え、テレボットグループは非Windows系のサーバー上でもLinux版ランサムウェアを利用する。このランサムウェアはESETによって「Python/Filecoder.R 」として検知される。その名の通り、プログラミング言語Pythonで書かれている。今度の攻撃者はファイルの暗号化のためにOpenSSLのようなサードパーティーのユーティリティを実行する。この暗号化にはアルゴリズムRSA-2048とAES-256が用いられている。

テレボットグループに利用されたLinux向けランサムウェア「Python/Filecoder.R」のPythonで書かれたコード

テレボットグループに利用されたLinux向けランサムウェア「Python/Filecoder.R」のPythonで書かれたコード

Pythonで書かれたコードの中に、攻撃者は次のテキストのようなコメントを残している。

 ご意見は次まで: openy0urm1nd[@]protonmail.ch

Win32/Filecoder.AESNI.C

2017年3月18日、ESETは別のランサムウェアファミリーの「Win32/Filecoder.AESNI.C」が新たに活動しているのを発見した。これが「エックスデータ」(XData)と呼ばれるマルウェアである(以下「エックスデータ」と呼ぶ)。

このランサムウェアは大半がウクライナにおいて拡散した。最初の引き金となったものが興味深い。ESETの遠隔測定プログラムであるLiveGridによれば、ウクライナにおいて経理部門の人々の間で広く使われているソフトウェア「M.E.Doc」を実行した直後にこのマルウェアが動き出しているのである。

エックスデータはC&Cサーバーとの通信を確立した後に、感染した企業・組織のLANの内部で、自動的にほかのコンピューターに感染を広めていくメカニズムを備えていた。注目すべきは、このマルウェアには「Mimokatz DLL」が組み込まれていたことである。これによって感染PCのメモリーからWindowsアカウントの認証情報を抜き出すのに使われるものである。抜き出した信用情報を使って、このマルウェアは接続しているネットワーク内部でSysInternalsのユーティリティPsExecを利用して増殖を開始した。

この段階ではまだ、攻撃者は自分たちの目的地点に到達していないように見える。あるいは、もっと効果的な攻撃のための事前のテストであったのかも知れない。と言うのは、攻撃者は暗号化を解除できるマスターキーをヘルプデスクサイト「BleepingComputer」のフォーラムで公開したからである。彼らの主張によれば、マルウェアのオリジナルの作者がキーのソースが盗まれてウクライナの事故で使われたと言っているのでこれを公開する、ということであった。

そこでESETはエックスデータの復号ツールを公開した

ペトヤ亜種(Diskcoder.C)の出現

その後、メディアの注目を大いに集めたのは、2017年6月27日に現れた「ペトヤ亜種」である。ウクライナや他の国々で、最重要インフラストラクチャーと複数の企業が用いていた多くのシステムに被害を与えることに成功したからだ。

この攻撃に使われたマルウェアは、マスターブートレコード(MBR)を不正コードと入れ替えることができる。このコードは、ランサムウェア「ペトヤ」(Win32/Diskcoder.Petya)から借用されたものだ。マルウェア研究者の間でこの脅威を「エクスペトロ」(ExPetr)、「ペトロラップ」(PetrWrap)、「ペトヤ」(Petya)、「ノットペトヤ」(NotPetya)などと名付けられているのは、この理由による。ところがこれは、元来のペトヤとは異なり、作成者は、MBRコードを書き換え、復元が不可能になるようにしている。とりわけ攻撃者は、解読キーを与えることができない。解読キーは、生成されるキーに許容されない文字記号が含まれているため、身代金要求画面に打ち込めないのである。

見たところ、このペトヤ亜種のMBR部分は、ペトヤを少しだけ修正したバージョンのようである。まず、Microsoftのディスクチェック・ユーティリティーである「CHKDSK」を装ったメッセージを表示する。そして、この「偽CHKDSK」がスキャンする間にペトヤ亜種がデータの暗号化を行う。

ペトヤ亜種が表示する偽CHKDSKメッセージ

ペトヤ亜種が表示する偽CHKDSKメッセージ

暗号化を終えると、MBRコードは、身代金の支払い方法を指示する次のメッセージを表示する。しかし先述のとおり、この情報は役に立たない。

身代金の支払方法を指示するペトヤ亜種のメッセージ

身代金の支払方法を指示するペトヤ亜種のメッセージ

このコードの借用されたMBR以外の部分は、作成者自身が付け足している。そこには、ディスクを暗号化するMBRを補完するのに使われるファイル暗号が含まれている。このマルウェアは、ファイル暗号化のために「AES-128」および「RSA-2048」という2つのアルゴリズムを使用している。ここで肝心なのは、作成者がファイル解読を不可能にしてしまうミスを犯している、ということだ。特にこのマルウェアは、データの最初の1メガバイトだけを暗号化し、ヘッダやフッタを全く書き足さず、暗号化されたデータを「生のまま」放っておき、暗号化されたファイルをリネームすることもない。そのため、どのファイルが暗号化され、どのファイルが暗号化されていないかを特定するのが難しい。さらに、1メガバイトよりも大きいファイルは、長さ合わせのためのパディング(空白をつくらずに0などで埋めること)を含んでいないので、キーを確かめる方法は全くない。

興味深いことに、標的となるファイル拡張子のリストは、2016年12月の攻撃に使われたキルディスクと同一とは言えないまでも、酷似している。

ペトヤ亜種の標的ファイル拡張子のリスト

ペトヤ亜種の標的ファイル拡張子のリスト

キルディスクは、実行されると、悪名高いエクスプロイト「エターナルブルー」(EternalBlue)を使って、カーネル様式バックドア「ダブルパルサー」(DoublePulsar)を据え付け、拡散しようとする。全く同じ方法が、ランサムウェア「ワナクライ」(Wannacry、別名ワナクリプター(WannaCryptor.D))でも使われていた。ペトヤ亜種はまた、エックスデータの方法も採り入れていた。このランサムウェアは、「ミミカッツ」(Mimikatz)の軽量バージョンをまず認証情報を得るために使い、それからLAN上の他のマシンに対し「SysInternals」の「PsExec」を用いてこれを実行する。以上に加えて、攻撃者たちは、WMI(Windows Management Instrumetation)メカニズムを使う第三の拡散方法も仕込んでいた。

これら3つの方法すべてが、LAN内部でのマルウェア拡散のために使われていた。悪名高いワナクライとは違い、ペトヤ亜種がエターナルブルーを使ったのは、ただローカルネットワークのアドレス空間内部にあるコンピューターに対してだけだった。では、どうして感染がウクライナ以外の国々にまで及んだのか。ESETの調査によれば、他の国々で感染した企業・組織は、ウクライナにある支社や提携先とVPN接続で繋がっていた。

最初の感染経路

ペトヤ亜種もエックスデータも、最初の感染経路として、会社・組織への製品供給・納品のレベルで仕掛けるサプライチェーン攻撃を使った。この2つのマルウェアファミリーの拡散には、ウクライナの「M.E.Doc」という会計ソフトが使われたのだ。

この攻撃が実際にどのように仕掛けられたのかについては、いくつかの可能性がある。会計ソフト「M.E.Doc」には、内部でメッセージや文書をやり取りするシステムが備わっており、攻撃者たちはこれを悪用し、スピア型フィッシングによるメッセージを被害者に送りつけたのかもしれない。このやり方で何か悪意あるものを実行させるにはユーザー側の対応が必須であるため、ソーシャル・エンジニアリングの技術が使われたものと思われる。ところが、エックスデータはそれほど広範囲には拡散しなかったことから、このケースでこうした技術が用いられたという仮定は恐らく誤りだろう。

しかしながら、後続したペトヤ亜種の出現は、攻撃者たちがこの正規ソフトのアップデート・サーバーにアクセスしたことを示唆している。このサーバーへのアクセスを通して、彼らは悪意あるアップデートを紛れ込ませ、ユーザー側の操作を必要としないこのアップデートが、自動的に適用されたのだ。これが、ウクライナで多くのシステムがこの攻撃の被害を受けた理由である。とはいえ、このマルウェアの作成者は、ペトヤ亜種の拡散能力を過小評価していたようだ。

ESETの研究員がこの説を裏付ける証拠を見つけた。「M.E.Doc」のサーバー上にあるFTPディレクトリのひとつの中に「medoc_online.php」という名前で据え付けられた悪意あるPHPバックドアを特定した。このバックドアは、HTTPからアクセス可能だったが、暗号化されており、攻撃者たちはこれを使うためのパスワードを持っていたはずだ。

PHPバックドアを含むFTPディレクトリのリスト

PHPバックドアを含むFTPディレクトリのリスト

この感染経路を使って展開されたマルウェアファミリーはペトヤ亜種とエックスデータだけではない、と考えさせる痕跡がある。そうした悪意あるアップデートは、身を隠しそれと知られることなく、価値のある重要な標的が使用するコンピューター・ネットワークへ入り込んだと考えられる。

この「M.E.Doc」アップデート・サーバーの仕組みを通して展開されたマルウェアの1つが、テレボットグループが使った「VBS backdoor」だ。この攻撃者は、今回もまた金融業界を思わせるドメイン名「bankstat.kiev[.]ua」を用いた。

ペトヤ亜種が出現したその日、このドメインのAレコード(ホスト名からIPv4アドレスを取得するための情報を記録したDNSレコードのひとつ)が「10.0.0.1」へと変更された。

結論

このテレボットグループは、ウクライナに対する破壊的攻撃を行うため、絶えず進化を続けている。悪意あるマクロを含む文書が添付されたスピア型のフィッシングメールに代えて、彼らは、「サプライチェーン攻撃」として知られるより精巧な方法を用いた。攻撃を仕掛けるのに先立ち、テレボットグループは、主に金融業界に狙いを定めた。直近の攻撃はウクライナの実業界に向けられたものだったが、彼らは明らかに、このマルウェアの拡散能力を過小評価していたと思われる。だからこそこのマルウェアは、制御不能になってしまったのである。

感染の疑いを確認するための指標(=危殆化指標、IoC)

ESET検知名
Win32/TeleBot trojan
VBS/Agent.BB trojan
VBS/Agent.BD trojan
VBS/Agent.BE trojan
Win32/PSW.Agent.ODE trojan
Win64/PSW.Agent.K trojan
Python/Filecoder.R trojan
Win32/Filecoder.AESNI.C trojan
Win32/Filecoder.NKH trojan
Win32/Diskcoder.C trojan
Win64/Riskware.Mimikatz application
Win32/RiskWare.Mimikatz application

C&Cサーバー
transfinance.com[.]ua (IP: 130.185.250.171)
bankstat.kiev[.]ua (IP: 82.221.128.27)
www.capital-investing.com[.]ua (IP: 82.221.131.52)

マルウェア作成者によって悪用されたサーバー
api.telegram.org (IP: 149.154.167.200, 149.154.167.197, 149.154.167.198, 149.154.167.199)

VBSバックドア
1557E59985FAAB8EE3630641378D232541A8F6F9
31098779CE95235FED873FF32BB547FFF02AC2F5
CF7B558726527551CDD94D71F7F21E2757ECD109

ミミカッツ
91D955D6AC6264FBD4324DB2202F68D097DEB241
DCF47141069AECF6291746D4CDF10A6482F2EE2B
4CEA7E552C82FA986A8D99F9DF0EA04802C5AB5D
4134AE8F447659B465B294C131842009173A786B
698474A332580464D04162E6A75B89DE030AA768
00141A5F0B269CE182B7C4AC06C10DEA93C91664
271023936A084F52FEC50130755A41CD17D6B3B1
D7FB7927E19E483CD0F58A8AD4277686B2669831
56C03D8E43F50568741704AEE482704A4F5005AD
38E2855E11E353CEDF9A8A4F2F2747F1C5C07FCF
4EAAC7CFBAADE00BB526E6B52C43A45AA13FD82B
F4068E3528D7232CCC016975C89937B3C54AD0D1

テレボット
A4F2FF043693828A46321CCB11C5513F73444E34
5251EDD77D46511100FEF7EBAE10F633C1C5FC53
8D379585E0A9DB4C65450622CED26C108DC694AB

クレドラプター(Win32/PSW.Agent.ODE)
759DCDDDA26CF2CC61628611CF14CFABE4C27423
77C1C31AD4B9EBF5DB77CC8B9FE9782350294D70
EAEDC201D83328AF6A77AF3B1E7C4CAC65C05A88
EE275908790F63AFCD58E6963DC255A54FD7512A
EE9DC32621F52EDC857394E4F509C7D2559DA26B
FC68089D1A7DFB2EB4644576810068F7F451D5AA

Win32/Filecoder.NKH
1C69F2F7DEE471B1369BF2036B94FDC8E4EDA03E

Python/Filecoder.R
AF07AB5950D35424B1ECCC3DD0EEBC05AE7DDB5E

エックスデータ(Win32/Filecoder.AESNI.C)
BDD2ECF290406B8A09EB01016C7658A283C407C3
9C694094BCBEB6E87CD8DD03B80B48AC1041ADC9
D2C8D76B1B97AE4CB57D0D8BE739586F82043DBD

ペトヤ亜種(Win32/Diskcoder.C)
34F917AABA5684FBE56D3C57D48EF2A1AA7CF06D

PHP shell
D297281C2BF03CE2DE2359F0CE68F16317BF0A86
この記事をシェア

業務PCのセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!