本文の内容は、2025年4月25日に Michael Clark が投稿したブログ(https://sysdig.com/blog/detecting-and-mitigating-io-uring-abuse-for-malware-evasion/)を元に日本語に翻訳・再構成した内容となっております。
何が起こったのですか?
- 2025 年 4 月 24 日、セキュリティ企業ARMO は、Linux のio_uringシステムを使用して多くの Linux セキュリティツールを回避する 方法を説明した記事を公開しました。
- ARMO は、この欠陥を悪用するための「curing」と呼ばれる概念実証ツールを公開しました。このツールにより、一部の動作がセキュリティツールによって検知されなくなります。
- ARMO は、この手法が Crowdstrike、Microsoft Defender、Falco、Tetragon など、現在の多くのセキュリティ ツールに影響を与えると主張しました。
SysdigとFalcoのユーザーはどのように保護されているか
- Falco 検知エンジンは柔軟性が高く、io_uring_setup システム コールを使用して io_uring アクティビティを検知するルールを記述できます。
- io_uring の疑わしい使用を検知する 新しい Sysdig Secure ルール「Suspicious io_uring Activity Detected 」が Sysdig ユーザー向けにリリースされました。
- Falco は、io_uring によって開始された操作を検知する新しい機能をリリースしています。
オンラインの記事では、io_uring によってユーザーアプリケーションがシステムコールを使わずにさまざまな操作を行えるため、システムコールベースのツールではそれを検知できないと主張されています。しかし、io_uring を回避手段として使用するには、攻撃者がまずシステムへのアクセスを獲得する必要があります。curing ツールは root 権限を提供するものでもなく、リソースを隠蔽するものでもありません。
一度、エクスプロイトや設定ミスなどによってアクセスを獲得すると、マルウェアや侵害されたプロセスは、潜在的に悪意のある活動を検知されずに行う前に、io_uring のシステムコールを呼び出す必要があります。これは、防御回避が実行される前にそれを検知する絶好の機会を提供します。MITRE ATT&CK の用語で言えば、「初期アクセス」と「マルウェアコードの実行」は、io_uring を回避目的で使用するための前提条件です。
io_uring とは何ですか? また、どのように機能しますか?
io_uring は、従来のシステムコールを経由せずに非同期 I/O を実現するための Linux の API です。ただし、実際には io_uring 自体もシステムコールである点に注意が必要です。io_uring は、ファイル操作やネットワーク操作など、入出力を伴う多くのシステムコールに適用されます。io_uring を使用することで、これらのシステムコールをバイパスすることが可能になり、その結果としてセキュリティツールがこれらの動作を見逃す可能性があります。
io_uringができないこと
io_uring はプロセスの実行といった活動には適用されません。プロセスの実行や、プロセスに関連するデータ(たとえばオープン中のファイルディスクリプタ)を分析することに基づく脅威検知には、この回避手法の影響はありません。これはあくまで防御回避の手法であり、io_uring を使用してファイルやプロセスを隠蔽することはありません。したがって、システムユーティリティは通常通り動作します。ファイル操作のコールバックシステムであり、ファイル整合性監視によく使用される FANOTIFY も、io_uring の使用による影響は受けません。
ほとんどのコンテナ化されたワークロードには、この回避手法の影響はありません。なぜなら、デフォルトの seccomp プロファイルでは io_uring の使用が完全に無効化されているためです(例:Docker)。この回避手法が機能しないことを確実にするには、seccomp プロファイルに io_uring のシステムコールを追加(すでにブロックされていない場合)するのが最善のアプローチです。ただし、追加する前に、そのシステムコールが正当なプロセスによって使用されていないことを確認してください。
io_uring回避の検知方法
io_uring呼び出しの使用はあまり一般的ではないため、Sysdig Runtime Notable Eventsマネージドポリシーに新しいルール「 Suspicious io_uring Activity Detected(疑わしいio_uringアクティビティの検知) 」をリリースしました。このルールは、io_uring呼び出しを行う異常なプログラムを検知します。

Sysdigのお客様はio_uring回避から保護されています
弊社の階層化アプローチによる脅威検知では、攻撃のさまざまな段階をカバーします。
- Sysdig Secure のマルウェア検知ポリシーは、このセキュリティ回避や curing の影響を受けません。なぜなら、ファイル操作の検知に FANOTIFY を使用しているためです。弊社のマルウェアハッシュや Yara ルールも通常通り動作します。
- コンテナで io_uring が有効になっている場合でも、Sysdig の Container Drift ポリシーは FANOTIFY も使用するため、新しい実行可能ファイルを検知します。
- この回避手法が環境内で使用された場合、ファイル操作やネットワーク操作に関してシステムコールに依存している一部の既存ルールには影響が生じます。
Falcoコミュニティへのサポート
Falco は、2025年4月28日の週に、io_uring を通じて発生するファイルおよびネットワーク操作をネイティブに監視できる機能を追加する改善をリリースする予定です。この機能は、カーネルランタイムセキュリティインストゥルメンテーションを使用して、この回避手法に対する可視性を提供します。
Falco チームから間もなく正式なアナウンスがあります。公開され次第、このスペースを更新いたします。
まとめ
io_uring の悪用により、マルウェアが Linux セキュリティベンダーが用いている一部の検知手法を回避することが可能になります。単一の検出手段に依存しない多層的な防御戦略を採用することで、このリスクを軽減することができます。Sysdig Secure では、この防御回避を検知するルールがすでに実装されており、Falco も近日中に io_uring を通じた挙動を可視化し、ARMO が公開した手法を用いた脅威を検知できるようになる予定です。