2024年セキュリティの現状:競争が激化するAIの活用
先進的なサイバーセキュリティ対策を推進する組織がどのように課題を克服し、AIを活用してイノベーションを推進し、デジタルレジリエンスを強化しているかをご確認ください。
2019年1月、AsyncRATがオープンソースのリモート管理ツールプロジェクトとしてGitHubで公開されました。AsyncRATは、攻撃者やAPTグループの間で人気の高いコモディティ型のマルウェアおよびツールです。すでに、スピアフィッシングメールの添付ファイルと興味深いスクリプトローダーを使って標的のホストまたはネットワークにAsyncRATを送り込む、さまざまな攻撃が出現しています。
このリモートアクセス型トロイの木馬を使った攻撃の1つとして、Microsoft OneNoteファイルを添付したスピアフィッシングメール攻撃が世界中で報告されています。添付ファイルをクリックすると、.HTAファイルが読み込まれ、難読化されたバッチスクリプトがダウンロードおよび実行されて、AsyncRAT本体のコードが実行されます。
AsyncRATは多数の機能を備えます。C2通信プロトコルを暗号化し、プラグインを通じて以下のような機能を実現します。
OneNoteを使ったAsyncRAT攻撃について詳しくは、こちらのビデオをご覧ください。
図1に、OneNoteを使った攻撃の感染チェーンの概要を示します(詳細は後述)。この攻撃では、別のフィッシング攻撃も使って、AsyncRATを実行するための別のスクリプトを読み込んでいます。
図1 (この図の拡大版はこちらから参照できます)
この記事の執筆時点で、AsyncRATは、app.any.runのマルウェアトレンドトラッカーで数か月にわたって週間トップ10入りしています。
参考資料(ツイート)
以下のセクションでは、OneNoteを使った最近の攻撃の概要、AsyncRAT設定の抽出方法、共通の動作、その他のAsyncRATスクリプトローダーについて説明します。
Splunk脅威調査チーム(STRT)は、悪質な.one (OneNote)ファイルが添付された複数のフィッシングメール攻撃を確認しました。この悪質なOneNoteファイルは、図2に示すように、標的ユーザーが警告にかかわらず表示したくなるように工夫されています。
ユーザーがファイルをクリックするとすぐに、悪質な.HTAファイルが読み込まれて、この感染チェーンの第2段階に入ります。
図2
.oneファイルに埋め込まれた.HTAファイルの役割は、AsyncRATマルウェア本体をデコードするための.batスクリプトをダウンロードすることです。同時に、悪質な.batスクリプトの実行をユーザーから隠すための「おとり」として別の.oneファイルがダウンロードされます。図3は、.HTAファイルの中で、PowerShellコマンドレット「Invoke-Webrequest」を使っておとりの.oneファイル(%temp%\\invoice.one)と.batスクリプトステージャー(%temp%\\system32.bat)の2つをダウンロードするコードを示します。
図3
%temp%フォルダーに送り込まれた.batステージャーは、ウイルス対策やその他のセキュリティ製品での検出を回避するために難読化されています。この.batスクリプトでは、一連の環境変数が初期化されます。これらの環境変数には文字列が含まれ、それらがコードの末尾に連結されてPowerShellスクリプトが生成されます。このスクリプトは、本体となるペイロードをデコードおよび復号して読み込む役割を持ちます。図4に、.batスクリプトの最後で、いくつかの環境変数を初期化して文字列を連結し、PowerShellスクリプトローダーを生成して実行するコードを示します。
図4
図5.2に、.batスクリプトに含まれるコメントのスクリーンショットを示します。このコメントは、エンコードおよび暗号化されたペイロードです。.batスクリプトで生成および実行される前述のPowerShellスクリプトでは、以下の手順でマルウェア本体のペイロードが抽出および実行されます。
図5.1に、.batスクリプトによって実行されるPowerShellスクリプトでAsyncRATマルウェアが復号されるまでの流れを簡単に示します。
図5.1
図5.2
図5.3
前述の.batスクリプトは、AsyncRATマルウェアでコードの読み込みに使われるだけでなく、QuasarRAT、DCRAT、Redline、Qakbotなどのマルウェアグループでも使われていることがMalware Bazaarで確認されました。複数の悪質なバッチスクリプトを自動的に復号してペイロード本体を抽出するために、Splunk脅威調査チーム(STRT)は、1つのファイル、または複数のバッチファイルを含むフォルダーをパラメーターとして受け取ってペイロードを抽出する簡単なPythonスクリプト「asyncrat_bat_extractor.py」を作成しました。図6に、このツールの簡単な実行例と、「test」フォルダー内の複数のバッチファイルを復号して、抽出されたすべてのペイロードを「extracted_payload」フォルダーに格納する処理の様子を示します。
図6
では、AsyncRATの戦術、技法、手順(TTP)を検証していきましょう。AsyncRATの動作を理解すれば、分析の開発に役立ちます。
AsyncRATは、さまざまな脅威グループによって組織の攻撃に使われる.NET RATです。STRTは調査の中で、エンドポイントでのAsyncRATの検出に役立つ共通の動作を発見しました。
AsyncRATクライアントは、自身のコードを管理者特権で実行できるかどうかをチェックします。実行できる場合は、WindowsのSchTasks.exeを使って、%appdata%内の自身のコピーを最高位の特権で実行するようにタスクをスケジュールします。図7.1に、スケジュールされたAsyncRATタスクを検出するためにSTRTが開発した分析の例を示します。
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = "schtasks.exe" Processes.process = "*/rl *" Processes.process = "* highest *" by Processes.process_name Processes.parent_process_name Processes.parent_process Processes.process Processes.process_guid Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図7.1
AsyncRATを管理者特権で実行できない場合は、レジストリのRunキーを使って永続化を行います。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
図7.2に、AsyncRATが標的ホストで永続化を行うための関数コードの一部を示します。
図7.2
AsyncRATは、自身のプロセスのトークンの権限を「SeDebugPrivilege」に昇格させることで、他のプロセスを制御できるようにします。図8に、現在のプロセスのトークンを調整してデバッグ権限に昇格させるためのコードを示します。
図8
AsyncRATは、コードのサンドボックス分析やリモートデバッグを回避するための防御機能をいくつか備えています。それらの機能の簡単な説明と、図9に実際のコードを示します。
関数 | 機能 |
---|---|
antiVM | WMICクエリー「Select * from Win32_ComputerSystem」を実行して、自身のプロセスがVirtualBoxまたはVMwareで実行されているかどうかをチェックします。 |
antiSandoxSbieDLL | SandboxieサンドボックスのモジュールであるSbiedll.dllが読み込まれているかどうかをチェックします。 |
CheckRemoteDebuggerPresent | リモートデバッガーがあるかどうかをチェックします。 |
checkDriveSize | 標的ホストのディスクドライブのサイズをチェックします。サイズが小さい場合は、マルウェアのラボ環境やサンドボックスで実行されていると判断します。 |
checkIFOSIsXP | プロセスがWindows XPオペレーティングシステムで実行されているかどうかをチェックします。 |
図9
図10に、標的ホストに自身のコピーを作成して実行した後、防御回避の一環として自身を削除する.batスクリプトを%temp%フォルダーに展開して痕跡を消し去るためのコードを示します。
図10
最後は、プラグインやその他のペイロードを標的ホストにダウンロードするための、コマンドアンドコントロールサーバーとの通信設定です。AsyncRATは、AESで暗号化された設定データを復号します。このデータには、C2通信で使われるポート番号(6606)とIPアドレス(43.138[.]160.55)が含まれます。図11.1に、STRTが分析したAsyncRATの、復号した設定データのスクリーンショットを示します。図11.2には、C2サーバーとの通信とC2ダウンロードの処理部分のコードを示します。
図11.1
図11.2
STRTは、現在も続くOneNoteを使った攻撃以外に、フィッシングメールのリンク、ISO、別のマルウェアダウンローダーを使ったAsyncRATマルウェアの配布手口も確認しました。
2022年2月、Microsoft社はOffice製品でマクロをデフォルトで無効にする更新プログラムの配布を開始しました。これにより、多くの攻撃者が、Microsoft Office文書を武器化するための新たな方法を見つける必要に迫られました。その結果として生み出された技法の1つが、文書の構成を定義するプロパティが含まれる.relsファイルの悪用です。これらのプロパティを使用すれば、URLを指定してリモートのリソースを参照できます。図12.1に、悪質なOffice文書のスクリーンショットと、footer2.xml relsプロパティの悪用方法を示します。この文書を開くと、悪質なリンクに接続して新たに.xllがダウンロードされ、AsyncRATがダウンロードされます。
図12.1
図12.2に、Microsoft Office以外のドメインに接続するこの悪質なOffice文書を検出するために使用したAsyncRATのハンティング分析の例を示します。
`sysmon` EventCode=22 Image IN ("*\\winword.exe","*\\excel.exe","*\\powerpnt.exe","*\\mspub.exe","*\\visio.exe","*\\wordpad.exe","*\\wordview.exe","*\\OneNote.exe", "*\\OneNotem.exe","*\\OneNoteviewer.exe","*\\OneNoteim.exe") AND NOT(QueryName IN ("*.office.com", "*.office.net")) | stats count min(_time) as firstTime max(_time) as lastTime by Image QueryName QueryResults QueryStatus Computer | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
図12.2
dynwrapx.dllをディスクに書き込み、DynamicWrapperXオブジェクトを使用可能にして、ペイロード本体を挿入または実行する.vbsスクリプトローダーも発見しました。この.vbsスクリプトは、以前に公開したSTRTのブログ「Detecting Malware Script Loaders using Remcos (Remcosを使用するマルウェアスクリプトローダーの検出)」でも詳しく分析しています。図13に、.vbsスクリプトの中で、dynwrapx.dllを使ってAsyncRAT本体を実行するためのシェルコードを読み込むコードを示します。
図13
AsyncRAT本体のコードを読み込むために使われる、難読化された別のPowerShellスクリプトも発見しました。このPowerShellスクリプトは、長い16進数文字列をバイナリバイトに変換して、.NETでコンパイルされたAsyncRATを抽出します。このAsyncRATは、.NETリフレクションのアセンブリライブラリの読み込みを通じて実行されます。
図14に、このPowerShellスクリプトの中で、16進数文字列(一部赤枠内)をAsyncRATのバイナリバイトに変換するコードを示します。
図14
この記事で示した、Microsoft Office OneNote文書を使った攻撃の感染チェーンは世界中で猛威を振るい、悪質なペイロードを配布するため、または標的ホストへの初期アクセスを獲得するために、さまざまな攻撃者やAPTグループに広く利用されています。SOCやセキュリティアナリストは、この記事を参考に、Microsoft Office OneNote文書の悪用方法を理解して、防御対策に役立ててください。
この記事で分析したサンプルのハッシュを以下に示します。
Splunk脅威調査チームは、この攻撃に関する検出方法をまとめ、AsyncRAT分析ストーリーとしてタグ付けしました。AsyncRATマルウェアを使用する攻撃の検出にお役立てください。この分析ストーリーには、各種のMITRE ATT&CK技法に対応する23の検出方法が含まれます。
今回のリリースでは、データエンドポイントの以下の関連テレメトリソースを使用、想定しました。
この分析ストーリーに関連する検出方法はいずれも、そのままでSplunk Enterprise Securityのリスクインデックスのエントリーになり、リスクNotableイベントとRisk Notable Playbook Packでシームレスに使用できます。以下のコミュニティSplunk SOARプレイブックも、前述の分析のいくつかと組み合わせて使用できます。
プレイブック | 説明 |
---|---|
Internal host WinRM Investigate | このプレイブックは、Windowsリモート管理を使用するWindowsデバイスの主要要素に関する一般的な調査を実行します。エンドポイントに関する重要ファイルを生成し、zipにまとめて、Vaultコンテナにコピーします。 |
Active Directory Reset Password | このプレイブックは、侵害された可能性のあるユーザーアカウントのパスワードをリセットします。まず、アナリストに状況の判断と、アカウントをリセットするかどうかの選択を求めます。アナリストが承認したら、強力なパスワードを生成してパスワードをリセットします。 |
この記事では、セキュリティアナリスト、ブルーチーム、そしてSplunkのお客様向けに、AsyncRATがどのようなマルウェアであるかをご紹介しました。AsyncRATは、さまざまな攻撃者やAPTグループが使用しています。その戦術、技法、手順を検出するためにこの記事をぜひお役立てください。Splunk脅威調査チーム(STRT)は、攻撃の動作を理解することで、テレメトリとデータセットを生成して、この脅威に対抗、対応するためのSplunk検出機能を開発することができました。
セキュリティ分析ストーリーの最新コンテンツは、GitHubとSplunkbaseからダウンロードできます。Splunk Security Essentialsでは、プッシュアップデートによってすべての検出方法を利用できます。
すべてのセキュリティコンテンツの一覧は、Splunkマニュアルのリリースノートに掲載されています。
ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。
このブログ記事を執筆したTeoderick Contrerasと、執筆にご協力くださったSplunk脅威調査チームの次の方々に感謝を申し上げます。Michael Haag、Mauricio Velazco、Lou Stella、Bhavin Patel、Rod Soto、Eric McGinnis、Patrick Bareiss。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。