脆弱(ぜいじゃく)性対策とパッチマネジメントを再考する:セキュリティ強化塾(2/3 ページ)
脆弱性という言葉は知っていても、詳細を把握していないという人も多い。ウイルスや不具合との違いは何だろうか。
脆弱性とはソフトウェアにおける「アキレス腱(けん)」
OSやソフトウェアにおける欠陥には、大きく2つの種類がある。1つは「不具合(バグ)」だ。例えば、計算機プログラムで足し算を実行したが答えを正しく導けないといったように、本来あるべき機能が実現できていないことを指す。一方、脆弱性とは、開発者が想定していた機能を逸脱して、想定外の挙動を引き起こせるような「悪用できる異常系の不具合」だ。
例えば、Webサイトに氏名、電話番号、メールアドレスなどを入力するフォームを設置することを想定してみよう。通常の使い方であれば電話番号やメールアドレスが入力されるはずだが、「' OR 1=1--」という想定外の文字列が入力された場合にデータベースに格納されたデータが不正に取得される可能性がある。これはSQLインジェクションと呼ばれる代表的な脆弱性を突いた攻撃の1つだ。
この他にも、メモリ上にあるバッファーと呼ばれるエリアに細工を施して不正なプログラムを実行させてしまうバッファーオーバーフロー、正規Webサイトに不正なスクリプトを混入して不正な表示やダウンロードを実行させてしまうクロスサイトスクリプティングなど、さまざまな攻撃が存在する。
例えるならば、脆弱性はソフトウェアやOSに存在する「アキレス腱」だ。ギリシャ神話では、神の水に浸されて不死となったアキレスだったが、その時、母がつかんでいた足首だけが致命的な弱点になった。アキレス自身もそれを認識しておらず、命を落とす原因となったのだ。
コラム:セキュリティ業界は脆弱性を何に例える?
脆弱性の説明は難しいのか、セキュリティ業界の各社、団体は「たとえ話」を用いた解説を行っている。その幾つかをピックアップしてみよう。
IPAは、脆弱性を「インフルエンザ」に例える。対策をしている人はインフルエンザにかからないが、対策をしていない人は寝込んでしまう。ウイルスとの関連性もあって分かりやすいかもしれない。
トレンドマイクロは、脆弱性を「予期せず割れてしまった窓や鍵の壊れた裏口」と説明する。そして、窓や扉の場合、それぞれのメーカーが修理を行うことになぞらえて、ソフトウェアベンダーが脆弱性の修正パッチを提供することを紹介している。
マイクロソフトのたとえは、「登りやすくなっている雨どい」だ。玄関を施錠していても壊れた雨どいが泥棒の侵入ルートになることを指摘し、セキュリティ更新プログラムが雨どいの修理に相当すると説明する。
ソフトウェア資産管理は、クライアント端末の脆弱性対策の第一歩
繰り返しになるが脆弱性は悪用できる異常系の不具合だ。そのため、脆弱性が明らかになったタイミングでソフトウェアをアップデートする必要がある。これがほぼ唯一の対策と考えていいだろう。
クライアント端末の脆弱性対策として大前提となるのは、どの端末に、どのソフトウェアがインストールされているのかをきっちりと把握できているかどうかに尽きる。これが分からなければ、脆弱性を修正するパッチを適切に当てることなどできない。このような課題を解決するために、セキュリティ対策ソフトの中には、ソフトウェア資産管理とソフトウェアアップデートの確認を行う機能を備えたものが登場している。
また、OSやソフトウェアのサポート期間にも気をつけたい。2017年4月11日に「Windows Vista」の延長サポートが終了した。しかし、トレンドマイクロによれば、いまだに14万台以上のWindows Vistaが稼働しているという。
次にやってくる大きなサポート終了は、「Office 2007」の延長サポート終了(2017年10月10日)だろう。延長サポートが終了すると、ほとんどの場合で新たな脆弱性が発見されても修正プログラムが提供されなくなる。サポート終了前に、Office 2007をインストールしたPCが管理下に何台存在しているのかを把握し、必要に応じてアップグレードやアンインストールを行うべきだろう。
即座に当てられないサーバのパッチ管理をどうすべきか
サーバプログラムの脆弱性対策も基本的にはアップデートだ。しかし、クライアントソフトと比べるとアップデートの影響範囲が大きく、簡単にアップデートが行えないという事情があるだろう。だが、悪意ある者はそのスキを突いて攻撃を行っているのが現状だ。
最近、「Apache Struts2」の脆弱性(CVE-2017-5638)を突いた攻撃が多数報告されている。2017年3月にはトヨタファイナンスが受託し、GMOペイメントゲートウェイがサイトを運営していた「都税クレジットカードお支払サイト」が情報漏えい事故を起こしているが、その原因がApache Struts2の脆弱性だった。
この脆弱性は2017年3月7日に公開されているが、翌日から攻撃が検知されていることに注目したい。これまでのような「パッチが登場したら、検証に数カ月かけ、年に数回あるメンテナンスタイミングでの適用を検討する」といった悠長な考え方では大きな被害がもたらされてしまう。
現在では攻撃の通信パターンを把握し、攻撃性の通信を止めるWebアプリケーションファイアウォール(WAF)を設置し、パッチ適用までの時間を稼ぐことも可能だ。アップデートが提供されていない状態で行われるゼロデイ攻撃も、WAFで攻撃を観測し、パターンファイルが配信され、防御できた事例もある。パッチマネジメントだけでなく、このような対策も併用したい。
Copyright © ITmedia, Inc. All Rights Reserved.