-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
「攻撃痕跡の確認と検出」と「IOC」を追記いたしました。
ラックの石川です。
2020年12月にLAC WATCHで、Microsoft社のデジタル署名ファイルを悪用する「SigLoader」を悪用した、APT10による新しい攻撃の手口を紹介しました。※1
※1 【緊急レポート】Microsoft社のデジタル署名ファイルを悪用する「SigLoader」による標的型攻撃を確認
私の所属する脅威分析チームでは、2021年に入ってからも、SigLoader(別名:DESLoader, Ecipekac)を利用した攻撃を引き続き観測しています。このSigLoaderを利用した一連の攻撃は、2021年1月にJapan Security Analyst Conference(JSAC)、さらに、2021年3月にKaspersky社のブログで攻撃キャンペーンA41APTとしても報告されており、注意が必要な脅威であることがわかります。
私たちは、Sigloaderを悪用する攻撃の調査を進める中で、SigLoaderとは異なる、Microsoft社のデジタル署名がされたDLLファイルを悪用するマルウェア「Cobalt Strike loader※2」を複数確認しました。今回は、このCobalt Strike loaderと背後に潜む攻撃者グループ「APT41」との関連性について紹介します。
※2 Cobalt Strike loader:多機能なペネトレーションテストツールCobalt Strike のStagerまたはBeaconを悪用したマルウェア。
Cobalt Strike loaderが読み込むファイル
図1は、Cobalt Strike loaderで悪用されるDLLファイル(KBDTAM131.DLL)のデジタル署名をSigcheck※3で確認したものです。赤線枠のように「Signed」と検証されており、署名は正しいものであることがわかります。
※3 Sigcheck - Windows Sysinternals | Microsoft Docs

このKBDTAM131.DLLは、「C:\WINDOWS\system32」に含まれるMicrosoft社のUXLibRes.dllを改ざんしたDLLファイルであり、Microsoft社のデジタル署名後に正規のUXLibRes.dllには存在しないデータが含まれていることが確認できます(図2の赤線枠)。このデータが、Cobalt Strike loaderによって読み込まれた後、Cobalt Strike Beaconとして実行されます。

Cobalt Strike loaderの特徴
Cobalt Strike loaderは、攻撃者が設定した特定のWindowsサービスまたはIKE and AuthIP IPsec Keying Modules(IKEEXT)サービスを悪用※4して実行されるように設計されています。サービス起動時にCobalt Strike loaderと同じディレクトリに配置されたMicrosoft社のデジタル署名されたDLLファイルを読み込み、埋め込まれたペイロードを復号して実行します。読み込むDLLのファイル名やオフセット、ペイロード(Cobalt Strike Beacon)などはストリーム暗号のChacha20※5で暗号化されています。
※4 IKEEXTサービスが、実行時に既定では存在しない「C:\Windows\System32\wlbsctrl.dll」を読み込むため、DLLハイジャックが可能であり、この手口を悪用しています。
※5 rfc7539
また、マルウェアで利用される一部のWindows APIもChacha20で暗号化されています。図3は、読み込むDLLのファイル名やオフセットなどを復号する関数の一部抜粋です。図4は、復号時に利用するハードコードされたChacha20のキー(赤線枠)、nonce(橙線枠)、暗号化された文字列(青線枠)や暗号化された文字列長(緑線枠)を示しています。


暗号化された文字列を復号すると、図5の下の画像に示すように、「KBDTAM131.DLL」が読み込むファイルであることが確認できます。また、図5の赤線枠の値(0x2E10)は、データの読み込み開始オフセット(ペイロードのスタート位置)、青線枠の値は、KBDTAM131.DLLに含まれた暗号化されたペイロード(Cobalt Strike Beacon)を復号する際に利用するChacha20のnonceです。


