脅威リサーチ

航空会社を狙った新手のスピアフィッシングキャンペーン

投稿者 Gayathri Thirugnanasambandam | 2021年7月7日


FortiGuard Labs Threat Research Report

影響を受けるプラットフォーム:Microsoft Windows 
影響を受ける対象:Windowsユーザー
影響:被害者のデバイスから機密データを取得し、追加のマルウェアを配信する
深刻度:クリティカル

スピアフィッシングキャンペーン

スピアフィッシングは、標的を絞っていないものよりもはるかに成功率が高く、検出が最も困難な攻撃であることは周知の通りです。FortiGuard Labsチームは、航空会社をターゲットにしたスピアフィッシングキャンペーンを確認しました。このキャンペーンでは、AsyncRATのペイロードを配布する悪意のあるリンクが、よく練られたメッセージとともに航空会社に送信されています。AsyncRATは、オープンソースのリモート管理ツールで、認証情報やその他の機密データを盗むために使用されます。また、侵害されたマシン上でファイルをアップロード、ダウンロードする機能も備えています。このブログでは、このスピアフィッシングキャンペーンの様々な段階と、新たに適応されたテクニックを解説しています。

スピアフィッシングキャンペーンの概要

感染サイクルは、航空会社に送られたフィッシングEメールに、PDFの添付ファイルを装った悪意のあるリンクが含まれていることから始まります。Eメール内のリンクは、ユーザーをVBスクリプトのホスティングサイトに誘導し、そこから最初のペイロード(.vbs)が配信されます。この.vbsスクリプトは、第2段階のペイロードとして、RATローダーとして機能するインラインのC# .NETアセンブリコードを含むxmlファイルをドロップします。このローダーは、最後のペイロードであるAsyncRATを被害者のプロセス(RegSvcs.exe)にハロウリングして注入します。AsyncRATは、RevengeRATとしても知られており、C2サーバーに接続し、侵害されたマシンを制御して、追加のペイロードを導入します。これから、これらの各ステップをもう少し詳しく説明します。

図1: スピアフィッシングキャンペーンの感染サイクル

スピアフィッシングEメール

スピアフィッシングは、標的となるユーザーやその組織を徹底的に調査した上で行われる高度な標的型攻撃です。今回のキャンペーンで確認されたフィッシングEメールは、複数の航空会社に送信されていました。これらのメールはすべて、連邦航空局から送られているように見えますが、送信者のアドレスは偽装されており、問い合わせや承認用の「foreign operator affairs」というメールアドレスと一致しています。この電子メールは、連邦当局を装うために、署名やロゴを付けるという特別な手順を踏んでいます。また、航空管制官からのROSI(Reporting of Safety Incident)に見せかけて、緊急性を感じさせるように内容を慎重に作成しています。さらに、このメールには、PDFの添付ファイルを装った悪意のあるGoogleドライブのリンクが含まれています。このキャンペーンのほとんどのメールには、「ROSI」、「AOP」、「Incident Report」という文字列と、「ROSI-AOP Incident Report Details, <date>」.pdfという添付ファイル名が含まれています。

(Mitre ATT&CK technique – Spearphishing Link を参照)

図2: ある航空会社に送られたスピアフィッシングEメール

このブログを書いている時点では、これらのメールはVirusTotalのどのエンジンからもフィッシングや不審なメールとしてフラグが立てられていません。

図3:EメールのVT検出結果

このキャンペーンでは、すべてのメールの送信に「192.145.239.18」というIPアドレスが使用されています。このIPアドレスは、2021年の4月と5月に見られた航空をテーマにしたキャンペーン「Snip3 Crypter」にも関連しています。その遠隔測定の3か月間のレビューによると、ここ数週間で急増しており、UAE、カナダ、アルゼンチン、ジブチ、フィジーからの訪問者が大半を占めています。

図4:IP v4アドレス192.145.239.18の統計情報

ビジュアルベーシックスクリプト(VBS) /Wscrip

リンク(偽のPDF添付ファイル)をクリックすると、ユーザーのデフォルトブラウザが起動し、VB Scriptのホスティングサイトに誘導されます。このサイトでは、最初のペイロード(.vbs)が配信され、これが実行されると、後続のペイロードがドロップされ、パーシステンス(永続化)が確立されます。

