はい、これで見えますね: ファイルレス マルウェアをさらけ出す

本記事は、Microsoft Secure ブログNow you see me: Exposing fileless malware” (2018 1 24 日 米国時間公開) を翻訳したものです。


攻撃者は、ますます高度化するテクニックを駆使して、セキュリティ防御策を回避することに懸命になっています。ファイルレス マルウェアによって攻撃のステルス性と有効性は高まり、昨年流行した重大なランサムウェアのうち 2 (PetyaWannaCry) はキル チェーンの一部としてファイルレスのテクニックを使用しています。

ファイルレス マルウェアの仕組みはシンプルなもので、デバイス上に攻撃者の目的を実現できるツールが既に存在する場合 (例えば PowerShell.exewmic.exe など)、マルウェアと識別される可能性のあるカスタム ツールをわざわざドロップする必要はありません。攻撃者がプロセスを乗っ取ってメモリ領域でコードを実行し、そのコードを利用してデバイス上の既存のツールを呼び出すことができれば、その攻撃の検出はさらに難しくなります。

“環境寄生型と呼ばれるこのアプローチの悪用は、誰にでもできるような簡単なことではありません。攻撃者はさらに、持続性を確保することにも取り組む必要があります。メモリは揮発性であり、ディスク上にファイルを置かない状態で、攻撃者はどのようにシステム再起動後にコードを自動開始させ、侵害したシステムの制御を保ち続けることができるのでしょうか。

Misfox: 標的ネットワークへの「ファイルレス」なゲートウェイ

2016 年 4 月、あるお客様からマイクロソフトのインシデント対応チームに、サイバー恐喝事件に関する報告がありました。お客様は、侵害されたコンピューターから盗み出された企業の機密情報を開示しないことと引き換えに、相当な額の金銭を攻撃者に要求されました。さらに、お客様が法執行機関に連絡した場合、ネットワークを「パンク」させると脅迫してきました。とても厄介な状況といえます。

基本情報
2017 年第 2 四半期の Windows Defender ウイルス対策による Misfox (英語情報) の検出は、2017 年の第 1 四半期に比べて 2 >倍以上になりました。

マイクロソフト インシデント対応チームは、ネットワーク上のマシンを調査して標的型インプラントを識別し、侵害の範囲を描き出しました。お客様は有名なサードパーティ製のウイルス対策製品を使用しており、それは大部分のマシンにインストールされていました。ウイルス対策製品は最新のシグネチャで更新された状態でしたが、標的型インプラントを検出できませんでした。

その後のマイクロソフトのチームの調査により、攻撃者がランサムウェアを使って 2 回もファイルの暗号化を試みていたこと分かりました。幸いなことに、その企ては失敗しました。ネットワークをパンクさせるという脅迫は、当初の案が失敗した後、攻撃を収益化するための代替案であることが判明しました。

その上、攻撃者が少なくとも 7 か月の間、2 つの異なるチャネルを通じてネットワークに潜んでいたことが分かりました。

  • 1 つ目のチャネルには、いくつかのマシンに展開されていた Swrort.A というバックドアが含まれていました。このバックドアは、ウイルス対策ソフトにより容易に検出されました。
  • 2 つ目のチャネルは以下の理由から、もっと巧妙で興味深いものでした。
    • デバイス上のどのファイルにも感染しなかった
    • ディスクに生成物を残さなかった
    • 一般的なファイル スキャン技術では検出できなかった
PowerShell を無効化すべきですか?
いいえ。PowerShell は強力で安全な管理ツールであり、多くのシステム機能や IT 機能にとって重要なものです。攻撃者が使用する悪意のある PowerShell スクリプトは、最初の侵害が起こった後にのみ有効な悪用後のテクニックです。PowerShell の悪用はソフトウェア エクスプロイト、ソーシャル エンジニアリング、または資格情報の盗難など他の悪意のあるアクションで開始される攻撃の兆候となります。重要なのは、攻撃者が PowerShell を悪用できるポジションに立つことを防止することです。PowerShell の悪用の緩和策については、本記事の続きを参照してください。

2 つ目のツールは、Misfox (英語情報) というファイルレス マルウェアです。Misfox がメモリで実行されると、以下が実施されます。

  • PowerShell のワンライナーコマンドレットを起動するレジストリの Run キーを生成
  • レジストリ BLOB に格納されている、難読化された PowerShell スクリプトを起動。難読化された PowerShell スクリプトには、レジストリから Base64 エンコードの PE を読み込む反射型のポータブル実行可能 (PE) ローダーが含まれていた