Cobalt Strike loaderは、KBDTAM131.DLLのオフセット0x2E10から暗号化されたペイロードを読み込み、Chacha20を利用して復号し、メモリ領域に展開後、実行します。図6は、KBDTAM131.DLLに含まれた暗号化されたペイロードと復号したペイロードを比較したものです。復号する際に利用するChacha20のキーは、図4の赤線枠であり、nonceは、図5の青線枠です。


復号されたペイロード
図7に示すように、復号されたペイロードは、Cobalt Strike Beaconです。設定情報を確認すると、Cobalt Strike 4.xのリーク/クラックされたバージョン(watermark:0x12345678)で、HTTPS(0x08)プロトコルを利用して、443/TCPでTeam Server(C2サーバ)と通信するように設定されていました。※6(図8)
※6 他のペイロードでは、HTTPとDNSプロトコルで通信を行うように設定されているものも確認しています。


Microsoft社のデジタル署名ファイルを悪用するCobalt Strike loaderとAPT41との関連性
私たちは、Cobalt Strike loaderを調べる中で、FireEye社が2020年3月に報告するAPT41のレポート※7で紹介する痕跡と類似するものを確認しました。以降では、類似する痕跡を2つ紹介します。「FireEye サンプル」が、FireEye社が公開する痕跡で、「NEWサンプル」がMicrosoft社のデジタル署名されたDLLファイルを悪用するCobalt Strike loaderの攻撃で利用された痕跡です。
※7 This Is Not a Test: APT41 Initiates Global Intrusion Campaign Using Multiple Exploits
1. インストールスクリプト
ファイル名 | ハッシュ値(MD5) | |
---|---|---|
FireEyeサンプル | install.bat | 7966c2c546b71e800397a67f942858d0 |
NEWサンプル | install.bat | fef94f9977f6c9da0d8e006a5fefc5c1 |
図9に示すように、バッチファイルの内容を比較すると、サービス登録するDLLファイルは異なりますが、他の要素は、ほぼ同一であることが確認できます。なお、NEWサンプルに含まれる2つのDLLは、前項で紹介した、Cobalt Strike loader(AacSvc.dll)とMicrosoft社のデジタル署名ファイルを持つ暗号化されたペイロード(KBDTAM131.DLL)です。


2. Cobalt Strike loaderのWindows APIアドレス解決とエクスポートされるDLLファイル
ファイル名 | ハッシュ値(MD5) | |
---|---|---|
FireEyeサンプル | storesyncsvc.dll | 5909983db4d9023e4098e56361c96a6f |
NEWサンプル | AacSvc.dll | 1e750c5cf5c68443b17c15f4aac4d794 |
図10に示すように、コードの内容を比較すると、呼び出されている特定のWindows APIは異なりますが、Windows APIのアドレス解決を呼び出すコードに類似性が見られます。また、エクスポートされるDLLのファイル名も命名規則が似ている※8ことも確認できます。
※8 Ecoco.dllといった命名規則が類似しないCobalt Strike loaderも一部確認しています。




