ファイルレスマルウェアとは

ファイルレスマルウェア攻撃は、従来のマルウェア攻撃とは異なり、攻撃者は標的にしたマシンにソフトウェアをインストールする必要はありません。代わりに、Windowsに組み込まれているツールをハイジャックして攻撃に使用します。本質的に、Windowsは自身に攻撃の種を抱えています。

重要な点は、従来型のマルウェアを使用していないことです。つまり、シグネチャがないためアンチウィルスソフトウェアによって検出されず、これらのプログラムがファイルレスマルウェア攻撃を検出する能力を大幅に低下させます。また、次世代セキュリティ製品は悪質なPowerShellアクティビティを検出すると主張していますが、ファイルレスマルウェア攻撃を検出することは非常に困難です。

ファイルレスマルウェアのしくみ

ファイルレスマルウェア攻撃では、デフォルトのWindowsツール、特にPowerShellとWindows Management Instrumentation(WMI)などを使用して、他のマシンに展開するなどの悪意のある活動を行います。

PowerShellとWMIがハッカーたちの標的対象にされているのは、これらのツールがすべてのWindowsマシンにインストールされており、コマンドを実行でき(たとえば、PowerShellを使って複数のマシン間のタスクの自動化が可能)、多くのIT担当者の日常業務に組み込まれているため、従業員の使用を禁止することがほとんど不可能だからです。

正規のプログラムが悪用されているため、これらの攻撃は、ほとんどのセキュリティプログラムや熟練のセキュリティアナリストによっても検出されることはほとんどありません。理由は簡単です。PowerShellとWMIは正規のプログラムなので、実行するコマンドも正当なものとみなされるからです。

PowerShell

PowerShellは、Windows APIへの無制限のアクセスなど、前例のないOSプログラムの中枢部分へのアクセスを可能にする強力なスクリプト言語です。PowerShellは完全に信頼でき、実行するコマンドは通常セキュリティソフトウェアによって無視されるという、Windowsの本質的な部分が攻撃に利用されています。

PowerShellがWinRMを介してリモートで実行できる点もまた、恰好の標的にされています。この機能により、ハッカーはWindowsファイアウォールを経由してPowerShellスクリプトをリモートで実行するか、単にインタラクティブなPowerShellセッションにドロップすることで、エンドポイントを完全に掌握できるようになります。また、無効にされているWinRMを、たった1行のコードでWMIを介してリモートで有効にすることができます。

PowerShellを悪用したファイルレスマルウェア攻撃では、1台のマシンの侵害と企業全体の侵害がまったく区別できません。ハッカーが1台のマシンのユーザー名とパスワードを盗んだ瞬間に(PtHとPtTのシナリオで簡単に取得)、完全な侵害への道が開かれます。

PowerShellを悪用したファイルレスマルウェア攻撃に従来のセキュリティアプローチが役に立たなくなったのは、PowerShellの評価が高く、信頼性の高い署名があり、システムメモリを介して直接ロードされ(ヒューリスティックでスキャンできない)、OSに無制限にアクセスできる(Windowsの不可欠な要素となっている)ためです。

Windows Management Instrumentation(WMI)

WMIにより、管理者は、測定値の収集、ソフトウェアおよび更新プログラムのインストール、またはOSの自己クエリなど、さまざまなアクションを実行できます。WMIはマシン上のすべてのリソースにアクセスでき、ファイルの実行、ファイルの削除とコピー、レジストリ値の変更など、さまざまなタスクのクラスに分けられます。このツールは最新のWindowsに組み込まれており、エージェントレスエージェントのバックボーンとなっています。

管理者が非常に迅速にタスクを実行できるようになるため、これらの本来の機能によってWMIは重宝されますが、悪意のある操作に使用されるとすぐに災いの種となります。管理者がWMIを使用して測定値をクエリしてコードを実行するのと同じように、ハッカーはこれを使用して、マシンのネットワーク全体に悪意のあるコードを秘かに瞬時に実行することができます。また、WMIは起動時や特定のイベントに基づいてプログラムを秘かに自動実行することで永続性を可能にします。WMIはアンインストールできませんが、無効にすることはできます。しかし、それを行うと、複数のマシンでソフトウェアを更新するなど、管理者が実行できる作業が損なわれ、制限されます。

ファイルレスマルウェア攻撃の例

ファイルレスマルウェアは、ランサムウェアやその他のサイバー攻撃ほどにはニュースの見出しを多く飾ることはありませんが、これらの攻撃は依然として大きなセキュリティ上の問題であり、多くの攻撃で使用されています。

事実、サイバーリーズンでは、Operation Cobalt Kittyなど、アジアの大企業をターゲットにしたいくつかの攻撃でファイルレスマルウェアが使用されていたのを目撃しています。ハッカーは非常に洗練されたPowerShellインフラストラクチャを開発し、それを使ってCobalt StrikeのBeaconペイロードから成る難読化されたPowerShellペイロードを標的のコンピュータに挿入し、C&C サーバーからペイロードをフェッチしていました。

PowerShellを使用して悪意のあるコマンドを実行することで、ハッカーはほぼ6ヶ月間検出されずに活動することができました。信頼できるプログラムがこれらのコマンドを実行していたため、同社のセキュリティスタッフとセキュリティツールはコマンドが正当なものであるとみなしていました。


Operation Cobalt Kittyの詳細

