「脆弱性」──。一般的には「もろくて弱い性質」「傷つきやすい性質」といった意味だが、コンピュータやネットワークの分野では、「ソフトウエアのセキュリティ脆弱性」を指す場合が多い。

図1-1●脆弱性は「問題を引き起こす欠陥」
図1-1●脆弱性は「問題を引き起こす欠陥」
「脆弱性」の定義は人によって様々。本特集では、「セキュリティ上の問題を引き起こす、ソフトウエアの欠陥」とする。ソフトウエアの設計ミスや実装ミスで生じる。ここでの「ソフトウエア」とは、パソコンにインストールするクライアントソフトだけではなく、サーバーソフトやWebアプリケーションなども指す。

 では、ソフトウエアのセキュリティ脆弱性(以下、単に脆弱性と呼ぶ)とは何か。脆弱性の定義は人によって様々だ。本特集では、「セキュリティの問題を引き起こす、ソフトウエアの設計・実装上の欠陥」と定義する(図1-1)。

 通常のバグと脆弱性の違いは、第三者が悪用できるかどうかだ。バグは、ソフトウエアの動作を妨げる欠陥である。バグがあると、ソフトウエアは適切に動作しなくなる。だが、それ以上の問題は発生しない。

 一方の脆弱性は、開発者やユーザーが意図しない動作をする欠陥だ。攻撃者がそれを自由に操作できれば、ユーザーに被害を及ぼせるようになる。