Java, .NET-utvecklare som är benägna att mer frekventa sårbarheter

Java, .NET-utvecklare som är benägna att mer frekventa sårbarheter

Källnod: 1901108

Mer än tre fjärdedelar av applikationer skrivna i Java och .NET har minst en sårbarhet från OWASP Top 10, en lista över mjukvarubrister som utvecklare vanligtvis använder som grund för applikationssäkerhet.

Det är enligt mjukvarutestningsföretaget Veracode, som i en analys av nästan 760,000 XNUMX applikationer fann att ungefär en av fem applikationer som använder dessa två programmeringsekosystem hade minst en sårbarhet med hög eller kritisk svårighetsgrad.

Sammantaget hade den genomsnittliga applikationen 27 % chans att få minst en sårbarhet införd varje månad, med dåligt skrivna appar och appar som inte skannas ofta, medan applikationer med en längre historik av säkerhetsprocesser och skrivna av välutbildade utvecklare mindre benägna att introducera nya brister, visade uppgifterna.

Analysen belyser vikten av att integrera säkerhet i utvecklingspipelinen, säger Tim Jarrett, vice vd för strategisk produktledning på Veracode.

"Datan visar konsekvent att om du bygger in en vana av säkerhet i din process, har du ett bättre resultat, både när det gäller att åtgärda övergripande brister, och ... du bromsar också floden av saker som kommer in, och det gör stor skillnad, " han säger.

Samtidigt fortsätter mjukvaruföretag och utvecklingsteam att kämpa för att eliminera defekter och sårbarheter från applikationskoden. Medan utvecklare och projekt med öppen källkod är det åtgärda mjukvarufel snabbare, fortsätter halveringstiden för den genomsnittliga sårbarheten att mätas i månader, inte dagar eller veckor, enligt Veracodes rapport "State of Software Security", publicerad den 11 januari. 

Till exempel, Java- och .NET-applikationer, som stod för 71 % av det totala antalet applikationer som analyserades av studien, såg hälften av bristerna som fortfarande påverkade applikationerna efter 243 respektive 158 dagar.

Halveringstid för sårbarheter efter programmeringsspråk

Källa: Veracodes rapport "State of Software Security".

Applikationsuppsvälldhet och ålder hade båda en betydande negativ inverkan på deras säkerhet. Den genomsnittliga applikationen samlade cirka 40 % mer kod och är mer sannolikt att ha sårbarheter. Cirka 54% av två år gamla ansökningar har brister, medan 69% av fem år gamla ansökningar brister, analysen hittat.

JavaScripts överraskande säkerhet

Överraskande nog tenderade applikationer skrivna i JavaScript eller med något av JavaScript-ramverken att klara sig bättre i sårbarhetssökningar. Medan cirka 80 % av Java- och .NET-applikationerna hade en sårbarhet, hade endast 56 % av JavaScript-applikationerna. Och medan cirka 20 % av Java- och .NET-applikationerna hade en allvarlig sårbarhet, hade mindre än 10 % av JavaScript-applikationerna.

JavaScript-ramverk är nyare, har mer säkerhet och har fördelarna med ett ekosystem med öppen källkod, som Java endast relativt nyligen har gynnats av, säger Jarret.

"JavaScript är ett nyare språk, så applikationer som skrivs i det [är] nyare, och det finns en korrelation som vi har etablerat i tidigare rapporter mellan applikationens ålder och tidpunkten för felavhjälpning", säger han. "Många av verktygen för JavaScript [är] moget och det är ett språk som stöds väl."

Dessutom, där en sårbarhet i en Java-applikation är ett förstapartsproblem – vilket låter utvecklaren åtgärda problemen – i JavaScript och Node.js-ramverket, är sårbarheter ofta ett problem från tredje part, eftersom sårbarheten har inträffat i en komponent som programvaran beror på.

"Sättet som du fixar ett säkerhetsproblem i en Java-applikation är fortfarande till stor del [där] du gör en ändring i en klassfil och kompilerar den", säger han. "I en JavaScript-applikation är det mer ett pakethanteringsproblem. Och det är en annan sak för en utvecklare att lära sig, vilket kan vara lättare.”

Nya programmeringsspråk Languish

Rapportens data belyser också skillnaden mellan de programmeringsspråk som utvecklare lär sig och de språk som faktiskt används i de flesta företag. De bästa språken och ekosystemen – Java, .NET och JavaScript – som Veracode ser är inte utvecklarnas val av programmeringsteknik.

Medan JavaScript och JS-baserade ramverk – som Node.js, React.js och Angular – dominerar listorna över utvecklarföredragen teknologi, är Java ett av de minst omtyckta programmeringsspråken, med 54 % av de tillfrågade som fruktar språket, jämfört med med 46% som älskade det, enligt Stack Overflow's 2022 Utvecklarundersökning

Ändå dominerade Java andelen applikationer som skannades av Veracode-klienter (44 %) jämfört med 14 % för JavaScript. 

Dessutom dyker det mest älskade programmeringsspråket, Rust, inte ens upp i Veracodes data, medan utvecklarnas nr 6, Python, bara står för mindre än 4% av skannade applikationer.

En del av anledningen till frånkopplingen är att etablerade applikationer är skrivna på etablerade programmeringsspråk, säger Veracodes Jarrett.

"Du har hela universum av all kod som finns där ute, och sedan har du den typ av skum på toppen av vågen av ny utveckling som händer, och det är där du ser människor plocka upp Go and Rust and Dart och Flutter, säger han.

På grund av de aggregerade kodbaserna för applikationer skrivna på dessa språk kommer den situationen sannolikt inte att förändras.

"Gamla applikationer dör tyvärr aldrig, så det finns mycket kritisk massa i företag med dessa stora Java-kodbaser och .NET-kodbaser", säger han.

Tidsstämpel:

Mer från Mörk läsning