ベンチマークを行って他のものと比較しない限り、何かを良い、悪いと言うことはできない。Linusの法則によれば「十分な数の人の目があれば、どんなバグも深刻ではない」と言うが、この考え方は、FirefoxやLinux、PHPと言った人気があり広く使われているオープンソースプロジェクトに対する静的コード分析や、その分析を他の250ものオープンソースプロジェクトと比較して証明することによって、ようやく本当の影響力を持つことができるようになるのだろう。オープンソースソフトウェアのセキュリティは向上しているのか?Coverityは最近、Open Source Report 2008を発表し、実際にセキュリティが向上していることを示した。
本レポートの調査結果の要旨は次の通りだ。
この調査は、250以上のオープンソースプロジェクトの5500万行以上のコードに対し定期的に繰り返し分析を行い、のべにして1万4238件のプロジェクトの計100億行のコードに対し分析を実行した結果に基づいている。要約すると、このレポートでは次のような調査結果が得られた。
- オープンソースソフトウェアの全体的な品質とセキュリティは向上している - Scanのサイトの研究者は、過去2年間で静的分析における欠陥密度が16%減少したことを観測した。
- 個々の欠陥の分布率 - オープンソースプロジェクトを横断的に見た時、一般的な欠陥と、まれな欠陥の間には明らかな差異がある。
- コード行数に基づく規模と静的分析による欠陥の数 - 調査によれば、この2つの変数には強い線形的な関係がある。
- 関数の大きさと静的分析による欠陥密度 - 調査によれば、静的分析による欠陥密度と関数の大きさには統計的相関関係はなかった。
- 循環的複雑度とHalstead Effort - 調査では、この2つのコードの複雑度の指標は、コード行数に基づく規模と有意な相関があることが示された。
- 誤検出 - 現在まで、Scanのデータベースで発見された誤検出の率は14%以下となっている。
今回の調査で発見された中でもっとも数が多かった欠陥はnull pointer dereferenceで、全欠陥の27.95%であり、それに続くのがリソースリークだった。一般によく知られているバッファオーバーフローは発見された問題全体の6%に過ぎなかった。このプロジェクトで得られたもっとも価値のある知見は、安全でないコーディング慣習は簡単に発見でき、これを避けるには注意を確立する必要があるということがわかったことだろう。レポートを一通り読み、あなたのオープンソースソフトウェアもScanプロジェクトに加えることを考えてみてはどうだろうか。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