Adversaries may use Obfuscated Files or Information to hide artifacts of an intrusion from analysis. They may require separate mechanisms to decode or deobfuscate that information depending on how they intend to use it. Methods for doing that include built-in functionality of malware or by using utilities present on the system.
One such example is the use of certutil to decode a remote access tool portable executable file that has been hidden inside a certificate file.(Citation: Malwarebytes Targeted Attack against Saudi Arabia) Another example is using the Windows copy /b or type command to reassemble binary fragments into a malicious payload.(Citation: Carbon Black Obfuscation Sept 2016)(Citation: Sentinel One Tainted Love 2023)
Sometimes a user's action may be required to open it for deobfuscation or decryption as part of User Execution. The user may also be required to input a password to open a password protected compressed/encrypted file that was provided by the adversary.(Citation: Volexity PowerDuke November 2016)
MITRE ATT&CKにおいて、T1140は「Deobfuscate/Decode Files or Information(ファイルまたは情報の難読化解除/デコード)」として定義されている、非常に利用頻度の高い「防御回避(Defense Evasion)」のテクニックです。
攻撃者がファイル転送やストレージ保存時にセキュリティ製品の検知(シグネチャ検知や静的解析)をかいくぐるため、あらかじめ暗号化・難読化・エンコード(Base64やXORなど)しておいたペイロードを、実行直前にターゲット端末上で元(実行可能形式)に復元・デコードする手法を指します。
この手法で攻撃者は、「ネットワーク侵入時やファイル配置時のシグネチャ検知を無効化し、実行の瞬間まで悪意ある本質を隠蔽すること」を実現します。
ネットワーク検知(IDS/IPS/Next-Gen Firewall)の回避:
悪意あるスクリプトや実行ファイル(.exe/.dll)をそのままネットワーク越しに送信すると境界型セキュリティで遮断されます。Base64やXOR、暗号化(AESなど)、あるいはテキスト/画像ファイル内に隠蔽(ステガノグラフィー)して送信することで、セキュリティ製品に「ただの無害なデータ」と誤認させます。
静的スキャン(アンチウイルス/EPP)の回避:
ディスク上に保存された段階では単なるエンコードされたテキストファイルや無害な画像に見えるため、アンチウイルスのファイルスキャンをパスできます。
攻撃者は標準のWindowsコマンドツール(Lolbins)や標準のスクリプト言語(PowerShellなど)を利用してデコード処理を行います。
難読化されたペイロードの配置:
フィッシングメール、ダウンロード、または既存の侵入経路を介して、Base64等でエンコードされたテキストファイル(例: payload.txt)を端末上に保存します。
標準ツール・スクリプトによる復元(T1140の発動):
OSに標準搭載されている信頼されたユーティリティを悪用してデコードを実行します。
certutil.exe の悪用):certutil.exe -decode C:\Windows\Temp\payload.txt C:\Windows\Temp\malicious.exe※ 本来は証明書ファイルをデコードするための機能を悪用し、Base64テキストを実行ファイル(.exe)に復元します。
[System.IO.File]::WriteAllBytes("C:\Windows\Temp\malicious.dll", [System.Convert]::FromBase64String((Get-Content C:\Windows\Temp\payload.txt)))復元されたペイロードの実行:
復元された悪意あるバイナリやスクリプトを即座にキック(実行)し、メモリ展開または別プロセスとして動作させます。
元ファイルの削除(クリーンアップ):
検知リスクを下げるため、デコード元のテキストファイルやデコード後のファイルを即座に削除(T1070.004)する場合もあります。
デコード処理を実行する不審なプロセス動作およびコマンドラインの引数監視が有効な対策となります。
certutil 等の「-decode」引数の監視(最重要):
EDRやSIEMを用いて、certutil.exe または certutil プロセスが -decode や -decodehex などの引数付きで起動される挙動(WindowsイベントID 4688 / Sysmon イベントID 1)を監視し、即時アラート化します。
PowerShell / スクリプトの監査(AMSI & Script Block Logging):
Windowsの AMSI(Antimalware Scan Interface) や PowerShellスクリプトブロックログ(イベントID 4104) を有効化します。これにより、PowerShell内でメモリ上にBase64デコードや暗号化解除が展開された「解読後の生のコード」をアンチウイルスが検知・遮断できるようになります。
一時フォルダ(\Temp\, \Public\ 等)での不審なファイル作成・変更の監視:
certutil や powershell、cmd などのプロセスが、ユーザー書き込み可能なフォルダ内でバイナリファイル(.exe, .dll, .vbs 等)をドロップ(書き出し)する動作を検知・ブロックします。
「二段階(Staging)」攻撃の標準動作:
近年のマルウェアやAPT攻撃のほぼ100%が、何らかの形で難読化(T1027)とこの難読化解除(T1140)をセットで組み込んでいます。
Lolbins(環境寄生バイナリ)との高い親和性:
特別なデコーダープログラムを外部から持ち込まずとも、certutil.exe、expand.exe、bitsadmin.exe や PowerShell などの標準機能だけでデコードが完結する点が強力です。
CWE-506: Embedded Malicious Code(埋め込まれた悪意あるコード)
ソフトウェアやデータ構造の中に隠蔽・難読化された状態で悪意あるコードが埋め込まれ、実行時に動的に展開・解読される問題。
CWE-88: Improper Neutralization of Argument Delimiters in a Command (Argument Injection)
信頼されたOS標準ユーティリティ(certutil など)の引数処理を外部から操作され、意図しないファイル変換・作成を許してしまう点。
T1140は脆弱性(CVE)そのものを突く手法ではなく「OSの正常機能やスクリプト機能の悪用」ですが、難読化解除のロジックやバイパスに関連する脆弱性・事例が存在します。
CVE-2021-40444(MSHTMLの脆弱性):
Office文書(Word)を開くだけで悪意あるActiveXコントロールが呼び出される脆弱性。攻撃者は初回通信で難読化されたHTML/JavaScript(.html)をダウンロードさせ、クライアント側でそれを解読・展開させてCABファイル内から悪意あるDLLをデコード・実行させました(T1140との複合手口)。
SolarWinds供給網攻撃(SUNBURSTマルウェア / 2020年):
SUNBURSTマルウェアは、C2通信のドメイン名やC2から受け取った指示コードをカスタムXORやBase64で難読化しておき、実行時にメモリ上でデコード(T1140)して処理を行うことで、長期にわたる潜伏と検知回避を実現しました。
実務上のアドバイス:
SOC運用において、コマンドラインログに certutil.exe -decode ... または certutil -decodehex ... が記録された場合、これは高確率(False Positiveが極めて少ない)で悪意ある攻撃インジケーターです。
即座に「指定された入力ファイル(エンコードされたファイル)」と「出力ファイル(生成されたファイル)」のパスを確認し、出力されたファイルが .exe や .dll などのバイナリ構造(先頭ヘッダーが MZ)を持っている場合は、該当端末をネットワークから隔離して詳細調査を進めてください。