Java-, .NET-ontwikkelaars vatbaar voor vaker voorkomende kwetsbaarheden

Java-, .NET-ontwikkelaars vatbaar voor vaker voorkomende kwetsbaarheden

Bronknooppunt: 1901108

Meer dan driekwart van de applicaties die in Java en .NET zijn geschreven, hebben ten minste één kwetsbaarheid uit de OWASP Top 10, een lijst met softwarezwakheden die ontwikkelaars doorgaans gebruiken als basis voor de beveiliging van applicaties.

Dat is volgens softwaretestbedrijf Veracode, dat in een analyse van bijna 760,000 applicaties ontdekte dat ongeveer een op de vijf applicaties die deze twee programmeerecosystemen gebruiken, ten minste één kwetsbaarheid met hoge of kritieke ernst had.

Over het algemeen had de gemiddelde applicatie een kans van 27% om elke maand ten minste één kwetsbaarheid te introduceren, waarbij slecht geschreven apps en zelden gescande apps waarschijnlijk meer fouten bevatten, terwijl applicaties met een langere geschiedenis van beveiligingsprocessen en geschreven zijn door goed opgeleide ontwikkelaars minder snel nieuwe fouten introduceren, toonden de gegevens.

De analyse benadrukt het belang van het integreren van beveiliging in de ontwikkelingspijplijn, zegt Tim Jarrett, vice-president strategisch productbeheer bij Veracode.

“De gegevens laten consequent zien dat als je een gewoonte van beveiliging inbouwt in je proces, je een beter resultaat krijgt, zowel wat betreft het oplossen van algehele gebreken, als … je vertraagt ​​ook de toevloed van dingen die binnenkomen, en dat maakt een groot verschil, " hij zegt.

Ondertussen blijven softwarebedrijven en ontwikkelingsteams worstelen om defecten en kwetsbaarheden uit applicatiecode te verwijderen. Terwijl ontwikkelaars en open source-projecten dat wel zijn softwarefouten sneller oplossen, wordt de halfwaardetijd van de gemiddelde kwetsbaarheid nog steeds gemeten in maanden, niet in dagen of weken, volgens Veracode's "State of Software Security"-rapport, gepubliceerd op 11 januari. 

Zo zagen Java- en .NET-applicaties, die goed waren voor 71% van de totale applicaties die door het onderzoek werden geanalyseerd, na respectievelijk 243 dagen en 158 dagen nog steeds de helft van de fouten in de applicaties.

Halfwaardetijd van kwetsbaarheden door programmeertaal

Bron: Veracode's rapport "State of Software Security".

Opgeblazenheid en ouderdom van applicaties hadden beide een aanzienlijke negatieve invloed op hun beveiliging. De gemiddelde applicatie verzamelde ongeveer 40% meer code en heeft meer kans op kwetsbaarheden. Ongeveer 54% van de twee jaar oude applicaties vertoont gebreken, terwijl 69% van de vijf jaar oude applicaties gebreken vertoont. de gevonden analyse.

De verrassende beveiliging van JavaScript

Verrassend genoeg presteerden applicaties die in JavaScript waren geschreven of die een van de JavaScript-frameworks gebruikten, beter in kwetsbaarheidsscans. Terwijl ongeveer 80% van de Java- en .NET-applicaties een kwetsbaarheid had, had slechts 56% van de JavaScript-applicaties dat. En hoewel ongeveer 20% van de Java- en .NET-applicaties een zeer ernstige kwetsbaarheid had, was dat bij minder dan 10% van de JavaScript-applicaties het geval.

JavaScript-frameworks zijn nieuwer, hebben meer beveiliging en hebben de voordelen van een open source-ecosysteem, waarvan Java pas relatief recentelijk heeft geprofiteerd, zegt Jarret.

"JavaScript is een nieuwere taal, dus applicaties die erin zijn geschreven [zijn] nieuwer, en er is een correlatie die we in eerdere rapporten hebben vastgesteld tussen de ouderdom van de applicatie en de hersteltijd van fouten", zegt hij. "Veel van de tooling voor JavaScript [is] volwassen en het is een goed ondersteunde taal."

Bovendien, waar een kwetsbaarheid in een Java-toepassing een probleem is van de eerste partij - waarbij de ontwikkelaar de problemen moet oplossen - in JavaScript en het Node.js-framework, zijn kwetsbaarheden vaak een probleem van derden, omdat de kwetsbaarheid is opgetreden in een component waarvan de software afhankelijk is.

"De manier waarop je een beveiligingsprobleem in een Java-toepassing oplost, is nog steeds grotendeels [waar] je een wijziging aanbrengt in een klassenbestand en het compileert", zegt hij. “In een JavaScript-toepassing is het meer een pakketbeheerprobleem. En dat is voor een ontwikkelaar iets anders om te leren, dat is misschien makkelijker.”

Nieuwe programmeertalen kwijnen weg

De gegevens van het rapport benadrukken ook het verschil tussen de programmeertalen die ontwikkelaars leren en de talen die daadwerkelijk in de meeste ondernemingen worden gebruikt. De toptalen en ecosystemen - Java, .NET en JavaScript - die Veracode ziet, zijn niet de keuze van ontwikkelaars voor programmeertechnologie.

Hoewel op JavaScript en JS gebaseerde frameworks, zoals Node.js, React.js en Angular, de lijsten met door ontwikkelaars geprefereerde technologie domineren, is Java een van de minst geliefde programmeertalen, met 54% van de respondenten die tegen de taal opzien, vergeleken met 46% die het geweldig vond, volgens Stack Overflow's Enquête voor ontwikkelaars van 2022

Toch domineerde Java het aandeel applicaties dat door Veracode-clients werd gescand (44%) vergeleken met 14% voor JavaScript. 

Bovendien komt de meest geliefde programmeertaal, Rust, niet eens voor in de gegevens van Veracode, terwijl ontwikkelaarsnummer 6, Python, slechts goed is voor minder dan 4% van de gescande applicaties.

Een deel van de reden voor het loskoppelen is dat gevestigde applicaties in gevestigde programmeertalen zijn geschreven, zegt Jarrett van Veracode.

“Je hebt het volledige universum van alle code die er is, en dan heb je het soort schuim op de top van de golf van nieuwe ontwikkeling, en dat is waar je mensen Go en Rust en Dart ziet oppikken en Flutter, 'zegt hij.

Vanwege de geaggregeerde codebases van applicaties die in die talen zijn geschreven, zal die situatie waarschijnlijk niet veranderen.

"Oude applicaties gaan helaas nooit dood, dus er is veel kritieke massa in ondernemingen met deze grote Java-codebases en .NET-codebases", zegt hij.

Tijdstempel:

Meer van Donkere lezing