基本的なこと
コンピュータのセキュリティーにおいては、定石はあるが万能策はない。
これは、すでに発見されたセキュリティーホールへの対応策は確立されているが、未だに発見されていないものについてはその対応策はないという、当たり前すぎる理屈である。
いまのところ、コンピュータプログラムについて不具合(bug)が無いことを証明するための理論はない。
通常、プログラミングの最終テスト段階においては、疑似データによって意図したとおりの結果が得られるかを確認し、もし結果が満足したものでなかったら該当するコード部分を丹念に人手で追跡し、誤りを見つけ手直しするという方法を繰り返す事によって完成品に仕上げられる。
ここで、テストに使われる疑似データはあらゆる条件を網羅したものが使用されべきであるが、何をもって全て試したと言い切れるのかは難しい。従って、実際にそのプログラムが市場に流通したときに不具合が発見される場合も多々発生する。
それではどうするか。完璧なコードを持つプログラムが存在し得ない以上、発見された不具合に対し迅速に修正を施すかがその影響を拡大させないための最良策である。従来、プログラムは新しいバージョンがリリースされる直前のものが一番安定していると言われるゆえんある。使い込むことによって隠れていた不具合が洗い出され、コードが修正されてより完成度の高いコードへと転換されていく。
数年前までの状況に比べ昨今のプログラムは機能が一層高度化し、かつ、複数のプログラムが一台のコンピュータ上で、あるいはネットを通して複数のコンピュータ上で稼働する状況であり、その相互間の影響も無数となり、コードが複雑で膨大な状況に拍車が掛かっている。従ってこれまで以上に市場流通後の修正が多発している状況は否定できない。
プログラムは不具合が無い方が良いに決まっている。しかし、それが出来ない以上、発見された不具合に迅速に対応し、修正しながら使っていくものだとの認識は必要である。

