Java、.NET の開発者はより頻繁に脆弱性に遭遇する傾向があります

Java、.NET の開発者はより頻繁に脆弱性に遭遇する傾向があります

ソースノード: 1901108

Java および .NET で記述されたアプリケーションの 10 分の XNUMX 以上に、OWASP トップ XNUMX (開発者が通常アプリケーション セキュリティのベースラインとして使用するソフトウェアの脆弱性のリスト) からの脆弱性が少なくとも XNUMX つ含まれています。

これは、ソフトウェア テスト会社の Veracode によると、約 760,000 のアプリケーションを分析した結果、これら XNUMX つのプログラミング エコシステムを使用するアプリケーションの約 XNUMX 分の XNUMX に、少なくとも XNUMX つの深刻度の高い脆弱性または重大な脆弱性があることがわかりました。

全体として、平均的なアプリケーションに毎月少なくとも 27 つの脆弱性が導入される可能性は XNUMX% であり、作成が不十分なアプリやスキャンの頻度が低いアプリはより欠陥がある可能性が高く、セキュリティ プロセスの歴史が長く、十分なトレーニングを受けた人によって作成されたアプリケーションは、より多くの欠陥を抱えている可能性があります。開発者が新たな欠陥を持ち込む可能性が低いことをデータは示しています。

この分析は、セキュリティを開発パイプラインに統合することの重要性を浮き彫りにしていると、Veracode の戦略的製品管理担当副社長である Tim Jarrett は述べています。

「データは一貫して、プロセスにセキュリティの習慣を組み込むと、全体的な欠陥を修正するという点でより良い結果が得られることを示しています。また、流入するものの洪水も遅くなり、大きな違いが生まれます。 」と彼は言います。

一方、ソフトウェア企業と開発チームは、アプリケーション コードから欠陥や脆弱性を排除するために引き続き苦労しています。 開発者とオープンソース プロジェクトは ソフトウェアの欠陥をより迅速に修正する11 月 XNUMX 日に公開された Veracode の「State of Software Security」レポートによると、平均的な脆弱性の半減期は、数日または数週間ではなく、引き続き数か月単位で測定されます。 

たとえば、この調査で分析されたアプリケーション全体の 71% を占める Java および .NET アプリケーションでは、それぞれ 243 日後および 158 日後でも欠陥の半分がまだアプリケーションに影響を与えていることがわかりました。

プログラミング言語別の脆弱性の半減期

出典: Veracode の「State of Software Security」レポート

アプリケーションの肥大化と年齢の両方が、セキュリティに重大な悪影響を及ぼしました。 平均的なアプリケーションは、約 40% 多くのコードを蓄積し、脆弱性を持つ可能性が高くなります。 54 年前のアプリケーションの約 69% に欠陥があり、XNUMX 年前のアプリケーションの XNUMX% に欠陥があります。 見つかった分析.

JavaScript の驚くべきセキュリティ

驚くべきことに、JavaScript で作成されたアプリケーション、または JavaScript フレームワークの 80 つを使用したアプリケーションは、脆弱性スキャンでうまくいく傾向がありました。 Java および .NET アプリケーションの約 56% に脆弱性がありましたが、JavaScript アプリケーションのわずか 20% にしかありませんでした。 また、Java および .NET アプリケーションの約 10% に重大な脆弱性がありましたが、JavaScript アプリケーションにあったのは XNUMX% 未満でした。

JavaScript フレームワークはより新しく、セキュリティが強化されており、オープン ソース エコシステムのメリットがありますが、Java は比較的最近になって恩恵を受けていると Jarret 氏は言います。

「JavaScript は新しい言語であるため、JavaScript で作成されたアプリケーションはより新しいものであり、アプリケーションの使用年数と欠陥の修正時間の間には以前のレポートで確立された相関関係があります」と彼は言います。 「JavaScript のツールの多くは成熟しており、十分にサポートされている言語です。」

さらに、Java アプリケーションの脆弱性がファースト パーティの問題 (開発者に問題の修正を任せる) である場合、JavaScript および Node.js フレームワークでは、脆弱性がコンポーネントで発生したため、脆弱性はサード パーティの問題であることがよくあります。ソフトウェアが依存するもの。

「Java アプリケーションのセキュリティ問題を修正する方法は、依然としてクラス ファイルに変更を加えてコンパイルする方法がほとんどです」と彼は言います。 「JavaScript アプリケーションでは、パッケージ管理の問題の方が重要です。 それは開発者が学ぶべき別のことであり、そのほうが簡単かもしれません。」

新しいプログラミング言語の衰退

レポートのデータは、開発者が学習しているプログラミング言語と、大多数の企業で実際に使用されているプログラミング言語との違いも浮き彫りにしています。 Veracode で見られる上位の言語とエコシステム (Java、.NET、および JavaScript) は、開発者がプロ​​グラミング テクノロジを選択するものではありません。

Node.js、React.js、Angular などの JavaScript および JS ベースのフレームワークが、開発者が好むテクノロジーのリストを独占していますが、Java は最も好まれていないプログラミング言語の 54 つであり、回答者の 46% がこの言語を恐れています。 Stack Overflow によると、XNUMX% が気に入りました。 2022開発者調査

それでも、Java は、JavaScript の 44% と比較して、Veracode クライアントによってスキャンされたアプリケーションのシェア (14%) を支配していました。 

さらに、最も愛されているプログラミング言語である Rust は、Veracode のデータにも表示されませんが、開発者の第 6 位である Python は、スキャンされたアプリケーションの 4% 未満しか占めていません。

Veracode の Jarrett 氏は、確立されたアプリケーションが確立されたプログラミング言語で書かれていることが、接続が切断されている理由の XNUMX つだと述べています。

「そこにあるすべてのコードの完全な宇宙があり、新しい開発の波の頂上に泡のようなものがあります。そこに、人々が Go と Rust と Dart を拾っているのが見られます。そしてフラッター」と彼は言います。

これらの言語で書かれたアプリケーションのコードベースが集約されているため、その状況はおそらく変わらないでしょう。

「残念ながら、古いアプリケーションが死ぬことはありません。そのため、これらの大きな Java コードベースと .NET コードベースを持つ企業には、多くのクリティカル マスが存在します」と彼は言います。

タイムスタンプ:

より多くの 暗い読書