Javaアプリケーションは、Webスクリプト言語で書かれたアプリケーションに比べて、一般的な脆弱性がはるかに少ないことが分かっています。SQLインジェクションの脆弱性を持つJavaアプリケーションは4分の1未満であるのに対し、PHPで書かれたアプリケーションでは4分の3以上がSQLインジェクションの脆弱性を持っています。
Veracode の新しいソフトウェア セキュリティの現状レポート (PDF) にはそう記されています。
調査では、PHP、Java、JavaScript、Ruby、Microsoft Classic ASP、.NET、CおよびC++、iOS、Android、COBOLなどの言語をクロールし、過去18か月間で5万個のアプリケーションをスキャンしました。
その結果、PHP アプリは他のアプリよりも状況が悪く、危険で永続的、かつ簡単に悪用される Web アプリケーションの脆弱性の 1 つである SQLi が 86% に及んでいることがわかりました。
これらのアプリの半数以上には、Web アプリのセキュリティ上のもう 1 つの大きな問題であるクロスサイト スクリプティングの脆弱性も存在します。
ASP アプリケーションの約 3 分の 2 に SQLi の脆弱性が存在します。そして、予想どおり、ColdFusion も僅差で続いており、アプリケーションの 62 % にこのバグが含まれています。
さらに悪いことに、PHP、ASP、ColdFusion で作成されたアプリの 80 パーセントが、Open Web Application Security Project のトップ 10 品質コーディング ベンチマークの 1 つを採用した初歩的なセキュリティ テストに不合格になりました。
トップ 10 は、「当社はセキュリティを真剣に受け止めています」という定型文を評価する基準として掲げられています。
Android アプリの約 87 パーセントに暗号化実装の問題があり、90 パーセントにコード品質の問題があり、これは調査対象となった他のどの言語よりも高い数値です。
「組織が新しい開発プロジェクトを開始し、言語と方法論を選択するとき、セキュリティチームは、発生する可能性のある脆弱性の種類と、それらを最も適切に評価する方法を予測する機会を得ます」と、Veracodeのセキュリティ責任者であるクリス・ワイソパル氏は言う。
「このレポートのデータは、言語の選択、開発者のトレーニング、そして避けられない修復プロセスの負担を軽減するために使用する評価手法に関する決定に役立ちます。
「この情報により、セキュリティ部門が開発部門と連携しやすくなり、ソフトウェア開発ライフサイクルにおけるセキュリティの成熟度を高め、リスクの少ないアプリケーションを開発できるようになります。」
ただし、アプリケーション セキュリティに関する書籍を読んだり、コースを受講したりすると、開発者の情報セキュリティ スキルが約 3 分の 1 向上します。®