脆弱性とは何か

昨今、「脆弱性」という言葉をニュースなどで耳にする機会が増えています。

コンピュータの世界においては、脆弱性という言葉は「ソフトウェアの安全上の欠陥」を指すことが一般的になっています。脆弱性は「セキュリティホール」などとも呼ばれたりしますが、通常のバグと脆弱性の違いはどこにあるのでしょうか?

それは第三者が悪用可能であるかどうかです。

バグはソフトウェアの動作を妨害する欠陥のことです。バグがあると、ソフトウェアは適切に動作を行うことができなくなりますが、それ以上の問題は発生しません。

一方で、脆弱性はどうでしょうか?

こちらは開発者や利用者が意図しない動作をする欠陥です。攻撃者がそれを自由に操作できれば、本来操作できないはずの操作が可能となり、利用者に被害を及ぼすことができるようになります。

ウイルス感染のシナリオ

コンピュータウイルスを例に上げてみましょう。本来であれば、ウイルスも含めたソフトウェアは、利用者が明示的に実行処理を行わなければ動作しません。しかし、パソコン上のソフトウェアに脆弱性が存在していると、ウイルスが勝手に動作することが可能となります。

OSやサーバーアプリケーションは、外部から送られてきたデータを受信して処理します。こういったソフトウェアに脆弱性があると、ウイルスを含むデータを送られただけでウイルスに感染するようになってしまいます。

また、Webブラウザやそのプラグインに脆弱性があると、脆弱性を悪用するスクリプトなどで細工したデータを配置したWebサーバに接続するだけで感染するようになります。

Officeソフトの場合はどうでしょうか?Officeソフトに脆弱性がある場合は、文書ファイルを開くだけでウイルスに感染してしまいます。