Critical Flaw Exposes Linux Security Blind Spot: io_uring Bypasses Detection
2025/04/28 SecurityOnline — ARMO の研究者たちが、Linux ランタイム・セキュリティ・ツールに存在する、深刻な脆弱性を発見した。明らかにされたのは、従来の監視ソリューションでは検知されないルート・キットの動作を、io_uring インターフェイスが可能にするという仕組みである。この発見が示すのは、Falco/Tetragon などに加えて、Microsoft Defender for Endpoint などの広く使用されている多くのツールが、このメカニズムを悪用する攻撃を、検知できないという現実である。

ARMO は、「このメカニズムにより、ユーザー・アプリケーションはシステム・コールを使用することなく、さまざまなアクションを実行できる。Linux 5.1 で導入された io_uring は、ユーザー空間とカーネル空間の間で共有リングバッファを使用することで、オーバーヘッドを大幅に削減する、高性能な非同期 I/O インターフェイスである」と説明している。
さらに ARMO は、「io_uring により効率が大幅に向上するが、多くの Linux セキュリティ・ツールの基盤となっている、従来からのシステム・コール監視の回避が発生してしまう。つまり、システム・コール監視に依存するセキュリティ・ツールは、io_uring だけで動作するルートキットを検知できない」と警告している。
この脅威を実証するため、ARMO は Curing を開発した。それは、検出可能なシステムコールを一切使用せずに、Command and Control サーバとの通信を io_uring 操作のみで行う、完全に機能するルートキットである。この PoC エクスプロイトを悪用する攻撃者は、以下の操作が可能なことが示されている。
- データの窃取
- コマンドの実行
- ネットワーク内でのラテラル・ムーブメントの実行
上記のアクションを実行しても、従来からの監視ツールは検知できない。
Curing を利用して ARMO は、複数の オープンソース/プロプライエタリ Linux セキュリティ製品テストしたが、その結果は驚くべきものだった:
- Falco:io_uring ベースの操作を全く検出できない。
- Tetragon:デフォルトのポリシーでは io_uring アクティビティを検出できないが、Kprobe と LSM フックを使用することで、より詳細な可視性を設定が可能だ。
- Microsoft Defender for Endpoint:io_uring を使用する、複数の悪意のアクティビティを検出できなかった。検出できたのは、Fanotify により監視されるファイルの変更に限定されていた。
ARMO は、「私たちがテストした、数多くの有名なプロプライエタリ製品で、この検出ギャップが見られた」と述べている。
今日の Linux EDR ツールは、eBPF ベースのエージェントに大きく依存しており、実装の容易さからシステム・コールの監視を優先している。その一方で ARMO は、このアーキテクチャにおける深刻な欠陥を指摘している。
ARMO は、「ほとんどのサイバー・セキュリティ・ベンダーは、この問題に依然として対処していない。彼らは、アプリケーション/カーネルの機能の変更や、多様性に影響を受けない、簡単で分かりやすいソリューションに依存し続けている」と付け加えている。
ARMO は、この盲点を解消するために、いくつかの戦略を推奨している:
- 異常な io_uring の使用状況の監視:アプリケーションにおける、io_uring の予期しない使用に対してフラグ付けする。
- KRSI (Kernel Runtime Security Instrumentation) の採用:Linux の LSM フレームワークと統合し、より深く構造化されたカーネル・イベントに対する可視性を実現する。
- システム・コール以外のフック:安定した Kprobe などのフック・ポイントを調査し、カーネル全体のカバレッジを向上させる。
ARMO は、「KRSI は、より回復力のある検出メカニズムを提供する。直接のシステム・コール・フックとは異なり、LSM フックは、セキュリティ関連のアクションに対して、一貫性と信頼性の高いカバレッジを提供する」と指摘している。
Linux の I/O 機能である io_uring が、従来の監視ソリューションでは検知されない脆弱性に成り得ることが判明しました。この手法は、不可視な攻撃経路を提供し、マルウェアやランサムウェアによる悪用が懸念されるものであり、すでに Curing という PoC が公開されています。ご利用のチームは、十分にご注意ください。よろしければ、Linux で検索も、ご参照ください。
You must be logged in to post a comment.