新たに解析されたLinuxマルウェアのサンプル「Tengu」は、Mirai型ボットネットの手法に加え、幅広い永続化機能、DDoS機能、SSHスキャン機能、プロキシ機能を兼ね備えています。
アンチウイルス&マルウェア
このシンボル情報が除去された32ビットELFファイルは、サーバー、組み込み機器、IoT関連システムを標的としつつ、Linuxカーネルワーカープロセスになりすまします。
シンボル情報を持たず、NX保護と部分RELROを備えており、SHA-256ハッシュ値は897226af37990fa60f25fea00b0509faa0e78d8bee10875c23b9b6ab0b8faed9です。
静的解析では464個の関数が確認されており、再起動後も生き残り、実行を隠蔽し、コマンド&コントロール(C2)インフラと通信し、大量トラフィック攻撃やアプリケーション層攻撃を行うよう設計されたマルウェアフレームワークであることが判明しました。
Tenguは/etc/init.d/tenguなど、永続化に関連するファイル内に自らのファミリー名を明示的に使用しています。またこのバイナリには、Miraiをはじめとする他のLinuxボットネットに関連する名前やパスの一覧テーブルも含まれています。
この点はMirai型と呼ぶ十分な根拠となりますが、現時点で得られている静的解析の証拠だけでは、Miraiとのソースコード上の直接的な系統関係までは立証されていません。
このボットの初期化処理では、まずリソース逼迫時に生き残る可能性を高める工夫が行われます。
/proc/self/oom_score_adjを開き、-1000を書き込みます。これはLinuxにおいて、プロセスをOOM Killer(メモリ不足時の強制終了機構)の対象から除外する値です。
これは、DDoS攻撃の実行中も稼働し続けることを狙うマルウェアや、メモリに制約のあるIoT機器を狙うマルウェアにとって実用的な防御策です。
Tenguはまた、/proc/self/exeを通じて自身の実行ファイルパスを解決し、実行中のバイナリがリンク解除されている場合は(deleted)という接尾辞を取り除きます。
その後、標準入力・標準出力・標準エラー出力を/dev/nullにリダイレクトすることで、静かにターミナルから切り離します。
通常のシステム動作に紛れ込むため、このマルウェアは自身の引数メモリをkworker/%d:%dというパターンに従ったランダムなプロセス名で上書きします。
このプロセス名は表面的なプロセス一覧の確認では見抜きにくいものの、防御側は親プロセスとの関係性、実行ファイルのパス、コマンドライン情報、そして異常なネットワーク接続などから、このユーザー空間の偽装プロセスを特定することができます。
Reverser.Spaceの研究者によれば、tengu_sampleとして追跡されているこのサンプルは、静的リンクされた位置独立実行形式(PIE)の32ビットx86 Linux実行ファイルであり、サイズは198,288バイトです。
C2サーバーのエンドポイントは、読み取り可能なアドレスとして保存されるのではなく、実行時にXOR復号によって秘匿されています。
このボットはXORキー0x22を用いて64[.]89[.]163[.]8を復号し、TCPポート9931と組み合わせて使用します。
Tengu Mirai型Linuxボット
ネットワーク防御担当者は、特に管理が行き届いていないLinuxシステム、インターネットに公開されたアプライアンス、組み込み機器において、このIOCへの過去および現在の接続状況を調査する必要があります。
Tenguの永続化処理は、多様なLinux環境での動作を想定して設計されています。まず「System Helper Service」という名前のsystemdサービスの作成を試み、Restart=on-failureを設定した上でmulti-user.target.wantsディレクトリを通じて有効化します。
さらにOpenWrtのprocdフレームワーク、従来型のSysV initスクリプト、/etc/rc.d/の起動リンク、@rebootを使うcronジョブ、/etc/crontab、/etc/rc.localにも対応しています。
この複数プラットフォーム対応の永続化機能は重要な特徴で、単一のバイナリでエンタープライズサーバー、家庭用ルーター、軽量な組み込みディストリビューションのいずれにも動作できることを意味します。
破壊的な攻撃を行うため、このマルウェアには生のIPv4/UDPを扱うモードと、通常のデータグラムソケットを使ったフラッディングモードの2種類が個別に用意されています。
アンチウイルス&マルウェア
生ソケットを使う経路ではIPv4ヘッダーとUDPヘッダーを構築し、チェックサムを計算するため、攻撃者はパケットフィールドやスプーフィング挙動をより細かく制御できます。
一方のデータグラム経路は、生ソケットが利用できない環境向けに、よりシンプルなUDPフラッド機構を提供します。
このようなモジュール構造は、侵害されたシステムを利用して特定の標的に対し大量のトラフィックを生成するという、MITRE ATT&CKに記録されているDDoS手法と一致しています。
このサンプルにはSSHバナーおよび鍵交換ジェネレーターも含まれています。TCP接続を開き、応答にSSH-バナーが含まれているかを確認した上で、認識可能な鍵交換アルゴリズム、ホスト鍵アルゴリズム、暗号化アルゴリズム、MACアルゴリズム、圧縮アルゴリズムの一覧を含むSSHプロトコルデータを送信します。
この挙動から、SSHバナースキャンおよびハンドシェイク動作に分類することは妥当ですが、解析対象の関数内には、パスワード総当たり、認証情報窃取、あるいは完全なSSHエクスプロイト処理を示す静的な証拠は見当たりません。
アプリケーション層では、Tenguはキープアライブ動作を伴うHTTPのGET、POST、HEADリクエストを生成できます。
別の処理では、ランダムなX-Forwarded-For値とCF-Connecting-IP値、加えてCDN-Loop: cloudflareを含むリクエストを作成し、/index.phpや/wp-login.phpといったパスを参照します。
これらの特徴は、基本的なログ調査を複雑にしかねないヘッダーを変化させながら、リクエストフラッド型のトラフィックを生成しようとする意図を示しています。
このマルウェアには、認証機能付きのHTTP CONNECTプロキシ機能とSOCKS5対応機能も含まれています。
Proxy-Authorization: Basicを認識してCONNECTリクエストを処理し、HTTP/1.1 200 Connection Establishedを返すほか、認証失敗や上流接続の失敗に対するエラー応答も備えています。
感染機器を中継ノードに変えることで、攻撃者はトラフィックの発信元を隠蔽したり、不正な通信をプロキシ経由で行ったり、侵害したホストを収益化したりすることが可能になります。
防御担当者は、偽のkworker/プロセス、予期しない起動時の設定変更、不審な/tmp/.proxy.pidファイル、そして64[.]89[.]163[.]8:9931への接続を調査すべきです。
また各組織は、公開状態にあるルーターやLinuxアプライアンスへのパッチ適用、未使用のリモート管理サービスの無効化、組み込みシステムからの送信トラフィックの制限、そしてsystemd・init・cron・rc.local設定への不正な変更の監視を行う必要があります。
IOC(侵害指標)
| 種別 | 指標 | 根拠 |
|---|---|---|
| IPv4 | 64[.]89[.]163[.]8 |
0x10A64〜0x10A82でデコード |
| TCPポート | 9931 |
0x10A8B〜0x10A95で構築 |
| プロセス名 | [kworker/%d:%d] |
0x32000にフォーマット、0x10B51で適用 |
| 初期化パス | /etc/init.d/tengu |
0x33FC2に文字列、0x2085Dで使用 |
| PIDファイル | /tmp/.proxy.pid |
0x32936に文字列、0x15DA5で使用 |
| systemdの説明文 | System Helper Service |
0x33C0Cにテンプレート |
| SHA-256 | 897226af37990fa60f25fea00b0509faa0e78d8bee10875c23b9b6ab0b8faed9 |
セッションハッシュのメタデータ |
注: IPアドレスおよびドメインは、意図しない名前解決やハイパーリンク化を防ぐため、意図的に無害化表記(例: [.])を用いています。再有効化する際は、MISP、VirusTotal、あるいは自社のSIEMなど、管理された脅威インテリジェンス基盤の中でのみ行ってください。
★ 7段階のメトリック連動型AI SOC導入フェーズを学ぶ – 無料のAI SOC導入プレイブック2026をダウンロード。
翻訳元: https://gbhackers.com/tengu-mirai-style-linux-bot/