【温故知新シリーズ】 脅威のスポットライト:Disttrackマルウェア

By The Cylance Threat Research Team

温故知新シリーズブログでは、新たな知見を広げるために過去に米国でリリースされたブログを翻訳しています。本ブログ記事は、2017年2月21日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。

概要

Disttrackと呼ばれるマルウェアは、システムのマスターブートレコード(MBR)を標的とする破壊的なワームです。Disttrackには、Shamoonという別名もあります。元のペイロードには、この固有の名前をパスに含むプログラミングデータベースファイルを参照するデバッグ情報が組み込まれていたからです。

Disttrackのペイロードは急速に広がり、サウジアラビアの重要なインフラが主な標的となりました。具体的には、Saudi Aramco、サウジアラビア民間航空総局(GACA)、Saudi Electric Companyなどが標的となり、重要なシステムが使用不能な状態に陥りました。Disttrackはこっそりと侵入して、執拗にいつまでも攻撃を繰り返します。というのも、感染したコンピューターにWindowsサービスとして潜んで、ハードコードされた日付になるのを待ち構えて攻撃を仕掛けるからです。つまり、90秒間隔で爆発する時限爆弾を抱えているようなものです。

Disttrackによる攻撃では標的が限定され、特定のキャンペーンに関連する日付が明確に定義されます。これこそが、このマルウェアが破壊的だとされているゆえんです(図1)。私たちはDisttrack内部の仕組みの一部を調べて分析し、このマルウェアがその破壊の目標を達成する方法について、詳細を明らかにしました。

Disttrack_1

図1:Disttrackによるセキュリティ侵害のタイムライン

背景情報

Disttrackの新しい亜種で使用されているコードは、2012年に初めて導入されたオリジナルバージョンと同じ特徴を引き続き備えています。各種バージョンの作成者は、Microsoft Visual C++(バージョン9または10)を使用してコードをコンパイルしました。Disttrackの亜種はA、B、Cに分類されています。Disttrack.AとDisttrack.Bは同じ2/15/2009のコンパイルタイムスタンプを共有していますが、亜種Disttrack.Cは6/6/2011と9/14/2011のコンパイルタイムスタンプを保持しています。Portable Executable(PE)セクションの名前と特性はDisttrackの亜種間で共通です (図2)。

Disttrack_2

図2:Disttrackの亜種間におけるPEセクションの類似性

Disttrackの亜種は、WindowsのネイティブDLLであるNETAPI32.dllを利用しています。NETAPI32.dllは、NetScheduleJobAddなどのネットワーク管理関数をDisttrackに提供します。この関数は、指定された将来の日時におけるジョブの実行依頼に使用されます。Disttrack.BとDisttrack.Cには、他の関数もいくつか組み込まれています。以下にその例を示します。

·       NetUseAdd:ローカルコンピューターとサーバーの間で接続を確立するために使用されます。
·       NetUseDel:共有リソースへの接続を終了するために使用されます。
·       NetUseEnum:ローカルコンピューターとリモートサーバーのリソースとの間の現在の接続をすべて表示するために使用されます。
·       NetUseGetInfo:共有リソースへの接続に関する情報を返すために使用されます。

コードのサイズは時間が経つにしたがって増えています。当初、Disttrack.Aのサイズは約966KBでしたが、その後増え続けています。図3と図4は、時間の経過に伴うコードの変化を示しています。図3はバージョンAとバージョンBのペイロードサイズの増加を示しており、図4はバージョンBとバージョンCのペイロードサイズの増加を示しています。

Disttrack_3

図3:Disttrack.AとDisttrack.Bのコードの違い

Disttrack_4

図4:Disttrack.BとDisttrack.Cのコードの違い

Disttrackの亜種は意図的にモジュール化されています。それらのリソースはDisttrackの亜種のシグネチャ機能であり、ビットマップオブジェクトを装うエンコードされたコンポーネントが含まれています。亜種A、B、Cの主要な識別子はリソース名であり、それぞれの名前は特定のコンポーネントに対応しています (図5)。