Misfox は実行可能ファイルをドロップしませんでしたが、レジストリに格納されているスクリプトによってマルウェアの持続性が確保されていました。

ファイルレスの手法

Misfox は、サイバー攻撃のキル チェーンにファイルレスの要素が組み込まれた実例です。攻撃者は、マルウェア インプラントのステルス性を高め検出を回避することを可能にする、複数のファイルレスの手法を使います。以下に例を挙げます。

  1. 反射型の DLL インジェクション
    反射型の DLL インジェクションとは、悪意のある DLL がディスクに保存されることなく、プロセスのメモリへ手動で読み込まれるものです。悪意のある DLL は、攻撃者が制御するリモート マシンでホストされ、ステージングされたネットワーク チャネル (例えば、Transport Layer Security (TLS) プロトコルなど) を通じて配信されたり、難読化された状態でマクロやスクリプトなどの感染ベクターに埋め込まれたりする可能性があります。これが、実行可能なモジュールの読み込みを監視し記録する OS メカニズムの回避につながります。反射型の DLL インジェクションを悪用するマルウェアの例として、HackTool:Win32/Mikatz!dha (英語情報) が挙げられます。
  2. メモリの悪用
    攻撃者はファイルレスのメモリ エクスプロイトを悪用して、リモートから標的のマシン上で任意のコードを実行します。例えば、UIWIX (英語情報) の脅威は Petya WannaCry も悪用した EternalBlue のエクスプロイトを利用し、DoublePulsar と呼ばれる、完全にカーネルのメモリ (SMB ディスパッチ テーブル) 内に生息するバックドアをインストールすることが確認されています。Petya Wannacry とは異なり、UIWIX はディスク上にいかなるファイルもドロップしません。
  3. スクリプトベースの手法
    スクリプト言語は、メモリのみで実行可能なペイロードを供給するための強力な手法です。スクリプト ファイルはエンコードされたシェルコードやバイナリを埋め込んで、実行時にその場で復号化し、ディスクに書き込まれることなく .NET オブジェクト経由か API で直接実行することが可能です。スクリプト自体は (Misfox の場合と同様) レジストリに隠され、ディスクに触れることなくネットワーク ストリームから読み込まれたり、攻撃者がコマンドラインから手動で実行したりすることができます。
  4. WMI での持続性
    特定の攻撃者が Windows Management Instrumentation (WMI) レポジトリに悪意のあるスクリプトを格納し、WMI バインドを使って定期的に起動することを確認しています。この記事 (PDF、英語情報) では、その良い事例が紹介されています。

Microsoft 365 で提供されているファイルレス マルウェア固有の緩和策

Microsoft 365 では、次世代型のセキュリティ技術を集結して、デバイスや SaaS アプリ、電子メール、およびインフラストラクチャを幅広い攻撃から保護します。次の Microsoft 365 Windows 関連コンポーネントにはファイルレスの手法を使うマルウェアを検出し、緩和する機能があります。

ヒント
ファイルレス マルウェア固有の緩和策のほかに、Windows 10 には一般的な攻撃を緩和する次世代型のセキュリティ技術が搭載されています。例えば、Windows Defender Application Guard は、マルウェアがファイルレスであるかどうかに関係なく Microsoft Edge および Internet Explorer を通じた配布を止めることができます。Windows 10 Fall Creators Update で提供される Microsoft 365 のセキュリティ機能および管理機能について、詳細を確認してください。

Windows Defender ウイルス対策

Windows Defender ウイルス対策は、ジェネリック、ヒューリスティック、および行動ベースの検出と、ローカルおよびクラウドベースの機械学習モデルを使って、マルウェアの大部分をブロックします。以下の機能でファイルレス マルウェアに対する保護を提供します

  • AMSI を活用してスクリプトベースの手法を検出する。AMSI は、難読化が多重になっている場合でも PowerShell やその他のスクリプトの種類を検査する機能を持つ
  • 定期的および異常な行動が観察された場合に WMI レポジトリをスキャンして、WMI での持続性の手法を検出し修復する
  • 強化されたメモリ スキャン技術と行動モニタリングを通じて、反射型の DLL インジェクションを検出する

Windows Defender Exploit Guard

