Java, .NET-udviklere tilbøjelige til hyppigere sårbarheder

Java, .NET-udviklere tilbøjelige til hyppigere sårbarheder

Mere end tre fjerdedele af applikationer skrevet i Java og .NET har mindst én sårbarhed fra OWASP Top 10, en liste over softwaresvagheder, som udviklere typisk bruger som baseline for applikationssikkerhed.

Det er ifølge softwaretestfirmaet Veracode, som i en analyse af næsten 760,000 applikationer fandt, at omkring hver femte applikation, der brugte disse to programmeringsøkosystemer, havde mindst en sårbarhed med høj eller kritisk alvorlighed.

Samlet set havde den gennemsnitlige applikation en chance på 27 % for at få introduceret mindst én sårbarhed hver måned, med dårligt skrevne apps og sjældent scannede apps sandsynligvis mere fejlbehæftede, mens applikationer med en længere historie med sikkerhedsprocesser og er skrevet af veluddannede udviklere mindre tilbøjelige til at introducere nye fejl, viste dataene.

Analysen fremhæver vigtigheden af ​​at integrere sikkerhed i udviklingspipelinen, siger Tim Jarrett, vicepræsident for strategisk produktledelse hos Veracode.

"Dataene viser konsekvent, at hvis du indbygger en vane med sikkerhed i din proces, har du et bedre resultat, både med hensyn til at rette overordnede fejl, og ... du bremser også strømmen af ​​ting, der kommer ind, og det gør en stor forskel, " han siger.

I mellemtiden kæmper softwarevirksomheder og udviklingsteams fortsat for at eliminere defekter og sårbarheder fra applikationskoden. Mens udviklere og open source-projekter er det at rette softwarefejl hurtigere, bliver halveringstiden for den gennemsnitlige sårbarhed fortsat målt i måneder, ikke dage eller uger, ifølge Veracodes "State of Software Security"-rapport, offentliggjort den 11. januar. 

For eksempel så Java- og .NET-applikationer, som tegnede sig for 71 % af de samlede applikationer analyseret af undersøgelsen, halvdelen af ​​fejlene, der stadig påvirker applikationerne efter henholdsvis 243 dage og 158 dage.

Halveringstid af sårbarheder efter programmeringssprog

Kilde: Veracodes "State of Software Security"-rapport

Applikationsbloat og alder havde begge en betydelig negativ indvirkning på deres sikkerhed. Den gennemsnitlige applikation akkumulerede omkring 40 % mere kode og er mere tilbøjelige til at have sårbarheder. Omkring 54 % af to år gamle ansøgninger har fejl, mens 69 % af fem år gamle ansøgninger mangler, den fundne analyse.

JavaScripts overraskende sikkerhed

Overraskende nok havde applikationer skrevet i JavaScript eller ved hjælp af en af ​​JavaScript-rammerne en tendens til at klare sig bedre i sårbarhedsscanninger. Mens omkring 80 % af Java- og .NET-applikationer havde en sårbarhed, havde kun 56 % af JavaScript-applikationer. Og mens omkring 20 % af Java- og .NET-applikationer havde en alvorlig sårbarhed, havde mindre end 10 % af JavaScript-applikationerne.

JavaScript-rammer er nyere, har mere sikkerhed og har fordelene ved et open source-økosystem, som Java først for relativt nylig har nydt godt af, siger Jarret.

"JavaScript er et nyere sprog, så applikationer skrevet i det [er] nyere, og der er en sammenhæng, vi har etableret i tidligere rapporter mellem applikationens alder og fejlafhjælpningstid," siger han. "Meget af værktøjerne til JavaScript [er] modent, og det er et velunderstøttet sprog."

Desuden, hvor en sårbarhed i en Java-applikation er et førstepartsproblem - der overlader udvikleren til at løse problemerne - i JavaScript og Node.js-rammeværket, er sårbarheder ofte et tredjepartsproblem, fordi sårbarheden er opstået i en komponent som softwaren afhænger af.

"Måden du løser et sikkerhedsproblem i en Java-applikation på er stadig stort set [hvor] du foretager en ændring af en klassefil og kompilerer den," siger han. "Hvor i en JavaScript-applikation, er det mere et problem med pakkeadministration. Og det er en anden ting for en udvikler at lære, hvilket kan være lettere."

Nye programmeringssprog Languish

Rapportens data fremhæver også forskellen mellem de programmeringssprog, som udviklere lærer, og de sprog, der faktisk bruges i de fleste virksomheder. De bedste sprog og økosystemer - Java, .NET og JavaScript - set af Veracode er ikke udviklernes valg af programmeringsteknologi.

Mens JavaScript og JS-baserede rammer - såsom Node.js, React.js og Angular - dominerer listerne over udviklerforetrukken teknologi, er Java et af de mindst elskede programmeringssprog, hvor 54 % af respondenterne frygter sproget, sammenlignet med med 46%, der elskede det, ifølge Stack Overflow's Udviklerundersøgelse i 2022

Alligevel dominerede Java andelen af ​​applikationer, der blev scannet af Veracode-klienter (44 %) sammenlignet med 14 % for JavaScript. 

Derudover dukker det mest elskede programmeringssprog, Rust, ikke engang op i Veracodes data, mens udviklernes nr. 6, Python, kun står for mindre end 4% af de scannede applikationer.

En del af årsagen til afbrydelsen er, at etablerede applikationer er skrevet på etablerede programmeringssprog, siger Veracodes Jarrett.

"Du har det fulde univers af al den kode, der er derude, og så har du den slags skum på toppen af ​​bølgen af ​​ny udvikling, der sker, og det er der, du ser folk opfange Go and Rust and Dart og Flutter,” siger han.

På grund af de aggregerede kodebaser af applikationer skrevet på disse sprog, vil denne situation sandsynligvis ikke ændre sig.

"Gamle applikationer dør desværre aldrig, så der er en masse kritisk masse i virksomheder med disse store Java-kodebaser og .NET-kodebaser," siger han.

Tidsstempel:

Mere fra Mørk læsning