背景

この脅威分析レポートでは、最新のキャンペーンで使用されている戦術、手法、手順(TTP)の好例となる直近のIcedID感染事例について、Cybereason GSOCが調査した結果を報告するものです。IcedIDはBokBotとも呼ばれており、もともと被害者から金融関連情報を盗むために使用されるバンキング型トロイの木馬として知られています。

IcedIDは少なくとも2017年から存在しており、脅威グループTA551と関連づけられています。
IcedIDは他のマルウェアファミリーのドロッパーとして、または「初期アクセスブローカー」用のツールとして、最近ではより頻繁に利用されるようになっています。

IcedIDに関してこの記事のほかに、簡潔にまとめた資料もダウンロードしていただけます。
【Cybereason GSOC セキュリティ・アップデート(2023年1月版)】IcedID(BokBot) 〜マクロ、ISO、LNKファイルを使用して感染するトロイの木馬〜
https://www.cybereason.co.jp/product-documents/survey-report/9910/

主な観測結果(初期段階)

  • 展開が速い:攻撃者は、最初の感染から水平展開に至るまでを1時間未満で完了しました。Active Directoryドメインのハッキングにかかった時間は24時間未満でした。
  • 標準化された攻撃フロー:攻撃者は、攻撃全体を通じて、偵察コマンド、認証情報の窃取、Windowsプロトコルの悪用による水平展開、そして新たにハッキングしたホスト上でのCobalt Strikeの実行というルーチンに従っていました。これについては、後述の「水平展開」のセクションで詳しく説明します。
  • 他のグループから手法を借用:観察されたTTPは、Conti、Lockbit、FiveHandsなどの攻撃でも使用されています。これは、攻撃者グループの間でアイデアの共有が行われていることを示唆するだけでなく、1つのグループの手法や戦術を検知することがその他グループの検知にも流用できることを示しています。
  • 初期感染ベクターの変更:過去のキャンペーンでは、フィッシングメールの添付ファイルに悪意あるマクロを含むことによって、攻撃者はIcedIDを配信していました。Microsoftが最近実施した変更を受けて、攻撃者は、マクロファイルの代わりにISOファイルやLNKファイルを使用しています。この傾向は本稿においても確認することができます。
  • データ持ち出しまでの時間が短い:ある顧客の環境では、最初の感染から2日後にデータの持ち出しが始まりました。

分析

■タイムライン
Cybereason GSOCが調査したケースでは、攻撃者は、次のタイムラインに示されているような各種アクションを実行しました。

アクティビティ 時間
IcedIDに初期感染 T0
永続化の確立(スケジュールされたタスク) T + 2分
Cobalt Strikeの初回実行 T + 7分
認証情報窃取の最初のインスタンス(Kerberoast) T + 15分
水平展開の開始 T + 57分
DCSync(認証情報にアクセス) T + 19時間
Citrix Serverにログイン T + 45時間
Ateraエージェントの実行 T + 46時間
データ流出の開始 T + 最長50時間

初期アクセス、実行、初期の永続化

このセクションでは、最初に感染したマシン上で採用された感染方法について説明します。このマシンは、攻撃者により、残りのハッキング行為のための中心的な役割として使用されます。
下図は、この事例で観測されたマルウェア導入のメカニズムを説明します。

  1. 被害者がアーカイブファイルを開く。
  2. 被害者がISOファイルをクリックすると、仮想ディスクが作成される。
  3. 被害者はこの仮想ディスクにアクセスした時に表示されている唯一のファイル(実際にはLNKファイル)をクリックする。
  4. LNKファイルはバッチファイルを実行する。このバッチファイルは、DLLを一時フォルダにドロップした後、そのDLLをrundll32.exeで実行する。
  5. rundll32.exeがこのDLLをロードすると、IcedID関連ドメインへのネットワーク接続が確立され、IcedIDペイロードがダウンロードされる。
  6. IcedIDペイロードがプロセスにロードされる。


▲IcedIDの感染フロー

同様のIcedID感染は、通常、被害者がISOファイルを含んでいる「パスワードで保護されたzipファイル」を開くことから始まります。


▲ISOファイルを含むZIPアーカイブを開く

ダブルクリックされたISOファイルは自動的に読み取り専用ディレクトリとしてマウントされます。このディレクトリには、隠しフォルダとLNK(ショートカット)ファイルが含まれています。


▲仮想ドライブとしてマウントされたISOファイルの内容

この隠しフォルダには、難読化されたバッチファイルとDLLペイロードが含まれています。


▲“hey”フォルダの内容:DLLファイル“superstring.dll”とBATファイル“twelfth.bat”

ショートカットファイルをクリックすると、システムコンポーネントであるcmd.exeを介して、隠しディレクトリに含まれているバッチファイルが実行されます。


