導入 — なぜ今LOLBAS/LOTLが重要か
近年、攻撃者は正規のシステムツール(LOLBINs/スクリプト/ライブラリ)を流用して検出を回避する「Living off the Land(LOTL)」手法を多用しています。LOLBASプロジェクトはその種のバイナリ/スクリプトのカタログとして広く参照され、攻撃追跡や検出ルール作成の基礎情報を提供します。
セキュリティ運用で重要なのは「正規ツールの正当な使用」と「悪用」の差分を見分けることです。本記事では、最新の動向概観と、現場で使えるSysmon・YARA・EDRルール実装例、運用でのチューニング方針を示します。
主要参照:LOLBAS公式リスト(実行可能バイナリ/スクリプト/機能の一覧)。
最新動向サマリ(頻度・TTPの変化)
業界の観測では、LOTL技術の利用が大多数の侵害で確認されており、ある大規模観測では主要インシデントの約84%がLOTLを含んでいたと報告されています。攻撃者はPowerShell、WMI、mshta.exe、certutil.exe、bitsadmin.exe、regsvr32.exeなどを組み合わせ、ファイルレスやプロキシ実行のチェーンを作ることで検出を回避します。
また、近年はクラウドサービスや正規プロセスとのハイブリッド運用(例:ネイティブツール+クラウドストレージ経由でのC2やデータ搬送)が増加しており、単純なプロセス名検出だけではノイズや誤検出が増える傾向があります。運用ではコマンドライン内容、親子プロセス関係、ネットワーク接続の有無、ユーザーコンテキストなど複数シグナルを組み合わせる必要があります。
実践:Sysmonでの検出設計とルール例
Sysmonはプロセス生成(Event ID 1)、ネットワーク接続(Event ID 3)、ファイル作成(Event ID 11 など)を詳細に記録できるため、LOTL検出の基盤となります。プロファイル化のポイントは「高信頼のホワイトリスト」+「疑わしいコマンドライン/親子関係の検出」です。既存のモジュール化されたSysmon設定(sysmon-modular等)をベースに、環境に合わせたチューニングを行うのが実務的です。
例:WMIホスト(wmiprvse.exe)からのLOLBIN起動を検出するルール(概念):
<EventFiltering>
<RuleGroup name="ProcessCreate_WMI_LOLBAS" groupRelation="or">
<Rule onmatch="include" name="WMI spawns known LOLBAS">
<Condition>
ParentImage contains "\\wmiprvse.exe" and (
Image endswith "mshta.exe" or Image endswith "certutil.exe" or Image endswith "bitsadmin.exe"
)
</Condition>
</Rule>
</RuleGroup>
</EventFiltering>上記は概念例です。実運用では正規の管理スクリプトやドライバ更新プロセスを誤検出しないよう、パスやハッシュ、親プロセスのハードニング(署名確認や実行パス照合)を併用してください。Sysmon設定やモジュールのベースラインは公開リポジトリで共有されていますので、参照してカスタム生成することを推奨します。
実践:YARAでのファイル/スクリプト痕跡検出例
YARAはファイルやメモリ内の文字列やバイトパターンに基づく検出に向いています。LOTL対策では、悪用されやすいコマンドライン文字列(例:EncodedCommand、Base64長文字列、-e/-enc等)や、特定のスクリプトペイロード内の固有シグネチャを抽出してルール化します。
簡易例(PowerShellのEncodedCommandと長いBase64のスニペットを検出するYARA):
rule Detect_EncodedPowerShell {
meta:
author = "analyst"
description = "Detects use of PowerShell EncodedCommand or long Base64 strings"
strings:
$enc = "EncodedCommand"
$b64 = /[A-Za-z0-9+\/]{20,}={0,2}/
condition:
$enc or $b64
}この種のYARAはファイルスキャンやEDRのメモリスキャンに組み込みやすい反面、環境内の正当なスクリプトやサードパーティツールに一致する可能性があるため、発見時はプロセスコンテキスト(実行イメージ、親プロセス、ユーザー)と突き合わせて評価してください。コミュニティやマルウェアデータベースにある既存YARAルールのパターンも再利用可能です。
実践:EDR/SIEMでのルール化と検出ロジック(例)
EDRではSysmonやプロセスインジェクション、スクリプトブロックログ、ネットワークフローを結合したアナリティクスを作ります。重要なのは「単一シグナルに頼らない」ことです。例えば、次のような複合ルールで誤検出を抑えつつ検出感度を上げます:
- プロセス作成(例:mshta.exe/regsvr32.exe等)+親プロセスがリモート経路(wmiprvse/サービス/Explorer以外)
- 同プロセスが短時間に外部IPへ接続(不審なポート/ホスト)
- コマンドラインにBase64やEncodedCommandを含む/スクリプトブロックイベント(PowerShell 4104)を伴う
実務例として、Splunk/Rulehound等で公開されている検出ロジックを参考に、ネットワークイベントの有無やユーザー有効性(サービスアカウント/無効アカウントの使用)を条件に入れることでノイズ低減が可能です。
運用上の注意点とチューニング戦略
1) ベースライン化:まずは環境内での正当なツール使用を収集し、ホワイトリストを作成してください。Sysmon(およびEDR)のログを最低でも数週間収集して利用パターンを学習することが重要です。
2) 段階的導入:検出ルールはまず監査モード(アラートは出すが自動遮断はしない)で運用を開始し、偽陽性を微調整したうえで封じ込めアクションを追加してください。
3) 脅威インテリジェンスと同期:LOLBASやLOLD RMMリスト等、公開データソースを定期的に取り込み、検出シグネチャやSysmonモジュールを更新します。LOLBASはAPI経由のデータ取得が可能で、検出ルール作成に役立ちます。
4) インシデント対応プレイブック:検出時はプロセスツリー、実行ユーザー、ネットワーク先(IP/ホスト)、関連ファイル/レジストリ変更を速やかに取得できるよう、EDRのライブレスポンス機能とSIEMでの自動集約を準備しておきます。
参考:LOLBASのAPIやSysmonモジュール化リポジトリはルール作成の出発点になります。
まとめと推奨アクション
・LOTL/LOLBASの手法は依然として多くの侵害で利用されており、単一のシグネチャ検出では限界があります。複数のテレメトリ(プロセス・コマンドライン・ネットワーク・ファイル)を結びつける検出設計が必要です。
・実装手順の短いチェックリスト:
- LOLBASリストを取り込み、環境に存在するエントリを特定する。
- sysmon-modular等のテンプレートからベース設定を生成し、プロセス作成/ネットワーク/ファイルイベントを有効化する。
- YARAでスクリプト・ペイロード痕跡を作成し、EDR/ファイルサーバでスキャンする。
- 検出はまず監査で運用し、誤検出を潰しながら自動化ポリシーを段階適用する。
本ガイドは現場での実装・チューニングを前提とした実践的な出発点です。具体的な環境に応じたルール化・チューニングの支援が必要であれば、ログサンプルや運用要件を提示してください。より踏み込んだSysmon XMLやSigma/KQLの例も提供できます。