TOPSoftware > 脆弱性報告数、言語別のランキングが持つ意味は(前)

Software

脆弱性報告数、言語別のランキングが持つ意味は(前)

2020/05/19

Samuel Bocetta JavaWorld

 プログラミング言語のセキュリティのレベルを比べるとしたら、何をもってセキュリティが高いと判断するかという定義によって結果は変わってくる。オープンソースソフトウエアの脆弱性の報告数をプログラミング言語別に比べた昨年3月発表の調査結果で、Javaは第3位だった。一見、脆弱性の報告数が少ない言語の方がセキュアという印象を受けるが、実際は必ずしもそうとは言えない。

Credit: Denis Isakov / Getty Images

 Javaで見つかった脆弱性の多くは、Javaの人気の高さゆえに見つかった脆弱性である。広く使われている分、大勢のバグハンターたちが脆弱性を熱心に探していることが、逆の意味で「上位」に押し上げた。一方、Rubyをはじめ、新しい言語の方が脆弱性の報告数が少なかったのは、セキュリティの万全さというよりは、利用の少なさを反映している可能性もある。

 この記事では、主要なプログラミング言語をセキュリティの面で比較した結果について見ていく。言語ごとでセキュリティの水準に違いが生じる理由や、脆弱性の報告数がここ数年で大きく増えた理由を説明したうえで、コードの脆弱性を減らす方法をいくつか取り上げる。

 結局のところ、セキュリティという観点で言えば、発見された脆弱性の方が、未知のままの脆弱性よりもましだ。

Javaの順位は

 米WhiteSourceは、主要なプログラミング言語で開発されたソフトウエアの脆弱性について、昨年調査を行った。オープンソースソフトウエアのセキュリティやライセンスの管理プラットフォームを手がける同社は、オープンソースコミュニティで広く使われているプログラミング言語として、C言語、Java、JavaScript、Python、Ruby、PHP、C++の7つを選び、さまざまなデータソースから得た情報に基づいて、脆弱性の報告数を言語ごとに分類し、ランキング化した。

 それによると、断トツで1位となったのはC言語で、報告された脆弱性の47%を占めた。C言語製のプログラムが最も脆弱性が多かったのは、経験豊富なプログラマーにとっては意外ではないかもしれないが、その他の結果はどうだろうか。大きく離れた第2位はPHPで17%、第3位はJavaで12%、第4位はJavaScriptで11%だった。以下、Python、C++、Rubyと続いた。

↑ページ先頭へ