▲LNKファイルのプロパティ:これをクリックするとtwelfth.batが実行されることが示されている

このバッチファイルはxcopy.exeを実行した時に、DLLをコピーして%TEMP%ディレクトリへドロップします。この結果、同DLLが、rundll32.exeとコマンドライン引数“#1”(DLL内での順番が1の関数を示す)を使って実行されます。


▲難読化されたbatファイルからの抜粋


▲部分的に難読化を解除されたbatファイル:DLLのコピーとそれに続くrundll32.exeの実行が示されている

今回の攻撃は、ディレクトリ“D:\ten\”内にあるバッチファイル“dealing.bat”によって開始されました。これは典型的なIcedID感染の感染方法と類似しています。


▲BATファイル “dealing.bat”の実行

このバッチファイルはrundll32.exeを介して、ユーザーの%TEMP%ディレクトリにあるDLLファイルhomesteading.dllを実行しました。その結果、DNSリクエストとアドレスcrhonofire[.]infoへのHTTP接続が成功したことを確認しました。


▲rundll32.exeを介して、DLLファイルhomesteading.dllを実行する

次に、攻撃者はnet.exeを使ってホストの検知を実施することで、ドメイン、ワークステーション、およびDomain Adminsグループのメンバーに関する情報を照会しました。


▲OSとActive Directoryの検知アクティビティが示されている(Cybereasonプロセスツリーのスクリーンショット)

■IcedID
最初の攻撃開始から数分後にhomesteading.dllはxaeywn1.dllという名前のファイルをダウンロードしました。その後、Rundll32.exeはこのファイルをメモリにロードしました。license.datを参照するコマンドライン引数は、これがIcedIDマルウェアの構成要素であることを示しています。license.datファイルは、IcedIDペイロードを復号するための鍵として機能します。


▲Rundll32.exeはxaeywn1.dllをロードする際、引数として”license.dat”を参照する

また、同時にMS-TSCH SchRpcRegisterTaskへのMSRPCリクエストが存在したことを観測しました。これは、rundll32.exeプロセスによりスケジュールタスクが作成されたことを示すものであり、同タスクは1時間ごと、およびログオンごとにxaeywn1.dllを実行するものです。これにより、マシン上での永続化が確立されます。


▲スケジュールされたタスクの作成を示すMSRPCの呼び出し

次に、rundll32.exeがフローティングモジュール“init_dll_64.dll”をロードしているのを観測しました。これは、IcedIDのメインボットを復号しアンパックしたものです。HTTP/S接続が、blackleaded[.]tattoo、curioasshop[.]pics、cerupedi[.]comに対して行われました。これらのドメインはいずれも、IcedIDマルウェアに関連するものです。


▲モジュールinit_dll_64.dllがメモリにロードされる

その後、xaeywn1.dll(復号化されたIcedIDペイロード)を参照するコマンドラインにより、子プロセスdllhost.exeが作成されたことを観測しました。dllhost.exeは外部ネットワーク接続を確立した後、cmd.exeの対話型セッションを開始しました。


▲IcedID をアンパックしたdllhost.exeが、再度dllhost.exeを展開した後、さらに対話型のCMD.exeセッションを生成するrundll32.exeが示されている(Cybereasonのプロセスツリー)

この対話型のセッションでは、curl.exeを使用して、リモートIPアドレスからHTTP経由でpower.batおよびPowerDEF.batというファイルがダウンロードされました。


▲プロセスcurlを使用して、power.batとpowerDEF.datがダウンロードされた

ダウンロードが完了した後、攻撃者は続いてpowerDEF.batを実行することで、Base64でエンコードされたPowerShellを実行し、追加のファイルをダウンロードします。このプロセスを使用して、2.txtと2.exeがダウンロードされました。最後に、tasklist.exeを使用して、ホスト上で実行されているすべてのプロセスがリスト化されました。


▲復号化されたPowerShellコマンド


▲対話型のCMDセッションが示されている(Cybereasonのプロセスツリー)

■Cobalt Strike
IcedIDを使って最初の足がかりが築かれた後、regsvr32.exeは“cuaf.dll”というファイルをロードしました。OSINT(Open-source Intelligence)の調査を通じて、これがCobalt Strikeビーコンであることを突き止めました。攻撃者がネットワーク全体を通じて水平展開を実施したために、このファイルのハッシュは他のマシンでも確認されました。

また、このプロセスでは、Cobalt Strike のコマンド&コントロール(C2)サーバーとして知られるドメインdimabup[.]comから解決されるIPアドレスへの接続も行われました。


▲regsvr32.exeがCobalt Strikeモジュールをロードし、ネットワーク上で発見アクションを実行し、C2ドメインと通信する様子を示すプロセスツリー

