イベント運営会社『DNプランニング』が運営する、チケット販売サイト『オールチケットオンライン(OCO)』は、約14万人の会員を抱えていた。
ある日、OCOはサイバーアタックを受け、約9万人の個人情報を流出させてしまった。
システム保守を行う『GRシステム』は、責任を問われ、対応に奔走することになった。
もし損害賠償請求をされたら、たちまち倒産するかも知れない。
苦情とサイバーアタックの嵐の中で、関係者たちは……
※本作はフィクションです
関連
vol. 31
「――そうなんです。申し訳ありません!」
佐川は電話で、2次被害について由加里に報告していた。
残っていたSQLインジェクションの脆弱性のため、クレジットカード番号や名義人情報が盗まれたことを。
「漏洩した対象のユーザーは、現在調査中です」
「もう、いい加減にしてよ! なんでまた、このタイミングで……。ああ、もう、ちょっと待って」
そうして、由加里はなにも言わなくなった。
「すみません! 藤野さん! 本当に……」
すると、深いため息の音に続いて、由加里の声が聞こえた。
「該当のプログラムは削除したのね? そうしたら、岩倉さんに現状報告して、決済機能またはサイトの停止を提案するわ。それまでとにかく、被害の防止に努めて!」
すでに該当のプログラムは削除し、アタック元の遮断も行った。
佐川は椅子を後ろに向けて、その場で安原と加藤と話をした。
矢口は電話に出なかった。とはいえ、電話に出たところで、来て欲しいとは思っていなかった。『担当者の1人である矢口にも、連絡しようとした』という既成事実が欲しいだけだった。
「なんであんなゴミが残っていたんです? マジ最悪ですね」
と言う安原に、佐川は答えた。
「たぶん、誰かがテスト用に置いたんだろう……」
というのは、本番サーバにあった、アタックの対象になったプログラムのことだ。
そのプログラムはドメイン以下から、
/testprod
と打つとアクセスできるようになっていた。
あるプログラムのバグを調査するために、一時的に置いたもののようだった。
本番サーバでのデバッグは推奨されないものの、効率の点でこのような方法が取られていた。
このデバッグ用のプログラムに、SQLインジェクションの脆弱性が混入していたのだ。
さらに、このプログラムはイレギュラーな扱いのため、ソースコード管理システムに登録されていなかった。
そのため、開発サーバやソース管理システムをどれだけチェックしても、このプログラムの脆弱性が炙り出されることがなかった。
なお、クレジットカード番号がデータベースに保存されていた理由は、『なにか合った場合にデバッグなどするため、ログとして全部のリクエストパラメータを記録する』ためだった。
細かな点を列挙すれば他にも、『本番サーバの構成管理不備』『そもそもSQLインジェクションを許してしまう開発体制』『デバッグ方法の不備』など、色々な問題が内在していた。
佐川はなにかの書籍で読んだ、ハインリッヒの法則のことを思い出した。
ハインリッヒの法則とは、
『致命的な事故の背景には、スルーされてきた数々の小さな問題が潜む』
というトラブルの本質を指摘するものだ。まさに、日頃の小さな危機管理の大切さを説明する法則である。
しかし、佐川はハインリッヒの法則を知りながら、行動に移せなかった。
「すまん。本当に、すまん……」
佐川は安原と加藤にあやまった。
その想いの先には、由加里や大島の顔があり、さらには岩倉やエンドユーザーの顔があった。
安原は言った。
「俺のチェックも甘かったんです。リポジトリや開発サーバだけを見てたから……。こういうことを考えてなかったです。まさか、あんなところにゴミが突っ込まれてるとは……」
「いや、仕方ないだろ……。本来は安原くん、OCO案件とは関係ないんだから。手伝ってくれてるだけで、ありがたいよ」
そこで、安原は怪訝そうな表情をした。
「ところで、あのプログラム、誰が設置したんですか?」
「わからない。矢口くんか、辞めたやつか。その他の関係者か。サーバの転送ログを見ればわかるかも知れないが、しかし、そんな場合じゃないな……」
そう言いながら、佐川は自分の甘さを呪った。
もっと、気を引き締めて管理、監視をしなければならなかった。チームの仲間を信じた自分が馬鹿だった、と。
社内は騒然となっていた。
技術陣は由加里の指示を待ちながら、2次被害の対策に奔走した。
斎藤は文句を言いながら、メールの返信文作成を指揮していた。文章力が格段にレベルアップしたことだろう。
仁科はクレーム対応の長期化を見越して、コールセンターを手配していたのだが、その用意が進みつつあるようだった。それが救いと言えば救いだった。