tracking

De glemte sårbarheder i websites

En analyse af mere end 100.000 websites viser, at udviklere ofte glemmer at opdatere JavaScript-biblioteker. Problemet bliver ikke mindre af, at tracking- og reklamekode også anvender JavaScript-biblioteker, som udviklerne er uvidende om.

I dag anvender stort set alle websites JavaScript-kode, som ikke er skrevet af website-udviklerne selv. Populære frameworks og biblioteker som eksempelvis Angular og JQuery gør det nemmere for udviklerne at bygge moderne websites relativt smertefrit. Desværre glemmer udviklere og/eller administratorer ofte at opdatere JavaScript-bibliotekerne, når der kommer nye versioner.

Undersøgte 133.000 websites

Det er forskere fra Northeastern University, som har gennemgået mere end 133.000 websites for at finde ud af, om de anvendte tredjeparts-biblioteker er opdateret til nyeste og – forhåbentlig - mindst sårbare version.

Det er ofte ikke tilfældet.

37 procent af de gennemgåede websites anvendte mindst ét bibliotek med en kendt sårbarhed. Det er ikke mindst JavaScript-verdenens måde at registrere og håndtere sårbarheder på, som er et problem:
”Måske er det mest opsigtsvækkende ved vores undersøgelse, at den understreger, hvor kompleks, uorganiseret og ad hoc JavaScript biblioteks-økosystemet er, når det gælder sikkerhed,” skriver forskerne i ”Thou Shalt Not Depend on Me: Analysing the Use of Outdated JavaScript Libraries on the Web”.

De peger konkret på, at der ikke findes nogen pålidelig database med oversigt over alle sårbarheder i JavaScript-bibliotekerne, udviklerne af programbibliotekerne anvender sjældent mailinglister til at kommunikere om sårbarheder, og det er ligeledes sjældent, at sårbarheder nævnes i release notes.

Inden forskerne gik i gang, var de derfor nødt til at sammenstykke deres egen oversigt over sårbarheder i JavaScript-biblioteker. De udarbejdede et katalog over de forskellige versioner af de 72 mest populære biblioteker og gik i gang med at indsamle information om sårbarheder.

Det var svært:
”Uheldigvis er der ingen central database over sårbarheder i JavaScript-bibliotekerne. I stedet gik vi i gang med manuelt at indsamle sårbarhedsinformation fra Open Source Vulnerability Database (OSVDB), National Vulnerability Database (NVD), public bug trackers, GitHub-kommentarer, blogs og sårbarheder registreret af Retire.js,” lyder det i forskningsnotatet.

Det lykkedes forskerne at foretage en systematisk dokumentation af sårbarheder for 11 af de 72  JavaScript-biblioteker. Det betyder ikke, at de resterende 61 ikke indeholder sårbarheder; det var blot umuligt for forskerne at finde informationen.

Store kodeændringer nødvendige

Forskernes analyse viste, at der ofte kan være år til forskel på den nyeste version af et JavaScript-bibliotek og versionen, som anvendes på et website.

Det gør opgradering besværlig:
”Vores data tegner et dystert billede, når det gælder afhjælpning af problemet. Det er kun en meget lille del af potentielt sårbare sites … som kan få fjernet sårbarheder via patch-level updates, altså en opdatering via mindst betydende versionsnummer, eksempelvis fra 1.2.3 til 1.2.4, hvilket normalt vil være bagudkompatibelt. Størstedelen af sites kræver installering af mindst et bibliotek med større versionsspring, så kodeændringer kan være nødvendige grundet inkompatibilitet,” lyder det fra forskerne.

Selvom udviklere af og administratorer for et website gør sig store anstrengelser for at opdatere alle biblioteker, som anvendes af websitets kode, vil det ofte ikke være nok.

Rapportens forfattere peger på, at annoncemoduler, diverse trackers og forskellige widgets tit anvender biblioteker, uden at sitets vedligeholder er klar over det.

”Selvom webudviklerne sørger for at opdatere biblioteker, som de anvender i deres egen kode, så kan uddaterede versioner stadig blive inkluderet i koden via dårligt vedligeholdt tredjeparts-kode.”

Prosabladet fik fat på en af rapportens forfattere, Tobias Lauinger, for at høre, hvordan deres rapport var blevet modtaget af it-verdenen. Forskernes resultater var jo ikke just betryggende, så rapporten måtte have skabt en del røre.

