New stealthy Pumakit Linux rootkit malware spotted in the wild
2024/12/12 BleepingComputer — Pumakit と呼ばれる、新たな Linux ルートキット・マルウェアが発見された。このマルウェアは、高度な権限昇格とステルス性の技術を用いて、システム上で存在を隠し続けるという。このマルウェアは、複数のコンポーネントのセットである、その内容は、ドロッパー/メモリ常駐実行ファイル/カーネル・モジュール・ルートキット、共有オブジェクト・ユーザーランド・ルートキットなどである。

2024年9月4日付けの VirusTotal における、疑わしいバイナリ “cron” アップロード内で Pumakit を発見した Elastic Security であるが、それを用いる脅威アクターと、ターゲットにするものについては、現時点で不明であると報告している。
一般的に、これらのツールは、重要インフラとエンタープライズ・システムを標的とする APT により、スパイ活動/金銭窃取/混乱操作のために使用される。
Pumakit とは?
Pumakit が採用するのは、この “cron” というドロッパーから始まる、多段階の感染プロセスである。それにより、メモリから実行されるのは、エンベッドされたペイロードである “/memfd:tgt” および “/memfd:wpn” である。
子プロセスの中で実行される “/memfd:wpn” ペイロードは、環境をチェックしてカーネル・イメージを操作し、最終的に LKM (loadable kernel module) ルートキット・モジュール “puma.ko” をシステム・カーネルに展開する。
この LKM ルートキットには、Kitsune SO “lib64/libs.so” が埋め込まれており、ユーザーランド・ルートキットとして機能し、”LD_PRELOAD” を用いてプロセス内に自身を注入し、ユーザー・レベルでシステム・コールを傍受する。

Source: Elastic Security
ステルス的な権限昇格
このルートキットは、条件付きアクティベーションに従い、ロード前に特定カーネル・シンボル・セキュアブート・ステータスなどの前提条件をチェックする。
Elastic によると、Puma は “kallsyms_lookup_name()” 関数を用いて、システムの振る舞いを操作する。それが示すのは、Linux カーネルのバージョン 5.7 未満をターゲットにするよう、このルートキットが設計されていることである。新しい Linux カーネルのバージョンでは、この関数がエクスポートされなくなり、他のカーネル・モジュールでも使用されない。
Elastic の研究者である Remco Sprooten と Ruben Groenewoud は、「LKM ルートキットがシステムの動作を操作する能力は、syscall テーブルの使用と、シンボル解決のために依存する、kallsyms_lookup_name() への依存から始まる。 Linux カーネルのバージョン 5.7 以降をターゲットにする、最新のルートキットとは異なり、このルートキットでは kprobes が使用されない。それが意味するのは、古いカーネル向けに設計されていることである」と説明している。
Puma は ‘ftrace’ を使用することで、18 個の syscall と複数のカーネル関数をフックし、権限昇格/コマンド実行および、プロセスを隠すための機能を獲得する。

Source: Elastic Security
プロセス認証情報を変更し、特定のプロセスにルート権限を付与するために、カーネル関数である “prepare_creds” と “commit_creds” が悪用される。
このルートキットのステルス性により、カーネル・ログ/システム・ツール/ウイルス対策から、自身の存在を隠すことが可能となり、ディレクトリ内の特定のファイルやプロセス・リストからも、オブジェクトを隠せるようになる。
フックが中断されたケースにおいては、ルートキットによるフックの再初期化が行われ、悪意の変更に対する修復と、悪意のモジュールのアンロードが阻止される。
ユーザーランド・ルートキット Kitsune SO は、Puma と相乗的に動作することで、ステルス性および制御メカニズムを、ユーザー向けのインタラクションにまで拡張する。
それにより、ユーザー・レベルのシステム・コールが傍受され、ls/ps/netstat/top/htop/cat などの動作が変更されるため、ルートキットに関連付けられたファイル/プロセス/ネットワーク接続が隠される。
さらに、攻撃者が定義する基準に基づき、ファイル/ディレクトリを動的に隠すこと可能になるため、ユーザーやシステム管理者の視野から、悪意のバイナリは完全に隠される。
Kitsune SO は、C2 サーバーとの全ての通信を処理し、コマンドを LKM ルートキットに中継し、コンフィグとシステムの情報をオペレーターに送信する。
Elastic Security 公開したものには、ファイル・ハッシュに加えて、Pumakit 攻撃を検出するための YARA ルールがあり、それらにより、 Linux システム管理者をサポートする。
Pumakit という、新たな Linux ルートキットが検出されました。興味深いのは、Linux カーネルのバージョン 5.7 未満をターゲットにしているところです。その点で、他のルートキットとは異なる狙いを持つものと、推測できます。よろしければ、Linux Kernel で検索も、ご利用ください。

You must be logged in to post a comment.