サイバーリーズンによって観察されたもう1つのインシデントは、ファイルレスマルウェア攻撃がどれほど蔓延しているかを示すものでした。サイバーリーズンのセキュリティオペレーションチームは、顧客の環境でPowerShellの奇妙な活動を観察しました。おそらく管理者は、エンコードされたコマンドをコマンドラインで使用してPowerShellのセッションを実行していたと考えられます。

ただし、この動作は通常、人によるものではなく自動化されたスクリプトに起因します。インシデントを調査した後、セキュリティオペレーションチームは、同社のレッドチームが侵入テストを実施し、ファイルレスマルウェア攻撃を演習に組み込んでいたことをつきとめました。ファイルレスマルウェアがセキュリティ専門家の間で懸念されていなかったら、レッドチームが侵入テストの演習にそれを追加することはなかったでしょう。

ファイルレスマルウェア増加の脅威

ファイルレスマルウェア攻撃は、技術的には目新しいものではありません。ファイルレスマルウェア攻撃で使用されているテクニックの多くは、以前からあったものです。たとえばインメモリ攻撃は、2000年代の初めからSQL Slammerワームで顕著になっていました。

しかし、エクスプロイトキットが開発され大々的に出回ることより、ファイルレスマルウェア攻撃がよく見られるようになりました。たとえば、EmpireやPowerSploitのような先攻型PowerShellフレームワーク、MetasploitやCobaltStrikeのような攻撃後型(post-exploitation)フレームワークは、PowerShellの攻撃ペイロードを迅速に作成できるため、特に悪用されます。

もちろん、ファイルレスマルウェア攻撃がハッカーたちにもてはやされるのは、アンチウィルスソフトウェアでは実際にそれらを検出できず、多くの高度なセキュリティツールがPowerShellの悪用を検出するのに苦労しているためです。

これらの攻撃を組織が検出することの難しさと、これらの攻撃テクニックの入手しやすさとがあいまって、この戦術がますます採用される理由となっています。SANSの2017年の脅威調査では、調査対象となった組織の3分の1が、ファイルレス攻撃に直面していると報告しています。

ファイルレスマルウェアの検出と防止

では、ファイルレスマルウェア攻撃を検出するのが難しいのはなぜでしょう。

これらの攻撃は、ほぼ完全にメモリに格納され、正当なシステム管理ツールを使用して実行し、拡散されているため、正当なPowerShellの使用であるかハッキング活動であるかを見極めることが非常に困難です。PowerShellは、IT管理者が日々のさまざまなタスクを実行するために使用されるため、PowerShellが大量に使用されていても疑念が生じません。また、PowerShellの使用頻度が高いため、セキュリティ担当者にはログを確認したり、疑わしい動作を記録したり、インシデントを調査したりする時間がありません。

さらに、PowerShell特有の機能が、ハッカーに悪用されているタイミングを把握するのを難しくさせています。たとえば、最もよく使用されるPowerShell 2のバージョンは、PowerShellエンジンの起動と停止を通知するイベントログを生成しますが、それ以上の情報は提供しません。つまり、これらのログを分析しても悪意のあるペイロードが実行されたかどうかを判断することはできないのです。

PowerShell 3では、手動モジュールロギングのオプションが追加されました。これにより、アナリストとセキュリティ製品は、呼び出されたスクリプトファイルと、それに渡された対応するパラメータを特定できます。モジュールのロギングには欠点があります。それは、アナリストやセキュリティ製品では、ロギングで生成されるデータ量を処理できない場合があるという点です。PowerShell 5には重要なセキュリティの改善が含まれていますが、デフォルトでは有効になっていないため、ハッカーはバージョン2にダウングレードすることで、これらの機能を回避することができます。

よくある誤解は、PowerShellを無効にすることでファイルレスマルウェア攻撃が回避されるという話です。残念ながら、このアプローチはITプロフェッショナルの仕事をさらに困難にするだけです。Microsoftでは、自社の製品の使用にPowerShellはほぼ不可欠としています。

たとえば、Exchange 2007以降、ユーザーが一般的な管理機能を実行できるGUIが設計されてはいますが、PowerShellでは、あまり一般的でない機能を実行する必要があります。また、最終的にすべてのMicrosoft製品がPowerShellを使用することになります。管理者がPowerShellに習熟すれば、Microsoftの新しい製品のほとんどを管理できます。PowerShellの使用を制限することで、管理者は自分のキャリアのためにスキルを磨くことができます。

では、企業内でPowerShellが悪用されているのをセキュリティ専門家はどのように把握できるのでしょうか。この質問の答えとなる最善の方法は行動検出です。PowerShellの悪用に関連する兆候(コマンドラインでエンコードされたコマンドを使用して実行されるPowerShellセッションなど)を探知し、PowerShell悪用のインスタンスになる可能性のあるインシデントを調査するのに必要な証拠をセキュリティチームに提供することです。

ホワイトペーパー「PowerShell攻撃(ファイルレスマルウェア)を確実に防御」

侵入後に展開するPowerShellを使用したファイルレス型マルウェア攻撃は、ここ数年、攻撃者が好んで選択する攻撃となっており、ダウンロード/実行ペイロード、APT攻撃、さらにはランサムウェアなどの攻撃に悪用されています。PowerShell攻撃(ファイルレスマルウェア)の課題とCybereasonによるPowerShell攻撃の確実な防御について詳しく解説します。
https://www.cybereason.co.jp/product-documents/input/?post_id=2121

ホワイトペーパー「PowerShell攻撃(ファイルレスマルウェア)を確実に防御」