Men nej.
– Ud over lidt nyhedsdækning har der ikke været den store respons fra it-industrien, lyder det fra Tobias Lauinger i en mail til Prosabladet.

Han beretter dog, at forskerne har bidraget med kode til open source-projektet HTTP Archive, så HTTP Archives web-crawlere nu også indsamler information om JavaScript-biblioteker, der anvendes på websites. Derudover arbejdes der på at inkludere koden i Googles Lighthouse, der aftester websites for performance og best practice.

Lauinger kan ikke sige, hvornår Lighthouse er klar til at identificere sårbare biblioteker.

Problemet er værre

Der er dog også andre, som har reageret på forskernes rapport.

Folkene bag Snyk, der specialiserer sig i at finde, fikse og monitorere sårbarheder i blandt andet JavaScript-relaterede teknologier, valgte at lave deres egen undersøgelse. Snyk undersøgte kun 5.000 websites, men det var 5.000 websites, som webanalyse-firmaet Alexa betegner som de mest besøgte i verden. Hele 76,6 procent af dem anvendte mindst et sårbart JavaScript-bibliotek.

Snyk fremhæver ligesom forskerne, at der ikke er en mirakelkur.  
”Der er ikke en enkelt ting, som vil fikse problemet. Vi har brug for en kombination af øget bevidsthed om problemet, bedre værktøjer og en simplere måde at vedligeholde JavaScript-afhængigheder på front-end'en,” lyder det fra Snyk om deres undersøgelse.

Vel, nu er du og Prosabladets øvrige læsere blevet gjort opmærksomme på problemet, hvis det ikke allerede var tilfældet.

 

Sårbare og usupporterede libraries

Det mest udbredte JavaScript-bibliotek er JQuery, der gør det nemt at tilgå og manipulere en webside ved hjælp af DOM (Document Object Model), ligesom JQuery tilbyder faciliteter til at håndtere events som callbacks.

36.7 procent af inkluderede JQuery-biblioteker var versioner med sårbarheder.

40,1 procent af inkluderede versioner af et andet populært bibliotek, Angular, havde sårbarheder.

I den tunge ende finder vi Handlebars-biblioteket, hvor hele 86.6 procent af inkluderede versioner havde sårbarheder, hvilket overgås af YUI-biblioteket med 87,3 procent.

Forskerne betegner det som ”alarmerende”, at mange websites stadig anvender biblioteker som YUI  og SWFObject, selvom de ikke længere vedligeholdes.

Der er ingen silver bullit til at løse problemet med sårbare JavaScript-biblioteker på websites, men værktøjer som Retire.js scanner websites og afslører nogle JavaScript-biblioteker med sårbarheder:
http://retirejs.github.io/retire.js/

Snyk vedligeholder en sårbarhedsdatabase med oplysninger om sårbarheder i blandt andet JavaScript-biblioteker: https://snyk.io/vuln/

 


Læs også...

Lønsamtaler kan give sved på panden, men med den rette strategi kan du forlade chefens kontor med mere i lønningsposen. Mariam Senounou er jurist hos…

Man kan lære mange ting på skolebænken, men meget læring kommer også fra virkeligheden. Det har tre software design-studerende i den grad mærket på…

Microsoft vil starte en atomreaktor op igen for at give grøn strøm til deres datacentre, specielt dem med AI. Hvis det reelt går igennem, og de får…

En ny feature i et af Googles AI-værktøjer gør det muligt at lave en podcast på få minutter. Featuren er så nem at bruge, at den egentlig ikke behøver…

Millioner af udviklere verden over bruger hver dag JavaScript – men hvorfor er programmeringssproget blevet så populært? PROSAbladet har talt med…

Et nyt projekt indsamler danske stemmer for at sikre, at AI-løsninger fremover også kan tale med dialekter. Du kan også donere din stemme, skriver DR.…

I dag lever Andreas Green Rasmussen af at finde dygtige iværksættere, han kan investere i. Men han har også selv flere startups på CV'et – og han ved,…

Ugly Duckling Ventures er en dansk venturefond, der håber at finde de startups, som bliver store milliardforretninger. Men hvad er en venturefond…

Der findes et hav af muligheder, når du som iværksætter skal finde finansiering til din startup. PROSAbladet guider dig til otte steder, hvor du kan…

Tech-giganterne er stadig i front, når it-studerende skal rangere populære arbejdspladser. Til gengæld har de store konsulenthuse taget et stort dyk…