セキュリティニュースに、しばしば登場する「脆弱性(ぜいじゃくせい)」。当ニュースでは、OSやブラウザ、プラグインなどの利用頻度が高いものしかお知らせしていないが、今年に入ってすでに2,500を超える脆弱性が報告されている。
グラフは、専門家らによる脆弱性のデータベース「CVE(Common Vulnerabilities and Exposures)」に新規に登録された昨年と今年の脆弱性数を、月ごとに集計したものである。半端な数ではないことがわかるだろう。ところがこの「脆弱性」なる言葉、情報処理推進機構(IPA)のアンケート調査によると、半数の人は「聞いたことがない」と答えたそうだ。内容まで正しく理解していた人は、わずか1割にとどまるという。今回は初心にかえって、いま一度この「脆弱性」について復習しておこう。
・情報セキュリティに関する新たな脅威に対する意識調査の報告書公開について(IPA) http://www.ipa.go.jp/security/fy17/reports/ishiki/press.html
●「脆弱性」は攻撃されやすい欠陥
「脆弱」を辞書で引くと「もろくて弱い」と書かれている。何がどう弱いのか、いまひとつはっきりしない言葉だが、もともとは「攻撃されやすい弱点」を意味する英単語「vulnerability(ヴァルネラビリティ)」に由来する。別の言葉では、ここからなら簡単に侵入できてしまうセキュリティの穴という意味で、「セキュリティホール」と呼ばれることもある。いかに堅牢なシステムでも、ここを突くと簡単にセキュリティを突破できる…そんな攻撃者にとって格好の的となるシステム上の欠陥が、脆弱性やセキュリティホールと呼ばれるものの正体である。攻撃者は、この脆弱性を突いてあなたのパソコンを操りたいのだ。
●プログラムを実行してもらいたい攻撃者たち
正常なパソコンは、あなたの操作に従っていろいろな処理を行ってくれる。実際にあなたの操作を読み取り、指示に合った適切な処理を行っているのは、パソコンの内部で動いているさまざまなプログラムたちだ。プログラムには、この指示があったらこういう処理を行うといった手順がつぶさに書かれており、パソコンはそれに従って書かれた通りのことを実行する。たとえそれが「13日になったら片っ端からファイルを削除する」とか「パスワードを入力したらここに送れ」などという、およそあなたの意に反した内容であっても、パソコンはそれを素直に実行してしまう。
悪巧みを考える攻撃者たちは、あなたの意に反した処理を行うそんなプログラムを動かし、あなたのパソコンを意のままに動かそうと目論んでいる。プログラムを動かすためには、パソコン上でそれを実行しなければならない。そこで、有用なプログラムと偽って配布したり、親しい友人を装ってメールの添付ファイルに忍ばせたり、時には怪しまれないよう画像ファイルなどに見せかけてみたり、あらゆる手段を講じてあなたにそれを実行させようと(開かせようと)する。
●脆弱性を狙う攻撃者たち
ところが、この脆弱性が悪用できるとなると、このような手間は一切不要だ。ブラウザの脆弱性ならば、サイトを訪問しただけで─。メールソフトの脆弱性ならば、メールを開いただけで─。「あなたに実行してもらう」という最大の難関を乗り越える必要なく、任意のプログラムを送り付けて実行させることができるようになる。もしその脆弱性が、ネットワークの入り口である通信部分にあるのなら、サイトに誘導したりメールを送る手間すら不要だ。ネットワークに接続しているだけで、あなたのパソコンは攻撃者の餌食になる。4月下旬に公表されたWinnyの脆弱性が、まさにこのタイプだ。
パソコンに触ることもできないのに、いったい何ができるのか? その答えは極めて明快だ。パソコンを使ってあなたにできることは、プログラムにもできることだから。外部からプログラムを送り込んで実行できれば、そのすべてが自由になる。脆弱性をもったシステムは、もはやあなたの意のままに動くあなただけのものではなく、悪意をもった攻撃者たちとの共有物なのだ。
・Winnyに深刻な脆弱性~修正の目処立たず(2006/04/24)
●パッチの公開は攻撃開始の狼煙(のろし)
欠陥部分を後から修正するプログラムは、セキュリティーホールをふさぐ「つぎあて」という意味で「パッチ」と呼ばれ、修正プログラムを適用することを「パッチを当てる」などという。通常は脆弱性が見つかると開発者に知らされ、パッチが作成される。パッチの配布とともに、脆弱性の存在がようやく明らかになる。
攻撃者は脆弱性を知るとそれを悪用し、自分にとって有用な、ユーザーにとって迷惑なプログラムを動かしたいと考える。その開発スピードは近年加速し続けており、パッチが公開された数日後に攻撃コードが出回るということがしばしば起きている。公開されたパッチは、当ててはじめて安心なのであり、当てずにいると状況は日に日に悪化していくのだ。
・Windows Media Player:パッチ公開直後、脆弱性を突く実証コード(2006/02/20)
・修正したばかりの「Firefox」の脆弱性を突く実証コードが公開(2006/02/09)
※【実証コード】
ソフトウェアの脆弱性を検証するためのプログラムコード。
主にソフトウェア開発者がチェックのために作成するものだが、
一般のユーザーが独自に作成し、ネット上で公開されることもあるが、
それが悪用されれば「実証コード」=「攻撃コード」となってしまう。
●増える「ゼロデイ攻撃」
脆弱性の存在は、違う角度から明らかになることもある。多くは実証コードがネット上で先行公開されてしまい、それを追うようにセキュリティベンダーがいっせいに警告を出すというパターンだ。未修正の脆弱性は攻撃者にとってまたとない格好の材料で、修正パッチのリリースを待たずに悪用されることもしばしばある。いわゆる「ゼロデイ攻撃」で、先ごろ判明したWordの脆弱性にいたっては、いきなり悪用するウイルスが出回るという最悪のシナリオが展開された。
※【ゼロデイ攻撃(zero-day attack)】
脆弱性が一般に公開され、修正パッチの提供などによる
ユーザー側の対策が調う前に始まる攻撃。
または攻撃方法が作成され、攻撃される可能性のある状態。
根本的な問題解決の手段となる修正パッチは、さまざまなユーザー環境で正常に動作することを検証するために、作成に相当の時間を必要とする。一方、侵入しようとする悪質なプログラムをひたすら監視し、見つけたらつまみ出すことが仕事のセキュリティ対策ソフトは、ターゲットさえ判明すれば素早い対応ができる。ウイルスの指名手配写真ともいえる定義ファイルは日々更新されており、最近の事例では、ユーザー自身の危険回避策とともにセキュリ対策ソフトの早い対応に救われた部分も多く、大事に至らずに済んでいる。
・Microsoft Wordの脆弱性を突くウイルス出回る~添付ファイルに注意(2006/05/23)
・IEの脆弱性狙う攻撃コードが公開~悪用サイトが次々出現(2006/03/27)
・WindowsのWMF画像処理に深刻な未修正の脆弱性、悪用するサイトも(2005/12/29)
(執筆:現代フォーラム 鈴木)