Utbrent PyPi-admin måtte gi opp etter flom av skadevare

Én person klarte ikke å holde tritt med alle forsøkene på å plante skadevare i Pythons offisielle pakkerepo PyPI.

PyPI inneholder mer enn 455.000 programvarepakker for Python. 📸: Kurt Lekanger
PyPI inneholder mer enn 455.000 programvarepakker for Python. 📸: Kurt Lekanger Vis mer

Python Package Index (PyPI) er det offisielle pakkerepoet for Python-programvare, med mer enn 455.000 programvarepakker. PyPI er også det stedet pakker hentes fra som standard når man bruker installasjonsverktøyet pip.

I helgen opplevde PyPI et stort antall forsøk på å opprette falske brukerkontoer og laste opp skadevare (malware), skriver Bleeping Computer og The Register.

Til slutt ble det så ille, at en administrator så seg nødt til å stenge helt for registrering av nye brukere og nye prosjekter.

Måtte gi opp

– Volumet av ondsinnede brukere og ondsinnede prosjekter som har blitt opprettet på indeksen den siste uken har overgått vår evne til å respondere tidsnok, spesielt siden flere PyPI-administratorer har fri, skriver PyPI i sin "incident report".

Infrastruktur-sjef Ee Durbin sier til The Register at det som skjedde hadde mer med bemanningssituasjonen å gjøre enn selve økningen i skadevare.

«Så snart jeg tok ned noe, erstattet de det med noe annet.»

Ifølge The Register har det vært kun én person som svarer på skadevarerapporter på vakt hos PyPI de siste par ukene. I helgen var Durbin på vakt, og da antallet forsøk på å plante skadevare økte fra 20-30 om dagen til rundt 40, klarte han ikke lenger å holde tritt.

– Så snart jeg tok ned noe, erstattet de det med noe annet, sier Durbin.

Normalt er det fire administratorer, der tre av dem jobber blant annet med å respondere på rapporter om skadevare. Målet er å ta ned skadevare innen 24 timer, men vanligvis tar det ikke mer enn 1 – 6 timer.

Følte seg utbrent

I det siste har trusselaktører brukt stadig mer automatisert oppretting av kontoer og automatisert opplasting av programpakker til PyPI.

Til slutt kom det til et punkt der Durbin følte at det ikke var forsvarlig for han som én person å prøve å holde skadevaren unna.

«I praksis var jeg utbrent etter å ha gjort det i to uker.»

– Jeg kom til et punkt der jeg ikke følte meg sikker på at jeg som et individ skulle sitte her hele helgen og se på den innboksen. I praksis var jeg utbrent etter å ha gjort det i to uker.

– Jeg sjekket raskt med resten av teamet for å forsikre meg om at de syntes det var ok. Så dro jeg i spaken slik at jeg ikke ville føle meg personlig ansvarlig, sier Durbin.

Forsyningskjedeangrep

Pakkerepoer som PyPI og npm (tilsvarende PyPI for Node.js) har blitt attraktive mål for såkalte forsyningskjedeangrep (supply chain attacks). Det vil si at noen forsøker å plante skadelig kode i programpakker som kan bli lastet ned og brukt i applikasjoner som brukes av mange.

Durbin sier til The Register at det er viktig for PyPI å være kjappe med å fjerne ondsinnet programvare og falske kontoer, for å unngå store skadevirkninger.

– Jo lenger de er der ute, jo større trussel er de, så generelt sett vil vi være responsive.

Etter nesten to dagers nedetid, er PyPI nå åpen igjen for nyregistrering av brukere og opplasting av nye prosjekter.