Cisco Japan Blog

注目の脆弱性:Bad Rabbit の分析

1 min read



注:今回の記事では、Talos が調査中の新しい脅威に関して扱っています。そのため記事の情報には不確定な部分もありますが、調査が進むにつれて更新される予定です。

2017 10 26 16:10(東部標準時)更新:Nyetya BadRabbit 間の関係性について情報を追加

2017 10 26 09:20(東部標準時)更新:EternalRomance エクスプロイトに関する情報を追加

2017 年 10 月 25 日更新:暗号化と伝播の方法に関する情報を追加

Talos は 2017 年 10 月 24 日、東ヨーロッパとロシアの組織に広く影響を及ぼすランサムウェア キャンペーンを検出しました。これまでのキャンペーンと同様に、すぐに警戒態勢を敷いて状況を評価し、お客様を保護するために必要な措置を取りました。

こうした大規模なランサムウェア キャンペーンは、ここ数か月にわたり複数発生しています。今回のランサムウェア(BadRabbit)は、Nyetya と同様に、ランサムウェア「Petya」をベースにしていると考えられます。ただしコードの大部分は変更されています。また、最近観察されたサプライチェーン攻撃と比べて、今回のキャンペーンは手口の巧妙さを幾分欠いています。

配信

Talos は、偽の Flash Player の更新プログラムが自動ダウンロードを介して配信されたことで、マルウェアがシステムに侵入したと確信しています。BadRabbit へのリダイレクトは、ロシア、ブルガリア、トルコを拠点としたさまざまなサイトで確認されています。

侵害を受けた Web サイトにアクセスしたユーザは、悪意のあるファイルをホストしていた 1dnscontrol.com にリダイレクトされます。実際の悪意のあるファイルがダウンロードされるまでの間に、POST リクエストが静的 IP アドレス(185.149.120.3)に送られているのが確認されました。このリクエストは、静的パスである「/scholasgoogle」へのポスティングを行っており、セッションのユーザ エージェント、参照元サイト、cookie、ドメイン名を提供していました。POST が行われたのち、ドロッパーが 1dnscontrol.com の 2 つの異なるパス(「/index.php」と「/flash_install.php」)からダウンロードされていました。2 つのパスが使用されていたにもかかわらず、ダウンロードされたファイルは 1 つだけでした。現在の情報では、マルウェアが活動していたのは 1dnscontrol.com のサーバが閉鎖されるまでのおよそ 6 時間だと見られています。最初のダウンロードは 2017年 10 月 24 日 8 時 22 分頃(UTC 時間)に確認されています。

このドロッパー(630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da)は、ユーザが手を貸すかたちで実行され、何らかのエクスプロイトを使ってシステムに直接侵入する方法を取りません。このドロッパーには BadRabbit ランサムウェアが含まれています。一度インストールされれば、SMB コンポーネントを利用して横方向に移動し、さらに感染範囲を拡げます。これには、強度の弱い資格情報の一覧と、(パスワード取得ツールである)mimikatz の特定のバージョンが一緒に使用されていると考えられています。これは Nyetya で使われていた手法と似ています。以下は、Talos が確認したユーザ名とパスワードの組み合わせのリストです。1995 年の有名な映画「Hackers」を模しているpopup_icon点に注目してください。

確認されたパスワード一覧

 

当初の報告とは異なり、現在のところ EternalBlue エクスプロイトが利用されたという証拠はありません。ただし、ネットワーク内で拡散する目的で EternalRomance エクスプロイトが利用されたことは確認済みです。このエクスプロイトは、Microsoft MS17-010 のセキュリティ情報に記載されています。同じエクスプロイト コードは Nyetya のキャンペーンでも利用されました。Talos では調査を継続し、その都度情報を更新していきます。

技術詳細

このマルウェアには、ワーム ペイロードを解凍して実行するドロッパーが含まれています。ペイロードには、リソースに格納されている以下の追加バイナリ(zlib で圧縮)が含まれています。

  • DiskCryptor(2 つのドライバー x86/x64 と 1 クライアント) に関連付けられている正当なバイナリ
  • Nyetya で確認されたサンプルと同様の、mimikatz に似た 2 個のバイナリ (x86/x64) 。いくつかの異なる技術を使ってコンピュータのメモリからユーザ認証情報を取得する一般的なオープン ソース ツール

マルウェアは C:\Windows\ ディレクトリにファイルをドロップし、Nyetya キャンペーンで使用されたものと同じ方法で、Mimikatz に似たバイナリを実行します。ペイロードとスティーラ間の通信は、名前付きパイプによって実行されます。以下はその例です。

C:\WINDOWS\561D.tmp \\.\pipe\{C1F0BF2D-8C17-4550-AF5A-65A22C61739C}

マルウェアは、RunDLL32.exe を使用してマルウェアを実行し、悪意のある操作を続行します。その後、マルウェアは下のスクリーン ショットが示すパラメータを使用してスケジュール タスクを作成します。

暗号化は次の 2 つの手法で実行されます。

  • DiskCryptor(オープンソースのディスク暗号化ソリューション)を悪用したディスク全体の暗号化
  • 個々のファイルの暗号化

標的となった拡張子:.3ds .7z .accdb .ai .asm .asp .aspx .avhd .back .bak .bmp .brw .c .cab .cc .cer .cfg .conf .cpp .crt .cs .ctl .cxx .dbf .der .dib .disk .djvu .doc .docx .dwg .eml .fdb .gz .h .hdd .hpp .hxx .iso .java .jfif .jpe .jpeg .jpg .js .kdbx .key .mail .mdb .msg .nrg .odc .odf .odg .odi .odm .odp .ods .odt .ora .ost .ova .ovf .p12 .p7b .p7c .pdf .pem .pfx .php .pmf .png .ppt .pptx .ps1 .pst .pvi .py .pyc .pyw .qcow .qcow2 .rar .rb .rtf .scm .sln .sql .tar .tib .tif .tiff .vb .vbox .vbs .vcb .vdi .vfd .vhd .vhdx .vmc .vmdk .vmsd .vmtm .vmx .vsdx .vsv .work .xls .xlsx .xml .xvd .zip

マルウェアは上記のタスクをスケジュールに追加するだけでなく、システムを再起動するための別のタスクもスケジュールに追加します。2 つ目のタスクは即時には実行されず、後で実行されるようにスケジュールされます。

これらのスケジュール タスクは、「ゲーム・オブ・スローンズ(Game of Thrones)」で登場するドラゴンの名前を中心に命名されています。

その後、マルウェアはネットワーク上で増殖します。ネットワーク デバイスの検出には Nyetya とまったく同じ手法を使用しており、以下に挙げる Microsoft Windows の正当な機能によって実行します。

  • SVCCTL:リモート サービスの管理
  • SMB2
  • SMB
  • NTLMSSP 認証ブルート フォース
  • WMI

エクスプロイト:

  • EternalRomance

感染したユーザのデスクトップには「DECRYPT」と呼ばれるファイルも作成されます。このファイルが実行されると、以下の身代金要求メッセージが被害者に表示されます。

以下のグラフはある DNS 関連のアクティビティを表しています。このアクティビティは、被害者のシステムにマルウェアをドロップするために使用された偽の Adobe Flash の更新プログラムが配信される際に使われたドメインと関連付けられており、この種の脅威が世界規模でいかに速く蔓延するかがわかります。

このマルウェアは、感染したシステムのハード ドライブのマスター ブート レコード (MBR) を変更して、身代金要求メッセージを表示する目的で、ブート プロセスをマルウェア作成者のコードにリダイレクトします。以下は、システムの再起動後に表示される身代金要求メッセージで、他のランサムウェアの亜種(Petya)で表示される身代金要求メッセージと非常によく似ています。この点は、今年注目された他の攻撃でも確認されました。

以下は、ToR サイトの支払いページです。

EternalRomance のエクスプロイト

