Cyber Incident Management for PHP Vulnerability 第三話
第3話 サーバーを止めるべきか
午前二時十分。
サイバーナイト株式会社の最高情報責任者、黒木厳のもとに、ブロッサムネット株式会社から回答が届いた。
《ご契約中のホスティング環境について、対象となるPHP環境の確認を進めております。一部環境では事業者側で修正版の適用が可能ですが、お客様側で管理されているアプリケーションについては、別途ご確認をお願いいたします》
黒木は、文章を読み返した。
「一部環境では、というのは?」
セキュリティ担当者が答えた。
「先方が管理している環境のうち、修正版を適用できるものと、構成の確認が必要なものがあるようです。個別の対象については、まだ回答待ちです」
「では、どのサービスを、いつ更新できるのか。そこまで回答を求めてくれ」
「承知しました」
黒木は、一覧表に目を落とした。
PHPを使っていることが確認できたシステム。
利用状況がまだ確認できていないシステム。
外部事業者から回答を待っているシステム。
その一つひとつについて、対応状況が異なっていた。
全社一律に「更新する」と指示するだけでは、実際の作業は進まない。
どの環境が影響を受けるのか。
誰が更新作業を行うのか。
更新までの間、何をすべきなのか。
そして、更新できない場合はどうするのか。
黒木は、画面を切り替えた。
「対応方針を決めよう」
*
午前二時二十分。
緊急会議には、情報システム部門、セキュリティ担当、ウェブサイト運用担当者に加え、広報と事業部門の責任者も参加していた。
「まず、選択肢を整理します」
黒木は、画面に三つの項目を表示した。
一、修正版を適用する。
二、適用までの間、可能な暫定防御を行う。
三、必要に応じて、対象サービスを一時停止する。
「最初に確認しておきたい。今回の脆弱性を悪用されたことを示す情報は、現時点で確認されていません。ただし、調査は継続中です」
黒木は、参加者たちを見渡した。
「これは、すでに攻撃を受けたと確認された事件ではありません。現時点では、脆弱性への予防対応を中心に進めています。同時に、不審なアクセスや不正な処理がなかったか、ログの確認も続けます」
広報の責任者が尋ねた。
「サイトを停止する必要があるのでしょうか?」
「すべてを一律に停止するとは限りません。対象となる環境、外部からのアクセスの可否、脆弱性の影響、暫定防御の有効性を確認して判断します」
「停止すれば、利用者に影響が出ます」
「そのとおりです。だから、停止による影響も評価する必要があります。ただし、事業への影響があるからといって、セキュリティ上のリスクを無視することもできません」
黒木は、画面に新しい欄を追加した。
《対象となるサービス》
《影響を受ける可能性》
《修正版の適用予定》
《暫定防御の有無》
《停止した場合の業務影響》
《判断する責任者》
「サービスごとに、この項目を埋めてください。技術担当者は、技術的に何ができるかを報告する。事業部門は、停止した場合に何が起きるかを報告する。私は、それらをまとめて経営判断につなげます」
*
午前二時三十五分。
ウェブサイト運用担当者から、暫定防御について説明があった。
「対象となる環境によっては、WAFのルールを変更して、不審なリクエストを遮断できる可能性があります」
WAFとは、ウェブサイトへの通信を監視し、攻撃と疑われるリクエストを遮断する仕組みだ。
ただし、どのような攻撃でも完全に防げるわけではない。今回の脆弱性に対して有効なルールを適用できるかどうかも、環境によって確認が必要だった。
「WAFを使えば、更新しなくても大丈夫なのか?」
事業部門の責任者が尋ねた。
「いいえ。暫定的なリスク低減策です。修正版を適用できるなら、適用する必要があります」
黒木は、その回答を聞いてうなずいた。
「その点は、報告書にも明記しよう。暫定防御を実施したことと、脆弱性が解消されたことは同じではない」
セキュリティ担当者が続けた。
「また、修正版を適用する場合も、環境に応じた確認が必要です。利用しているアプリケーションとの互換性や、更新後の動作に問題がないかも確認しなければなりません」
「では、更新を待つ間の防御、更新作業、更新後の確認を分けて管理しよう」
黒木は指示した。
「どの対策を、誰が、いつ実施したのか。実施したと報告されたものと、実際に確認できたものも区別して記録する」
会議室の空気が、少しずつ変わっていった。
問題は、単に「更新するか、しないか」ではない。
どのシステムに、どの対策を、どの順序で実施するか。
その判断に必要な情報を、どこから集めるか。
それが、今夜の仕事だった。
*
午前三時。
ブロッサムネットから、追加の回答が届いた。
《一部の対象環境について、事業者側での修正版適用が可能です。個別の対象範囲と作業予定については、確認のうえ、順次ご案内いたします》
黒木は、セキュリティ担当者に尋ねた。
「この回答で、当社の対象システムは特定できたか?」
「まだです。先方が管理する環境のうち、どれが当社のどのサービスに対応しているか、突き合わせが必要です」
「では、そこを優先しよう。契約先からの回答を待つだけでなく、こちらの台帳と照合する」
「承知しました」
「それから、先方が更新する環境と、こちらで更新しなければならない環境を分ける。責任の所在が曖昧なまま作業を進めてはいけない」
黒木は、ブロッサムネットとの契約資料をもう一度確認した。
ホスティング環境の管理は事業者側。
一部のアプリケーションの管理はサイバーナイト側。
さらに、制作会社が保守を担当しているウェブサイトもある。
同じ会社のサービスであっても、管理の仕組みは一様ではなかった。
「黒木さん」
情報システム部門の責任者が言った。
「対象環境の一部について、修正版の適用予定が確認できました。残りは、引き続き確認中です」
「予定が決まったものは、作業後の確認方法も決めておいてくれ。残りについては、いつまでに回答を得るのか、期限を設定する」
黒木は、続けた。
「期限までに確認できない場合は、リスクを再評価する。暫定防御で継続できるのか、停止が必要なのか。判断を先送りにしない」
*
午前三時二十分。
事業部門の責任者が、ひとつのサービスについて報告した。
「このウェブサービスは、取引先が日常的に利用しています。停止すると、受発注の手続きに影響が出ます」
「そのサービスのPHPのバージョンは確認できているか?」
「確認中です」
「暫定防御は?」
「運用担当者に確認しています」
黒木は、報告書の該当欄を見た。
「この段階では、停止するかどうかを決めるための情報が足りない。まず、対象環境と防御策を確認してくれ。確認できないまま、影響が小さいと判断することはできない」
「わかりました」
「もし、脆弱性の影響を受ける可能性が高く、十分な防御もできないなら、停止を含めて判断する。その場合は、取引先への連絡や代替手段も検討しよう」
事業部門の責任者は、うなずいた。
黒木は、経営の仕事について考えていた。
サービスを止めれば、売上や取引先との関係に影響する。
止めなければ、脆弱性を悪用された場合の被害が拡大するかもしれない。
どちらを選んでも、影響がなくなるわけではない。
だからこそ、技術担当者に「安全かどうか」だけを尋ねて終わるわけにはいかない。
技術担当者には、リスクと対策を説明してもらう。
事業部門には、停止した場合の影響を説明してもらう。
経営側は、その情報をもとに判断し、判断の根拠を記録する。
黒木は、会議の参加者に言った。
「安全を保証できないからといって、何も決めずに放置することはできない。逆に、業務を止めたくないからといって、リスクを見なかったことにもできない」
*
午前三時四十分。
調査表には、少しずつ対応方針が記載されていた。
修正版の適用予定が決まったもの。
暫定防御の確認を進めているもの。
PHPの利用状況そのものを調べているもの。
そして、管理責任者への連絡が取れていないもの。
黒木は、最後の項目に目を止めた。
「このシステムは、誰が管理している?」
情報システム部門の責任者が答えた。
「契約上は、外部の制作会社が保守を担当しています。ただ、先方の緊急連絡先を確認できていません」
「契約書には?」
「通常の連絡窓口は記載されていますが、夜間の緊急連絡先は確認できていません」
黒木は、画面から目を離した。
「連絡先がないのか。それとも、こちらが把握していないのか?」
「現時点では、把握できていないということです」
「わかった。契約資料と過去の連絡記録を確認してくれ。緊急連絡先が見つからなければ、別の手段で先方と連絡を取る」
黒木は、調査表に新たな項目を加えた。
《緊急時の連絡方法》
今回の問題が落ち着いたあとも、この項目は残るだろう。
脆弱性は、いつも都合のいい時間に見つかるわけではない。
深夜でも、休日でも、担当者が不在でも、会社は判断を迫られることがある。
そのとき、誰に連絡し、誰が作業し、誰が決めるのか。
平時に決めておかなければ、緊急時に初めて調べることになる。
*
午前四時。
黒木は、経営陣への中間報告をまとめた。
現時点で、攻撃による被害を示す明確な痕跡は確認されていない。
ただし、調査は継続中であり、すべてのシステムについて影響の有無が確定したわけではない。
修正版の適用が可能な環境については、事業者と連携して作業を進める。
更新まで時間がかかる環境については、暫定防御の有効性を確認する。
対象範囲や防御策を確認できず、リスクを許容できないサービスについては、一時停止も含めて判断する。
そして、各システムについて、対応責任者と完了確認の方法を明確にする。
報告書を読み終えた経営陣の一人が尋ねた。
「これで、問題は解決に向かっていると考えていいのか?」
黒木は答えた。
「対応は進んでいます。ただし、全ての対象環境について確認が終わったわけではありません。現時点で言えることと、まだ確認できていないことを分けて報告しています」
「つまり、まだ終わっていない?」
「はい。修正版を適用することと、適用されたことを確認することも違います。さらに、攻撃の痕跡についても調査を続ける必要があります」
黒木は、報告書を閉じた。
「今夜の目標は、すべての問題を一度に解決したと宣言することではありません。対象を特定し、必要な対策を進め、残っているリスクを把握することです」
*
午前四時二十分。
会議室には、疲れた表情の担当者たちが残っていた。
修正版の適用予定が決まったシステムはある。
暫定防御の確認が進んでいるシステムもある。
しかし、まだ回答を待っている委託先があり、利用状況を確認できていないサービスも残っている。
黒木は、調査表の最後の欄を見た。
《未確認》
その文字を、彼は消さなかった。
未確認であることは、失敗を意味するとは限らない。
しかし、未確認のまま放置すれば、リスクを正しく判断できない。
「朝になったら、各部門に状況を共有する。確認できたこと、確認できていないこと、次に取る措置。それを分けて伝えよう」
黒木は、参加者たちに告げた。
「それから、今回の対応が落ち着いたら、契約台帳とシステム台帳をつなぐ仕組みを作る。緊急時の連絡先も含めて、平時から管理できるようにする」
誰かが、小さくうなずいた。
黒木は、窓の外が少しずつ明るくなるのを見た。
サーバーを止めるか。
動かし続けるか。
その判断は、簡単ではなかった。
だが、判断に必要な情報を集め、技術的な対策と業務への影響を比較し、責任者を明確にすることはできる。
それこそが、危機管理の仕事だった。
そして、対応が終わったとき、もうひとつ確認しなければならないことが残っている。
本当に、必要な修正は適用されたのか。
攻撃の痕跡はなかったのか。
そして、同じ問題が再び起きたとき、今度はすぐに対応できるのか。
黒木は、調査表を保存した。
まだ、完了とは書かなかった。




