ESET社は、エアギャップネットワークを標的としたマルウェアフレームワークの仕組みについて調査・分析し、その攻撃手法を比較してまとめました。
本記事はESET Japanが提供する「ESETブログ」に掲載された「エアギャップネットワークへの侵入:国家主導型のサイバー犯罪グループによる15年間にわたる攻撃」を再編集したものです。
![15年間にわたるエアギャップネットワークを標的としたマルウェアフレームワークの攻撃手法](/files/user/malware_info/images/special/220118/0.jpg)
エアギャップとは、インターネットや安全でないLANなどのネットワークから物理的に隔離して、最も機密性の高いネットワークを保護するために使用されるセキュリティ対策の1つです。2020年の前半だけでも、エアギャップネットワークへの侵入を目的とした、これまで知られていなかった悪意のあるフレームワークが4つ見つかっています。ESETがこれまでに把握したフレームワークは合計で17個になりました。ESET Researchは、これまでに把握している各フレームワークを再検証し、その攻撃の手法を比較してホワイトペーパー(英語のみ)にまとめました。
ホワイトペーパーの要点:
- すべてのフレームワークは、何らかのスパイ活動を実行するように設計されている。
- すべてのフレームワークは、データ転送の物理的な媒体としてUSBメモリを使用して、標的のエアギャップネットワークとデータをやり取りしていた。
- 推測の域を出ていない高度な物理的通信が実行された例や、その疑いがある事例も見つかっていない。
- 75%以上のフレームワークは、エアギャップシステムに最初に侵入するため、また、エアギャップネットワーク内で移動するために、USBドライブ内に仕込んだ悪意のあるリンクファイルまたは自動実行ファイルを使用していた。
- この10年間にWindowsではリンクに関連するリモートコード実行の脆弱性が10件以上見つかっており、マイクロソフトによってパッチが適用されている。
- すべてのフレームワークは、Windowsシステムを攻撃するために作成されている。ほかのOSを標的としてビルドされたマルウェアコンポーネントや攻撃に利用されていることが疑われるマルウェアコンポーネントの痕跡は見つかっていない。
このホワイトペーパーでは、エアギャップネットワークを標的としたマルウェアフレームワークの仕組みについて説明し、各フレームワークにおけるTTPの特徴を比較します。また、現在までに特定されたすべての悪意のあるフレームワークの主な攻撃手法と、エアギャップネットワークを保護するために役立つ検出および防御についても解説します。
ESETは、10以上の組織が長年にわたる調査で明らかにした情報を使用しながら、技術的な詳細を把握するための分析を行いました。これにより、マルウェアフレームワークを包括的に理解して、エアギャップネットワークのセキュリティを向上させることが可能になります。さらに、今後の攻撃を検出して防御する能力を向上するために役立つであろうポイントをまとめました。
今回徹底的に調査した結果、15年前に作成されたフレームワークであっても、いくつかの大きな共通点があることが判明しました。今回の調査では、特に、標的ネットワーク内の接続側とエアギャップ側の両方のシステムで使用されているマルウェアの実行メカニズムと、エアギャップネットワークにおけるマルウェアの機能(常駐化、偵察、拡散、スパイ活動、さらに少なくとも1つの事例で確認されている破壊活動)を明確にするように努めました。また、エアギャップがあり、分断され孤立したネットワークで実行されるコンポーネントを制御するために使用される通信およびデータ転送チャネルも明らかにしました。また、体系的に分析し、結果を文書化することで、今後検出される可能性があるエアギャップマルウェアを容易に特定して把握できるようにしました。
調査を行ったすべてのフレームワークにはいくつかの相違点や微妙な差違がありましたが、エアギャップ環境には固有の制約が存在していることから、今回の分析では、実装手法に注目して、これらの要素がどれだけ異なっているのかを明らかにしています。これらの調査から得られた情報をもとに、実環境で確認されているエアギャップネットワークへの攻撃を検出する方法を紹介します。
ESETがこのレポートを公開した目的は、実際の攻撃で使用されたことがないにもかかわらず、理論的な多くのエアギャップネットワークの攻撃手法が近年注目を集めています。しかし、それらの対応を検討する前に、これまでに実際に確認されており、事実上すべてのフレームワークで使用されている攻撃の手法を適切に防御するための防御体制を構築することが重要であることを理解してもらうことです。
被害者学、攻撃者のプロファイル、タイムライン
エアギャップネットワークとは、セキュリティを高めるために、ほかのネットワークから物理的に隔離されたネットワークです。エアギャップは、最も機密性が高く、価値の高いシステムを相互に接続しているネットワークを保護するために使用される手法です。エアギャップネットワークは、必然的にAPTグループなどの多くの攻撃者の標的となっています。
エアギャップネットワークを攻撃するために設計された既知のマルウェアフレームワークを操っている攻撃者は、すべてAPT(持続的標的型攻撃)グループに属していると断言できます。これらのフレームワークはさまざまなサイバー犯罪組織が利用していますが、その目的がスパイ活動であることはすべての組織で共通しています。
下図のように、いくつかのフレームワークを使用している組織は、明確に特定されている場合もあります。
また、帰属が明確ではなく、推測や議論の対象となっているフレームワークも存在します。たとえば、Agent.BTZは、Turlaグループに帰属すると考えられていましたが、専門家によっては異なる見解も存在します。
今回の調査の対象とした3つの代表的なフレームワークを紹介します。これらのフレームワークは、Vault7から流出した文書に記載されており、2013年から2016年の間に運用されていたという説明がありますが、実際に分析可能な検体は見つかっていません。
下図は、各フレームワークの活動期間を、最初に公開されたレポートの時期と合わせて、過去にさかのぼって示したものです。いくつかのフレームワークは検出されるまで数年間も活動し続けていることが分かります。これは、このようなフレームワークを検出することがいかに困難であるかを示しています。
なお、公表されている情報から活動期間を特定しています。研究者が観察された事実からは正確な活動期間を特定できなかった場合もありますが、合理的な仮説から概算または推測している場合があります。
エアギャップシステムの分析 - マルウェアの視点から
エアギャップネットワークにあるシステムを攻撃または侵害するには、システムの運用には通常は用いられることのないチャネルを介して攻撃ツールが通信する能力を開発しなければなりません。エアギャップネットワークはインターネットから隔離されていることから、これは明らかです。
技術的に言えば、「エアギャップマルウェア」についての正確な定義は存在しません。このため、ESET社内ではさまざまな議論が交わされました。最終的には本レポートの趣旨に沿って、エアギャップネットワークを攻撃するマルウェアを以下のように定義しました。
エアギャップシステムと攻撃者との間における双方向(コマンドの送信と応答)または一方向(データの外部への流出)の秘密のオフライン通信の仕組みを実装するマルウェア、または複合的に動作するマルウェアコンポーネントのセット(フレームワーク)。
ESETでは、これらのフレームワークを接続側(コネクテッド)とオフライン側の2つに大きく分類しました。ほぼすべてのフレームワークは、攻撃者とエアギャップネットワーク側にある侵害されたシステム間をエンドツーエンドでリモート接続できるように作成されています。ESETはこれを「コネクテッドフレームワーク」と呼んでいます。このフレームワークの仕組みを以下に示します。
最も基本的なコネクテッドフレームワークは、データを外部に流出するために攻撃者がオンラインで接続する能力のみを実装しています。最も強力なフレームワークでは、双方向の通信プロトコルがサポートされています(黄色の矢印)。攻撃者は、接続側にある侵害したシステムを経由して、エアギャップネットワークに展開したマルウェアにコマンドを送信します。このコマンドは、多くの場合、USBドライブに設定された秘密の通信チャネルから実行されます。このような仕組みによって、攻撃者はエアギャップネットワークで任意のコードをリモートから実行しています。
稀なケースですが、インターネットに接続するシステムをまったく利用しない攻撃シナリオもあります。ESETはこれを「オフラインフレームワーク」と呼んでいます。このようなケースでは、組織内のどこかにオペレーターや内部の協力者が存在しており、コネクテッドフレームワークで通常見られる接続機能を代行しています。たとえば、エアギャップ側でマルウェアを実行するための悪意のあるUSBドライブを準備し、エアギャップシステムでそのマルウェアを実行し、収集したデータをUSBドライブから抽出したり、エアギャップ側のシステムに追加のコマンドを送り込んだりします。
このように明確に定義しておくと、すべてのフレームワークに共通する主な特徴を比較できるようになります。
接続側の攻撃実行方法
コネクテッドフレームワークの場合、エアギャップネットワークのセキュリティを侵害するために、最初にインターネットに接続されたシステムに攻撃のための足掛かりを築く必要があります。APTについては、攻撃の発生源について正確に特定できていない場合もあります。しかし、これまでに確認されている事例では、悪意のある添付ファイルやリンク、USBワームを添付した電子メールなど、一般的なマルウェアで見られるのと同じ手法が使用されています。
エアギャップ側における最初の攻撃方法
攻撃者がどのようにエアギャップシステムで悪意のあるコードを実行しているのかという問題は、今回の調査の中でも最も重要な問題の1つです。各フレームワークは独自の手法を採用している部分もありますが、すべてに共通するのは武器化したUSBメモリを使用していることです。コネクテッドフレームワークとオフラインフレームワークの大きな違いは、USBドライブを武器化する方法にあります。コネクテッドフレームワークでは通常、新しいUSBドライブの挿入を監視し、エアギャップシステムのセキュリティを侵害するために必要となる悪意のあるコードを自動的に配置するためのコンポーネントをコネクテッドシステムにデプロイします。一方、オフラインフレームワークでは、攻撃者が自分のUSBドライブを武器化することが前提となっています。興味深いのは、これらのフレームワークが、標的のシステムでペイロードを実行させるために長期間にわたって使用してきたさまざまな手法です。これらの手法は大きく3つに分類できます。
- 自動実行:ユーザーによる操作なしで、悪意のあるコードを実行する方法です。このために何らかの脆弱性を攻撃しています。悪用されている脆弱性の中でも最も有名なのはCVE-2010-2568です。これは、「Stuxnet LNKエクスプロイト」という別名があります。
- 非自動実行(ユーザーに気が付かれることなく実行する方法):攻撃であることを気が付かれることなく、一般のユーザーを騙して標的のシステム上で悪意のあるコードを実行させる手法です。たとえば、USBドライブに感染しているおとり文書やトロイの木馬のようなソフトウェアインストーラーを仕込んでおいて、悪意のあるコードを実行する方法があります。
- 非自動実行(意図的に実行する方法):悪意のあるコードがUSBドライブに隠ぺいされており、標的システムに物理的にアクセスできる人間が意図的に実行する必要があります。
エアギャップ側で実行される機能
ESETは、エアギャップ側のシステムで利用可能な3つの最も重要なフレームワークの機能である、常駐化、偵察と諜報活動、拡散と水平方向への移動について調査しました。その結果、運用の目的と複雑さについてはフレームワークによって大きな違いがあることが明確になりました。たとえば、ファイルを窃取するタスクがハードコードされているものの、常駐化の仕組みは実装されていない奇襲目的で作成されたフレームワークもあれば、洗練された手法で検出されることなく常駐する仕組みと、エアギャップネットワークで効果的に拡散する仕組みを実装しているフレームワークも存在していました。詳細については、本ホワイトペーパーのセクション4.3を参照してください。
通信と外部にデータを流出させるためのチャンネル
これは、エアギャップネットワークを攻撃するマルウェアを研究する上で、最も重要な特性です。このブログでは、「エアギャップマルウェア」を明確に定義し、エアギャップ側のシステムを攻撃するためのフレームワークを「コネクテッド」と「オフライン」の2つのカテゴリに分けました。
これらの2つのカテゴリにおける通信と外部へのデータ流出の2つの機能には大きな違いがあります。オンラインフレームワークでは、下図のように、攻撃者と接続側にある侵害されているホストを接続するオンラインの従来型のC&Cとの通信チャネルと、接続側にある侵害されているホストとエアギャップシステムを接続するオフラインの通信チャネルが必要となります。
一方、オフラインフレームワークでは、オフラインの通信チャネルのみが必要です(下図参照)。
オフラインの通信チャネルは、エアギャップマルウェアの定義の根幹となる核心的部分です。この通信チャネルを使用して、マルウェアはエアギャップシステムの防御レイヤーを回避し、標的のネットワークと情報をやりとりしたり、場合によっては情報の収集のみを実行したりします。
オフラインチャンネルは、エアギャップシステムで特定の物理的なデータ転送メディアを使用して実行される特定の通信プロトコルです。
エアギャップネットワークへの攻撃について最初に疑問に思うのが、隔離されているエアギャップシステムにどのようにアクセスするかということではないでしょうか?実際、これまで明らかになっていない物理的なデータ転送メディアに関する新しい研究も定期的に公開されています。この分野で最も精力的に活動している研究者の1人は、イスラエルにあるネゲブのベングリオン大学でサイバーセキュリティの主任研究員を務めるMordechai Guri氏です。Guri氏と彼のチームは、エアギャップ環境で隔離されているシステムから情報を転送する多くの手法が可能となることを実証しています。これらの手法はさまざまな攻撃で利用することができ、利用可能な帯域幅も異なります。
このような手法を利用する攻撃が実環境で確認されているという指摘もありますが、セキュリティ業界の専門家が分析して調査結果を公開しているケースはありません。これまでに公開されているエアギャップネットワークを標的とした悪意のあるフレームワークでは、エアギャップシステムから情報を転送するための物理的なデータ転送メディアとしてUSBメモリを使用しています。
次の表は、約半数のフレームワークが一方向のプロトコルしか実装していないことを示しています。このような攻撃シナリオでは、情報はセキュリティが侵害されたエアギャップシステムから攻撃者にしか流れず、攻撃者からエアギャップシステムに情報が流入することはありません。つまり、エアギャップ側で動作するマルウェアコンポーネントは、アップデートのためのメカニズムやバックドア機能を実装しておらず、ハードコードされている特定のタスク(通常は偵察や情報窃取)を実行し、その情報をUSBドライブ経由で攻撃者に戻すように設計されています。攻撃者は、侵害されたシステムを制御するためのアップデートやコマンドを送信することはできません。
双方向のプロトコルを実装したフレームワークでは、攻撃者がエアギャップ側のホストを柔軟に制御できます。興味深いことに、双方向のプロトコルを実装しているすべてのフレームワークが、この機能を最大限に活用しているわけではありません。実際には、特定のパターンに一致するファイルを盗んだり、USBドライブに存在する特定のファイルを実行したりするなど、決まったいくつかのコマンドしか実装していません。
エアギャップネットワークの保護
エアギャップネットワークをサイバー攻撃から保護することは、非常に複雑なテーマであり、いくつもの専門分野の高度な知識が求められます。このレポートは、ESETにこの問題を解決する魔法のような方法があると主張しているわけではありません。しかし、既知のフレームワークがエアギャップ環境でどのように動作しているのかを理解し、一般的な悪意のある活動を検出してブロックする方法を検討しておく必要があります。
このホワイトペーパーのセクション5では、調査・研究の対象となったフレームワークの多くに共通している悪意のある活動を検出・ブロックするために役立つ情報を説明しています。これらの防御策は決して新しいものではありません。ESETはデータに基づいたアプローチを提唱しています。これらのアプローチが、防御策を導入・構築する場合の優先順位を決定するときに役立つことを願っています。実環境で悪用されたことのない手法を阻止するために貴重な労力を費やすのではなく、既知のマルウェアの手法を防御できる体制を構築することが重要です。
結論
エアギャップネットワークを攻撃するフレームワークは、完全にリモートで操作される「コネクテッドフレームワーク」と、その環境にいるインサイダーなどの人的な資源に操作の一部を依存する「オフラインフレームワーク」の2つに分けられます。エアギャップシステムに最初にアクセスしたり、ネットワーク内で攻撃を拡散したり、窃取した情報を外部に流出させたりするために多様な手法が使われていますが、すべてのフレームワークに共通する目的は、標的をスパイすることにほかなりません。
このようなフレームワークを検出・分析することは、重要な課題です。これらのフレームワークは、複数のコンポーネントから構成されている場合があります。実際の攻撃を完全に把握するためには、すべてのコンポーネントを一緒に分析する必要があります。
また、ESETのようなセキュリティベンダーは、自社製品が動作しているシステムで新たな脅威を検出するために、テレメトリ(監視データ)を利用しています。しかし、エアギャップネットワーク内で動作するシステムは、このようなテレメトリを送信することはありません。そのため、エアギャップネットワークを標的とする新しいマルウェアを検出するまでには長期間が必要となるという厄介な課題も存在しています。
マルウェアがどのようにエアギャップネットワークを攻撃するのかを理解することは、検知と保護ための対策を確立し、優先順位を付けるために役立ちます。たとえば、すべてのフレームワークが、エアギャップシステムをスパイするために、何らかの方法でUSBメモリを使用しています。電磁波盗聴(TEMPEST)への対策が必要となるような秘密の通信チャネルを使用しているフレームワークは存在しません。