Microsoft社のデジタル署名を悪用した「Cobalt Strike loader」 による標的型攻撃〜攻撃者グループAPT41 | LAC WATCH By 石川 芳浩 Published: 2021-05-27 · Archived: 2026-04-05 21:08:58 UTC 更新のお知らせ 「攻撃痕跡の確認と検出」と「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を悪 用したマルウェア。 目次 1. Cobalt Strike loaderが読み込むファイル 2. Cobalt Strike loaderの特徴 3. 復号されたペイロード 4. Microsoft社のデジタル署名ファイルを悪用するCobalt Strike loaderとAPT41との関連性 5. 攻撃キャンペーンに利用するインフラ 6. 攻撃痕跡の確認と検出 7. まとめ 8. IOC(Indicator Of Compromised) Cobalt Strike loaderが読み込むファイル https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 1 of 16 図1は、Cobalt Strike loaderで悪用されるDLLファイル(KBDTAM131.DLL)のデジタル署名を Sigcheck※3で確認したものです。赤線枠のように「Signed」と検証されており、署名は正しいものであ ることがわかります。 ※3 Sigcheck - Windows Sysinternals | Microsoft Docs 図1 Microsoft社のデジタル署名を持つDLLファイルの署名の有効性確認 このKBDTAM131.DLLは、「C:\WINDOWS\system32」に含まれるMicrosoft社のUXLibRes.dllを改ざんし たDLLファイルであり、Microsoft社のデジタル署名後に正規のUXLibRes.dllには存在しないデータが含 まれていることが確認できます(図2の赤線枠)。このデータが、Cobalt Strike loaderによって読み込ま れた後、Cobalt Strike Beaconとして実行されます。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 2 of 16 図2 Microsoft社のデジタル署名ファイル(KBDTAM131.DLL)に含まれたペイロード(一 部抜粋) 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(橙線枠)、暗号化された文字列(青線枠)や暗号 化された文字列長(緑線枠)を示しています。 図3 読み込むDLLのファイル名などを復号する関数(一部抜粋) https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 3 of 16 図4 ハードコードされている暗号化キーや暗号化された文字列(一部抜粋) 暗号化された文字列を復号すると、図5の下の画像に示すように、「KBDTAM131.DLL」が読み込むフ ァイルであることが確認できます。また、図5の赤線枠の値(0x2E10)は、データの読み込み開始オフ セット(ペイロードのスタート位置)、青線枠の値は、KBDTAM131.DLLに含まれた暗号化されたペ イロード(Cobalt Strike Beacon)を復号する際に利用するChacha20のnonceです。 図5 暗号化された文字列の比較(上:復号前/下:復号後) Cobalt Strike loaderは、KBDTAM131.DLLのオフセット0x2E10から暗号化されたペイロードを読み込 み、Chacha20を利用して復号し、メモリ領域に展開後、実行します。図6は、KBDTAM131.DLLに含ま れた暗号化されたペイロードと復号したペイロードを比較したものです。復号する際に利用する Chacha20のキーは、図4の赤線枠であり、nonceは、図5の青線枠です。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 4 of 16 図6 暗号化されたペイロードの比較(上:復号前/下:復号後)(一部抜粋) 復号されたペイロード 図7に示すように、復号されたペイロードは、Cobalt Strike Beaconです。設定情報を確認すると、Cobalt Strike 4.xのリーク/クラックされたバージョン(watermark:0x12345678)で、HTTPS(0x08)プロトコ ルを利用して、443/TCPでTeam Server(C2サーバ)と通信するように設定されていました。※6(図8) ※6 他のペイロードでは、HTTPとDNSプロトコルで通信を行うように設定されているものも確認して います。 図7 エクスポートされるDLLファイル(beacon.x64.dll) 図8 設定情報(一部抜粋) https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 5 of 16 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)です。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 6 of 16 図9 インストールスクリプトの比較(上:FireEyeサンプル/下:NEWサンプル) 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も一部確認しています。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 7 of 16 図10 Windows APIのアドレス解決を呼び出すコードの比較(上:FireEyeサンプル/下: NEWサンプル) https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 8 of 16 図11 エクスポートされるDLLファイルの比較(上:FireEyeサンプル/下:NEWサンプ ル) このような類似点を踏まえると、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(https://www.ptsecurity.com/ww-en/analytics/pt-esc-threat-intelligence/higaisa-or-winnti-apt-41-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ファイル実行後に表示さ れるデコイファイルの内容です。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 9 of 16 図12 Cobalt Strike loaderと通信先の関連性 図13 LNKファイルの内容 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 10 of 16 図14 デコイファイルの内容(一部抜粋) 攻撃痕跡の確認と検出 今回紹介した、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 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 11 of 16 図15 Autoruns実行結果(AacSvc.dllの例) 図16 Autoruns実行結果(IKEEXTサービスの例) 2. イベントログの確認 Cobalt Strike Loaderに関連する攻撃を受けた場合、サービスのインストールが発生する可能性があるこ とから、イベントログ(システム)に、イベントID 7045でサービスのインストールが記録されている 場合があります。システムログを確認し、不審なWindowsサービスのインストールが行われていないか 確認します。また、イベントID 7036において、IKEEXTサービスが意図せず、停止および開始されてい ないか確認します。※11なお、OSによっては、既定ではIKEEXTサービスは手動実行となっており、サ ービスを開始することで、イベントID 7040が記録されるため、このタイプのイベントログが意図しな いものでないか確認します。 ※11 OS種別によっては、イベントID 7036が記録されない場合があります。 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 12 of 16 図17 システムログ(イベントID:7045)の一部抜粋 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 13 of 16 図18 システムログ(イベント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 } https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 14 of 16 5. デジタル署名されたファイルの署名検証 Microsoft社のセキュリティアドバイザリ(2915720)※13を参考に、Windows Authenticode 署名検証の機 能を有効化するためのレジストリを追加することで、SigLoaderやCobalt Strike loaderが悪用するデジタ ル署名されたファイルを適切に検証することが可能です(図19)。 ただし、通常のWindows環境では、この機能は既定で無効になっており、当該アドバイザリを参考に、 ユーザが手動で有効にする必要があります。また、Microsoft社のブログ※14によれば、この署名検証機 能について、「既定で有効にした場合の既存のソフトウェアへの影響が大きい」と報告しているた め、有効化する前にシステム環境における影響の有無をご確認頂くことを推奨します。 図19 Microsoft社のデジタル署名を持つDLLファイルの署名の有効性確認(署名検証の機能 を有効) ※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製品、ルータ・ゲートウェイ製品などの脆弱性を悪用するケースの割合が高くなってい ます。攻撃者は、コロナ禍でインターネットに露出したネットワーク機器の脆弱な部分を見逃さず悪 https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 15 of 16 用してきています。インターネットに直結しているネットワーク機器は、常にサイバー攻撃にさらさ れているため注意が必要であり、これら機器の脆弱性を悪用されないためにも、日々の脆弱性情報の 管理と修正パッチの適用や緩和策の適用などの早急な対応が求められます。 ラックの脅威分析チームでは、今後もこの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 Source: https://www.lac.co.jp/lacwatch/report/20210521_002618.html https://www.lac.co.jp/lacwatch/report/20210521_002618.html Page 16 of 16