オープンソースの品質が悪いと考える人々は、この神話をよく口にします。悪意のある攻撃者はオープンなコードを読んで、自分たちが悪用できるバグを見つけることができるため、表面的には理にかなっているように見えます。このようなバグは、しばしば「ゼロデイ脆弱性」と呼ばれます。これは、ソフトウェアが最初にリリースされたときに存在し、侵入者が正規の開発者やセキュリティ研究者よりも先にその欠陥を発見する可能性があるからです。
しかし、考えてみてください。なぜ、最新のセキュリティツール(例えば、ウェブ上でデータを安全に送信するために使用される暗号化方式)は、オープンソースなのでしょうか?
実際、セキュリティ研究者は、オープンソースのツールを好んで使っています。これは、さまざまな専門家がコードをレビューできるようにするためです。プロプライエタリなツールは一般に、セキュリティの専門家によるレビューが不十分で、それゆえ欠陥があるのです。
たしかに、オープンソースのツールにもセキュリティ上の欠陥はあります。しかし、その割合はプロプライエタリなソフトウェアとほぼ同じです。悪意のある攻撃者は、ディスアセンブラやその他のツールを使って、プロプライエタリ・コードの不明瞭さを切り裂き、その欠陥を発見することができる。
コンピュータの分野では、”Security through obscurity “と呼ばれる慣行がある。この慣習は、誰もあなたのシステムを見つけられない、あるいはその弱点がどこにあるのか分からないので、誰もあなたのシステムに侵入しないという希望に基づいています。
例えば、Googleドキュメントなどの多くのツールは、ランダムな文字列を含むURLやファイル名を割り当てるため、多くの人がそれ以上ドキュメントを保護する必要がないと考えています。Security through obscurityは、ソースコードを隠蔽するための原則である。
隠蔽によるセキュリティは、暗号化など他のより強固な手法と組み合わせて有効な場合もあります。しかし、この原則は一般的にセキュリティの専門家から軽蔑されています。なぜなら、巧妙な攻撃者は不明瞭さを回避する方法を見つけることができるからです。テラバイト単位のデータを高速に解析できる巨大計算機の時代には、やっていることを隠しておくだけでは、だんだん通用しなくなってくる。