Cisco Japan Blog

MeDoc コネクション

1 min read



投稿者David Maynorpopup_iconAleksandar NikolicMatt Olneypopup_iconYves Younanpopup_icon

まとめ

Nyetya 攻撃は、ウクライナ国内の多数の組織と、ウクライナに拠点を持つ多国籍企業を侵害した、破壊を目的とするランサムウェアの亜種でした。Talos はシスコ アドバンスド サービスのインシデント対応チームと連携して、攻撃の重要な側面をいくつか特定しました。この調査では、M.E.Doc ソフトウェアにサプライチェーンに特化した攻撃を発見しました。この攻撃は、ランサムウェアに見せかけ、破壊を目的としたペイロードを配信するものです。攻撃者は盗んだクレデンシャルを使用して M.E.Doc の更新サーバを操作し、攻撃者が制御するサーバにプロキシ接続させます。調査結果に基づき、Talos はこの攻撃が破壊そのものを目的としていたと考えています。攻撃の影響は広範囲に及びました。ウクライナのサイバー警察は、ウクライナ国内だけでも 2000 社を超える企業が侵害されたと報告しています。

 

詳細

2017 年 6 月 27 日に、Talos はウクライナのインテリジェンス パートナーからメッセージを受け取りました。大規模なランサムウェア攻撃が仕掛けられているということで、Talos に支援を求める内容でした。組織化された攻撃者は、ウクライナで最も普及している会計ソフトウェアのユーザに任意のコードを配信する方法を実現していました。ユーザの中には、ウクライナでビジネスを展開する多国籍企業もありました。攻撃者は、この方法で重要なファイルとハード ドライブを暗号化しており、ソフトウェアを復号化する方法はありませんでした。

2015 年の終わりに起きた BlackEnergy 攻撃以来、Talos はウクライナの公的機関や民間組織と連携して、ウクライナで発生する攻撃に対処してきました。Talos は今年もすでに一度、破壊を目的とした攻撃にさらされた組織を支援しました。興味深いことは、その攻撃に使用されたのが、以前の BlackEnergy マルウェアに非常に似たワイパーだったということです。BlackEnergy マルウェアが Talos の Advanced Malware Protection(AMP)製品によってブロックされると、攻撃者は一度撤退し、その後ランサムウェアの亜種を使用して、組織の活動を破壊することを試みたのです。この経緯が念頭にあったため、Talos では、今回の攻撃がただのランサムウェア攻撃ではないという懸念が当初からありました。

当初の攻撃のほとんどがウクライナで発生している一方で、早い段階で明らかになったのは、このマルウェアが、ウクライナと直接的な関係がない組織を侵害していることでした。攻撃の規模が大きいことから、Talos は TaCERS(Talos Critical Event Response System)という社内対応管理システムを立ち上げ、調査と対応のプロセスを開始しました。TaCERS の活動は、インテリジェンス、テレメトリ分析、リバース エンジニアリング、通信および検出に関する調査に分けられます。この脅威に対抗するため、Talos の研究者および世界中のエンジニアが協力しあいました。

エンドポイントのテレメトリを調べた結果、この脅威の中心にあったのは、「M.E.Doc」というウクライナの会計ソフトウェア パッケージであることが明らかになりました。WannaCry と同様に、電子メール ベクトルも報告されました。これは、早い段階で感染した一部のマシンで、マルウェアの電子メール ベクトルを示す Lokibot にも同時に感染していたためだと考えられます。入念に調査した結果、Talos は Nyetya マルウェアがすべて M.E.Doc の更新システムを通じてインストールされたと判断しました。

M.E.Doc は、Intellect Service というウクライナの企業が開発した、広く導入されている会計用パッケージであり、ウクライナの納税システムとの連携に使用されています。この時点で Talos は M.E.Doc に直接連絡し、支援を申し出ました。

M.E.Doc はすぐにこの支援を受け入れました。シスコはこの事件に対するグローバルな対応の一環として、Advanced Services グループからインシデント対応の専門家を 2 名派遣しました。2 人は 6 月 29 日の夜にウクライナに到着し、さらにイギリスでもインシデント対応の専門家がこの調査をサポートしました。M.E.Doc は非常に協力的で、同社のエンジニアや管理者との面会のために調節を行い、調査チームにシステムを隠さずに見せ、ログ ファイルやコードへのアクセスも許可してくれました。またレポートのために、調査結果を開示することにも同意したのです。

