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

『RingReaper』はLinux EDRを巧妙にすり抜ける

フードをかぶった人物がマスクで顔を隠し、暗い背景にプログラムコードが表示されている

出典:Kalashnikov Dmitrii / Shutterstock

今年初めに登場したステルス性の高いポストエクスプロイトツールは、比較的新しいLinuxカーネルのI/O操作インターフェースを悪用するマルウェアの、現実世界での最初の実例の一つかもしれません。これは、エンドポイント検知・対応(EDR)システムを回避するためのものです。

「RingReaper」と呼ばれるこの高度なマルウェアは、Linuxカーネルのio_uringフレームワークを利用し、従来の監視ツールの目を逃れます。

学術的好奇心から現実の脅威へ

2019年にLinuxカーネルバージョン5.1で導入されたio_uringは、アプリケーションが非同期I/O操作(ファイルの読み書きや送受信など)を、従来のシステムコールよりも効率的に行うことを可能にするインターフェースです。io_uringを利用するアプリケーションは、通常I/Oリクエストを共有メモリキューに配置し、カーネルがそれらをバッチ処理することで、個々のI/Oコールの回数を減らし、全体のパフォーマンスを向上させます。

RingReaperは、従来のシステムコールではなくio_uringを通じてファイルやネットワーク操作を行うことで、エンドポイント検知ツールが悪意ある挙動を見つける際に頼りにしている痕跡を減らし、事実上それらに対して不可視となります。

2025年までは、このようなio_uringの悪用は主に学術的または概念実証レベルにとどまっていたと、Picus SecurityのセキュリティリサーチエンジニアであるSıla Özeren氏は述べています。同社は今週、このマルウェアの技術分析を公開しました。

「RingReaperは、従来のシステムコールをio_uringの操作(io_uring_prep_readやio_uring_prep_sendなど)に置き換え、ほとんどのLinux EDRが依存しているシステムコールフックを効果的に回避する、初の現実世界のポストエクスプロイトエージェントの一つです」とÖzeren氏は述べています。「これは最先端の回避手法であり、一般的なマルウェアにはまだ広まっていません。」

侵害後の悪用

Özeren氏は、RingReaperを今年中頃に登場したツールで、初期侵害後に攻撃者が使用することを目的として設計されていると説明しています。その設計から、EDRエージェントが導入されており、ステルス性が重要なエンタープライズLinuxサーバーやクラウドワークロードを標的にしていることが示唆されます。「クラウドプロバイダー、データセンター、その他の高価値なLinuxインフラを想像してください」と彼女は述べています。

Picus Securityによるこのマルウェアの分析では、io_uringを利用して、現在実行中のプロセスの発見と一覧表示、アクティブな擬似端末セッションの列挙、アクティブなネットワーク接続の発見、ログイン中ユーザーの列挙など、さまざまな目的に使用されていることが判明しました。複数のペイロードには、侵害されたシステムからデータを収集するものや、特権昇格を行うものもあり、これらもより検知されやすいシステムコールの代わりにio_uringを利用しています。

システム上で実行されると、RingReaperは自己破壊機能(これもio_uring経由)を発動し、自身のバイナリを消去し、システム上の痕跡をすべて削除してフォレンジックによる検出を困難にします。

最新の進化

RingReaperは、特にランサムウェアを配布する攻撃者による、エンタープライズのエンドポイント防御を回避する試みの最新の進化形です。その特徴は、現代のEDRツールが利用するカーネルレベルの監視フックを回避する手段としてio_uringに着目している点です。他の一般的な回避手法としては、ユーザー活動の難読化、プロセスメモリの操作、正規のシステムAPIの悪用、プロセスホローイング、DLLサイドローディングなどがあります。

昨年は、GhostEngineと呼ばれるマルチモーダルなマルウェアツールが、脆弱なドライバーの悪用に注力し、EDRエージェントを無効化しました。最近では、Crypto24ランサムウェアが、RealBindingEDRというオープンソースツールのカスタマイズ版を使ってエンドポイント防御を無効化しています。

Özeren氏は、RingReaperの作者は非常に高度な技術を持っている可能性が高いと述べています。「io_uringを使った完全なインプラントを実装するには、LinuxカーネルAPI、非同期I/O、EDRテレメトリの取得方法についての専門知識が必要です」と彼女は言います。「作者は、プロセス発見、ファイル読み取り、ネットワーク列挙などの一般的な操作をio_uringのサブミッション/コンプリーションに再設計しなければなりません。これはコピペで作れるマルウェアではなく、高度な開発スキルと十分な資金を持つアクターを示唆しています。」

ほとんどのEDRがio_uringの悪用を見逃す可能性が高いため、組織はio_uring_setupや関連するシステムコールの監視機能を実装すべきだとÖzeren氏は述べています。これらはエンタープライズアプリではほとんど使われません。また、psやnetstatのようなツールではなく、io_uring経由で/proc、/dev/pts、ネットワークテーブルを参照するバイナリに対してアラートを設定すべきです。カーネルランタイムセキュリティツールを使い、システムコール経路に関係なくファイルやソケットのアクティビティを低レベルでフックすることも推奨されます。さらに、可能であれば多くの本番ワークロードで必要とされないため、io_uringの無効化や制限も検討すべきだとÖzeren氏は推奨しています。

翻訳元: https://www.darkreading.com/cyber-risk/ringreaper-sneaks-past-linux-edrs

コメントを残す

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