セキュリティホールと脆弱性の違い
ネット上でのセキュリティの重要性が一般にも認識されるされるようになって、しばらくたつが、IPAからセキュリティの意識調査の結果が公表されている。
「『脆弱性』より『セキュリティホール』の方が有名」、IPAの調査
それによると「セキュリティホール」というカタカナ語の方が、読みにくい「脆弱性」よりも認知されているとのことだ。
ただ自分の経験によれば、「ホール」がhole(穴)ではなく、hall(広間)だったり、foul(ファール)だったりfallやfail(失敗)だったりで、はっきりしない人も多い。なぜ穴なのかというイメージがしにくいためなのだろう。
一方、脆弱性はそもそも漢字が読めない。2ちゃんねるネタで、ある東大生が「きじゃくせい」と知ったかぶりで言い続けたことから、すっかり「きじゃくせい」が定着したという話もある。既出を「がいしゅつ」と読んだりするのと同じである。
いずれにしても、セキュリティホールと脆弱性が同じような意味で使われているとのことだが、自分としては少々気になる。セキュリティホールの方は文字通り穴であるから、欠陥とかほころびであると言ってよい。これを修正するのがセキュリティパッチのような、継ぎ当てのプログラムである。
これはそもそもアプリケーションなどにバグが存在していて、そのバグを足がかりにされてシステム自体が危険にさらされるということであるから、そのバグである穴をふさげば、とりあえずは解消するような問題である。
ところが、脆弱性=セキュリティホールではないと思う。しいて言い直せば「セキュリティ上の弱点」というのが適切かと思う。弱点は欠陥とは違う。つまり仕様上、避けられない弱点なのであり、ちょっとしたパッチを当てて解決するような問題ではない。
典型的なのが、プロトコルの脆弱性である。パスワードを送信する際に暗号化されずに平文(プレーンテキスト)で送られるようなサービスは、ソフトウェアが問題なのではなく、使われているプロトコルが問題である。身近なところでは、POP3、FTP、HTTPなどは全部だめである。そういうプロトコルを使っているシステムが脆弱なのである。
では、どうやって脆弱性を解消すればよいか。答えは簡単で、そのようなプロトコルを使わないことである。セキュアなプロトコルであるAPOP(これもだめだそうだが)、SCP、HTTPS、SSLといったものに切り替えるしかない。
ちなみにIT用語辞典によると、脆弱性は Vulnerability という。「ヴァルネラビリティ」と言ってもほとんどの人には通じないだろう。
脆弱性 【vulnerability】
その脆弱性の解釈をもっと拡大して、フィッシングだとかソーシャルエンジニアリングに対する人の行動の弱点だとか、組織の体制のことまで言ってしまうと、きりがない。そちらはもうセキュリティポリシーの問題だろう。ただ、これまた、わかったようなわからないような言葉ではある。
しかし、セキュリティ対策などというものは、まだまだ体系化されたものではなくて、時代に追いつきながら取り繕ってきたことの寄せ集めのような気もするのだが、やはり自分自身の勉強不足だろうか。