シスコのインシデント対応調査では、世界中どこであっても、Talos の専任の人員がインシデント対応チームに協力し、インテリジェンス分析、リバース エンジニアリングのエスカレーション、テレメトリ分析などを調整します。2 つのチームは一貫して連携し、その経験が調査にフルに活かされました。

調査の早い段階で、http://www.me-doc[.]com[.]ua/TESTUpdate/medoc_online.php で 1 つの webshell が発見されました。ファイルのタイムスタンプは 2017 年 5 月 31 日の 14:45 でした。調査によれば、その webshell はオープン ソースの PHP webshell PAS をわずかに修正したバージョンでした。この webshell は暗号化されたフォームで保存され、復号するには HTTP POST 変数で設定されたパスフレーズが必要になります。このシェルを復号すると、フル機能の PAS webshell が見つかります。

インシデント対応チームがログと追加のフォレンジック データを抽出した後、それらは Talos にアップロードされました。ここから 24 時間のサイクルが開始されました。まず午前 10 時(米国東部夏時間。ウクライナは夜)に、シスコのインシデント対応チームが調査結果と新たなデータを Talos に報告しました。次に午前 3 時(ウクライナでは始業時)に、Talos が夜間の調査結果をシスコのインシデント対応チームに報告しました。

すぐに問題の痕跡が発見されました。7 月 1 日の報告で、Talos はログの中に重要な証拠を発見しました。

8:57:46 AM usc-cert sshd[23183]: subsystem request for sftp
8:59:09 AM usc-cert su: BAD SU to root on /dev/pts/0
8:59:14 AM usc-cert su: to root on /dev/pts/0
9:09:20 AM [emerg] 23319#0: unknown directive “” in /usr/local/etc/nginx/nginx.conf:3
9:11:59 AM [emerg] 23376#0: location “/” is outside location “\.(ver|txt|exe|upd|rtf|cmnt)$” in /usr/local/etc/nginx/nginx.conf:136

ある未知の攻撃者が、M.E.Doc の 1 人の管理者のクレデンシャルを窃取しました。サーバにログインし、ルート権限を取得し、NGINX Web サーバの設定ファイルを変更し始めました。その後上書きされたため nginx.conf ファイルは回復できませんでしたが、他のログ ファイルによって、変更された内容を把握することができました。見つかったのは、次のような膨大なエラーです。

[error] 23401#0: *374685644 upstream timed out (60: Operation timed out) while connecting to upstream, client: <REDACTED>, server: upd.me-doc.com.ua, request: “GET /last.ver?rnd=1b2eb092215b49f5b1d691b5c38e3a74 HTTP/1.1”, upstream: “http://176.31.182[.]167:80/last.ver?rnd=1b2eb092215b49f5b1d691b5c38e3a74”, host: “upd.me-doc.com.ua”

upd.me-doc.com.ua を宛先とするトラフィックが更新サーバを通じてプロキシされ、IP アドレスが 176.31.182.167 である OVH IP スペース内のホストに送信されるように、NGINX サーバが再設定されています。その後の調査により、このサーバは thcservers.com というリセラーが運用していて、同日の午後 7:46(UTC)に消去されていたことがわかりました。

サーバでの最初と最後のアップストリーム エラー メッセージの時間と、Talos 内のエンドポイント テレメトリを比較すると、このイベントのアクティブな感染フェーズの開始と終了と一致することがわかります。最初のログ メッセージは 9:11:59 UTC にあり、最後のメッセージは 12:31:12 UTC にありました。Talos のテレメトリでは、この時間枠の外で新たに感染した組織は見つかりません。

その他に、このイベントが午後 12:30(UTC)ごろに完了した証拠が見つかりました。サーバを分析した時点では、nginx.conf ファイルのタイムスタンプは 6 月 27 日の午後 12:33(UTC)でした。攻撃者は、この時点で NGINX の設定を元の状態に戻しています。もう 1 つ確認できた痕跡は、午後 2:11:07(UTC)にシステムとの接続を切断したラトビアの IP アドレスです。

Received disconnect from 159.148.186.214: 11: FlowSshClientSession: disconnected on user’s request

M.E.Doc は、OVH サーバもラトビアの IP アドレスも、M.E.Doc とは何の関係もないことを確認しています。

