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.
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.
Å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.