Disttrack_5

図5:Disttrackにおけるリソースディレクトリからコンポーネントへの名前のマッピング

Disttrackの仕組み

Disttrackのワーム機能は補助コンポーネントによって有効化されます。このコンポーネントは、MicrosoftのRPCエンドポイントマッパーを利用してネットワーク上にある他のコンピューターを見つけます。そのためには、Disttrackはネットワークアダプタを初期化してソケット接続を確立する必要があります。Disttrackでは、オフセット14002EEDに、ソケット接続の確立とパケットの送信に使用される、ホストのネットワークアダプタに関する情報を収集するコードが含まれています。

Disttrack_6

図6:ネットワークアダプタの初期化

オフセット14002F40では、コードがRestrictAnonymousの設定をチェックし、デフォルト権限またはnullを使用するように設定を変更します (図7)。RestrictAnonymousレジストリの設定は、匿名ユーザーに付与される列挙のレベルを制御します (出典: Technet)。

Disttrack_7

図7:この関数はRestrictAnonymousの設定がNullであることをチェック

Disttrackがこれらのチェックを完了してネットワーク接続を設定すると、コードは、ネットワーク上でリスンしているホストから送信請求応答へRPC-EPMAPパケットを送信します (図8)。

Disttrack_8

図8:他のホストを見つけるためにポート135でネットワークトラフィックをブロードキャストする侵害されたシステム

他のホストへの接続が確立すると、図9で示すように(オフセット3F4743E2とオフセット3F474424)、Disttrackはその侵害されたホストへのピボットを試みます。コードはGetWindowsDirectoryを呼び出して、リモートホスト上のWindowsディレクトリへのパス(通常はC:\Windows)を取得します。

Disttrack_9

図9:別のホストへピボットするDisttrack

次にDisttrackは、NetUseAdd関数を呼び出して、侵害されたホストのネットワーク共有に接続します。この関数呼び出しは、ドロッパーのオフセット140003B87で行われます(図10)。 NetUseAdd関数は、ローカルコンピューターとリモートサーバーの間で接続を確立します。UNCパスが指定されていない場合、この関数は、今後の接続のクライアント認証をリモートホストで行います(出典: MSDN)。

Disttrack_10

図10:ネットワーク共有への接続

盗み出した資格情報を使用して接続が認証されると、Disttrackは侵害されたホストのリモートレジストリに接続し、HKLM\System\CurrentControlSet\Servicesにある、Windowsサービスを定義するレジストリキーを設定してドロッパーを実行します (図11)。

Disttrack_11

図11:Windowsサービスを構成するDisttrack

これらのサービスの一部は、侵害されたコンピューターシステムで特定されています。そのサービス名は以下のとおりです。

·        NtsSrv
·        NtertSrv
·        wow32
·        drdisk

Windowsサービスが作成されると、Disttrackはペイロードのオフセット14000349でStartServiceWを使用してそれらのサービスを実行します(図12)。

Disttrack_12

図12:Windowsサービスの実行

サービスが実行されると、Disttrackはペイロードのオフセット140001B60でそのリソースディレクトリから悪意のあるコンポーネントを抽出し、侵害されたシステムのc:\windows\system32ディレクトリに取り込みます。最後に、このマルウェアは悪意のあるコンポーネントをメモリにロードし、このサイクルが繰り返されます。

Disttrack_13

図13:リソースディレクトリからモジュールを抽出するDisttrack

動的な分析

それでは、感染したシステムで実行されるマルウェアの動的な分析に移りましょう。図14のプロセスID(PID)1136の親プロセスはDisttrackのドロッパーであり、ワイパーペイロードである子プロセス(PID 3128)を生成します。次に、このワイパーコンポーネントはカーネルドライバをスタックにロードします。

Disttrack_15

図14:ワイパーコンポーネントを生成するドロッパー

Disttrack_16

図15:カーネルドライバをスタックにロードするDisttrack