詳しくは「認証情報の窃取」のセクションで述べますが、Cobalt StrikeビーコンはRubeusをロードしました。Rubeusは、C#で書かれたKerberosとの対話や不正利用のためのツールであり、net.exe、ping.exe、nltest.exeを使用した追加の偵察活動も実行します。この偵察活動については、「検知」のセクションで詳しく説明しています。


▲Cobalt StrikeプロセスがRubeusをロード

水平展開

攻撃者は一般的な水平展開の手法を用いました。Cybereason GSOCが観察した別のマシンへの最初の移動までにかかった時間は、最初の感染からおよそ1時間未満でした。攻撃者は、ping.exeを使用してホストがオンラインであるかどうかを判断した後、wmic.exeに”process call create”の引数を含むことにより、リモートワークステーション上でリモートファイルdb.dllを実行しました。


▲水平展開に使用されるwmic.exeリモートホスト上での侵入に成功すると、攻撃者は同じCobalt Strikeビーコンを今度はgv.dllという名前で実行しました。

攻撃者は、次の手法をネットワーク全体で実行し続けました。ping.exeを使用してホストがオンラインであるかどうかを確認し、WMIを介して水平展開を実施し、より良い足場を求めてCobalt Strikeペイロードを実行しました。


▲水平展開の後に使用されるCobalt Strikeペイロード

攻撃者は、kerberoastingを通じてサービスアカウントの認証情報をハッキングした後、内部のWindows Serverへの水平展開を実施できるようになりました。このアカウントはドメイン管理者権限を持っていたため、攻撃者は同アカウントを利用してCobalt Strikeビーコンを導入できました。

永続化

Contiの手法を借りて、攻撃者は複数のマシンにAteraAgent RMMツールを、インストールしました。Ateraは、リモート管理のために使用される正規ツールです。このようなITツールを利用することで、最初の永続化メカニズムが検知され是正された場合であっても、攻撃者は追加の「バックドア」を作成できるようになります。このようなツールは、アンチウイルスやEDRで検知される可能性が低く、誤検知と判定される可能性も高くなります。


▲AteraAgentのインストール

実行されたコマンドラインは、インストールプロセス中に、攻撃者がoutlook.itドメインに関してスペルミスをしたことを示しています。攻撃者がAteraをバックドアエージェントとして使用する場合に、ProtonとOutlookの両方から使い捨てのメールアドレスを使用するのは非常によくある慣行です。


▲Atera Agentの実行を示すプロセスツリー

認証情報の窃取

■Kerberoasting
最初の感染からわずか15分後に、最初の認証情報の窃取が発生しました。攻撃者は、Kerberoasting(MITRE ATT&CK ID:T1558.003)を使用して、ドメイン上のサービスアカウントのハッシュを引き出しました。このケースでは、C#のKerberosユーティリティおよび対話ツールであるRubeusが使用されました。
この攻撃では、ネットワーク経由でハッシュを流出させましたが、サービスアカウントが持つパスワードの強度によっては、HashcatJohn the Ripperなどのツールを使ってハッシュをクラックできる場合があります。


▲プロセスrundll32.exeは、Kerberoasting攻撃を行ったという理由で検知される

■DCSync
環境内でファイルサーバーへの水平展開を実施し、サービス経由でSYSTEMへと権限を昇格させた後、攻撃者はDCSync攻撃の実行に成功し、当該ドメインをハッキングできるようになりました。DCSync攻撃(MITRE ATT&CK ID: T1003.006)は、攻撃者がドメインコントローラーになりすまし、他のドメインコントローラーからパスワードハッシュをリクエストすることを可能にします。

これは、DRSGetNCChangesという、ドメインコントローラーのADオブジェクトに対するRPCコールを行うことで実現されます。DCSync攻撃では、Active Directoryとの特定のレプリケーション権限を持つアカウントのみが標的とされますが、そのようなアカウントのハッキングに成功した場合、これは壊滅的な認証情報窃取攻撃となります。DCSync攻撃は、最初に感染したホストのうち1つのホストで検知されました。


▲DRSGetNCChangesというMSRPCコールにより特定されたActive Directoryの不正利用を示す検知


IcedIDは、FirefoxやChromeなどのブラウザにフックすることで、認証情報、クッキー、保存情報などを窃取しようとすることが知られています。メインのボットがロードされた後、chrome.exe内においてフッキングの振る舞いを観測しました。


▲Chrome.exeへのプロセスフッキング

探索

探索コマンド
攻撃者は、攻撃中に複数の探索コマンドを使用しました。これらのコマンドの多くは、IcedIDボット内の“SysInfo”モジュールの一部として実行されます。攻撃者は、net.exeを次のように利用することで、OSやActive Directoryに関する情報を探索しました。

  • net view /all /domain
  • net config workstation
  • net group “Domain Admins” /domain
  • net group “Domain Computers” /domain
  • net view \\{HOST IP ADDRESS} /all

前述したように、水平展開を実施する際に、ping.exeを使用してリモートマシンがオンラインであるかどうかが確認されました。
攻撃者は、nltest.exeを次のように利用することで、Active Directoryに関する情報を抽出しました。

  • nltest /domain_trusts
  • ホストが通信を行える信頼できるドメインを見つけるために使用されます。
  • nltest /domain_trusts /all_trusts
  • nltest /dclist
  • ネットワーク上に存在するすべてのドメインコントローラーの一覧を返します。
  • また、PowerShellコマンドのInvoke-Share Finderが、ネットワーク上の非標準的な共有を見つけるために使用されました。

    さらに、ホストに関するより多くの情報を取得するために、次のようなシステムコマンドが使用されました。

    • systeminfo
    • time
    • ipconfig

    最後に、アップデートやパッチの欠落をチェックするために、攻撃者は“wuauclt.exe /detectnow”コマンドを実行しました。

    ■ネットワークのスキャン
    この攻撃者は、Contiからもう1つの手法を借用しており、SoftPerfect社が作成した正規のITツールであるnetscan.exeを使って、足掛かりとなるマシンが存在しているネットワークの大規模なサブセットをスキャンしました。このスキャンの結果は、ローカルファイル“results.xml”に書き込まれました。


    ▲netscan.exeは、水平展開を実施する際の追加ホストの検索に使用される

    ■データの流出
    攻撃者は、人気のあるファイル同期ソフトウェアrcloneのコピー(ファイル名が変更されたもの)を使用して、複数のディレクトリを暗号化した上で、それらをファイル共有サービスMegaに対して同期させました。


    ▲ファイル名が変更されたrclone.exeの実行

    rcloneの利用は、Lockbitを含む多くの脅威アクターにとって格好の流出ベクターとなっています。

    サイバーリーズンからの推奨事項

    • Cybereason NGAVのシグネチャモードとAIモードの両方を有効にし、これらの機能の検知(Detect)モードと実行防止(Prevent)モードを有効にすること。
    • センサーポリシーで、振る舞いベースの実行保護に移動し、振る舞いベースの実行保護およびバイナリ類似性分析 (BSA) インメモリ保護を「実行防止」に設定すること。(訳註:バージョン21.2より後のバージョンでは「振る舞いベースの実行保護」は「振る舞いベースの実行防止」に、「バイナリ類似性分析 (BSA) インメモリ保護」は「亜種実行防止」にそれぞれ名称変更されました。)
    • 可能であれば、お使いの迷惑メールフィルターで「パスワードで保護されたzipファイル」をブロックまたは隔離すること。
    • 通常とは異なるファイルやインターネット経由で取得したファイル(例:ISOファイル、LNKファイル)を扱う場合には十分注意すること。
    • ディスクイメージファイルの自動マウントを無効化すること。このような感染手法の成功を回避するために、グループポリシーオブジェクト(GPO)を使ってディスクイメージファイル(主に.iso、.img、.vhd、.vhdx)の自動マウントを全社で無効化することをご検討ください。
    • ファイル拡張子の関連付けに関係するレジストリ値を変更することで、これら拡張子に対しWindowsエクスプローラーで自動的に表示される「マウント」や「書き込み」のダイアログを無効化することができます。
    • この操作はマウント機能そのものを無効化するものではありません。
    • Cybereasonを使用して脅威ハンティングを実施すること。Cybereason MDRチームは、特定の脅威を検知するためのカスタムハンティングクエリをお客様に提供しています。Cybereason Defense Platformを使った脅威ハンティングとMDR(Managed Detection and Response)の詳細については、Cybereasonまでお問い合わせください。

    【調査結果資料】サイバーセキュリティ知識に関する調査結果レポート(2022年11月実施)

    サイバーセキュリティの専門知識を持たないビジネスパーソンを対象に、サイバーセキュリティ知識に関する理解度とサイバーセキュリティに関する意識の実態を調査するため、2022年11⽉下旬に「サイバーセキュリティ知識についての理解度テストとアンケート」を実施しました。

    アンケートの回答を調査レポートとしてまとめましたので、回答を元にした実態と傾向を把握いただき、サイバーセキュリティを専門としないビジネスパーソンの方は、今後のサイバーセキュリティ知識に関する理解度とサイバーセキュリティに関する意識の向上の機会としてご活用ください。

    また企業・組織のサイバーセキュリティ担当者の方は、社内向けのサイバーセキュリティの理解度を高める研修の実施など、今後のセキュリティ対策の強化にお役立てください。
    https://www.cybereason.co.jp/product-documents/survey-report/9854/