Pas på slåfejl når du installerer pakker i Python eller Ruby

En enkelt kommando er nok til at installere urllib2 på din maskine, men er du nu helt sikker på, hvad der bliver installeret?

En slåfejl eller misforståelse kan få en udvikler til at hoppe i fælden og installere en pakke på sin maskine, som slet ikke er den, den giver sig ud for at være. Det har en tysk datalogistuderende demonstreret i sit bachelorprojekt om en helt særlig variant af typosquatting, skriver Ars Technica.

Typosquatting kendes fra webdomæner, hvor man registrerer domæner, der ligger tæt op ad populære sider og satser på, at folk skriver det forkerte. Som eksempelvis vresion2.dk i stedet for version2.dk.

Den samme teknik kan bruges på kodebiblioteker, som udviklere downloader og installerer på deres maskiner, hvilket typisk foregår via en enkelt kommandolinje og ofte med administratorrettigheder.

Den studerende udvalgte en række populære biblioteker til Python, Ruby og Javascript (Node) og brugte forskellige teknikker til at generere navne, der lå tæt på. Dernæst genererede han biblioteker med de falske navne, som indeholdt kode, der kaldte tilbage til en server, så forsøget på at bruge pakken blev registreret, og samtidig fik brugeren en advarsel om, hvad der var sket.

Mange af de pakkesystemer, der findes, gør det umuligt eller svært at få afviklet kode på brugerens maskine på denne måde, og det var grunden til, at pip, npm og gem blev valgt ud.

Falske pakker

Eksperimentet viste faktisk, at det ikke var traditionelle slåfejl, der var det største problem. Det mest downloadede bibliotek var urllib2 til Python, som er navnet på et eksisterende bibliotek, men det findes ikke til alle versioner af Python. Derfor var dem, der faldt i fælden, udviklere der forsøgte at hente urllib2 til eksempelvis Python3, hvor urllib2 er udfaset.

Både hos Ruby Gems og PyPi var det altså muligt at registrere falske pakker med navne, der svarede til standardbiblioteker i andre versioner.

I løbet af eksperimentet blev de falske biblioteker afviklet 19.000 gange og fra 17.000 forskellige maskiner. Heraf stod flere hos offentlige myndigheder. Den mest hentede var som nævnt urllib2, der blev installeret mere end 3.900 gange.

Hele bachelorprojektrapporten kan læses på den studerendes hjemmeside.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Bent Jensen

Brug Linux indbygget pakkehådntering.
Så kommer der sjælden utilsigt kode med i købet.
Med sjælden menes der næsten aldrig, har ikke selv oplevet noget i de sidste 5-10 år, men der findes sikkert ondskabsfuld kode sikkert placeret af en af de 3 stjernet.
Hvis der findes huller eller mangler, så vil de typisk også blive opdateret automatisk.

Rådet til windows bruger, er næsten det modsatte, undlad hvis muligt opdateringer fra MS, der instalere og ændre på din opsætning.

Den sidste var "rigtigt god", her tales der ikke om crunchy candy, eller tilføjelse af tilføjelse programer der var fjernet. Men en eller andet driver, som resulteret i et ustabilt system :-)
Suk hvornår lære MS, at hvis de vil leve af, og levere på den måde som Google gør med Android, så skal den pakke som kommer med OS, lige som Googles Gmail og MAP være et plus og ikke noget crap, som kun øger ens forbehold over for Win10, eller Windows i det hele taget. Men er stock på grund af WOT og AW. Ellers var jeg flyttet, alt det andet jeg bruger kan køre på Linux eller i skyen. Så min spillemaskinne, lever med dual boot. Det er synd hvordan MS ødelægger en ellers god kerne. Men hvis de gerne vil have flere bruger, kunne de gøre opdateringen til Vista gratis, her er der meget at undskylde for. Og Win10 vil være en forbedrelse.
Kæmper stadig med at få rettet op på sidste uddate fra MS, så der kom lidt galle med i denne tråd. :-(

  • 0
  • 2
Ulrik Rasmussen

Taget i betragtning at hvem som helst kan lægge kode op i diverse kodebiblioteker er det nok en god idé at udvikle i et sandkasse-miljø uden tilgang til følsom data som f.eks. private nøgler der giver push-adgang til store open source projekter ...

De fleste projekter afhænger (formodentligt) af en forholdsvist lille delmængde af meget populære pakker, så det ville nok også give meget god mening hvis de fleste kodebiblioteker lavede et kurateret "snapshot" af sikre pakker, lidt à la Stackage til Haskell.

  • 0
  • 0
Log ind eller Opret konto for at kommentere