セキュリティ運用

CryptoGuard: ランサムウェア対策への非対称アプローチ

Sophos X-Ops は、Technical Thought Leadership の新シリーズ第二弾として、いくつかのランサムウェア対策テクニックを詳しくご紹介します。

** 本記事は、CryptoGuard: An asymmetric approach to the ransomware battle の翻訳です。最新の情報は英語記事をご覧ください。**

ランサムウェアは現在組織が直面している最も重大な脅威の一つです。特に、攻撃者がその手法やアプローチを絶えず改良していることを考えると、対抗するのは容易なことではありません。例えば、最近の変化としては、サービスとしてのランサムウェア (RaaS) モデルの強化、新しいプログラミング言語の採用、標的の設定と攻撃展開の進化、検出およびインシデント対応の取り組みを妨げるためにことなどが挙げられます。

より顕著な進化の 1 つは、リモートランサムウェアの増加です。リモートランサムウェアとは、組織のドメインアーキテクチャを利用して、管理されたドメインに参加しているマシンのデータを暗号化するランサムウェアです。侵入、ペイロードの実行、暗号化といったすべての悪意のある活動は管理されていないマシン上で発生するため、最新のセキュリティスタックをバイパスし、他のマシンとの間でドキュメントを送受信することだけがセキュリティ侵害の兆候となります。ソフォスのテレメトリによると、2022 年と比べて、意図的なリモート暗号化攻撃が 62% 増加しています。また、Microsoft のデジタル防衛レポートによると、人力によるランサムウェア攻撃の約 60% がリモートからの暗号化を伴い、全侵害の 80% が管理されていないデバイスから発生しています。これは、アクティブな資産管理が行われていないことを示しています。リモートからの暗号化をサポートしているランサムウェアファミリとしては、Akira、ALPHV/BlackCat、BlackMatter、LockBit、Royal などがあります。2013年には CryptoLocker がネットワーク共有を標的にしていたなど、この手法は以前から存在していました。

A diagram showing the difference between a local and remote ransomware attack

図 1: リモートランサムウェアの仕組み (概要)

当然のことながら、ランサムウェアの台頭と継続的な進化を受けて、ランサムウェアの検出と防止を目的とした研究が盛んに行われるようになり、学者やセキュリティ研究者、ベンダーがさまざまな解決策を提案しています。マルウェアの一種であるランサムウェアは、防御側にとって他に類を見ない実践的かつ知的は課題であり、それを反映しているのがソリューションの多様さです。そうしたソリューションの多くは、ファイルシステムの一覧化、ファイルへのアクセスと暗号化、ランサムノート (身代金要求文書) の生成といった、一般的なランサムウェアの動作特性の 1 つ以上を対象としています。また、一般的なマルウェア対策技術をランサムウェアに適用した、より汎用的なものもあります。

Technical Thought Leadership の新シリーズ第二弾となる今回は (第一弾はメモリスキャンに関するもので、こちらからお読みいただけます)、これらの技術の概要と長所・短所を簡単に説明した後、この分野における私たちの成果である CryptoGuard について詳しく見ていきます。

本題に入る前に、一点注意があります。ランサムウェア攻撃には複数の段階があり、その大半は本記事で取り上げるソリューションが機能する前に発生します。防御が万全な企業であれば、さまざまな段階で攻撃を阻止する防御層が複数存在するため、多くの場合、特定のランサムウェア対策ソリューションは必要ありません。しかし、すべての防御が失敗し、攻撃者がファイルの暗号化段階にまで到達した場合、修復不可能な損害を防ぐ技術が必要になります。攻撃の他の段階 (初期感染、常駐化、ラテラルムーブメントなど) であれば元に戻せますが、暗号化はそうはいきません。

ランサムウェア対策

静的ソリューション

ランサムウェア検出のための静的手法 (マルウェアが実行されなくても、受動的に行われる手法) は、他の種類のマルウェアを検出するために使用される手法と大きく異なるものではありません。この分野のソリューションには、シグネチャの一致判定、文字列の比較、ファイルの活動の比較、行動特性の検査、ディープラーニング技術、PE ヘッダー検査などがあります。