このような類似点を踏まえると、Microsoft社のデジタル署名されたDLLファイルを悪用するCobalt Strike loaderもAPT41が利用したものである可能性が高いと考えます。
APT41は、少なくとも2020年3月頃からCobalt Strike loaderを利用しており、攻撃を仕掛けるごとに機能を追加または変更し、攻撃キャンペーン毎に使い分けて利用しています。上記2つのサンプルの亜種以外にも、ペイロードを読み込まずDLL内にシェルコードが内包されるものも確認しています。なお、Positive Technologies社のブログ※9でAPT41のCobalt Strike loaderに関連する痕跡情報がいくつか公開されています。
※9 Higaisa or Winnti? APT41 backdoors, old and new
攻撃キャンペーンに利用するインフラ
ここでは、攻撃者がC2サーバまたはツール置き場として悪用していた通信先に目を向けてみます。図12は、Microsoft社のデジタル署名されたDLLファイルを悪用するCobalt Strike loaderやそのペイロードが配置されていた通信先(119.45.238[.]189)を元に、Maltegoで関連する要素を一部マッピングしたものです。赤線枠で示す、Cobalt Strike loaderに注目してみると、ハイライトするものとは別に、青線枠で示す、デジタル署名ファイルが付与されていない「systems.log」ファイルをペイロードとして読み込む別のCobalt Strike loader(tools.exe)が確認できます。
Passive DNSなどの情報からツール置き場として悪用されていた時期を確認してみると、「119.45.238[.]189」が、2020年11月下旬、一方で「192.109.98[.]187」が2020年10月下旬に使われており、攻撃者は、攻撃キャンペーンによって、Cobalt Strike loaderを使い分けていることが窺えます。
次に、左上にマッピングされた緑枠線のLNKファイル「Top-up Scheme_Member List as of 20201022v1_for Nomination.pdf.lnk」に着目してみます。このファイルは、図13に示すように、Cobalt Strike Becon(const.exe)のダウンローダであり、初期侵入で利用されたと考えられます。また、ダウンロードされたCobalt Strike Beconの通信先は、「www.microsofthelp.dns1[.]us」であり、正引きしたIPアドレスは、「192.109.98[.]187」とここでも関連性が見えます。図14は、LNKファイル実行後に表示されるデコイファイルの内容です。



攻撃痕跡の確認と検出
今回紹介した、Cobalt Strike loaderは、Windowsサービスを利用して実行されるため、レジストリキーやイベントログにいくつか関連する痕跡が残る可能性が高いです。以下にその痕跡を確認する方法を一例として紹介します。また、最後にCobalt Strike loaderが悪用するMicrosoft社のデジタル署名されたDLLファイルを適切に署名検証するための、レジストリ設定を紹介します。
1. Autoruns※10による自動起動プログラムの確認
Autorunsを利用して、自動起動アプリケーションやレジストリ、ファイルを監査し、不審なプログラムが登録されていないか確認します。図15に示す通り、Cobalt Strike loaderがサービス登録された場合、コード署名を確認するオプションを有効にしたAutorunsでは、ピンク色にハイライトされており、AacSvc.dllが不正ファイルであることが確認できます。ただし、IKEEXTサービスを悪用する手口の場合は、IKEEXTサービスはOSに元から存在する正規サービスであり、このサービスが不正なwlbsctrl.dllを読み込む事はAutoruns上から確認できないため(図16)、イベントログ(システム)で不審なサービスの停止および開始がないか等を確認する必要があります。
※10 Autoruns for Windows - Windows Sysinternals | Microsoft Docs


2. イベントログの確認
Cobalt Strike Loaderに関連する攻撃を受けた場合、サービスのインストールが発生する可能性があることから、イベントログ(システム)に、イベントID 7045でサービスのインストールが記録されている場合があります。システムログを確認し、不審なWindowsサービスのインストールが行われていないか確認します。また、イベントID 7036において、IKEEXTサービスが意図せず、停止および開始されていないか確認します。※11なお、OSによっては、既定ではIKEEXTサービスは手動実行となっており、サービスを開始することで、イベントID 7040が記録されるため、このタイプのイベントログが意図しないものでないか確認します。
※11 OS種別によっては、イベントID 7036が記録されない場合があります。