この例では、Vdisk911.sysがロードされています。Vdisk911.sysは、期限が切れてはいるものの、有効な署名のあるEldos RawDiskドライバであり、このドライバによって、マスターブートテーブルへの物理的な直接アクセスが可能になります。このドライバで興味深いのは、2012年の8月に有効期限が切れた一時ライセンスを保持していることです。Disttrackは、システムクロックを変更してこのドライバを使用します(図16)。

Disttrack_17

図16:システムクロックを調整してRawDiskドライバの一時ライセンスを回避

最終的に、カーネルドライバは、Disttrackがマスターブートレコードを上書きして破壊できるようにします。Disttrackの顕著な特徴は、ディスクのこの領域を上書きするためにイメージファイルを使用することです(図17)。

Disttrack_20

図17:MBRの上書きに使用されたJFIFイメージファイル

侵害されたホストドライブのサイズが縮小されていることがわかります (図18)。

Disttrack_21

図18:侵害されたホストでデータが喪失し始める

そして、最後には完全に破壊されます(図19)。

Disttrack_22

図19:マスターブートレコードの完全な破壊

Disttrack_23

図20:Operating System Not Found - 完全に破壊し尽くす

まとめ

Disttrackなどの破壊的なマルウェアは、組織を支配することができます。このマルウェアの導入規模は比較的限られていましたが、特定の組織を標的としており、政治的な思惑も絡んでいそうなことから、メディアの注目を大いに集めてきました。Disttrackの有効性の高さに疑いの余地はなく、組織の収益を損なう危険性を秘めていることは紛れもない事実です。

サイランスのエンドポイント防御製品 CylancePROTECT® をご利用のお客様は、この攻撃からすでに防御されています。 CylancePROTECTをご利用でない場合、AI駆動ソリューションがいかにして未知の新しい脅威を予測・阻止できるかについてぜひ サイランスまでお問い合わせください 。

Disttrack_24図21:   Disttrackのサンプル検出を示すCylancePROTECTコンソール

侵入の痕跡(IOC)

SHA-256 ハッシュ:

ドロッパー

010D4517C81BCDC438CB36FDF612274498D08DB19BBA174462ECBEDE7D9CE6BB

394A7EBAD5DFC13D6C75945A61063470DC3B68F7A207613B79EF000E1990909B

47BB36CD2832A18B5AE951CF5A7D44FBA6D8F5DCA0A372392D40F51D1FE1AC34

補助コンポーネント

61C1C8FC8B268127751AC565ED4ABD6BDAB8D2D0F2FF6074291B2D54B0228842

772CEEDBC2CACF7B16AE967DE310350E42AA47E5CEF19F4423220D41501D86A5

EFD2F4C3FE4E9F2C9AC680A9C670CCA378CEF6B8776F2362ED278317BFB1FCA8

ワイパーコンポーネント

113525C6BEA55FA2A2C6CF406184092D743F9D099535923A12CDD9B9192009C4

128FA5815C6FEE68463B18051C1A1CCDF28C599CE321691686B1EFA4838A2ACD

C7FC1F9C2BED748B50A599EE2FA609EB7C9DDAEB9CD16633BA0D10CF66891D8A

ファイル名:

Disttrack.Bは、ワイパーペイロードに次のファイル名を含むことが確認されています。

·        certutl.exe
·        clean.exe
·        ctrl.exe
·        dfrag.exe
·        dnslookup.exe
·        dvdquery.exe
·        event.exe
·        findfile.exe
·        netinit.exe
·        ntssrvr64.exe
·        ntssrvr32.exe

Disttrack.Cは、ワイパーペイロードに次の「ランダム」ファイル名を含むことが確認されています。

·        caiaw00e.exe
·        sbuvideo.exe
·        caiaw00i.exe
·        olvume.exe
·        usinwb2.exe
·        briaw005.exe
·        fpwwlwf.exe
·        epiaw003.exe
·        briaw002.exe
·        olvsnap.exe
·        dmwaudio.exe
·        briaw006.exe
·        miWApRpl.exe
·        caiaw00b.exe
·        lxiaw003.exe

Tags: