Furtexという名のLinuxツールキットが新たに公開され、ポストエクスプロイテーション、永続化、データアクセス、監視回避に関する幅広い手法を披露しています。io_uring、eBPF、BPFマップ、そして生のシステムコールを軸に構築されています。
DataManagement
このプロジェクトには100種類を超えるツールが含まれており、非同期I/O操作、BPFの調査・操作、EDR回避技術、eBPFペイロード、そしてFalco向けの特定の回避手法をカバーするモジュールに整理されています。
Furtexの中心的な発想は、Linux向けセキュリティ製品の多くが、sys_call_tableの書き換え、sys_enter_*トレースポイント、livepatchフック、libcラッパー、選択的なkprobeといった従来型のシステムコール発行経路に挿入されたフックに依存しているという点にあります。
このツールキットによれば、io_uring経由で発行された処理はカーネルワーカーの経路をたどるため、こうした計測手法が監視している通常のシステムコール実行経路を通らない場合があるといいます。
その結果、ファイル操作やネットワーク操作に非同期のサブミッションキューエントリを利用するツールは、直接的なread、open、connectといったシステムコールを検知するテレメトリ源をすり抜けてしまう可能性があります。
このリポジトリには、連鎖的なファイル操作、ソケット通信、DNSを利用したデータ転送、プロセスメモリインジェクション、メモリ上での実行、生パケット送信、そして代替インターフェース経由でのデータアクセスを行うユーティリティが収録されています。
また、読み込まれているBPFマップやプログラムを調査し、EDR関連のアーティファクトを特定し、マップデータを改変し、BPFリンクを切断し、kprobeやftraceフックを列挙するためのツールも提供されています。
こうした機能は、最新のEDRやクラウドワークロード保護プラットフォーム、ランタイム検知システムが監視・制御にeBPFを活用している環境において、特に重要な意味を持ちます。
Furtexは特にオープンソースのクラウドネイティブなランタイムセキュリティプラットフォームであるFalcoを標的としています。その技術コンポーネントは、Falcoのデフォルトルール全25種をカバーすると謳っており、大きく2つのアプローチを採用しています。1つは関連イベントがセンサーに届くのを防ぐこと、もう1つは実行時の特徴を変化させてルールの条件に一致しないようにすることです。
列挙されている回避手法には、io_uringを利用した操作、イベントフラッディング、リングバッファの枯渇、プロセス名の偽装、名前空間の切り替え、代替的なファイル操作のセマンティクス、そして非標準的なプロセス実行経路などが含まれます。
防御側にとって、このプロジェクトはテレメトリのカバレッジをシステムコールのエントリトレースポイントやプロセス名ベースのルールだけに頼ることができないという点を浮き彫りにしています。セキュリティチームは、自社のLinuxセンサーがio_uring発のファイル・ネットワーク活動を監視しているかを確認し、不審なBPFリンクの切断やマップ改変の試みを検査し、想定外のプロセスによるBPF関連カーネルインターフェースへのアクセスに対してアラートを発するようにすべきです。
監視の対象には、CAP_BPF、CAP_PERFMON、CAP_NET_RAW、CAP_NET_ADMIN、CAP_AUDIT_CONTROLといった特権ケーパビリティも含めるべきです。Furtexはこれらを、より影響の大きい複数の機能の前提条件として挙げています。
| コンポーネント | 報告されている範囲 | 防御上の主な懸念点 |
|---|---|---|
io_uring/ |
13種類のツール | ファイル、ネットワーク、インジェクション、データ流出の各操作が、主に従来型のシステムコールエントリのテレメトリを軸に構築された監視をすり抜ける可能性がある。 |
bpf/ |
15種類のツール | BPFマップ・プログラムの偵察、マップの改変、BPFリンクの切断、センサーを標的とする機能。 |
ebpf/ |
9個のプログラム+2個のランナー | eBPFベースのペイロードには、プロセスやポートの隠蔽、資格情報パスに対するアクティビティ追跡、入力キャプチャ、ネットワークトリガーが含まれる。 |
edrs/ |
約75種類のツール | EDRの偵察、フック列挙、監査ログの妨害、プロセスインジェクション、永続化、代替的なC2機構。 |
techniques/ |
13種類のツール | Falcoに焦点を当てた手法で、イベント抑制またはルール条件の回避を通じてデフォルトルール全25種を標的にすると謳っている。 |
| 特権ケーパビリティ | CAP_BPF、CAP_PERFMON、CAP_NET_RAW、CAP_NET_ADMIN、CAP_AUDIT_CONTROL |
特に本番ワークロードにおいて、これらのケーパビリティの想定外の付与や使用は調査すべきである。 |
| カーネル要件 | 最低でもLinux 5.4、一部のソケット操作には5.19が必要 | 影響範囲はカーネルバージョン、BTFサポートの有無、有効になっているケーパビリティ、そしてセンサー側のテレメトリアーキテクチャによって異なる。 |
Falcoを利用している組織は、実行ファイル名やコマンドラインのパターン、システムコール固有のイベントソース、シェルやgrep、netcatといった一般的なユーティリティに紐づく前提に依存していないか、ルールを見直すべきです。
単一のカーネルイベントを唯一の根拠として扱うのではなく、ファイルシステムへのアクセス、資格情報ファイルの読み取り、メモリ上での実行、生ソケットの作成、名前空間の変更、異常なBPF活動を相関させる形で振る舞い検知の仕組みを構築すべきです。
FurtexはMITライセンスの下で配布されており、利用を許可されたテスト、CTF、防御的な研究に限定する旨の法的通知が付されています。こうした制限があるとはいえ、その公開は防御側に対し、特にio_uringとeBPFが有効になっている最新カーネル環境で検証すべき、Linuxにおける検知の穴を実用的な形でまとめたカタログを提供するものとなっています。
脅威検知とインシデント調査の迅速化でSOCを強化しましょう。 -> ANY.RUNを自社のSOCに統合する 今すぐ。
NetworkSecurity
翻訳元: https://gbhackers.com/furtex-linux-toolkit/