Singularity: 高度な Linux カーネル Rootkit が ftrace を利用して EDR と eBPF を回避

Image

Singularity は、最新の 6.x カーネル向けに設計された強力な Linux カーネルモジュール(LKM)型 rootkit です。ftrace インフラストラクチャを用いた高度なシステムコールフックにより、包括的なステルス機能を提供します。

Singularity とは?

Singularity はカーネルレベルで動作する高度な rootkit で、以下の機能を提供します:

  • プロセス隠蔽:任意のプロセスをシステムから完全に不可視化
  • ファイル & ディレクトリ隠蔽:パターンマッチングを用いたファイルの秘匿
  • ネットワーク・ステルス:TCP/UDP 接続およびポートの隠蔽
  • 権限昇格:即座に root 権限を取得するための複数の手法
  • ログのサニタイズ:カーネルログおよびシステムジャーナルをリアルタイムでフィルタリング
  • 自己隠蔽:モジュール一覧やシステム監視から自身を削除
  • リモートアクセス:ICMP トリガーによるリバースシェルと自動隠蔽
  • アンチ検知:eBPF ツールや io_uring 操作をブロックし、モジュールのロードを阻止
  • 監査回避:隠蔽されたプロセスに関する監査メッセージを netlink レベルでドロップ

機能

  • シグナルおよび環境変数による環境トリガー型の権限昇格
  • /proc および各種監視ツールからの完全なプロセス隠蔽
  • ファイルおよびディレクトリに対するパターンベースのファイルシステム隠蔽
  • netstat、ss、パケットアナライザからのネットワーク接続の秘匿
  • dmesg および journalctl 向けのリアルタイムなカーネルログフィルタリング
  • lsmod および /sys/module からのモジュール自己隠蔽
  • カーネル taint フラグの自動正規化
  • eBPF ベースの検知を防ぐための BPF システムコールインターセプト
  • 非同期 I/O によるバイパスを防ぐ io_uring 保護
  • 新たなカーネルモジュールのロード阻止
  • カーネルメッセージおよびシステムログのマスキング
  • 標準的な rootkit 検出ツール(unhide、chkrootkit、rkhunter)の回避
  • tracepoint フックによる子プロセスの自動追跡および隠蔽
  • マルチアーキテクチャ対応(x64 + ia32)
  • 生ソケット保護を伴うネットワークパケットレベルのフィルタリング
  • すべてのファイル I/O バリアント(read、write、splice、sendfile、tee、copy_file_range)に対する保護
  • auditd による検知を回避するための netlink レベルでの監査メッセージフィルタリング

詳細な研究記事: Singularity: A Final Boss Linux Kernel Rootkit

EDR 回避ケーススタディ: Bypassing Elastic EDR with Singularity

インストール & 使い方

翻訳元: https://meterpreter.org/singularity-advanced-linux-kernel-rootkit-uses-ftrace-to-bypass-edr-and-ebpf/

ソース: meterpreter.org