UTVIKLING

Disse programmerings­språkene har resultert i flest kjente sårbarheter

Fersk rapport.

Illustrasjon.
Illustrasjon. Illustrasjon: Colourbox/Sergey Mironov/Sergeymironov.co

Det amerikanske selskapet Whitesource har nettopp kommet med en rapport som viser hvilke programmeringsspråk som er de mest og minst sikre – målt i antallet kjente open source-sårbarheter per språk. 

Rapporten er basert på Whitesource' database hvor selskapet samler informasjon om sårbarheter fra flere ulike kilder, blant annet  U.S. National Vulnerability Database (NVD), sikkerhetsveiledninger, samt «issue-trackere» på Github og hos ulike åpen kildekode-prosjekter.

Databasen inneholder informasjon om mer enn 200 programmeringsspråk, men Whitesource har fokusert på sju av de mest populære språkene. Dette er de språkene med flest kjente sårbarheter i open source-programvare laget i språket, og hvor stor andel av det totale antallet sårbarheter språket står for:

1. C (47 %)
2. PHP (17 %) 
3. Java (11 %)
4. Javascript (10 %)
5. Python (5 %)
6. C++ (5 %)
7. Ruby (4 %)

Statistikken må imidlertid tas med en klype salt, siden språket C har vært i bruk mye lenger enn mange andre språk. Det har blitt skrevet mye mer programkode i C over en lang tidsperiode, og C-kode er i bruk i mange av de produktene og plattformene vi bruker hver dag, dermed er det naturlig at det har blitt oppdaget flere sårbarheter.

Det at det oppdages mange sårbarheter i løsninger laget i de ulike språkene, betyr naturligvis heller ikke at språket i seg selv er usikkert. 

Hopp i antallet sårbarheter fra 2017

Rapporten viser at antallet sårbarheter har vokst jevnt og trutt de siste ti årene, men i 2017 steg antallet sårbarheter plutselig for alle programmeringsspråk. 

Whitesource forklarer dette med at åpen kildekode-basert programvare ble mer populært, samtidig som man også begynte å fokusere mer på sikkerhet og sårbarheter i åpen kildekodebaserte komponenter. Automatiserte testverktøy og såkalte «bug bounty»-programmer hvor man betaler de som finner sårbarheter, har også bidratt til den kraftige økningen i antallet oppdagede sårbarheter fra 2017.

Antall sårbarheter per år, fra 2009 til 2018.
Antall sårbarheter per år, fra 2009 til 2018. Illustrasjon: Whitesource

Det positive er at antallet kritiske sårbarheter har begynt å falle i de fleste programmeringsspråkene som er undersøkt, dessverre med unntak av Javascript og PHP. Fallet forklares også med økt bruk av automatiserte verktøy for å finne sårbarheter. Disse verktøyene er imidlertid ikke alltid i stand til å finne de mest komplekse feilene. 

Javascript-sårbarheter øker fortsatt

Den mest utbredte sårbarheten, uavhengig av programmeringsspråk, er såkalte cross-site-scripting-sårbarheter (XSS). 

Javascript er det mest populære programmeringsspråket, og ifølge rapporten er Javascript det eneste språket hvor man har sett en fortsatt økning i antallet sårbarheter de siste ti årene. I 2017 var antallet rapporterte sårbarheter 16 ganger høyere enn i 2016, og det fortsatte å øke i 2018.

De mest utbredte sårbarhetene i Javascript.
De mest utbredte sårbarhetene i Javascript. Illustrasjon: Whitesource

Årsaken til økningen kan være økt popularitet, men også at Javascript har blitt populært å bruke på backend (gjennom løsninger som Node.js).

For Javascript er det ikke XSS-sårbarheter, men sårbarheter i forbindelse med kryptering som er mest utbredt, med såkalte «path traversal»-sårbarheter på andreplass. Sistnevnte innebærer at uvedkommende kan få tilgang til filer og kataloger man ikke skulle hatt tilgang til.

Du finner hele rapporten her.

Kommentarer:

Vi har byttet system for artikkelkommentarer. For å opprette brukerkonto, registrerer du deg med BankID.