静的手法は、比較的迅速かつ低コストである一方で、攻撃者はシグネチャの検出が解除されるまでコードを変更することで、静的手法を回避することができます。また、新たな亜種、パッカー、難読化ツール、メモリ内の脅威や、リモートランサムウェアに対してはあまり有効ではありません。

動的ソリューション

一方、動的ソリューションは、計算コストが高くなる傾向がありますが、その分広範囲に有効です。このような動的ランサムウェア対策ソリューションには、以下のようなものがあります。

ファイルシステムの相互作用

セキュリティソリューションの中には、ファイル拡張子の変更、高頻度の読み取り/書き込みや名前の変更操作、ランサムウェアの亜種に関連する拡張子を持つ新しいファイルを監視するものもあります。一方、他の相互作用を活用するソリューションもあります。例えば、オープンソースプロジェクトの Raccine は、多くのランサムウェア亜種が vssadmin を使用してシャドウコピーを削除するという前提に基づき、活動を監視します。Raccine は、vssadmin へのリクエストを検知し、リクエスト元のプロセスを停止します。

ランサムウェアはファイルを標的としているため、多くのアプローチがファイルシステムの相互作用に焦点を当てていることは理にかなっているように思われます。しかし、その多くは、サンドボックス環境内での分析に依存していたり、攻撃者があまり起こさない異常パターンを検出するものであったり、監視の量が多いためにリソース集約的であったりします (ただし、監視の程度を動的に変化させることは可能です)。また、ファイルシステムベースの手法の中には、リモートランサムウェアに関しては有効でないものもあります。

フォルダの保護

Windows Defender の制御されたフォルダーアクセス (CAF) のようなソリューションは、フォルダへのアクセスを特定のアプリケーションに制限しますが、このようなアプローチは主に個人ユーザー向けです。CAF は、指定されたフォルダへの無認可アクセスを制限し、信頼できるアプリケーションのみにフォルダ内のファイル変更を許可することで、ランサムウェアからファイルを保護します。しかし、社内ネットワークでは、フォルダとアプリケーションの綿密かつ継続的な管理が必要となるため、この方法はあまり実践的ではないかもしれません。さらに、ランサムウェア攻撃では一般的な手口である、信頼されたアプリケーションの制御権を奪い取る攻撃にも対処できません。

API コール

一部のセキュリティソリューションは、プロセスによって呼び出される API コールを評価し、疑わしいコールや珍しいコールにフラグを立てたり、潜在的に悪意のあるコールシーケンスを判断したりします。

ほとんどのランサムウェアは API コールを使用していますが、一部の亜種はこれらを偽装するために回避手段を使用しています (特に、プロセスインジェクションで使用される CreateRemoteThread や VirtualAllocEx などの API コール、または暗号化に関連する API コールの場合に顕著です)。カーネルレベルでの API コールの監視は有意義なアプローチであるように思えますが、この種の監視はリソースを大量に消費し、誤検出を発生させる可能性があり、かつ大規模に実装するのは困難です。さらに、リモートランサムウェアに関しては、ランサムウェアのプロセス自体が攻撃を受けるホスト上にない可能性があるため、このアプローチは成功しないことがあります。

ハニーファイル

多くのセキュリティ製品は、ランサムウェア対策として「ハニーファイル」(別名「おとりファイル」、「ベイトファイル」、「カナリアファイル」) を採用しています。ディレクトリに置かれ、正規のユーザーには触れさせないようにする目立たないファイルです。これらのファイルが何らかのプロセスによってアクセスまたは変更された場合にユーザーレベルまたはカーネルレベルの個別の監視システムが起動され、その時点でアラートが生成されます。

