このところ、プログラミング言語「PHP」の重大な脆弱性がニュースで取り上げられ、ウェブサイトやオンラインサービスを一時停止する動きが広がってゐる。

普段、何気なく利用してゐるウェブサイトが突然見られなくなれば、不便に感じる方も多いだらう。

しかし、サービスが停止してゐるからといって、必ずしもシステムが故障したわけではない。攻撃による被害を防ぐため、あえてサービスを止めてゐる場合もある。

今回の出来事は、企業や自治体のシステムを守るために、ITエンジニアが日頃どのやうな仕事をしてゐるのかを知っていただく、ひとつの機会になると思ふ。

そこで今回は、セキュリティ上の問題が見つかったとき、現場でどのやうな対応が行はれるのか、私が経験してきたシステム運用の視点からお話ししたい。

脆弱性が見つかったら、何をするのか

ITエンジニアは、重大なセキュリティ事故が起きてから対応するだけではない。

メーカーや販売代理店、ソフトウェアの開発元などから、日々、製品やプログラムに関するセキュリティ上の注意喚起が寄せられる。担当者は、その情報を確認し、自分たちが管理するシステムに影響がないかを調べる。

たとへ、指摘された脆弱性を悪用される可能性が低いと思はれても、対象となる製品やプログラムを使用してゐるのであれば、安易に無関係と判断するわけにはいかない。

まずは、指摘された製品やプログラムが、自分たちのシステムに該当するかどうかを確認する。

たとへば、次のやうな場合には、影響を受けないと判断できることがある。

  • 対象製品が備へてゐる機能を利用してゐない
  • 使用してゐる製品のバージョンが、脆弱性の対象に含まれてゐない
  • 指摘されたプログラムや機能が、実際のシステムで使用されてゐない

ただし、これらはあくまで確認項目の例であり、ひとつの条件だけで安全と判断できるとは限らない。製品の構成や設定、利用してゐる機能などを含めて、慎重に確認する必要がある。

しかも、こうした判断は、一人の担当者だけでは難しいことが多い。

社内のサーバーやネットワークの専門家に確認したり、ソフトウェアの開発を担当した部署に問い合わせたりする。必要に応じて、メーカーや販売代理店にも調査を依頼する。

つまり、脆弱性の情報を受け取ったからといって、すぐに対策を決められるわけではないのである。

安全が確認できないとき、サービスを止めることもある

では、脆弱性の影響を受ける可能性があると分かったら、どうするのか。

まず考へるのは、被害を防ぐための措置である。

影響を受ける可能性が高く、十分な安全性を確認できない場合には、対象の機能やサービスを一時的に停止することも選択肢になる。

利用者にとっては、不便な話である。企業や自治体にとっても、サービスを止めれば問い合わせが増えたり、業務に支障が出たりする。

それでも、サービスを動かし続けた結果、情報漏えいやシステムの乗っ取りなどが起きてしまえば、被害はさらに大きくなるおそれがある。

今回のPHPの問題でも、脆弱性への対応を優先し、ウェブサービスの一部を停止する動きが報じられた。

こうした停止は、必ずしも被害が発生したことを意味するものではない。被害を未然に防ぐための予防措置である場合もある。

もちろん、停止すればそれで終はりではない。どこまで影響が及ぶのかを確認し、安全に再開できる条件を整へる必要がある。

修正プログラムを適用すれば、それで済むのか

脆弱性への対策として、一般的に考へられるのは、修正プログラムの適用やソフトウェアのバージョンアップである。

メーカーなどから対策が提示されれば、その内容を確認し、適用を検討する。

しかし、実際の業務システムでは、修正プログラムを適用すればすべて解決する、というわけにはいかない。

ソフトウェアのバージョンを上げることで、これまで正常に動いてゐた別の機能が動かなくなることもある。ほかのソフトウェアとの組み合わせによって、思はぬ不具合が生じる可能性もある。

そのため、更新する前に、現在のシステム構成やほかの機能への影響を確認し、可能であれば検証環境で動作を確かめる。必要に応じて、バックアップや切り戻しの手順も準備する。

また、すぐに修正プログラムを適用できない場合には、メーカーなどから示された回避策を検討することもある。

たとへば、設定を変更して問題のある機能を無効にしたり、外部からのアクセスを制限したりする方法である。

ただし、回避策は万能ではない。脆弱性によって有効な方法は異なるため、メーカーや専門機関などの情報を確認し、適切な方法を選ばなければならない。

そして、回避策によって当面のリスクを下げられたとしても、それだけで根本的な問題が解消したとは限らない。必要な修正や更新を、しかるべき時期に実施することも重要になる。

システムを変えることにも、リスクがある

ここまで書くと、脆弱性への対応は、手順に従って修正プログラムを適用すれば済む簡単な仕事のやうに見えるかもしれない。

しかし、長年にわたって稼働してきた企業や自治体のシステムは、さまざまなソフトウェアや機器が組み合はさって動いてゐる。

ひとつの部品を更新するだけでも、ほかの機能やサービスに影響が出る可能性がある。更新によって安全性を高められても、業務そのものが動かなくなってしまっては困る。

だからといって、危険を承知で使ひ続けるわけにもいかない。

安全性を高めることと、サービスを安定して提供すること。その両方を考へながら、どの対策を、どの順序で、いつ実施するのかを判断する必要がある。

この判断には、技術的な知識だけでなく、業務への影響を理解する力や、関係部署と調整する力も求められる。

私たちが気づかないところで

今回のPHPの問題は、ひとつのプログラミング言語の脆弱性が、多くのウェブサービスに影響し得ることを示してゐる。

されど、セキュリティ上の問題は、今回のやうな大きなニュースになるものばかりではない。

日々寄せられる注意喚起を確認し、自分たちのシステムに影響があるかを調べ、必要な対策を検討する。関係部署やメーカーと相談し、業務への影響を確かめながら、修正や設定変更を進めていく。

そうした地道な作業が、日常的に続けられてゐる。

もちろん、どれほど注意を払っても、すべてのリスクをなくせるわけではない。だからこそ、問題を早く把握し、被害を防ぎ、万一のときには影響を抑へられるやうに備へることが大切なのである。

ウェブサイトがいつもどおり表示され、必要なサービスを何事もなく利用できる。その当たり前の裏側には、こうしたITエンジニアたちの仕事がある。

今回のニュースをきっかけに、普段は目にすることのない、システムを守る仕事にも目を向けていただければと思ふ。