Windows Defender Exploit Guard (Windows Defender EG) は新しいホスト侵入防止機能で、さまざまな種類の攻撃ベクターに対してデバイスをロック ダウンすることにより攻撃表面を縮小します。次の方法で、ファイルレス マルウェアを使用する攻撃を止めることができます。

  • ハイパーバイザーによるコードの整合性 (HVCI) で EternalBlue のようなカーネルメモリのエクスプロイトを緩和し、カーネルモードのソフトウェアの脆弱性を使って悪意のあるコードを挿入することを極めて困難にする
  • オペレーティング システムのレベルまたは個別のアプリ レベルのいずれかで適用可能なエクスプロイト緩和策を含む Exploit Protection モジュールを使って、ユーザーモードのメモリのエクスプロイトを緩和する
  • アプリケーションの動作をロック ダウンする攻撃表面の縮小 (ASR) ルールを使って、スクリプトベースのファイルレス手法などを緩和する
ヒント
技術的な制御以外にも、人やプロセスに関連する管理的な機能が実装されていることも重要です。リモートにある標的のマシンで PowerShell および WMI に依存したファイルレスのテクニックを使用する場合、攻撃者がそのマシン上で特権アクセスを持っていることが必須です。これは不十分な管理習慣 (例えば、ドメイン管理者のアカウントで Windows のサービスが実行されるよう構成している場合など) によって資格情報の盗難が可能な場合が挙げられます。詳細については、「特権アクセスのセキュリティ保護」を参照してください。

Windows Defender Application Control

Windows Defender Application Control (WDAC) は、強力なコード整合性ポリシーを強制し、信頼されたアプリケーションのみ実行できるメカニズムを提供します。ファイルレス マルウェアに関連する仕組みとしては、WDAC PowerShell 制限付きの言語モード (Constrained Language Mode、英語情報) にロック ダウンし、直接的な .NET スクリプトや Add-Type コマンドレットを経由した Win32 API の起動、COM オブジェクトとのやり取りなど、検証できないコード実行を可能にする拡張された言語機能を制限します。これによって、PowerShell ベースの反射型 DLL インジェクション攻撃が本質的に緩和されます。

Windows Defender Advanced Threat Protection

Windows Defender Advanced Threat Protection (Windows Defender ATP) は、Windows Endpoint Protection (EPP) Endpoint Detection and Response (EDR) 機能の統合されたプラットフォームです。侵入後のシナリオでは、ATP は、他の予防的な保護機能では防御できなかったデバイスや企業ネットワークに対する高度に洗練され進化した攻撃について、エンタープライズのお客様へアラートを送信します。ATP は、豊富なセキュリティ データや行動分析、機械学習を活用してそのような攻撃を検出します。以下に挙げるようないくつかの方法で、ファイルレス マルウェアの検出にも役立ちます。

  • 反射型の DLL 読み込みなどファイルレスのテクニックを利用する隠れた攻撃を、異常なメモリ割り当てを検出する固有のインストルメンテーションを使って明らかにする
  • PowerShell とその他のスクリプトベースのマルウェアにランタイムでの検査機能を提供し、機械学習モデルを適用する AMSI を活用して、スクリプトベースのファイルレス攻撃を検出する

Microsoft Edge

独立したセキュリティ テスト機関である NSS Labs によると、Microsoft Edge 他のブラウザーと比べて、より多くのフィッシング サイトやソーシャル エンジニアリング型のマルウェアをブロックします。Microsoft Edge は、悪意のある DLL を含む任意のコード実行を防止する任意のコード保護 (英語情報) 機能により、ファイルレス マルウェアの脅威を緩和します。これにより、反射型の DLL 読み込みによる攻撃が緩和されます。さらに、Microsoft Edge Windows Defender Application Guard による統合と Windows Defender SmartScreen を活用して、ファイルレスであるかどうかに関係なく、脅威を緩和するための幅広い保護策を提供します。

Windows 10 S

Windows 10 S Windows 10 の特別な構成で、Microsoft 365 のセキュリティ機能の多くが自動的に設定されています。Microsoft ストアのアプリだけを使用することで、攻撃表面を減らします。ファイルレス マルウェアに関連する機能として、PowerShell Constrained Language Mode が既定で有効化されています。さらに、業界で最高レベルの Microsoft Edge が既定ブラウザーで、ハイパーバイザーによるコードの整合性 (HVCI) が既定で有効となっています。

 

Zaid Arafeh

Senior Program Manager, Windows Defender Research team

Share