Cyber Incident Management for PHP Vulnerability 第二話
第2話 契約先はどこだ?
午前零時十五分。
サイバーナイト株式会社の最高情報責任者、黒木厳は、会議室の大型モニターに映し出された一覧表を見つめていた。
表には、社内の主要システムと、その管理部門が記載されている。
しかし、ところどころに空欄があった。
サーバーの所在地。
利用しているソフトウェア。
管理を委託している事業者。
そして、緊急時の連絡先。
「この一覧表は、いつ作成したものだ?」
黒木が尋ねた。
情報システム部門の責任者が答える。
「今年度の初めです。以降、各部門から変更の報告があったものについては、更新しています」
「報告がなかった変更は?」
「把握できていない可能性があります」
黒木はうなずいた。
「では、これは最新の一覧表ではなく、最後に報告された内容をまとめた一覧表ということだな」
責任者は、答えに詰まった。
「……そうなります」
「責めているわけじゃない。いま必要なのは、何がわかっていて、何がわかっていないのかを整理することだ」
黒木は、一覧表の空欄を指さした。
「まず、ここを埋めよう」
*
午前零時二十分。
調達部門から、契約台帳が送られてきた。
サイバーナイト株式会社は、複数の事業者とサーバーやウェブサービスの契約を結んでいた。
契約先の名前、契約期間、費用、担当部署。
必要な情報は、きちんと記録されている。
しかし、今回必要なのは、それだけではなかった。
「ブロッサムネットとの契約は、どのシステムに対応している?」
黒木が尋ねた。
調達部門の担当者が答えた。
「契約書には、ウェブホスティングサービスと記載されています」
「具体的には?」
「契約時の申請書を確認します」
「申請書には、サーバーの台数やPHPのバージョンまで書いてあるのか?」
「そこまでは、記載されていないと思います」
黒木は、画面を切り替えた。
「では、契約台帳とシステム台帳を突き合わせよう。契約先がわかることと、その契約で何が動いているのかがわかることは、別だからな」
サーバーとは、ウェブサイトやシステムを動かすためのコンピューターだ。
ホスティングサービスは、そのコンピューターや関連する環境を事業者から借りて利用する仕組みである。
自社で機械を購入し、社内に設置しなくても、ウェブサイトを運営できる。
便利な仕組みだ。
だが、外部に任せているからといって、利用する企業の責任がすべてなくなるわけではない。
事業者が管理する範囲と、利用企業が管理する範囲は、契約やサービスの構成によって異なる。
今回のPHPの問題では、誰が修正を適用するのか、誰が対象サーバーを把握しているのかを確認する必要があった。
「ブロッサムネットに、契約しているサービスの一覧を出してもらおう」
黒木は指示した。
「サーバーの識別情報、PHPのバージョン、修正版の適用方法。こちらで必要な情報を具体的に伝えるんだ」
*
午前零時三十分。
ブロッサムネットの担当窓口から、最初の返信が届いた。
《現在、対象環境の確認を進めております。修正版の提供状況および適用方法について、確認でき次第ご案内いたします》
黒木は、その文章を読んだ。
丁寧な返答だった。
しかし、知りたいことへの答えは、まだない。
「向こうも調査中か」
セキュリティ担当者が言った。
「はい。先方の管理環境についても、確認が必要なのだと思います」
「ならば、こちらも待っているだけではいけない」
黒木は、契約台帳を再び開いた。
「ブロッサムネット以外の契約先は?」
「現在、調達部門が確認しています」
「各事業部門にも、直接契約しているサービスがないか聞いてくれ。ウェブサイトだけでなく、問い合わせフォームや会員向けページも含める」
「すべての事業部門に、ですか?」
「そうだ。今回の問題は、会社の公式サイトだけに起きるとは限らない」
黒木は続けた。
「それから、外部の制作会社が保守しているサイトも確認する。制作会社がサーバーを用意している場合もある。契約書に『ウェブサイト制作』としか書かれていなくても、裏側で何が動いているかを確かめなければならない」
「承知しました」
「ただし、PHPを使っているというだけで、すべてのシステムが同じ危険度だと決めつけないこと。バージョン、構成、公開状況、対策の有無を確認して、影響を判断する」
黒木は、画面に新しい欄を追加した。
《対象システム》
《契約先》
《管理責任者》
《PHPの利用状況・バージョン》
《修正の担当者》
《対応状況》
《攻撃の痕跡の確認状況》
「この項目で、全社の状況をまとめよう」
*
午前零時四十分。
調達部門から、追加の情報が届いた。
ブロッサムネットとの契約に加え、別の事業者と契約しているウェブサービスが複数あることがわかった。
そのなかには、事業部門が個別に導入したサービスもあった。
「このサービスは、情報システム部門の台帳に載っていないのか?」
黒木が尋ねた。
「はい。事業部門が直接、制作会社に依頼したものです」
「サーバーの管理は?」
「制作会社側で行っていると聞いています」
「PHPを使っているかどうかは?」
「確認できていません」
黒木は、表の該当欄に《未確認》と入力した。
「まず、制作会社に問い合わせよう。使っているかどうかもわからないものを、勝手に安全と判断するわけにはいかない」
情報システム部門の責任者が、慎重な口調で言った。
「ただ、すべての委託先から回答を得るには、時間がかかるかもしれません」
「わかっている」
黒木は答えた。
「だから、優先順位をつける。インターネットから直接アクセスできるか。顧客情報を扱っているか。今回の脆弱性の影響を受ける環境か。そうした情報を集めて、先に確認すべきものを決める」
「承知しました」
「それから、回答を待つ間も、攻撃の痕跡の確認は続けてくれ。脆弱性への対応と、侵入の有無を調べる作業は、並行して進めるんだ」
黒木は、一覧表に目を戻した。
契約先がわからない。
管理者がわからない。
PHPを使っているかどうかもわからない。
ひとつひとつは、小さな空欄に見える。
しかし、その空欄が連なれば、会社全体の状況を正しく判断できなくなる。
*
午前一時。
ブロッサムネットから、二度目の連絡が届いた。
《ご契約中のサービスについて、対象環境の確認を継続しております。お客様側で管理されているアプリケーションのPHPバージョンについては、別途確認をお願いいたします》
黒木は、その一文に目を止めた。
「こちら側で管理しているアプリケーション?」
セキュリティ担当者が、契約資料を確認した。
「ホスティング環境の管理と、アプリケーションの管理が分かれている可能性があります。サーバー側の修正は先方が行えても、ウェブサイトのプログラムについては、当社や制作会社が対応する契約かもしれません」
「契約書を確認してくれ」
黒木は、調達部門に連絡した。
しばらくして、該当する契約書と申請資料が共有された。
ブロッサムネットは、ホスティング環境を提供している。
一方、一部のウェブサイトについては、サイバーナイトが用意したプログラムを動かしていた。
サーバーを管理する側と、その上で動くプログラムを管理する側が、必ずしも同じではなかったのだ。
「なるほど」
黒木は、資料を閉じた。
「先方に任せている部分と、こちらで対応する部分を分けよう。サーバー側で修正版を適用してもらえるのか。アプリケーション側で追加作業が必要なのか。そこを明確にする」
「はい」
「それと、作業が終わったという連絡を受けたら、それで完了にしない。対象の環境に修正版が適用されたことを確認する。必要なら、こちらでもバージョンを確認する」
黒木は、少し間を置いた。
「任せることと、把握しないことは違う」
*
午前一時二十分。
全社の調査表は、少しずつ形になっていた。
しかし、まだ回答待ちの委託先が残っている。
ブロッサムネットの管理範囲についても、すべてが確定したわけではない。
攻撃の痕跡については、現時点で明確な兆候は確認されていない。ただし、調査は継続中だった。
黒木は、セキュリティ担当者に尋ねた。
「いまの時点で、経営陣に報告するなら、どう説明する?」
担当者は考えてから答えた。
「PHPの重大な脆弱性について、影響を受ける可能性のあるシステムを調査中です。外部事業者への確認と修正版の適用準備を進めています。現時点で、攻撃による被害は確認されていませんが、調査は継続しています」
「いいだろう。未確認のシステムが残っていることも、明記してくれ」
黒木は、会議室の画面を見つめた。
首相の投稿は、企業に警戒を促した。
ブロッサムネットも、契約先として確認を進めている。
社内の担当者たちも、できる限りの情報を集めている。
それでも、会社の全体像を把握するには時間がかかる。
警告を受け取ることと、対応できること。
契約を結ぶことと、管理状況を知っていること。
技術的に修正することと、組織として安全を確認すること。
それぞれの間には、思っていた以上の距離があった。
黒木は、調査表の最上部に、ひとつの項目を追加した。
《全社の状況を把握している責任者》
その欄には、まだ名前が入っていなかった。
黒木は、自分の名前を入力した。
最高情報責任者として、全ての技術作業を自分で行うわけではない。
だが、各部門の報告をつなぎ、リスクを把握し、必要な判断を経営陣に示すことは、自分の責任だった。
「明朝までに、未確認の項目を整理しよう。確認できないものは、確認できないと報告する。そのうえで、どこを優先するか決める」
黒木は、そう指示した。
午前一時半。
会議は、まだ終わらなかった。
そして調査表には、新たな行が追加されていた。
契約先は記載されている。
しかし、そのシステムを管理する担当者の欄は空白だった。
黒木は、その行を見つめた。
次に確認すべきなのは、サーバーの場所だけではない。
そのサーバーで、誰が何を動かしているのか。
そして、問題が起きたとき、誰が責任を持って対応するのか。
それを確かめなければ、今回の危機は終わらない。