Cisco Talosは、BadRabbit のサンプルでエクスプロイトを検出しました。これは、公開済み EternalRomance エクスプロイトの Python スクリプトpopup_iconと非常によく似ています。同じものは Nyetya でもエクスプロイトされています。エクスプロイト コードは BadRabbit と Nyetya の間で異なりますが、ShadowBrokers のリークで公開されている EternalRomance のエクスプロイトをベースにしている部分は同じです。

次のスクリーンショットからは、BadRabbit 上で各種 OS 用に変更されたセキュリティ コンテキスト構造体が構築されていることがわかります。

これらの構造体は NOT 演算により難読化されています。たとえばサンプルの WIN7_32_SESSION_INFO では、元の値が次のようになります。

"\xD5\xFD\xE3\xFF\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE"

デコードされると、バッファの値は次のようになります。

“2a\x02\x1c\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01

WIN7_32_SESSION_INFO 構造体のフィールドと一致するようにエンディアン順と書式を更新した後、値は次のようになります。

0x001C022A, 0x00000001, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001

抽出された値は、前述した公開済み EternalRomance エクスプロイトの FAKE_SECCTX データと一致するものです。

サンプルは次に、Frag プール構造のカーネル リークを含む SMB 応答を解析します。

ここでも、BadRabbit コードは、公開済みエクスプロイトの leak_frag_size() 関数と一致しています。

このサンプルでは、​​別のトランザクション構造のデータを変更しようとした後、NT_Trans 要求の NT ステータ スコードも検証しています。

公開済みのエクスプロイトでも同じ演算が実行されます。

NT_Trans を検証した後、いくつかの MultiplexID 値を使用して複数の NT_TRANSACT_SECONDARY コマンドを送信します。

同じ処理は、公開済みのエクスプロイトの Python スクリプトでも write_data() 関数内で実行されます。最後に、pcap(packet capture)によって捕捉されたトラフィックを調べることで、静的解析の結果を確認できます。

今回のサンプルは、最初に 0x4000 の FileID を取得します。同じ値は NT_Trans 要求の MultiplexID として使用されます。

ここでも、EternalRomance のエクスプロイト(「マッチド ペア」の手口)と類似した型の混同(Type Confusion)攻撃を使用しています。これは次の Python コードと一致します。

こうしたことから、EternalRomance エクスプロイト コードが BadRabbit にも含まれており、カーネルのセッション セキュリティ コンテキストを上書きしてリモート サービスを開始する目的があると強く推定されます。Nyetya では、 DoublePulsar バックドアをインストールする目的で同じコードが使用されていました。EternalRomance では攻撃者が任意のデータをカーネルメモリ空間で読み書きできるため、いずれの用途でも使用できます。

NYETYA と BADRABBIT の共通点

上記のことから、次の事柄が強く推定されます。

  • BadRabbit は Nyetya と同じコア コードベース上に構築されている
  • BadRabbit のビルド ツール チェーンは、Nyetya のものと非常に似ている

Nyetya の DoublePulsar バックドアと BadRabbit の EternalRomance で変更されたコードに存在する検出回避手法は、関連するエクスプロイトについての理解度が同レベルかつ高度であることを示唆しています。また、デプロイ時のネットワーク検出技術や、一般的な Windows カーネルの脆弱性に関する理解度についても同じことが言えます。

共有のコードベースは、BadRabbit ビルド用に修正されています。PSEXEC を活用する代わりに、リモート ファイル配置とリモート Windows サービス管理の機能が直接実装されました。2 度目のエクスポートが dll に追加されたことで、新しい rundll32 プロセス内でリモート実行を再開できるようになっています。これには、親プロセスが明かなサービスとして開始されることを避ける目的などが考えられます。Nyetya における SMB エクスプロイトの実装は、完全に異なる SMB 実装と、異なるエクスプロイト手法に置き換えられています。Petya では、再起動後のドライブ暗号化方法が、オープンソースの DiskCryptor によるドライブ暗号化に置き換えられています。

Nyetya から変更されていない特徴には、悪意のある dll の自己再配置、プロセス/スレッド トークンの操作、ネットワーク ピアの特定、資格/標的情報を管理するためのスレッドセーフなコレクションなどが含まれます。ソースレベルの変更を示す軽微な変更点は、悪意のあるエントリポイントのフロー、変更された埋め込み型 mimikatz とのやりとり、システム初期化、ビットフラグベースの機能制御などに見られます。

これらの共通点を基に BadRabbit と Nyetya の作成者が同一であると断言することはできませんが、その可能性は高いpopup_iconと考えられます。

まとめ

これは、SMB などの二次的な伝播方法を使うことで、ランサムウェアがいかに効率的に配信可能かを示す、もう 1 つの例です。この例での最初の感染ベクトルは巧妙なサプライチェーン攻撃ではありませんでした。代わりに使用されていたのは、侵害を受けた Web サイトを使った自動ダウンロードです。この方法は脅威状況における新しい標準として急速に広まっています。脅威は急速に短時間で広まり、最大限の被害を与えています。金銭的被害と破壊的被害の両方を達成したいときに選ばれるのがランサムウェアです。引き出せるお金と破壊するシステムがある限り、脅威は存在し続けます。

この脅威によって、対処すべきもう一つの重要な領域、つまりユーザ教育の問題も増大します。この攻撃では、ユーザが最初の感染に手を貸す必要があります。もしユーザがフラッシュの更新プログラムをインストールすることで感染プロセスを助長しなければ、被害が地域全体に広まることはなかったでしょう。ユーザの行動によって最初の感染が発生すると、マルウェアはユーザの介入なく、SMB などの既存の手段を使ってネットワークに蔓延します。

カバレッジ

お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。

Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。

CWSWSA の Web スキャンは、悪意のある Web サイトへのアクセスを阻止し、それらの攻撃に使用されたマルウェアを検出します。

NGFWNGIPS、および Meraki MX などのネットワーク セキュリティ アプライアンスにより、この脅威に関する悪意のあるアクティビティを検出できます。

AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を組み込みます。

シスコのセキュア インターネット ゲートウェイ(SIG)である Umbrellapopup_icon は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。

現在のところ、E メールは攻撃ベクトルとして特定されてはいません。今回のマルウェアがネットワーク上でこれらのシステムに転送された場合、ブロックされます。

侵害の兆候

ハッシュ(SHA256)

ドロッパー:

  • 630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da

ペイロード:

  • 8ebc97e05c8e1073bda2efb6f4d00ad7e789260afa2c276f0c72740b838a0a93 C:\Windows\dispci.exe(diskcryptor クライアント)
  • 682ADCB55FE4649F7B22505A54A9DBC454B4090FC2BB84AF7DB5B0908F3B7806 C:\Windows\cscc.dat(x32 diskcryptor drv)
  • 0b2f863f4119dc88a22cc97c0a136c88a0127cb026751303b045f7322a8972f6 C:\Windows\cscc.dat(x64 diskcryptor drv)
  • 579FD8A0385482FB4C789561A30B09F25671E86422F40EF5CCA2036B28F99648 C:\Windows\infpub.dat
  • 2F8c54f9fa8e47596a3beff0031f85360e56840c77f71c6a573ace6f46412035(mimikatz に類似 x86)
  • 301b905eb98d8d6bb559c04bbda26628a942b2c4107c07a02e8f753bdcfe347c(mimikatz-like x64)

スケジュール タスクの名前

  • viserion_
  • rhaegal
  • drogon

ドメイン

配信ドメイン:

  • 1dnscontrol.com

配信パス:

  • /flash_install.php
  • /index.php

仲介サーバ:

  • 149.120.3

参照元サイト:

  • com
  • ru
  • ro
  • ru
  • bg
  • sinematurk.com

秘匿サービス:

  • onion

 

本稿は 2017年10月24日に Talos Grouppopup_icon のブログに投稿された「Threat Spotlight: Follow the Bad Rabbitpopup_icon」の抄訳です。

 

コメントを書く