パソコンをウイルスから守るための対策の一つに、「セキュリティパッチをあてましょう」というのがあります。さて、そのセキュリティパッチとは、いったい何なのでしょうか。セキュリティを高めるために、まず意味を押さえておきましょう。
パッチ(patch)には、継ぎ当てをする布、という意味があります。何に継ぎを当てるのか、といえば、セキュリティの欠陥(穴)、つまりセキュリティホールです。システムの安全に深刻な影響を与えるおそれのあるソフトウエアの欠陥を修復することを、ほころびた服に継ぎをあてる行為になぞられて、「セキュリティパッチ」と呼ぶのです。
では、セキュリティホールとは、どんなもので、なぜそのような「穴」が開いてしまうのでしょうか。
パソコンなどのコンピュータを動かしているのは、すべてソフトウエア、つまりプログラムです。WindowsもWordもExcelも、一太郎やインターネットエクスプローラも、すべてプログラムです。プログラムを作るのは人間です。だから、間違いを犯します。
プログラムの間違いには、独断で大きく分けてしまうと、「設計段階の誤り」と「作成段階の誤り」があります。「設計段階の誤り」とは、家を建てる時のように、プログラムを開発するときに、まずどのようなプログラムにするのかを設計します。その時に発生する誤り、仕様の誤りです。
「作成段階の誤り」とは、実際にプログラムを作成するときに発生する誤りです。文章の誤植のようなものです。プログラムを作成すると、文章を推敲、校正するのと同じように、テストということをして、誤りを発見しようとしますが、見落としてしまうこともあります。
これらの誤りのことを、バグ(虫)といいます。(余談:昔は真空管を組み合わせた回路でコンピュータを作っていて、そこに虫が入ってしまってコンピュータが止まってしまったから、プログラムの間違いをバグと呼ぶようになったという説があります。)
バグのうち、セキュリティに重大な影響を与えるおそれのあるものが、セキュリティホールです。
実際には、設計段階と作成段階の誤りが、複雑に関連して発生します。中には、開発段階では問題がないと思って付けた機能が、セキュリティホールになってしまうこともあります。先日の、インターネットエクスプローラのパッチなどは、その例です。家にたとえれば、トイレのドアを内開きで付けたら、中で人が倒れたときに開けられないので、廊下開きに付け替えたようなものでしょうか。何が問題になるか、なかなか最初に分かりにくいのが、プログラム開発の難しさでもあります。
ですから、マイクロソフトが「・・・の脆弱性」とか、「・・・のバッファオーバーランにより」といった内容で、セキュリティパッチを表現していますが、一見難しい言葉を使っていても、これらはほとんど設計や開発のミス、バグ、つまり欠陥のことです。どの行程で発生したバグかによって、表現を変えているだけです。
セキュリティパッチ、というとプログラムのごく一部だけを継ぎ当てするをするようなイメージがありますが、実際には誤りのあるプログラムを全部丸ごと置き換えてしまいます。
以上が、セキュリティパッチの概要です。セキュリティパッチが公開される、ということは、そのプログラムにセキュリティホールがあり、しかもそれが悪意のある者にも知れ渡っている、ということですから、セキュリティパッチが公開されたら、すぐにあてることが大切です。
【追記】
セキュリティホールには、例えば第三者に容易に推測されてしまうパスワードを設定するなど、プログラムに間違いはないが、利用方法がセキュリティホールになってしまっている場合などもありますが、この記事では、セキュリティパッチについて分かりやすく説明するために、上記の表現にしています。