Java- und .NET-Entwickler sind anfälliger für häufigere Schwachstellen

Java- und .NET-Entwickler sind anfälliger für häufigere Schwachstellen

Quellknoten: 1901108

Mehr als drei Viertel der in Java und .NET geschriebenen Anwendungen weisen mindestens eine Schwachstelle aus den OWASP Top 10 auf, einer Liste von Softwareschwächen, die Entwickler normalerweise als Grundlage für die Anwendungssicherheit verwenden.

Das geht aus dem Softwaretestunternehmen Veracode hervor, das in einer Analyse von fast 760,000 Anwendungen herausgefunden hat, dass etwa jede fünfte Anwendung, die diese beiden Programmierökosysteme verwendet, mindestens eine Schwachstelle mit hohem oder kritischem Schweregrad aufweist.

Insgesamt hatte die durchschnittliche Anwendung eine Wahrscheinlichkeit von 27 %, dass jeden Monat mindestens eine Schwachstelle eingeführt wurde, wobei schlecht geschriebene Apps und selten gescannte Apps wahrscheinlich fehlerhafter waren, während Anwendungen mit einer längeren Geschichte von Sicherheitsprozessen und von gut ausgebildeten geschrieben wurden Die Daten zeigten, dass Entwickler mit geringerer Wahrscheinlichkeit neue Fehler einführen.

Die Analyse unterstreicht die Bedeutung der Integration von Sicherheit in die Entwicklungspipeline, sagt Tim Jarrett, Vice President of Strategic Product Management bei Veracode.

„Die Daten zeigen durchweg, dass Sie ein besseres Ergebnis erzielen, wenn Sie eine Sicherheitsgewohnheit in Ihren Prozess einbauen, sowohl in Bezug auf die Behebung allgemeiner Fehler als auch … Sie verlangsamen auch die Flut von Material, das hereinkommt, und das macht einen großen Unterschied. " er sagt.

In der Zwischenzeit kämpfen Softwareunternehmen und Entwicklungsteams weiterhin darum, Fehler und Schwachstellen aus dem Anwendungscode zu beseitigen. Während Entwickler und Open-Source-Projekte sind Softwarefehler schneller beheben, wird die Halbwertszeit der durchschnittlichen Schwachstelle weiterhin in Monaten gemessen, nicht in Tagen oder Wochen, wie aus dem am 11. Januar veröffentlichten Bericht „State of Software Security“ von Veracode hervorgeht. 

Bei Java- und .NET-Anwendungen beispielsweise, die 71 % aller von der Studie analysierten Anwendungen ausmachten, war die Hälfte der Fehler nach 243 bzw. 158 Tagen immer noch in den Anwendungen vorhanden.

Halbwertszeit von Schwachstellen nach Programmiersprache

Quelle: Bericht „State of Software Security“ von Veracode

Das Aufblähen von Anwendungen und das Alter hatten beide erhebliche negative Auswirkungen auf ihre Sicherheit. Die durchschnittliche Anwendung hat etwa 40 % mehr Code angesammelt und weist mit größerer Wahrscheinlichkeit Schwachstellen auf. Etwa 54 % der zwei Jahre alten Bewerbungen weisen Fehler auf, während 69 % der fünf Jahre alten Bewerbungen Fehler aufweisen. die Analyse gefunden.

Die überraschende Sicherheit von JavaScript

Überraschenderweise schneiden Anwendungen, die in JavaScript geschrieben sind oder eines der JavaScript-Frameworks verwenden, tendenziell besser bei Schwachstellen-Scans ab. Während etwa 80 % der Java- und .NET-Anwendungen eine Schwachstelle aufwiesen, waren es nur 56 % der JavaScript-Anwendungen. Und während etwa 20 % der Java- und .NET-Anwendungen eine hochgradige Schwachstelle aufwiesen, war dies bei weniger als 10 % der JavaScript-Anwendungen der Fall.

JavaScript-Frameworks sind neuer, sicherer und haben die Vorteile eines Open-Source-Ökosystems, von dem Java erst vor relativ kurzer Zeit profitiert hat, sagt Jarret.

„JavaScript ist eine neuere Sprache, daher [sind] darin geschriebene Anwendungen neuer, und wir haben in früheren Berichten eine Korrelation zwischen dem Alter der Anwendung und der Dauer der Fehlerbeseitigung festgestellt“, sagt er. „Ein Großteil der Tools für JavaScript [ist] ausgereift und es ist eine gut unterstützte Sprache.“

Wenn eine Schwachstelle in einer Java-Anwendung ein First-Party-Problem ist und der Entwickler die Probleme beheben muss, sind Schwachstellen in JavaScript und dem Node.js-Framework außerdem oft ein Third-Party-Problem, da die Schwachstelle in einer Komponente aufgetreten ist davon hängt die Software ab.

„Die Art und Weise, wie Sie ein Sicherheitsproblem in einer Java-Anwendung beheben, besteht immer noch größtenteils darin, dass Sie eine Klassendatei ändern und sie kompilieren“, sagt er. „In einer JavaScript-Anwendung ist es eher ein Paketverwaltungsproblem. Und das ist für einen Entwickler etwas anderes zu lernen, was möglicherweise einfacher ist.“

Neue Programmiersprachen schmachten

Die Daten des Berichts verdeutlichen auch den Unterschied zwischen den Programmiersprachen, die Entwickler lernen, und den Sprachen, die in den meisten Unternehmen tatsächlich verwendet werden. Die Top-Sprachen und -Ökosysteme — Java, .NET und JavaScript — die von Veracode gesehen werden, sind nicht die bevorzugte Programmiertechnologie der Entwickler.

Während JavaScript- und JS-basierte Frameworks – wie Node.js, React.js und Angular – die Liste der von Entwicklern bevorzugten Technologien dominieren, ist Java eine der unbeliebtesten Programmiersprachen, wobei 54 % der Befragten die Sprache im Vergleich fürchten mit 46 %, denen es laut Stack Overflow's gefallen hat 2022 Entwicklerumfrage

Dennoch dominierte Java den Anteil der Anwendungen, die von Veracode-Clients gescannt wurden (44 %), verglichen mit 14 % für JavaScript. 

Außerdem taucht die beliebteste Programmiersprache Rust nicht einmal in den Daten von Veracode auf, während die Nr. 6 der Entwickler, Python, nur weniger als 4 % der gescannten Anwendungen ausmacht.

Einer der Gründe für die Trennung ist, dass etablierte Anwendungen in etablierten Programmiersprachen geschrieben sind, sagt Jarrett von Veracode.

„Sie haben das gesamte Universum des gesamten Codes, der da draußen ist, und dann haben Sie die Art von Schaum auf dem Gipfel der Welle neuer Entwicklungen, und dort sehen Sie, wie Leute Go und Rust und Dart aufgreifen und Flutter“, sagt er.

Aufgrund der aggregierten Codebasen von Anwendungen, die in diesen Sprachen geschrieben sind, wird sich diese Situation wahrscheinlich nicht ändern.

„Alte Anwendungen sterben leider nie aus, daher gibt es in Unternehmen mit diesen großen Java-Codebasen und .NET-Codebasen eine Menge kritischer Masse“, sagt er.

Zeitstempel:

Mehr von Dunkle Lektüre