安全性が最も低いプログラミング言語はどれですか?





WhiteSourceのレビューは、どのプログラミング言語が最大のセキュリティホールを持っているかを示しました。 アンチレーティングの勝者はCです。 しかし、これは物語の始まりにすぎません。



テクノロジー全体にセキュリティバグが詰め込まれています。 低レベルでは、これらはハードウェアのエラーです。 そのため、Intelの脆弱性とSpectreエラーが発生しました。 わずかに高いのは、プログラミング言語のセキュリティの穴です。 そして、それらはたくさんあります!



最近、セキュリティ企業であるOpenSource WhiteSourceは、過去10年間で最も一般的な7つのプログラミング言語で脆弱性調査を実施しました。 同社は、言語セキュリティデータベースを使用してエラーを検出しました。 これには、National Vulnerability Database(NVD)、セキュリティ指示、GitHub`aトラッカー、オープンソースプロジェクトなど、いくつかのソースからのオープンソース脆弱性が含まれています。



同社は、C、Java、JavaScript、Python、Ruby、PHP、およびC ++の言語を特定しました。 そして、これは驚くことではありません。 どの言語に最もセキュリティエラーがあるかと同様です。 広いマージンで、これはXです。 検出された脆弱性の50%以上がそこにありました。



GoogleのLinux LinuxカーネルセキュリティエンジニアであるKees“ Case” Cookが最近指摘したように、「Cは改良されたアセンブラです。 ほぼマシンコード。」 さらに、「Cは厄介な手荷物、あいまいな動作、およびセキュリティギャップとインフラストラクチャの脆弱性につながるその他の弱点を抱えています。」



しかし、WhiteSourceは次のように主張しています。「Cは他の言語よりも安全性が低いとは言えません。 オープンソースのCコードの多数の脆弱性は、多くの要因によって説明できます。 まず第一に、Cは私たちが調査した他の言語よりも長く使用されています。 最大量のコードが記述されています。 また、OpenSSLやLinuxカーネルなどの重要なインフラストラクチャの背後にある言語の1つでもあります。 ボリュームと中心位置のこの組み合わせは、多数の既知のオープンソースの脆弱性を説明しています。



WhiteSourceがポイントをキャッチしました。 しかし、何十年ものプログラミングとCの取り扱いにもかかわらず、この言語にはひどいセキュリティエラーを簡単に作成する方法が本当にあります。 たとえば、Cには未定義の動作の例が数多くあり、あらゆる種類のトラブルの機会が開かれます。



同時に、C ++は過去5年間で最も危険度の高い脆弱性で有名になりました。 長い間Cを悩ませてきたバッファエラーは、多くの場合C ++で検出されます。





どの言語が最も保護されているか、または最も保護されていないかについて話す場合、図は全体像を反映していません。

(画像ホワイトソース)



とはいえ、JavaScriptはおそらく最も人気のある言語です。 そして、「過去10年間で脆弱性の数が継続的に増加している」ことを示した唯一のものです。



WhiteSourceは、JavaScriptをあざける前に、これらの結果が誤解を招くことに注意する必要があることを強調しています。 JavaScriptのCommon Weakness Enumerationのほとんどは、指定されたディレクトリからの出口と、ほとんど使用されておらずサポートされていないJavaScriptパッケージの暗号化保護のホールで構成されています。



なぜこれらの言語の問題や他の言語の問題が見えてくるのですか? ソースコード分析ツールなどの新しい自動化されたプログラムは、見落としがちな脆弱性を発見しています。



セキュリティホールに関してうまく機能している唯一の言語は(ドラムロール!)-Pythonです。 はい、古き良き人はしばしばPython笑されたPythonです。



ほとんどすべての言語が一般的な脆弱性リストに貢献しています。 リストの2つのエラーが先行しており、ケースの70%で報告されました。CWE-79としても知られるCrossite Scripting(XSS)とIncompleted Input Validation(CWE-20)です。



その他の一般的なエラー:リーク/開示(CWE-200)、境界外ディレクトリ(CWE-22)およびCWE-264-許可、特権、およびアクセス制御。 後者は最近、より具体的で密接な関係にある不適切なアクセス制御(CWE-284)に取って代わられました。



しかし、Cは本当に最悪で、Pythonは最高ですか? WhiteSourceは、これはあまりにも単純な結論であると考えています。「ゲームではあるが」私のプログラミング言語はあなたの言語よりも安全です。



逆に、「オープンソースの脆弱性の最先端にとどまり、あなたとあなたのチームが使用するプログラミング言語の長所と短所を理解する」ことにもっと時間を費やす必要があります。



最終的に、セキュリティはプログラミング言語ではなく、その使用方法によって決まります。



アクション:開発者向けのIaaSの40%割引。



Linuxおよびオープンソース向けのSteven J. Vaughan-Nichols



オリジナル記事



All Articles