VBスクリプト「ROSI-AOP Incident Report Details,May 31st.vbs」には、次の段階のペイロードである「Good.xml」が含まれています。このペイロードは、Server.URLEncode()を使用してエンコードされ、検出を回避するために難読化されています。ペイロードの復号化には、PSTRUH Software(http://www.motobit.com)のAntonin Foller氏のVBS復号化機能が使用されます。復号後、「Good.xml」が被害者のTempディレクトリに書き込まれ、そこでMSBuild.exeを使って起動されます。MSBuild.exeは、.NETフレームワークがインストールされたすべてのWindowsマシンに搭載されていますが、ご存知ない方もいらっしゃるでしょう。これは、.NETアプリケーションの作成プロセスを高速化するために使用される、信頼できる開発者用ユーティリティです。信頼されたユーティリティであるため、敵対者は検出を回避するためにこのツールを使用します。 (Mitre ATT&CK technique – Trusted Developer Utilities Proxy Execution: MSBuild を参照)

以下のスクリプトでは、ペイロードのバイトがまず難読化解除のために置換され、次にデコードされてからTempディレクトリに書き込まれます。

図 5: ペイロードバイトをエンコードした初期ペイロード VB スクリプト

XML

VBスクリプトが正常に実行されると、インラインのC#アセンブリコード、ローダーDLL、RATペイロードを含むGood.xmlファイルが被害者のTempディレクトリにドロップされます。すべてのファイルはASCIIバイト配列として保存され、RATペイロードもシグネチャベースの検出を避けるために反転されています。このケースでは、敵対者はCasey Smithが発見した方法を採用し、Windowsのネイティブバイナリ(MSBuild.exe)を使用してインラインC#コードをコンパイルして実行します。

図6: インラインC#コードを含むGood.xml

Good.xmlが実行されると、まずシステムのスタートアップフォルダに「Startups32.vbs」というファイルが作成されます。この.vbsスクリプトには、システムが起動するたびにGood.xmlファイルを実行して永続性を維持するコードが含まれています。(Mitre ATT&CK technique – Persistence を参照)

図7: Startups32.vbs

.NET RATローダー

永続化を実現した後、Good.xmlはバイト配列から.NET RATローダーを取得し、現在のアプリケーションにロードします。.NET RATローダーは、XML内のバイト配列sBytesに含まれており、Thread.GetDomain.Load(sBytes)メソッドを使用してロードされます。Thread.GetDomain()メソッドは、現在実行中のスレッドのドメインを返し、Load()メソッドは、実行時にバイト配列のアセンブリを現在のアプリケーションのドメインに動的にロードします。

VirusTotalで公開されているprojFUD.dllは、使用されているRATローダーDLLです。このファイルの数バイトが、ハッシュベースの検出を回避するために調整されていることが確認されました。説明文と著作権には「VLC MEDIA PLAYER」と記載されています。しかし、このファイルは署名されていません。

図8:検出されないように調整されたローダーDLL

ローダー内の名前空間とクラス名「ProjFUD.PA」はsnip3キャンペーンで報告されたものと同じですが、ローダーDLLから取得したPDB文字列は異なります。別の作者によるものである可能性が高いです。

図9:snip3ローダーDLLから取得したPDBストリング
図10:このキャンペーンのローダーDLLから取得したPDB文字列

.NETローダーアセンブリをロードした後、ProjFUD.PAクラスのExecute()関数が、payloadBytes(RATのペイロード)とRegSvcs.exe(被害者プロセスのパス)を引数として呼び出されます。

.NETアセンブリであるProjFUD.dllは、最終的なペイロードであるAsyncRATを犠牲者のプロセスにハロウリングして注入する際に、RunPEローダーとして機能します。RegSvcsは、.NET Component Object Model(COM)アセンブリを登録するためのWindowsコマンドラインユーティリティで、悪意のあるペイロードを隠すために敵対者が使用します。RegSvcs.exe は、Microsoft によってデジタル署名されており、プロセスベースのホワイトリストを回避するために使用されます。(Mitre ATT&CK technique – Process Injection: Process Hollowing を参照)

最初にCreateProcessAが呼び出され、フラグが134217732U(0x08000004)に設定されたサスペンド状態の犠牲者プロセスRegSvcs.exeが作成されます(すなわち、CREATE_SUSPENDEDおよびCREATE_NO_WINDOWがTrueに設定されます)。 このプロセスは、スレッドが再開されるまで実行されません。プロセスが中断されている間、ZwUnmapViewOfSectionが呼び出され、プロセスメモリからコードをアンマップ(ハロウ:空洞化)します。このルーチンは、buffer1 を含むセクションのビュー全体を仮想アドレス空間からアンマップし、正常に戻ると、ビューによって占有されていた仮想アドレス領域が予約されなくなり、他のビューをマップできるようになります。

次に、VirtualAllocEx を使用してペイロード用の領域を割り当てます。このとき、サイズはペイロードの長さに設定され、ページ保護は PAGE_EXECUTE_READWRITE(0x40)に設定されます。その後、WriteProcessMemoryを使用して、割り当てられたスペースにペイロードを注入します。SetThreadContext を呼び出すことで、スレッドのコンテキストがペイロードを指すように変更され、最後に ResumeThread でスレッドが再開され、ペイロードが非同期に実行されます。

図 11: RegSvcs を使用するマルウェア

AsyncRAT のペイロードの注入と実行に成功すると、ローダーは終了します。

AsyncRAT

その後、AsyncRATは、C2サーバーを介して感染したマシンの指揮・管理を行います。冒頭で述べたように、AsyncRATはオープンソースのリモートアクセスツール(RAT)で、安全な暗号化接続を介して他のコンピュータをリモートで監視および制御するように設計されています。さまざまな悪意のあるタスクを実行します。これについて詳しく知りたい場合は、GitHubの AsyncRAT-C-Sharp のリンクが役立ちます。

AsyncRATは、以下のような解析防止技術を用いて、自身が解析されるのを防いでいます。セキュリティ業界では、動的解析の大部分に仮想マシン(VM)とサンドボックスが使用されているため、このペイロードを含め、多くのペイロードが動的解析を回避しようとします。このケースでは、RATはWMIクエリ「Select * from Win32 ComputerSystem」によって製造元を取得し、「VMware」と「VirtualBox」という文字列を探します。また、サンドボックスや仮想マシンは通常、ディスク容量が限られているため、ディスク容量を確認します。さらに、モジュール「SbieDll」をロードして、Windows用のオープンソースのサンドボックス化プログラムである「sandboxie」を検出します。最後に、IsDebuggerPresent()を呼び出して、プロセスがデバッグされているかどうかをチェックします。(Mitre ATT&CK technique – Virtualization/Sandbox Evasion を参照)

このペイロードには、セキュリティソフトウェアのディスカバリ技術も含まれています。この手法は、感染したマシンにどのセキュリティ製品がインストールされているかを判断し、それに続く行動を形成するために使用されます。以下は、インストールされているアンチウイルス製品を列挙するために使用されるコマンドラインクエリです (Mitre ATT&CK technique – Defense Evasion を参照)

wmic.exe /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName”

情報が収集されると、次に、感染したマシンに関する以下の情報をC2 RATサーバに送信します。 (Mitre ATT&CK technique – Exfiltration Over C2 Channel を参照)

TこのRATは、オンラインコンテンツホスティングサービスであるPastebin上でリソースや追加のペイロードをホストします。以下のコードスニペットでは、RATクライアントはWebClient.DownloadString()を用いてPastebinウェブサイトからIPアドレスを取得し、そこに接続しています。(Mitre ATT&CK technique – Acquire Infrastructure: Web Services を参照)

AsyncRATクライアントは、RATサーバーに追加のプラグインやペイロードの送信を要求し、それらは以下のようにメモリ上で実行されます。メモリ上でペイロードを実行するためにファイルレス技術を採用しているため、フットプリントが小さくなり、ディスクをスキャンして悪意のあるファイルを探すという従来の防御方法を回避することができます。

その足場を維持するために、ペイロードが管理者として実行されている場合には、スケジュールされたタスクをインストールします。管理者権限の有無を確認するのは、昇格した特権で作成されたタスクでは、実行を許可するかどうかをユーザーに確認しないためです。ペイロードが管理者として実行されていない場合、レジストリの実行キーにエントリを追加し、ユーザーがログインするたびにプログラムを実行させます。(Mitre ATT&CK technique – Persistence を参照)

キーロギングは、最も一般的な入力キャプチャのタイプで、認証情報を盗むために使用されます。これは、Hooking APIのコールバックを使用してユーザーのキーストロークを傍受することで行われます。このテクニックは、キーストロークデータの処理を目的としたWindowsネイティブAPI関数にフックすることで機能し、ユーザーが何かを入力するたびにコールバック関数が呼び出されます。(Mitre ATT&CK technique – Input Capture: Keylogging を参照)

C2サーバー

犠牲者のマシンの侵害に成功すると、AsyncRATペイロードは、ポート2455(79.134.225.18:2455)で「franco.ddns.net」にあるRAT C2サーバーに接続します。2019年以降、IP 79.134.225.18は、AsyncRAT / RevengeRAT、NanoCore、およびBotNet攻撃に関連しています。複数のVPNサービスを運営し、TORプロジェクトをサポートしているISPプロバイダ「The PRIVACYFIRST Project 」に関連しています。

このキャンペーンで使用されているC2ドメイン 「franco.ddns.net 」は、わずか数週間前のものであり、そのため関連するスパイクが発生しています。

図12:C2ドメイン franco.ddns.netの統計情報

結論

このブログで分析したキャンペーンは、一部のアーティファクト(送信者IP、C2 IPアドレス、最終ペイロードなど)が同じであることから、Snip3 Crypter-as-a-serviceの一部であると考えられます。しかし、これはPowerShellスクリプトを使用していません。代わりに、XMLに含まれるインラインC#コードをコンパイルして実行するという新たな手法を採用しています。これは、脅威アクターが、より高度で検知が困難な攻撃を行うために、技術を素早く採用し、進化させているもう一つの例です。以下のフォーティネットのソリューションに加えて、Mitre社の攻撃手法を確認し、現在のセキュリティ対策がどれだけ効果的であるかを測定することをお勧めします。Mitre Att&CKの詳細と、防御力をテストする方法についてはこちらをご覧ください。

フォーティネットのソリューション

フォーティネットのお客様は、以下のようにFortiGuardのWebフィルタリングおよびアンチウイルスサービスで、このRATの亜種からすでに保護されています。

C2のIPアドレスは、FortiGuardのWebフィルタリングサービスによって「悪意のあるWebサイト」と評価されています。

VBスクリプトは「VBS/Agent.OQP!tr」として検出され、xmlファイルは「VBS/Agent.AK!tr」として検出されます。RATローダーと最終ペイロードのAsyncRATは「W32/PossibleThreat 」として検出されます。

FortiGuardアンチウイルスサービスは、FortiGateFortiMailFortiClient、およびFortiEDRでサポートされています。フォーティネットのアンチウイルスエンジンは、これらの各ソリューションにも搭載されています。そのため、最新の保護機能を備えたこれらの製品をお持ちのお客様は保護されています。

FortiEDRのリアルタイム保護機能は、実行中のプロセスハロウリングを検出し、RATがC2サーバに接続するのをブロックします。

フォーティネットのフィッシングシミュレーションサービスであるFortiPhishを使用して、この種のフィッシング攻撃に対する組織の感受性を積極的にテストすることもできます。

MITRE ATT&CK

T1566.002: Phishing: Spearphishing Link
T1059.005: Command and Scripting Interpreter: Visual Basic
T1027: Obfuscated Files
T1127.001: Trusted Developer Utilities Proxy Execution: MSBuild
T1218.009: Signed Binary Proxy Execution: Regsvcs
T1055.012: Process Injection: Process Hollowing
T1547.001: Registry Run Keys / Startup Folder
T1056.001: Input Capture: Keylogging
T1053.002: Scheduled Task
T1041: Exfiltration Over C2 Channel
T1518.001: Security Software Discovery
T1497: Virtualization/Sandbox Evasion

IOC(Indicators of Compromise:侵害指標)

Email

34646a93538a34c871e04a368c97637d1b7d1d4507bf210afd9349a61b25b35e
ef4b52c8f2c844b76534f583171d03a87cc195b0c3ae32754df0c01177792432
04e93767d16a3e6ca68e45fea23434a9c9ed363c3f0d28b9653f74bbf405ef65

VBS

adf94da54bc49abc6fdb2a36523eb726f26dacd5598a0fdc64e61b8d500edad8
34914c4af84888552bd7ef74d9a691918013766719881a042723001ef96f554c
c16e5de09a78886dc972d26aeb0e9fe760b855eb157c7df308fad2116b860ef7
65d3ff89602db4294fa2f585c472e566a3d72d2065e6bc4f493b02a3b08393ba
4c6f832a85fbcf17308ab923b066577de859571a2743e99bf249398e19a00fb8
0b56c16a28482cc0af81b93aff36d02610e30a8d65d7ea1ccd73f8242effbada
9dd8a6725b9c881311501b79770e4f1c9aee2c3b42f59f7694d48b67939eede5
59aafb3dd9c6cdb95ff662299e1faf3efb01d5ef8479dbbb8032b4b9cb3c3d91
a54f4ee320b21c1cfde3358a25131476127b9fb1fd5cad9fd03fa2be1f4fd0e2
9297b0db717beea397aacf15e7ef081faf3b9e430002a1c1b4e150e56fb940f9

Good.xml

E7D60A25BF1D80C144919F5F112594793A12A8176F2000BD890E331234A26814
8938838db8d16708692e80d170e0d8dc1522531e5a5ab5ae878a27a147780f44
b45470aa79cc7acab448a65252c3c7ee840ce6d0e78c40ad2c6bc261a912d393
f9bc8699f18b93cdb4b076dbf6f4baf2befd8c72eb26cefc28086f02a607f2f6

.NET Loader

B0DC46B5FC849DA9CC7A3FC4D8AA5EA8745D7E50869AC689BB956AAB3079EEB9
814f21f8c2befba504e592e3396be7454f93013939325cc7fbad5c38f022b395

AsyncRAT

5344E8B1EF4939A3C9F84921B284DD6E0B98B2CF524D678116BEF6E58DC4A6C3

PDB

E:\Hard Drives\Local Disk (C)\WIN 10 [ October Update ] FILES\Sparta Project #Hope\projFUD\projFUD\obj\Debug\projFUD.pdb

Malicious IPs

79.134.225.18 (C2)
192.145.239.18