Java, .NET-utviklere utsatt for hyppigere sårbarheter

Java, .NET-utviklere utsatt for hyppigere sårbarheter

Kilde node: 1901108

Mer enn tre fjerdedeler av applikasjoner skrevet i Java og .NET har minst én sårbarhet fra OWASP Topp 10, en liste over programvaresvakheter som utviklere vanligvis bruker som en baseline for applikasjonssikkerhet.

Det er ifølge programvaretestingsfirmaet Veracode, som i en analyse av nesten 760,000 XNUMX applikasjoner fant at omtrent én av fem applikasjoner som brukte disse to programmeringsøkosystemene hadde minst en sårbarhet med høy eller kritisk alvorlighetsgrad.

Totalt sett hadde den gjennomsnittlige applikasjonen en sjanse på 27 % for å få minst én sårbarhet introdusert hver måned, med dårlig skrevne apper og sjelden skannede apper som sannsynligvis er mer feil, mens applikasjoner med en lengre historikk med sikkerhetsprosesser og er skrevet av veltrente utviklere mindre sannsynlighet for å introdusere nye feil, viste dataene.

Analysen fremhever viktigheten av å integrere sikkerhet i utviklingspipelinen, sier Tim Jarrett, visepresident for strategisk produktledelse i Veracode.

"Dataene viser konsekvent at hvis du bygger en vane med sikkerhet i prosessen din, har du et bedre resultat, både når det gjelder å fikse generelle feil, og ... du bremser også flommen av ting som kommer inn, og det utgjør en stor forskjell, " han sier.

I mellomtiden fortsetter programvareselskaper og utviklingsteam å slite med å eliminere defekter og sårbarheter fra applikasjonskode. Mens utviklere og åpen kildekode-prosjekter er det fikse programvarefeil raskere, fortsetter halveringstiden til den gjennomsnittlige sårbarheten å måles i måneder, ikke dager eller uker, ifølge Veracodes "State of Software Security"-rapport, publisert 11. januar. 

For eksempel, Java- og .NET-applikasjoner, som utgjorde 71 % av de totale applikasjonene analysert av studien, så halvparten av feilene som fortsatt påvirket applikasjonene etter henholdsvis 243 dager og 158 dager.

Halveringstid for sårbarheter etter programmeringsspråk

Kilde: Veracodes "State of Software Security"-rapport

Applikasjonsoppblåsthet og alder hadde begge en betydelig negativ innvirkning på sikkerheten deres. Den gjennomsnittlige applikasjonen akkumulerte omtrent 40 % mer kode og er mer sannsynlig å ha sårbarheter. Omtrent 54 % av to år gamle søknader har feil, mens 69 % av fem år gamle søknader mangler, analysen funnet.

JavaScripts overraskende sikkerhet

Overraskende nok hadde applikasjoner skrevet i JavaScript eller ved hjelp av et av JavaScript-rammeverket en tendens til å klare seg bedre i sårbarhetsskanninger. Mens omtrent 80 % av Java- og .NET-applikasjonene hadde en sårbarhet, var det bare 56 % av JavaScript-applikasjonene som hadde det. Og mens omtrent 20 % av Java- og .NET-applikasjonene hadde en alvorlig sårbarhet, var det mindre enn 10 % av JavaScript-applikasjonene som hadde det.

JavaScript-rammeverk er nyere, har mer sikkerhet og har fordelene med et åpen kildekode-økosystem, som Java kun relativt nylig har dratt nytte av, sier Jarret.

"JavaScript er et nyere språk, så applikasjoner skrevet i det [er] nyere, og det er en sammenheng vi har etablert i tidligere rapporter mellom søknadens alder og feilrettingstidspunktet," sier han. "Mye av verktøyene for JavaScript [er] modent og det er et godt støttet språk."

Dessuten, der en sårbarhet i en Java-applikasjon er et førstepartsproblem – som lar utvikleren fikse problemene – i JavaScript og Node.js-rammeverket, er sårbarheter ofte et tredjepartsproblem, fordi sårbarheten har oppstått i en komponent som programvaren avhenger av.

"Måten du fikser et sikkerhetsproblem på i en Java-applikasjon er fortsatt stort sett [der] du gjør en endring i en klassefil og kompilerer den," sier han. «Der i en JavaScript-applikasjon, er det mer et problem med pakkeadministrasjon. Og det er en annen ting for en utvikler å lære, noe som kan være lettere.»

Nye programmeringsspråk Languish

Rapportens data fremhever også forskjellen mellom programmeringsspråkene som utviklere lærer og de språkene som faktisk brukes i de fleste bedrifter. De beste språkene og økosystemene – Java, .NET og JavaScript – sett av Veracode er ikke utvikleres valg av programmeringsteknologi.

Mens JavaScript og JS-baserte rammeverk – som Node.js, React.js og Angular – dominerer listene over utviklerforetrukket teknologi, er Java et av de minst likte programmeringsspråkene, med 54 % av respondentene som gruer seg til språket, sammenlignet med med 46% som elsket det, ifølge Stack Overflow's 2022 Utviklerundersøkelse

Likevel dominerte Java andelen applikasjoner skannet av Veracode-klienter (44 %) sammenlignet med 14 % for JavaScript. 

I tillegg vises ikke det mest elskede programmeringsspråket, Rust, i Veracodes data, mens utviklernes nr. 6, Python, kun står for mindre enn 4 % av skannede applikasjoner.

Noe av årsaken til frakoblingen er at etablerte applikasjoner er skrevet på etablerte programmeringsspråk, sier Veracodes Jarrett.

"Du har hele universet av all koden som er der ute, og så har du den typen skum på toppen av bølgen av ny utvikling som skjer, og det er der du ser folk plukke opp Go and Rust and Dart og Flutter, sier han.

På grunn av de aggregerte kodebasene til applikasjoner skrevet på disse språkene, vil den situasjonen sannsynligvis ikke endre seg.

"Gamle applikasjoner dør dessverre aldri, så det er mye kritisk masse i bedrifter med disse store Java-kodebasene og .NET-kodebasene," sier han.

Tidstempel:

Mer fra Mørk lesning