3. FalconNestのLive Investigatorの利用
弊社が提供する無料調査ツール「FalconNest」※12のLive Investigatorを利用することで、イベントログの不審点または不審な自動実行ファイルが登録されていないか確認することが可能です。
※12 無料調査ツール「FalconNest(ファルコンネスト)」
4. Yaraを利用した検出
Microsoft社のデジタル署名されたDLLファイルを悪用するCobalt Strike loaderのYaraルールです。この検知ルールを利用することで、Cobalt Strike loaderを検出することが可能です。なお、本検知ルールの利用により過検出が発生する可能性があるため、本番システムへ導入する場合は、事前にテスト、チューニング頂くことをお勧めします。
rule apt41_ms_codesign_cobalt_strike_loader { meta: author = "LAC Co., Ltd." strings: $str1 = "sysinfotool" fullword wide $str2 = "Microsoft system info" fullword wide $str3 = "ComSpec" fullword wide $str4 = ">> NUL" fullword wide $str5 = "system" fullword ascii condition: uint16(0) == 0x5A4D and (all of ($str*)) and filesize < 100KB }
5. デジタル署名されたファイルの署名検証
Microsoft社のセキュリティアドバイザリ(2915720)※13を参考に、Windows Authenticode 署名検証の機能を有効化するためのレジストリを追加することで、SigLoaderやCobalt Strike loaderが悪用するデジタル署名されたファイルを適切に検証することが可能です(図19)。
ただし、通常のWindows環境では、この機能は既定で無効になっており、当該アドバイザリを参考に、ユーザが手動で有効にする必要があります。また、Microsoft社のブログ※14によれば、この署名検証機能について、「既定で有効にした場合の既存のソフトウェアへの影響が大きい」と報告しているため、有効化する前にシステム環境における影響の有無をご確認頂くことを推奨します。

※13 Microsoft Security Advisory 2915720 | Microsoft Docs
※14 Windows Authenticode 署名検証の変更は 6 月に自動更新で有効化 - Microsoft Security Response Center
まとめ
今回は、Microsoft社のデジタル署名されたDLLファイルを悪用するCobalt Strike loaderについて紹介しました。Microsoft社のデジタル署名されたファイルを悪用する攻撃は、APT10が利用する「SigLoader」に次いで2例目の確認になります。コンパイル日時が最も古い2つのマルウェアを比較してみると、Cobalt Strike loaderは、2020年10月下旬、SigLoaderは、2020年10月上旬と近い日時で作成されていることが確認できました。このようなことから、攻撃者グループは、グループ間において、技術情報や開発したマルウェア、ノウハウ等を共有している可能性が高いと考えます。
昨今、サイバー攻撃の起点は、添付ファイルや本文にリンクを含むスピアフィッシングメールよりも、SSL-VPN製品、ルータ・ゲートウェイ製品などの脆弱性を悪用するケースの割合が高くなっています。攻撃者は、コロナ禍でインターネットに露出したネットワーク機器の脆弱な部分を見逃さず悪用してきています。インターネットに直結しているネットワーク機器は、常にサイバー攻撃にさらされているため注意が必要であり、これら機器の脆弱性を悪用されないためにも、日々の脆弱性情報の管理と修正パッチの適用や緩和策の適用などの早急な対応が求められます。
ラックの脅威分析チームでは、今後もこのCobalt Strike loaderやAPT41について、継続的に調査し、広く情報を提供していきますので、ご活用いただければ幸いです。
IOC(Indicator Of Compromised)
Cobalt Strike Loaderハッシュ値(MD5)
1e750c5cf5c68443b17c15f4aac4d794
083eae61806f710ba2fa8fb368f7e998
420c09296ae836a853c5968a2a554f96
955f71062d06ebca0c9852ae3ec2965b
6e17ee7ca6fddf28a47cc07d5524ce5c
f5158addf976243ffc19449e74c4bbad
79175a12c63c4f4980f09d9dd41ce64a
ペイロード(MD5)
89c6ccd4785f58b7cb253045ef662476
2f2e724dd7d726d34b3f2cfad92e6f9a
af9959184a17de5dcd717882b2d58103
03f7b36b33e30023d34adf80165b7dbb
インストールスクリプト(MD5)
fef94f9977f6c9da0d8e006a5fefc5c1
通信先
www.corpsolution[.]net
www.mircoupdate.https443[.]net
ns1.mssetting[.]com
ns.cloud01[.]tk
119.45.238[.]189
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR