テック技報最新号へ →
セキュリティ

Linux サーバーの居座りを点検する(PHP の auto_prepend_file と .bashrc の偽 sudo、CL-UNK-1211 事例)

政府機関などの Linux を狙った攻撃活動 CL-UNK-1211 では、「すべての PHP 実行の前に Web シェルを読み込ませる設定」と「.bashrc に仕込んだ偽の sudo」が使われた。どちらも数行の設定なので、grep で定期的に探せる。

@MalwareBibleJP · 2026-10-19
#linux#persistence#php#webshell#detection#incident-response

手口の要点

  • 永続化: PHP の設定項目 auto_prepend_file に Web シェルを指定し、どの PHP スクリプトの実行時にも先に読み込ませる。対象は /etc/php/ と Plesk 用の /opt/plesk/php/ 配下の全設定ファイル。
  • パスワードの窃取: .bashrc に sudo のエイリアスを置き、偽のパスワード入力プロンプトで入力を記録してから本物の sudo へ渡す。記録先は他社製品のログに見せかけたファイル名だった。PHP のログインページへのコード挿入や、設定ファイル・コマンド履歴からの平文パスワード探しも併用。
  • その他: 標準ツール(Netcat・Bash・Python)だけで動くほぼメモリ上のリバースシェル、PwnKit(CVE-2021-4034)による root 取得の試行、ログ削除やタイムスタンプ改ざん、レッドチーム演習を装う文字列(RedTeamOps2025 など)の使用。スクリプトには AI の出力を貼ったとみられる会話調のコメントが残っていた。

点検コマンドの例

sh
# auto_prepend_file / auto_append_file が設定されていないか(空でない値は要確認)
grep -RniE '^\s*auto_(prepend|append)_file\s*=\s*\S' /etc/php/ /opt/plesk/php/ 2>/dev/null
php -i 2>/dev/null | grep -i auto_prepend_file

# シェル初期化ファイルに sudo を上書きする alias / 関数がないか
grep -nE '(alias\s+sudo=|^\s*sudo\s*\(\))' /root/.bashrc /home/*/.bashrc /home/*/.bash_profile /home/*/.profile /etc/bash.bashrc /etc/profile.d/*.sh 2>/dev/null

# 実際のシェルでの見え方(alias や関数なら sudo 本体ではない)
type sudo
  • .htaccess や PHP-FPM のプール設定(php_admin_value[auto_prepend_file] など)でも同じ設定ができるので、Web ルート配下も検索対象に含める。
  • 見つかった場合は、指定先のファイルの中身と更新日時を確認する(ただしタイムスタンプは改ざんされうる)。

予防策

  • 報告はリバースシェル対策として、外向き通信をファイアウォールで厳しく制限することと、標準ツールから対話シェルが起動される挙動をエンドポイントで検知することを挙げている。
  • 設定ファイルやシェル初期化ファイルを構成管理に置き、差分が出たら気づけるようにする。
  • 今回のように AI で作ったスクリプトを素早く投入する攻撃では、個々のハッシュより「設定の置き場所」での検知が効きやすい。AI ツール設定の居座り点検は AI 開発ツール・エディタ設定ファイル経由の永続化をチェックする も参照。

出典

X の元の投稿を開く