ハニーファイルは軽量で手間がかからず、攻撃が発生している可能性を早期に警告できます。しかし、ハニーファイルにはいくつかの注意点があります。設計上、ハニーファイルがトリガーされたときにはすでに攻撃が進行しているため、防御側はすべての警告を深刻に受け取り、可能な限り迅速に対処しなければなりません。また、ハニーファイルは戦略的に配置する必要があります。通常の正規ユーザーやプロセスが誤ってハニーファイルに引っかからないよう、ファイルシステムの奥深くに配置する必要がある一方、重要なドキュメントがアクセスされる前に暗号化されてしまうほど奥深くに配置してはいけません。

フィンガープリント

あまり一般的ではありませんが、ネットワーク (C2) トラフィック、CPU 消費量、CPU シグナルなど、特定の悪意のある攻撃パターンを「フィンガープリント」する手法もあります。

ネットワークトラフィックに関しては、現代の人間主導型ランサムウェア攻撃では、攻撃者が被害者ごとにランサムウェアのバイナリを独自に調整し、コンパイルする点が注目に値します。この手法は、攻撃の検出の阻止と、復号プロセスの複雑化を意図した戦略的な手法です。このカスタムされたランサムウェアには通常、被害者ごとに固有のランサムノートが含まれており、「ファイアアンドフォーゲット」(半自律型) 方式で展開されます。暗号化プロセスは被害者固有の埋め込み公開鍵を活用してマルウェア内で自己完結するため、被害者が攻撃者に直接連絡する必要はありません。

TDT (Threat Detection Technology) と呼ばれる Intel の新技術は、ハードウェアレベルでランサムウェアを検出する能力を提供します。SE Labs によるレビューでは、多様な暗号化スキームに対して優れた有効性が示されています。しかし、TDT は特定のインテル CPU に限定されており、ARM や AMD のアーキテクチャには導入されていません。TDT は特定のランサムウェアファミリの暗号化プロファイルから得た CPU パフォーマンス信号に基づいて訓練された機械学習モデルに依存しているためです。インテルによって訓練されたこのモデルは、ベンダーのサポートに依存しており、リモートからの暗号化では機能しません。この技術の欠点は、LockBit や Akira のような一部のランサムウェアが、各ファイルの一部のみを暗号化するように意図的に設定されていることです。この設定により、短時間でより多くのファイルに影響が及ぶようになるため、攻撃の被害が拡大します。また、Intel TDT による検知は、すでに相当数のファイルが侵害された後に行われます。

A process trace screenshot showing commands relating to Akira ransomware. Some of the text has been redacted. Part of the first entry is underlined in red, as this command shows the ransomware operator is targeting remote files and is only encrypting 3% of each file

図 2: リモートデータのみを攻撃し、各ファイルの 3% のみを暗号化する Akira ランサムウェア

テレメトリを参照した自動封じ込め

最新のエンドポイント保護ソリューションのほとんどは、インシデント対応とアラート分析のためにデータをクラウドに送信します。しかし、アクティブな人間主導型ランサムウェア攻撃の詳細をアラートのテレメトリから自動的に関連付けるのには数分から数時間かかることがあります。この待機時間は、設定されたテレメトリレポートの頻度、他のアラートシグナルの存在、複数の保護対象マシンから特定のイベントを組み立てて関連付けるためのクラウドの処理能力によって異なります。

検出後、管理対象デバイスへの封じ込めポリシーの展開などの自動対応によって、侵害が疑われる特定のユーザーアカウントの隔離などが可能になります。この対応は、認証されたアカウントから実行される差し迫った、または進行中の (リモート) ランサムウェア暗号化攻撃の防止に役立ちますが、このポリシーの配信自体にも時間 (最大数時間) がかかる点に注意が必要です。さらに、攻撃者が管理対象マシン上で事前のアラートをトリガーすることなく暗号化を開始したり (上述の通り、攻撃の 80% は管理されていないマシンが関与しています)、別のユーザーアカウントから暗号化プロセスを開始することを選択したりした場合は、クラウド主導の効果的な動的封じ込め戦略が必ずしも有利な選択とは限りません。しかし、場合によっては役に立つこともあります

ロールバック

一般的に、動的なランサムウェア対策ソリューションでは、ある程度のデータ暗号化やデータ改ざんが発生して初めて攻撃を検出できます。その結果、一定数のファイルが暗号化されてしまう可能性が高く、影響を受けたファイルを復元するためのバックアップと復元機能が必要になります。

エンドポイント保護製品の中には、暗号化されていないファイルバージョンに戻すために特定の時点でのデータのスナップショットを生成する Windows の機能であるボリュームシャドウコピーを活用するものがあります。この「シャドウコピー」は、ファイルやボリュームが使用中であっても、その状態をキャプチャします。とはいえ、この方法には限界があります。一般的に、攻撃者はシャドウコピーを削除します。ネットワークにマップされたドライブ上のファイルは保護されません。効果的なロールバックのためには、次回の定期的なスナップショット (通常は 4 時間ごとに実行) の前にランサムウェアインシデントを検出し、対処しなければなりません。また、前述の通り、ほとんどの攻撃は営業時間外に発生するため、この方法を使用した修復の試みは難しい可能性があります。

まとめ

一般的に、これらのアプローチの多くは、ランサムウェアの活動を示す行動特性を定義し特定することで、ランサムウェアの「悪意」を探すことに重点を置いています。一見合理的な対応策のように思えますが、攻撃者はこれらの特徴を偽装または難読化することで、検出を回避しようとするという決定的な弱点があります。一方、CryptoGuard は異なるアプローチを採用しています。

CryptoGuard

CryptoGuardは、以前は HitmanPro.Alert という名称であり、2016 年以降は Intercept X の一部となっています。2013 年に開発され、攻撃者が他のすべての保護を侵害し、暗号化を開始する段階におけるローカルランサムウェアおよびリモートランサムウェアの両方に対する最後の防御層となることを意図して開発されました。WannaCry、LockBit、Revil ランサムウェアのブロックなど、成功例は多数あります。ソフォスはランサムウェアの動向を注意深く見守っていますが、CryptoGuard は必要十分な機能を備えているため、長年にわたってあまり変化していません。

非対称アプローチ

上記のアプローチの大半とは異なり、CryptoGuard は攻撃者やランサムウェアの実行ファイルや悪意のある行動パターンを探しません。もちろん、ソフォス製品を含む他のセキュリティソリューションも、これらのアプローチを採用しています。上記のアプローチは、攻撃者がファイルの暗号化段階に到達するのを阻止することを理想とする多層防御の基本部分です。しかし、CryptoGuard 自体は、これらの防御層が迂回された場合に備えて、より非対称的なアプローチを採用しています。

CryptoGuard は「悪意」を探すのではなく、数理アルゴリズムでファイルのパターンを分析することで、ファイルの内容に焦点を当てています。プロセスが読み取り/書き込みのためにファイルを開くたびに、CryptoGuard のミニフィルタードライバ (Windows OS カーネル内で動作します) は、読み書きされたデータのヒストグラムを継続的に生成します。これらのヒストグラムは、データの全体的なパターンと特性を理解するのに役立ちます。ヒストグラムはエントロピーを決定するために評価され、読み書きされたデータが復号化されているか、圧縮されているか、暗号化されているかを統計的に分析します。内蔵の評価ツールは数理モデルを用いてデータを分類します。この分析は、OS がリクエストプロセスに提供するのと同じメモリバッファを使用するため、追加のディスク入出力 (I/O) が発生せず、非常に効率的です。

A flowchart diagram showing how CryptoGuard works

図 3: CryptoGuard の動作の概要

この機能により、例えば、ネットワーク上の保護されていないリモートマシンが、ソフォス製品で保護されたファイルサーバー上の共有ドキュメントを攻撃する場合でも、非対称な保護が提供されます。前述のとおり、人間主導型ランサムウェア攻撃の多くは、リモートマシン上の共有データも暗号化しようとします。このような場合、ランサムウェア自体は保護されたリモートマシンでは実行されません (攻撃者が意図的にリモートマシンには展開しないか、エンドポイント保護によってブロックされるためです)。その結果、ランサムウェアのバイナリや攻撃者が制御する (暗号化を実行する) プロセスは、標的となるデータを保持するマシンからは観測できません。

