Japan
サイト内の現在位置
Living off the land というサイバー攻撃の方法論
NECセキュリティブログ2022年9月16日
みなさん、こんにちは。NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの松井です。
今回のブログでは、Living off the landという攻撃手法について紹介します。私がこれまで対処してきたサイバー攻撃においても、Living off the land攻撃がサイバー攻撃の戦術において数多く用いられることを確認しています。
Living off the landとは
サイバー攻撃の文脈においてLiving off the landとは、攻撃者がターゲットとなるシステムを侵害した後、更なる侵害のためにマルウェアやハックツールを追加で送り込むことなく、侵害したシステム内にBuilt-inとして存在するツールやバイナリを活用して攻撃を継続する手法です。環境寄生型攻撃や現地調達型攻撃と表現されることもあります。Built-inとして存在するツールやバイナリとは、Windows OSであればcmd.exeやcertutil.exeといったマイクロソフトによって署名されている正規のファイルのことです。これらのツールやバイナリは正規ファイルのため、ウイルス対策ソフトなどのエンドポイントセキュリティを回避しやすく、攻撃者にとってメリットが大きくなります。
例えるならば、映画プレデターにおいてアーノルド・シュワルツェネッガー演じる軍人ダッチが、近代的な武器を失いながらも、戦場となった森の木々から武器や罠を作りだしプレデターとの最終決戦に挑んだ戦い方 [1]もLiving off the landと言えます。
LOLBAS (Living Off The Land Binaries and Scripts) Project
LOLBAS とは、Living Off The Land Binaries and Scriptsの頭文字からなる略語です。同様の略語として、Living Off The Land Binariesを略したLOLBinsという呼び方もあります。
LOLBAS Project では2022年9月現在、Windows OSを対象とするLiving off the land攻撃を構成するファイルとして、約160件のバイナリやスクリプトをリスト化しています。また、それらのバイナリやスクリプトが悪用された際の攻撃手法をMITREのATT&CK [4]ベースで分類できるようにテクニック IDが併記されています。以下は筆者にてLOLBAS のテクニック IDをMITRE ATT&CK Navigator [5]を用いてマッピングした結果です。多くの戦術(横軸)でLiving off the land攻撃が可能であることが読み取れます。
次に、Defense Evasion戦術に位置するSystem Binary Proxy Execution (T1218) 技術に着目してみると、そのサブテクニックの全てがプロットされていることに気づきます。
System Binary Proxy Execution (T1218) 技術とは、Microsoftの署名付きバイナリを使用して、他のファイルまたはコマンドのプロキシ実行を実現する技術です。何やら小難しい表現ですので、System Binary Proxy Execution技術を題材に、Living off the landの強力な攻撃力を具体的にみていきます。
Living off the landを用いたAppLockerのバイパス攻撃
ここからは、LOLBAS Projectにも含まれている2つのバイナリcsc.exeとinstallutil.exeを用いた簡単なデモの様子を紹介します。
舞台となるのは、とあるWindowsクライアントです。このWindowsクライアントは、デフォルトのアンチウイルス(Microsoft Defender)の他に、AppLockerを利用したアプリケーションホワイトリスティングが稼働しています。これにより、Windows OSの標準バイナリ以外のバイナリの実行とpowershell.exeの実行が規制されています。
Windows OSの標準バイナリ以外のバイナリとpowershell.exeの実行が制限されている環境において、AppLockerによるアプリケーションホワイトリスティングを回避し任意のPowerShellスクリプトを実行してみたいと思います。デモでは単純化するために、電卓アプリを起動させるスクリプトをapp_bypass.ps1としてあらかじめ準備しています。以降では、大きく二つのステップに分けて進めて行きます。
STEP 1 (csc.exeによるC#ソースコードのコンパイル)
初めに、対象のWindowsクライアント上で簡単なC#のソースコード (Program.cs) を記述します。詳細は割愛しますが、当該プログラムをアンインストールする際にapp_bypass.ps1を実行する動作を記述しています。
そして、いよいよLiving off the landの登場です。Windows OSのBuilt-inバイナリであるcsc.exeを用いて先ほど作成したC#のソースコード (Program.cs) をコンパイルします。コンパイルされた結果として、Program.exeが生成されます。
STEP 2 (installutil.exeによるC#プログラムのアンインストール)
次に、同じくWindows OSのBuilt-inバイナリであるinstallutil.exeを用いて、先ほどコンパイルしたProgram.exeをアンインストールします。Program.exeはアンインストール時にapp_bypass.ps1を実行する動作が組み込まれているため、電卓アプリが起動しました。
一連の動作を整理すると以下の通りです。WindowsのBuilt-inバイナリであるcsc.exeとinstallutil.exeを利用することで、powershell.exeの実行の規制を回避して任意のPowerShellスクリプトを実行することができました。
さいごに
今回は、Living off the landについての紹介とその強力な攻撃力をお伝えしました。攻撃者が侵害端末上に存在するツールやバイナリを活用して攻撃を展開するLiving off the land攻撃自体は新しい概念ではありませんが、このブログを通じて脅威を改めて確認することで日々のサイバー攻撃に対する検知・対処の一助となれば幸いです。
参考文献
- [1]
- [2]
- [3]
- [4]
- [5]
執筆者プロフィール
松井 祐輔(まつい ゆうすけ)
セキュリティ技術センター リスクハンティング・システムグループ
脅威インテリジェンス、内部侵入攻撃対策を専門とする。
大規模国際イベントや官民向けのサイバーセキュリティ対応業務を経て、現在はNEC CSIRT Cyber Threat Intelligenceなどの業務に従事。
2×SANSメダル、2×Splunk Boss of the SOCトロフィー、Offensive Securityメダル、Taniumメダルを保持
CISSP、CISA、RISS、CEHを保持
Hardening Project Kuromame6 技術サポータ
執筆者の他の記事を読む
アクセスランキング