第七話 能動的サイバー防御/攻撃を待ってからでは、遅い
第七話 能動的サイバー防御/攻撃を待ってからでは、遅い
佐伯は、モニターに表示された通信記録を見つめていた。
画面には、
・時刻、
・接続元、
・アクセス先、
処理結果が並んでいる。
一見すると、どこにでもあるシステムの記録だった。
しかし、その中には、見過ごせないものが混じっていた。
「このアクセスについて、もう一度確認してください」
佐伯が言った。
隣に座る若手の調査担当者が、記録を拡大した。
「例のPHPの脆弱性を狙ったものですか?」
「その可能性があります。ただし、可能性があることと、確認できたことは別です」
佐伯は、別のウィンドウを開いた。
そこには、インターネット上で公開されていた攻撃プログラムのコードが表示されていた。
「公開されたコードと、実際の通信記録を比較します。どの部分が一致しているのか。攻撃が成功した形跡はあるのか。そして、攻撃の前後に何が起きているのか」
「でも、攻撃プログラムが公開されているんですよね?」
若手は、少し考えてから言った。
「だったら、公開した人が犯人なのではありませんか?」
佐伯は、すぐには答えなかった。
「このプログラムを公開した人が、実際に攻撃した証拠はありますか」
「それは……」
「公開した人と、利用した人が同じとは限りません」
佐伯は、モニターに表示されたコードを指した。
「攻撃に利用できるプログラムが公開されれば、別の人間がそれを入手して使うこともできます。公開者が自分で攻撃する場合もあれば、まったく別の人物が利用する場合もある」
「つまり、同じプログラムを使っているというだけでは、犯人を特定できないんですね」
「そうです。共通する特徴は、調査の手掛かりになります。しかし、それだけで実行者の身元まで分かるわけではありません」
若手は、画面を見直した。
コードが存在すること。
そのコードが実際の攻撃に使われたこと。
そして、誰が攻撃を実行したのか。
それぞれ、別の証拠が必要だった。
「まずは、分かっていることを整理しましょう」
佐伯は、調査記録に項目を追加した。
確認できた事実。
可能性があること。
まだ確認できていないこと。
三つを分けて記録する。
その作業は地味だったが、調査の土台になるものだった。
*
「佐伯、進捗を聞かせてください」
調査チームの上司が、二人の席にやってきた。
佐伯は、確認できた事実と未確認の事項を説明した。
上司は、報告を聞き終えると尋ねた。
「攻撃者の特定には、まだ時間がかかりますか」
「はい。現在の証拠だけでは、断定できません」
「では、特定できるまで待つべきでしょうか」
佐伯は首を横に振った。
「いいえ。攻撃者の身元を調べることと、被害の拡大を防ぐことは、並行して進める必要があります」
上司は、うなずいた。
「具体的には?」
「まず、脆弱性の影響を受けるシステムを確認します。必要な修正を行い、侵入の痕跡がないか調べる。すでに侵入されている可能性があれば、被害の範囲を確認し、状況に応じて接続の遮断やサービスの停止も検討します」
「修正すれば、それで終わりではないのですね」
「はい。脆弱性を修正しても、過去に侵入されていた可能性までは消えません。修正と、侵入の有無の確認は、別の作業です」
佐伯は、ひと呼吸置いた。
「たとえば、建物の鍵に不具合が見つかったとします。鍵を交換すれば、その不具合は直せます。しかし、交換する前に誰かが侵入していたなら、何が起きたのかを別に調べなければなりません」
「システムも同じということですね」
「そうです」
上司は、資料に目を落とした。
「では、サービスを止める判断は、いつ行うべきでしょうか」
「被害の可能性と、サービスを止めることによる影響を比較する必要があります。ただし、利用者への影響を理由に、危険な状態を放置することはできません」
サービスを止めれば、利用者は不便を強いられる。
仕事で必要な情報を確認できなくなる人もいる。
ポイントを使いたい人も、クーポンを取得したい人もいる。
一方で、サービスを動かし続ければ、被害が広がるかもしれない。
「判断を先送りにすることも、ひとつの判断です」
佐伯は言った。
「そして、その判断によって被害が拡大する可能性もあります」
上司は、静かにうなずいた。
「分かりました。証拠の保全と原因の調査を続けながら、被害を防ぐための対応を優先してください。何を根拠に、どのような判断をしたのか、記録も残しておきましょう」
「承知しました」
調査は、犯人を見つけるためだけにあるのではない。
被害を防ぎ、システムを安全に利用できる状態へ戻すためにもある。
佐伯は、そのことを改めて確認していた。
*
午後。
若手の調査担当者が、新しい資料を持ってきた。
「佐伯さん。今回の攻撃と似た特徴を持つ通信が、ほかの事例でも確認されています」
「どこが似ていますか」
「アクセスの順序と、送信されたデータの一部です。ただ、完全に一致しているわけではありません」
「では、同じ攻撃者によるものだと言えますか」
若手は、口を閉じた。
「……まだ言えません」
「そのとおりです。共通点は、関連性を調べる手掛かりになります。しかし、同じ道具を使っていることと、同じ人物が使っていることは別です」
佐伯は、複数の記録を並べた。
同じ脆弱性を狙っていても、攻撃者は違うかもしれない。
同じプログラムを利用していても、目的は違うかもしれない。
そして、一見すると無関係に見える攻撃が、共通の手口を持っていることもある。
「一つの事件だけを見ていると、全体像を見誤ることがあります」
佐伯は言った。
「だからといって、共通点を見つけただけで、すべてを一つの事件にまとめてはいけません」
若手は、記録を見ながらメモを取った。
「慎重に調べることと、早く対処することは、両立できるんですね」
「両立させなければなりません。証拠が足りないからといって、目の前の被害を放置する理由にはなりませんから」
若手は、少しだけ表情を変えた。
技術的な調査とは、答えが出るまで何もできない仕事ではない。
分かっていることに基づいて必要な対策を進めながら、分からないことを一つずつ明らかにしていく仕事だった。
*
その日の午後、調査チームでは、政府が進めるサイバー防御の仕組みについても話題になった。
若手が資料を読みながら言った。
「最近、能動的サイバー防御という言葉をよく聞きます。これは、攻撃者に反撃するという意味なんでしょうか」
佐伯は、資料を受け取った。
「それだけではありません」
「違うんですか?」
「簡単に言えば、攻撃を受けてから対応するだけではなく、攻撃の兆候を早期に把握し、被害が発生する前に防ぐことを目指す考え方です」
佐伯は、机の上に置いた紙に、三つの項目を書いた。
一つ目。攻撃の兆候を把握する。
二つ目。被害の拡大を防ぐ。
三つ目。必要な場合には、法律に基づいて対処する。
「たとえば、私たちが通信記録を調べ、不審な動きを見つけたとします。自社のシステムを守るために接続を遮断したり、脆弱性を修正したりする。これは、企業が自らのシステムを守るための対策です」
「能動的サイバー防御も、同じことですか?」
「考え方には共通する部分があります。しかし、政府の制度としての能動的サイバー防御は、それだけを指す言葉ではありません」
佐伯は、続けた。
「政府には、社会全体に影響する重大なサイバー攻撃に対処する役割があります。そのために、攻撃に関する情報を把握し、関係機関と共有し、法律に定められた条件と手続きの下で、必要な措置を取る仕組みが整えられています」
若手は、資料を見つめた。
「攻撃に使われているサーバーを止めることもあるんですか?」
「一定の要件を満たす場合には、攻撃に使われているサーバーなどへの対処が可能になる制度があります。ただし、自由に相手のコンピューターへ侵入してよい、という意味ではありません」
「でも、攻撃に使われていると分かっているなら、すぐに止めたほうがいいのでは?」
佐伯は、若手を見た。
「そのサーバーが、本当に攻撃者自身のものだと確認できますか」
「……分かりません」
「攻撃者が、第三者のサーバーを乗っ取って使っている可能性もあります。そのサーバーを止めれば、無関係な人のサービスまで停止させてしまうかもしれません」
若手は、資料を読み直した。
「攻撃を止めるための措置が、別の被害を生む可能性もあるんですね」
「そうです。だからこそ、技術的な情報だけでなく、権限や手続き、対処による影響も考えなければなりません」
佐伯は、三つの項目をもう一度指した。
「攻撃の兆候を把握すること。被害を防ぐこと。そして、必要な対処を適切な手続きで行うこと。この三つを、切り離して考えてはいけません」
「では、能動的サイバー防御があれば、攻撃を完全に防げるんでしょうか」
「いいえ」
佐伯は、はっきりと答えた。
「どんな制度や技術にも、限界はあります。攻撃を早期に把握できる可能性は高められますが、すべての攻撃を事前に見つけられるわけではありません。だから、攻撃を防ぐ仕組みと、被害を受けた後に調査・復旧する仕組みの両方が必要なのです」
若手は、ゆっくりとうなずいた。
攻撃を未然に防ぐこと。
被害が起きたときに、原因を調べ、復旧すること。
どちらか一方だけで、社会の安全を守ることはできない。
*
夕方。
調査チームに、利用者から寄せられた問い合わせの一覧が届いた。
「サービスに接続できません」
「ポイントを使おうとしたら、エラーが出ました」
「仕事で必要な情報を確認できません」
「いつになったら復旧するのでしょうか」
一つひとつの問い合わせは、短い。
だが、その向こうには、それぞれの生活があった。
買い物の予定を立てていた人。
仕事のために情報を確認しようとしていた人。
いつもどおりにサービスを利用できると考えていた人。
彼らは、PHPの脆弱性が何なのかを知らない。
攻撃プログラムがどこで公開されたのかも、誰がそれを利用したのかも知らない。
ただ、いつも使えていたサービスが使えなくなり、復旧の見通しも分からないことに困っていた。
若手は、問い合わせの一覧を見て言った。
「私たちが調べているのは、通信記録やプログラムです。でも、利用者にとっては、サービスが使えないことそのものが問題なんですね」
「そうです」
佐伯は答えた。
「サイバー攻撃の被害は、画面に表示されるエラーや、企業が公表する被害額だけでは測れません」
「利用できなかった時間も、被害の一部だということですか」
「それだけではありません。予定を変更しなければならなかったり、別の方法を探したり、個人情報や財産が大丈夫なのかと不安になったりする。そうした影響もあります」
佐伯は、問い合わせの一覧を見つめた。
「だから、調査を進めるだけでは足りません。分かっていることを適切に伝え、利用者が必要な情報を得られるようにすることも重要です」
技術者の仕事は、コンピューターの中だけで完結するものではなかった。
システムを利用する人々の生活と、つながっている。
*
帰宅前。
佐伯は、調査記録を保存し、明日の作業項目を確認した。
公開された攻撃プログラムと、実際の攻撃との関連を調べる。
通信記録を分析する。
侵入の痕跡がないか確認する。
被害の拡大を防ぐために、必要な対策を進める。
どれも、欠かせない仕事だった。
しかし、調査を進めても、すべての疑問がすぐに解けるわけではない。
攻撃プログラムを公開した人物は、誰なのか。
実際に攻撃を行ったのは、誰なのか。
複数の事例に見られる共通点は、何を意味するのか。
佐伯には、まだ分からないことが多く残されていた。
それでも、分からないことを理由に、できることまで止めるわけにはいかなかった。
攻撃者の身元が分からなくても、脆弱性を修正することはできる。
攻撃の全容が分からなくても、確認できた危険に対処することはできる。
そして、攻撃の兆候を早期に把握し、被害を防ぐための仕組みを整えることもできる。
佐伯は、最後に調査記録を見直した。
事実と推測を分ける。
証拠を残す。
必要な対策を進める。
そして、新たな情報が得られたら、判断を見直す。
それが、彼の仕事だった。
攻撃を受けてから、原因を調べる。
被害を確認し、復旧する。
その一方で、攻撃の兆候を見つけ、被害が広がる前に防ぐ。
どちらも必要だった。
佐伯は、モニターの電源を切った。
サイバー攻撃は、コンピューターの画面の中だけで終わるものではない。
その先には、サービスを利用する人々がいる。
守るべきなのは、システムだけではなかった。
人々が、いつもの生活を安心して続けられること。
それもまた、サイバー危機管理の大切な目的なのだった。