したがって、攻撃を受けたマシン上では悪意のあるコードが検出されないため、ウイルス対策、機械学習、セキュリティ侵害の指標など、攻撃者の存在や悪意のあるコードを特定することに重点を置いたテクノロジーは (たとえ数年前の有名なサンプルによる暗号化であっても) 完全に無意味となります。しかし、CryptoGuard は、リモートマシンが共有フォルダ内のドキュメントを暗号化されたバージョンに置き換えたことを認識し、リモートマシンの IP アドレスをブロックして変更を取り消すというアクションを自動的に実行します。さらに、変更されたファイルの一時的なバックアップを作成し、大量の暗号化が検出された場合に変更をロールバックできるようにします。また、ランサムウェアがファイルを暗号化したフォルダ内のランサムノートの展開も検出できます。その結果、設計上の目的とは異なりますが、データ侵害の事例を特定することもあります。

ゼロトラスト

攻撃者は、暗号化を実行するために、既存のプロセスを悪用したり、悪意のある DLL をロード (DLL サイドローディング) する本来は正規のプロセスをパッケージ化したりすることがあります。暗号化は、攻撃者のコードを実行し、文書を暗号化する正規プロセスの認証情報を使用して実行されます。

この実例として、Kaseya VSA インシデントが挙げられます。このインシデントでは、REvil の攻撃者が、やや古く脆弱な Windows Defender の実行ファイルにサイドロードされる悪意のある DLL を埋め込みました。保護ソリューションは通常 Microsoft によって署名されたコードを信頼するため、この攻撃者は意図的に Defender を狙いました。さらに、DLL はサンドボックス環境では実行ファイルのように詳細に検査することができないため、より早く「承認」される可能性があります。

上述の事例でも、ソフォス製品は REvil のペイロードと REvil 固有のコード証明書の両方を検出しました。また、Kaseya の保護が除外されたため REvil ドロッパーがマシンにインストールされましたが、CryptoGuard はランサムウェアを検出しました。これは、CryptoGuard はこのような保護除外の制約を受けず、保護されたドライブ上のどこでもファイルの暗号化をブロックするためです。

概要

結論

ランサムウェア対策に万能薬はありません。効果的な防御策には、脆弱性の修復および設定の見直しから、ユーザー教育やセキュリティソリューションまで、無数の防御層を含める必要があります。しかし、組織がどの防御層をいくつ採用していても考慮すべき重要な点は、他のすべての対策が失敗し、攻撃者がランサムウェアを実行できる状態になった時の、最後の防御層の堅牢性と有効性です。最後の防御層では、本記事で取り上げたソリューションが本領を発揮します。

これらのソリューションは多種多様で、数多くの異なる行動特性や活動をカバーしています。その多くは、拡張性、汎用性、費用対効果の点で大きく異なり、明確な長所と短所があります。重要な共通点は、ほとんどのソリューションが、API コール分析、ハニーファイル、ある種のフィンガープリントなど、何らかの方法で「悪意を検出する」ことに焦点を当てていることです。この方法は必ずしも悪いことではなく、多層化された多様な防御策は堅実なアプローチです。しかし、上述の通り、Intercept X の CryptoGuard のアプローチは少し異なっており、より非対称的です。ランサムウェアやそのオペレーターの行動ではなく、ファイルの内容に焦点を当てています。

ランサムウェアは進化を続けており、対応するソリューションや手法もますます増えていくでしょう。過去 10 年間と同じように、私たちはランサムウェアと、ランサムウェアを検知・防止するために設計されたソリューションの両方の変化を追跡し続けます。

リモートランサムウェア (リモート暗号化) に関するホワイトペーパーも、ぜひご覧ください。