コンテンツにスキップするには Enter キーを押してください

Linux io_uring PoC ルートキットがシステムコールベースの脅威検出ツールを回避

Image

サイバーセキュリティ研究者たちは、Curingと名付けられた概念実証(PoC)ルートキットを示しました。これは、io_uringと呼ばれるLinuxの非同期I/Oメカニズムを利用して、従来のシステムコール監視を回避します。

これにより、「Linuxのランタイムセキュリティツールに大きな盲点が生じる」とARMOは述べています。

「このメカニズムにより、ユーザーアプリケーションはシステムコールを使用せずにさまざまなアクションを実行できます」と同社はThe Hacker Newsに共有したレポートで述べています。「その結果、システムコール監視に依存するセキュリティツールは、io_uringだけで動作するルートキットに対して盲目になります。」

io_uringは、2019年3月にLinuxカーネルバージョン5.1で導入され、カーネルとアプリケーション(つまりユーザースペース)の間でサブミッションキュー(SQ)とコンプリートキュー(CQ)と呼ばれる2つの循環バッファを使用して、非同期的にI/Oリクエストの送信と完了を追跡するLinuxカーネルシステムコールインターフェースです。

ARMOによって考案されたルートキットは、コマンド・アンド・コントロール(C2)サーバーと感染したホストとの間で通信を促進し、システムコールを使用せずにコマンドを取得して実行することができます。その代わりに、同じ目的を達成するためにio_uringを使用します。

現在利用可能なLinuxランタイムセキュリティツールのARMOによる分析では、FalcoTetragonの両方が、システムコールフックに大きく依存しているため、io_uringベースの操作に対して盲目であることが明らかになりました。

io_uringによって引き起こされるセキュリティリスクは、以前から知られていました。2023年6月、Googleは、Linuxカーネルインターフェースの使用をAndroid、ChromeOS、およびそのプロダクションサーバー全体で制限することを明らかにしました。これは「強力なエクスプロイトのプリミティブを提供する」ためです。

「一方でシステムコールへの可視性が必要であり、他方で脅威を効果的に検出するためのカーネル構造と十分なコンテキストへのアクセスが必要です」とARMOのセキュリティ研究責任者であるAmit Schendelは述べています。

「多くのベンダーは最も簡単な道を選びます:システムコールに直接フックすることです。このアプローチは迅速な可視性を提供しますが、制限があります。特に、システムコールが常に呼び出されるとは限らないという点です。io_uringはそれを完全に回避できる、良い例です。」

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です