Talos はこの時点で、問題の攻撃者が、侵害されたクレデンシャルを通じて M.E.Doc のネットワークの大半、そしてシステムの多くにアクセスしたことを把握しました。疑問が残るのは、アップグレード サーバを制御して攻撃者が何をしていたのか、  また悪意のあるソフトウェアをどのように配信していたのかという点です。

その時点ではわかりませんでしたが、今は M.E.Doc ソフトウェアに挿入されていたバックドアに関する ESET の調査popup_iconを確認できます。悪意のある攻撃者がデータを収集し、任意のコードをダウンロードして実行できるように、ZvitPublishedObjects.dll 内の .net コードが複数回変更されています。

日付 M.E.Doc の更新バージョン
2017/04/14 01.175-10.01.176
2017/5/15 01.180-10.01.181
2017/06/22 01.188-10.01.189

M.E.Doc から提供されたログをさらに遡ると、6 月 22 日にも同じ「アップストリーム」活動が見られます。残念ながら 5 月や 4 月のログは確認できませんが、その時期にも同様の動きがあったことが推測できます。

タイムライン

ZvitPublishedObjects.dll バックドア分析

ZvitPublishedObjects.dll の ZvitPublishedObjects.Server.UpdaterUtils.IsNewUpdate 機能にバックドアが追加されました。

右側を見ると、左側の 278 行と 279 行の間にすべての組織の EDRPOU と名前を取得するコードが追加されていることがわかります。次に新しい MeCom オブジェクトとそのスレッドが作成され、2 分ごとに http://upd.me-doc[.]com.ua/last.ver?rnd=<GUID> に接続するようになっています。また、応答はすべてこの URL に送信されます。

プロキシが設定されると、右側の 288 行に MeCom オブジェクトが作成されたときに、プロキシのホスト、ポート、ユーザ名、パスワードが取得されます。

次に、アプリケーションのデータベース内のすべての組織について、SMTP ホスト、ユーザ名、パスワード、電子メール アドレスが取得されます。

また、以前に収集されたプロキシ情報が、レジストリ キー HKCU\SOFTWARE\WC に書き込まれます。プロキシのユーザ名とパスワードは「Cred」サブキーに、完全なプロキシ情報は「Prx」に保存されます。

