PHPの開発チームは、今回の脆弱性ではmod_phpの危険が最も高く、アプリケーションのコードが動く前に、認証なしのリクエストで攻撃を引き起こせることが実証されたとしています。Wizも、攻撃がアプリケーションより下の層で動くため、アプリケーションのログにはほとんど手がかりが残らない場合があると書いています。アプリのログだけを見ていると、何も起きていないように見える攻撃があるということです。
この記事の要点
- php2shellは、アプリケーションのコードが動く前の段階で成立し得る攻撃だった
- Wizは、アプリのログではなく、リクエストの形やPHPの動作の異常を手がかりに挙げている
- Webサーバー、認証情報の使われ方、外向きの通信の3か所に観測を置くと、手がかりを拾える範囲が広がる
アプリケーションの手前で成立する攻撃
多くの企業の監視は、アプリケーションのログ、認証のログ、WAFの検知を軸に組まれています。php2shellは、PHPがリクエストを受け取り、通常の初期化を終える前の段階に問題がありました。Wizは、WordPress、Drupal、Joomlaの最新のコンテナイメージで、認証なしの遠隔コード実行を実証したうえで、悪用はアプリケーションのコードの欠陥に依存せず、単純な「Hello World」のアプリケーションでも影響を受け得るとしています。
Wizはさらに、遠隔コード実行に至らなくても、PHPのプロセスのメモリから、パスワード、トークン、APIキーなどの機密情報を読み出せることを示したと書いています。サーバーに置いた認証情報が漏れれば、攻撃はそのサーバーの外へ広がります。
Wizが挙げた手がかり
Wizは、更新が済むまでの間に守る側が注意を向ける兆候として、次を挙げています。
- 異常なmultipartリクエストの後に、メモリ上限のエラーや、繰り返しのHTTP 500応答が続く
- 想定外に大きい、または形の崩れたPHPSESSIDのCookieが応答に含まれる
- 説明のつかないPHPワーカーの入れ替わり
どれもアプリケーションのログではなく、Webサーバーのログ、PHPのエラーログ、プロセスの動きに現れるものです。普段から集めていない記録は、事件の後から遡って調べることができません。
侵入の後は、通信に表れる
遠隔でコードを実行された後、攻撃者は外部との通信を始めることがあります。追加のツールを取りに行く、盗んだ情報を送り出す、指令サーバーとつながる、といった動きです。盗まれた認証情報やAPIキーが使われれば、その通信は別の場所から始まります。アプリケーションのログに残らなかった攻撃でも、その後の通信には痕跡が出ることがあります。
観測を置く場所を3つに分ける
Webサーバーと実行環境
リクエストの大きさ、エラー、ワーカーの再起動を記録し、改ざんされにくい場所に保管する。
認証情報の使われ方
サーバーに置いていたAPIキーやトークンが、想定外の場所や時間帯から使われていないかを見る。
外向きの通信
サーバーや端末が、普段つながらない宛先へ通信していないかを見る。
GMO Flatt Securityは今回の対応として、サーバーが持つ権限(クラウドのIAMロールやサービスアカウントなど)を確かめて横展開の有無を確認することと、ログが記録・保全されているかを見直すことを挙げています。アプリケーションの外側の記録は、侵害の有無を確かめるときの材料になります。
AIエージェントが増えると、外向きの通信はさらに増える
社内でAIエージェントを使い始めると、サーバーや端末から外部のAPIへ向かう通信が増えます。どの通信が業務で、どれがそうでないかを見分ける手がかりは、普段の通信の姿です。普段の姿が分かっていれば、侵入の後に始まる見慣れない通信にも気づきやすくなります。
当社の透過型UTM「ForceUTM」は、ルーターとスイッチの間に設置し、ネットワークを通る通信を観測します。IDSで通信挙動を検知して報告し、不正指令サーバーとの通信などの兆候を見つけます。AIエージェントの外向き通信を、観測から始めて、許可した宛先以外へ段階的に絞る出口制御も備えています。ポータルから書き出したログは、お客様が契約しているAIで分析できます。TLSは復号しないため通信の中身は検査せず、ファイルの検査は端末側の対策と組み合わせる構成です。拠点や中小規模のオフィスに置き、そこにあるサーバーや端末の外向き通信を見ることを想定しています。
参考資料
外向きの通信を観測する
拠点や中小規模のオフィスで、サーバーや端末、AIエージェントの外向き通信をどう観測し、絞っていくかをご相談ください。
製品の詳細はForceUTMのサイトでご覧いただけます。
まずは相談する相談無料・