IsNewUpdate の 294 行では meCom.CreateMeainThread を呼び出しています。このコードでは、「MainAction」を実行するスレッドが作成されます。このスレッドは、要求 URL(http://upd.me-doc[.]com.ua/last.ver?rnd=<GUID>)に対して連続的にクエリを行ってコマンドを探します。さらに実行するコマンドごとに新しいスレッドが開始され、スレッドの完了には最大 10 分の時間が与えられます。スレッドの結果は応答 URL に返されます。この例では要求 URL である http://upd.me-doc[.]com.ua/last.ver?rnd=<GUID> と同じです。

GetCommandsAndPeriod 機能では、Web 要求からコマンドが取得されます。

要求が送信されると、この機能はプログラムを実行しているユーザ名と EDRPOU をクッキーで渡します。応答からは、暗号化の初期化ベクトルとして最初の 8 バイトが読み取られます。残りのデータは、24 文字のキー:\x00 ~ \x17(0 ~ 23 の文字)を使用して、TripleDes によって暗号化されます。実行する必要があるコマンドが、復号、圧縮解除、デシリアライズされます。また、次回コマンドを要求するまでの時間に関する情報も取得されます(オブジェクトが作成された時点では 2 分に設定されています)。

SendAnswer は、最大 2048 バイトの複数の Web 要求を送信し、実行されたコマンドの結果はクッキーに保存されます。このデータは、ランダムな 8 バイト IV と 24 文字のキー 0 ~ 23 を使用して、受信したコマンドと同じ方法で暗号化されます。

暗号化と復号化の機能には次のものがあります。

 

 

最後に、Worker オブジェクト(MainFunction の 372 行)がコマンドを実行します。Worker は合計で 6 つのコマンドを実行できます。

これが Nyetya マルウェアの配信に使用されたメカニズムだと思われます。M.E.Doc マシンが最初のサンプルを実行したときに得られたエンドポイント テレメトリに、コマンドライン引数が完全に一致しています。

コマンドの詳細

これからの取り組み

これまでにわかったことをまとめてみます。Talos が過去に確認したところでは、ある攻撃者が BlackEnergy ワイパー マルウェアでウクライナの公共機関を攻撃し、それがブロックされたため、ワイパーの代わりにランサムウェアの亜種を使用しました。また Talos は、以前のブログ記事popup_iconに「この攻撃の状況から見て、Talos では、Nyetya の背後にいる攻撃者が、経済的な動機ではなく破壊そのものが目的で攻撃していたと判断しています」と書きました。現在では M.E.Doc がインストール ベクトルであったことが確認できることから、この攻撃のターゲットが、ウクライナと、ウクライナとのビジネスを行っている企業であったと判断できます。

Talos の脅威インテリジェンスおよび脅威阻止チームが関心を持っているのは、今回の攻撃によって、攻撃者が能力をかなり使い果たしているのではないかということです。攻撃者は M.E.Doc ソフトウェアのバックドアと、更新サーバのサーバ設定を操作する能力を諦めています。

つまりこの攻撃者は、M.E.Doc を会計ソフトウェアとして使用しているウクライナの 80 % の企業、さらに M.E.Doc を使用している多国籍企業に任意コードを配信する能力を放棄したということです。これは攻撃能力を大きく失うことになります。脅威インテリジェンスおよび脅威阻止チームは、攻撃者にとって優先度の高いターゲット ネットワーク内で同じような制御を簡単におこなうことができると自信を持たない限り、攻撃者がこの能力を手放すことはないと考えています。

Talos はこれに基づいて、ウクライナに関わる組織が、M.E.Doc のようなソフトウェアとウクライナ国内のシステムを特に注意して扱うようにアドバイスしています。高度な攻撃の対象になっていることが明らかになっているためです。その一環として、別個のネットワーク アーキテクチャをそのような組織に提供することを推奨しています。リスクの高いシステムやネットワークに対するモニタリングとハンティングを強化して、事業活動に絶対不可欠なアクセス レベルだけを許可するようにする必要があります。お客様はリスクの高いシステムでのパッチ適用とアップグレードを優先的に行い、システムの保護に関する Microsoft のガイダンスpopup_iconに従って、システムを Windows 10 に移行すべきです。ネットワーク セキュリティのベースライン化に関するガイダンスもシスコから提供されています。国際組織とその組織のウクライナ支部間の接続にネットワーク IPS を導入し、ウクライナ国内のすべてのシステムにただちにエンドポイント保護を適用すべきです。

Talos ではこの攻撃をサプライチェーン カテゴリに分類しています。攻撃者は組織を直接ターゲットとするのではなく、信頼されているハードウェア ベンダーとソフトウェア ベンダーを侵害し、侵害されたアセットを優先度の高い環境に配信します。高度な攻撃者は、悪意のあるこのようなタイプの能力を特に求めているはずです。規模や地域に関わらず、どのベンダーも警戒を強めなければなりません。シスコがどのように製品の完全性を保証しているかをご確認くださいpopup_icon

Nyetya インシデントの詳細については、以前のブログ記事をご覧ください

侵入の痕跡

SHA256
バックドアが組み込まれた M.E.Doc ZVITPUBLISHEDOBJECTS.DLL ファイル:

  • f9d6fe8bd8aca6528dec7eaa9f1aafbecde15fd61668182f2ba8a7fc2b9a6740
  • d462966166450416d6addd3bfdf48590f8440dd80fc571a389023b7c860ca3ac
  • 2fd2863d711a1f18eeee5c7c82f2349c5d4e00465de9789da837fcdca4d00277

Nyetya マルウェア:

  • 027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745
  • 02ef73bd2458627ed7b397ec26ee2de2e92c71a0e7588f78734761d8edbdcd9f
  • eae9771e2eeb7ea3c6059485da39e77b8c0c369232f01334954fbac1c186c998

悪意のある IP アドレス:

  • 31.182[.]167
  • 148.186[.]214

AMP カバレッジ

  • Ransomware.Nyetya.Talos
  • F9D6FE8BD8.Backdoor.Ransomware.Nyetya.Talos
  • D462966166.Backdoor.Ransomware.Nyetya.Talos
  • 2FD2863D71.Backdoor.Ransomware.Nyetya.Talos
  • 02EF73BD24-95.SBX.TG
  • GenericKD:Petya.20h1.1201

 

本稿は 2017年7月5日に Talos Grouppopup_icon のブログに投稿された「The MeDoc Connectionpopup_icon」の抄訳です。

 

コメントを書く