ESET Research on avastanud pahatahtlike Pythoni projektide klastri, mida levitatakse PyPI, ametlik Pythoni pakettide hoidla. Oht sihib nii Windowsi kui ka Linuxi süsteeme ja pakub tavaliselt kohandatud tagaukse. Mõnel juhul on lõplik kandevõime kurikuulsa variant W4SP Stealervõi lihtne lõikelaua monitor krüptovaluuta varandamiseks või mõlemad. Mais 2023, meie teatatud ühes teises pakettide klastris, mille leidsime PyPI-st, mis tarnib parooli ja krüptovaluutat varastavat pahavara, kuid need kaks klastrit näivad olevat erinevad kampaaniad.
Selle ajaveebipostituse põhipunktid:
- ESET Research avastas PyPI-st, Pythoni programmeerimiskeele ametlikust tarkvarahoidlast, 116 pahatahtlikku paketti, mis laaditi üles 53 projekti raames.
- Ohvrid on neid pakette alla laadinud üle 10,000 XNUMX korra.
- Alates 2023. aasta maist on allalaadimismäär enam-vähem 80 päevas.
- Pahavara pakub tagaukse, mis on võimeline kaugkäskude täitmiseks, eksfiltreerimiseks ja ekraanipiltide tegemiseks.
- Tagaukse komponent on rakendatud nii Windowsi jaoks Pythonis kui ka Linuxis Go-s.
- Mõnel juhul tarnitakse selle asemel W4SP Stealer või lõikelaua monitor, mis varastab krüptovaluutat, või mõlemad.
PyPI on Pythoni programmeerijate seas populaarne koodi jagamiseks ja allalaadimiseks. Kuna hoidlasse saab panustada igaüks, võib seal ilmuda pahavara, mis mõnikord kujutab endast seaduslikku populaarset kooditeeki. Leidsime 116 pahavara sisaldavast projektist 53 faili (allika distributsioonid ja rattad). Mõned paketinimed näevad välja sarnased teiste seaduslike pakettidega, kuid me usume, et potentsiaalsed ohvrid ei paigalda neid peamiselt kirjakeelega, vaid sotsiaalse manipuleerimise teel, kus ohvrid jooksevad läbi. pip install {paketinimi} et saaksite "huvitavat" paketti mingil põhjusel kasutada.
Viimase aasta jooksul laadisid ohvrid neid faile alla rohkem kui 10,000 1 korda; vaata joonist XNUMX.
PyPI nakatumine
PyPI paketid võivad esineda kahel kujul: lähtepaketid, mis sisaldavad kogu projekti lähtekoodi ja on üles ehitatud installimisel, ja eelehitatud paketid (nn. rattad), mis võib sisaldada konkreetse operatsioonisüsteemi või Pythoni versiooni jaoks kompileeritud mooduleid. Huvitav on see, et mõnel juhul erineb lähtejaotuse Pythoni kood ehitatud distributsioonist. Esimene neist on puhas, teine aga sisaldab pahatahtlikku koodi. Pythoni paketihaldur, pip, eelistab ratast, kui see on saadaval, mitte allika levitamist. Selle tulemusena installitakse pahatahtlik, kui pole selgesõnaliselt nõutud teisiti.
Oleme jälginud selle kampaania taga olevaid operaatoreid, kes kasutavad ründekoodi Pythoni pakettidesse koondamiseks kolme tehnikat.
Pahatahtlik test.py moodul
Esimene meetod on asetada pakendisse kergelt hägustatud koodiga testmoodul. Joonisel 2 on kujutatud a test.py faili nimega funktsiooniga graby määratletakse ja seejärel kutsutakse. Pange tähele, et funktsioon käsitleb nii Windowsi kui ka Linuxi süsteeme.
See testmoodul imporditakse paketi põhimooduli lähtekoodi keskele (__init__.py), nii et pahatahtlik kood käivitub alati, kui pakett imporditakse. Joonisel 3 on kujutatud moodul, mis maskeerub ekraanipiltjaks ja impordib pahatahtliku test.py.
PowerShell failis setup.py
Teine meetod on PowerShelli koodi manustamine setup.py fail, mida tavaliselt käivitavad automaatselt paketihaldurid, näiteks pip aidata installida Pythoni projekte.
Joonisel 4 on näidatud PowerShelli skript, mis laadib alla ja käivitab järgmise etapi.
See PowerShelli skript laaditakse alla edasta[.]sh/eyRyPT/Updater.zip ajutisse kataloogi as update.zip. Seejärel pakkib skript ZIP-faili lahti C: ProgramData ja kustutab selle ajutisest kataloogist. Järgmisena käivitab skript faili pip programm sõltuvuste installimiseks. Lõpuks käivitab see Pythoni koodi C:ProgramDataUpdaterserver.pyw.
See meetod töötab ainult Windowsis ega suuda Linuxi süsteeme nakatada.
Joonise 4 paketi metaandmetes võisite märgata, et paketi autor on kitseke356. On olnud arvukalt teateid, mis seostavad seda hüüdnime pahatahtliku tegevusega, sealhulgas an artikkel Phylumilt, kus nad paljastavad Billy potentsiaalse seose W4SP Stealeriga.
Lihtsalt pahavara…
Kolmanda tehnika puhul ei tee operaatorid mingeid jõupingutusi, et lisada paketti seaduslikku koodi, nii et seal on ainult pahatahtlik kood, kergelt segatud kujul. Joonis 5 näitab kahte Windowsi pahatahtliku koodi tükki, mis kirjutatakse ajutistesse failidesse ja seejärel käivitatakse pythonw.exe, mida kasutatakse selle asemel python.exe nii et kood käivitub ilma konsooliakent avamata.
Järgmised etapid on Pythoni paketid, skriptid või binaarfailid, mis laaditakse alla kas Dropboxist või ülekanne.sh.
Püsivus
Windowsis saavutatakse püsivus enamasti a VBScript kodeeritud (VBE) fail, mis on kodeeritud VBScript-fail, kuhu on kirjutatud %APPDATA%/Pythonenv/pythenenv.vbe. Joonis 6 näitab cmd.exe kataloogi peitmine %APPDATA%/Pythonenv, jooksmine pythenenv.vbeja seejärel VBE-faili käivitamise ajastamine iga viie minuti järel ülesande raames MicrosoftWinRaRUtilityTaskB.
Linuxis saavutatakse püsivus pahatahtliku faili paigutamisega töölaua sisestus, mate-user-share.desktop, Mis ~ / .config / autostart / kataloog, nagu on näha joonisel 7. Failid, mis asuvad aadressil automaatne käivitamine kataloog käivitatakse igal süsteemi käivitamisel. Töölauakirjes kasutatakse a nime MATE alamprojekt selle failinime jaoks, kuid see on ainult kahtluse vähendamiseks, kuna sellel pole töölauakeskkonnaga mingit pistmist.
Joonisel 7 on näidatud ka mooduli allalaadimised dl.dropbox[.]com/s/u3yn2g7rewly4nc/proclean et ~/.config/.kde/.kdepath. Tõenäoliselt üritatakse sellega esineda konfiguratsioonikataloogina KDE Plasma GUI Linuxi jaoks.
Käivitamine mate-user-share.desktop fail omakorda käivitab allalaaditud .kdepath fail, mis on Linuxi käivitatav fail, mis sisaldab tagaukse komponenti.
Lõplik kandevõime
Tavaliselt on lõplik kasulik koormus kohandatud tagauks, mis võimaldab kaugkäskude täitmist, failide väljafiltreerimist ja mõnikord sisaldab ka ekraanipiltide tegemise võimalust. Windowsis on tagauks rakendatud Pythonis.
Joonisel 8 on kujutatud tagauks, millega luuakse TCP-pesaühendus blazywound.ignorelist[.]com pordil 6001. Pärast hostinime, MAC-aadressi ja kasutajanime C&C-serverisse saatmist töötleb tagauks otse mõnda käsku või käivitab mis tahes muu käsu eraldi protsessis ning saadab käsu väljundi ja veateabe serverisse tagasi.
Linuxis on tagauks rakendatud Go; vaata joonist 9.
Mõnel juhul on tagaukse asemel kandevõime kurikuulsa variant W4SP Stealervõi lihtne lõikelaua monitor, mis varastab krüptovaluutat, või mõlemad. Joonisel 10 on kujutatud lõikelaua monitori, mis on suunatud Bitcoini, Ethereumi, Monero ja Litecoini krüptovaluutadele. Pahavara kasutab seaduslikku pyperclip pakett lõikelaua sisu rahakoti aadresside kontrollimiseks. Kui pahavara leitakse, kopeerib see ründaja kontrollitud aadressi lõikelauale, lootuses, et ohver kleebib selle aadressi tulevases krüptovaluutatehingus.
ESET-i tooted tuvastavad pahatahtlikud Pythoni paketid Python/Agent ja Python/TrojanDownloaderi variantidena ning tagaukse kui Python/Agent.AOY või Linux/Spy.Agent.BB.
Enamiku pakette võttis PyPI selle uuringu ajal juba maha. ESET suhtles PyPI-ga, et võtta meetmeid allesjäänud pakettide vastu ja kõik teadaolevad pahatahtlikud paketid on nüüd võrguühenduseta. Täieliku nimekirja 116 paketist leiate meie lehelt GitHubi hoidla.
Väärib märkimist, et PyPI projektihoidlas olev pahavara ei ole PyPI enda turvaprobleem. Tegelikult oli PyPI-d töötav tarkvara hiljuti auditeeritud välisfirma, kes hindas, et PyPl "vastas laialdaselt tunnustatud parimatele tavadele".
Järeldus
Küberründajad kuritarvitavad jätkuvalt PyPI-d, et ohustada Pythoni programmeerijate seadmeid. See kampaania näitab mitmesuguseid tehnikaid, mida kasutatakse pahavara kaasamiseks Pythoni pakettidesse. Pythoni arendajad peaksid allalaaditavat koodi põhjalikult kontrollima, eriti kontrollima nende tehnikate olemasolu, enne selle oma süsteemidesse installides. Lisaks avatud lähtekoodiga W4SP Stealeri kuritarvitamisele on operaatorid kasutusele võtnud ka lihtsa, kuid tõhusa tagaukse. Eeldame, et selline PyPI kuritarvitamine jätkub ja soovitame olla ettevaatlik koodi installimisel mis tahes avalikust tarkvarahoidlast.
Kui teil on küsimusi meie WeLiveSecurity avaldatud uurimistöö kohta, võtke meiega ühendust aadressil ohuintel@eset.com.
ESET Research pakub privaatseid APT luurearuandeid ja andmevooge. Kui teil on selle teenuse kohta küsimusi, külastage aadressi ESET Threat Intelligence lehel.
IoC-d
Faile
SHA-1 |
Faili |
Detection |
Kirjeldus |
439A5F553E4EE15EDCA1CFB77B96B02C77C5C388 |
cache.py |
Python/Agent.AGL |
Linuxi tagaukse allalaadija.. |
B94E493579CC1B7864C70FAFB43E15D2ED14A16B |
coloramma-0.5.4-py3-none-any.whl |
Python/Agent.AGU |
Pakett Linuxi tagaukse installijaga. |
AE3072A72F8C54596DCBCDE9CFE74A4146A4EF52 |
coloramma-4.5-py3-none-any.zip |
Python/Agent.AOY |
Windowsi tagauksega pakett. |
70C271F79837B8CC42BD456A22EC51D1261ED0CA |
junk.py |
Python/Agent.AGM |
Windowsi püsivuse installija. |
B0C8D6BEEE80813C8181F3038E42ADACC3848E68 |
kuulutama |
Linux/Spy.Agent.BB |
Linuxi tagauks. |
07204BA8D39B20F5FCDB9C0242B112FADFFA1BB4 |
prov.py |
Python/Agent.AGL |
Linuxi tagaukse allalaadija. |
EF59C159D3FD668C3963E5ADE3C726B8771E6F54 |
tmp |
Linux/Spy.Agent.BB |
Linuxi tagauks. |
Pahatahtlike pakettide täieliku loendi leiate meie GitHubist pahavara-ioc hoidla.
võrk
Domeeninimi |
IP-aadress |
Esimest korda nähtud |
Kirjeldus |
blazywound.ignorelist[.]com |
204.152.203[.]78 |
2022-11-21 |
C&C server tagaukse komponendi jaoks. |
MITER ATT&CK tehnikad
See laud on ehitatud kasutades versioon 14 MITER ATT&CK raamistikust.
Taktika |
ID |
Nimi |
Kirjeldus |
Esialgne juurdepääs |
Tarneahela kompromiss: tarkvarasõltuvuste ja arendustööriistade kompromiss |
Pahavara levitatakse Pythoni PyPl paketihaldusteenuse abil. |
|
Püsivus |
Plaanitud ülesanne/töö: ajastatud ülesanne |
Windowsis saavutatakse püsivus ajastatud toimingu abil. |
|
Käivitamise või sisselogimise automaatse käivitamise täitmine: XDG automaatse käivitamise kirjed |
Linuxis luuakse automaatse käivitamise kirje, mis käivitab kasutaja sisselogimisel tagaukse. |
||
Kaitsest kõrvalehoidmine |
Maskeerimine: sobitage õiguspärane nimi või asukoht |
Linuxis on püsivate failide nimed sarnased legitiimse tarkvaraga |
|
Juurdepääs mandaatidele |
Mandaat paroolipoodidest: mandaat veebibrauserites |
W4SP varastab installitud veebibrauserite paroolid. |
|
kogumine |
Lõikelaua andmed |
Krüptovaluutatehingu ajal raha varastamiseks asendatakse lõikelaua andmed. |
|
Juhtimine ja kontroll |
Mitterakenduskihi protokoll |
Tagauks kasutab TCP kaudu krüptimata binaarprotokolli. |
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- PlatoTervis. Biotehnoloogia ja kliiniliste uuringute luureandmed. Juurdepääs siia.
- Allikas: https://www.welivesecurity.com/en/eset-research/pernicious-potpourri-python-packages-pypi/
- :on
- :on
- : kus
- 000
- 1
- 10
- 116
- 14
- 152
- 2023
- 7
- 8
- 80
- 9
- a
- võime
- Võimalik
- MEIST
- kuritarvitamise
- aktsepteeritud
- saavutada
- tegevus
- tegevus
- aadress
- aadressid
- nõustama
- pärast
- vastu
- Agent
- Materjal: BPA ja flataatide vaba plastik
- võimaldab
- juba
- Ka
- vahel
- an
- ja
- Teine
- mistahes
- keegi
- ilmuma
- APT
- OLEME
- AS
- hinnatud
- At
- autor
- automaatselt
- saadaval
- tagasi
- tagauks
- BE
- sest
- olnud
- taga
- on
- Uskuma
- BEST
- Bitcoin
- mõlemad
- brauserid
- ehitatud
- Kimp
- kuid
- by
- kutsutud
- Kampaania
- Kampaaniad
- CAN
- võimeline
- juhtudel
- ettevaatust
- kett
- kontrollima
- kontroll
- puhastama
- Cluster
- kood
- COM
- edastatud
- koostatud
- komponent
- kompromiss
- konfiguratsioon
- ühendus
- konsool
- kontakt
- sisaldama
- sisaldab
- sisu
- jätkama
- pidev
- jätkates
- aitama kaasa
- loodud
- loomine
- volikiri
- cryptocurrencies
- cryptocurrency
- tava
- andmed
- päev
- määratletud
- esitatud
- annab
- sõltuvused
- lähetatud
- lauaarvuti
- avastama
- Arendajad
- & Tarkvaraarendus
- seadmed
- erinev
- otse
- avastasin
- Näidikute
- jagatud
- jaotus
- Väljamaksed
- do
- alla
- lae alla
- allalaadimine
- allalaadimine
- edastuskast
- ajal
- iga
- Tõhus
- jõupingutusi
- kumbki
- Embed
- varjatud
- Inseneriteadus
- kanne
- keskkond
- viga
- eriti
- ethereum
- Iga
- täidetud
- Täidab
- täitmine
- eksfiltreerimine
- ootama
- selgesõnaliselt
- väline
- asjaolu
- FAIL
- soosib
- Joonis
- fail
- Faile
- lõplik
- Lõpuks
- Firma
- esimene
- viis
- eest
- vorm
- endine
- vormid
- avastatud
- Raamistik
- Alates
- täis
- funktsioon
- raha
- tulevik
- GitHub
- Go
- käepide
- Varred
- Olema
- aitama
- lootus
- HTTPS
- if
- pilt
- täitmine
- rakendatud
- importivate
- impordi
- in
- sisaldama
- hõlmab
- Kaasa arvatud
- kurikuulus
- info
- Päringud
- sees
- paigaldama
- paigaldamine
- paigaldatud
- paigaldamine
- selle asemel
- Intelligentsus
- sisse
- probleem
- IT
- ITS
- ise
- teatud
- keel
- algatama
- kiht
- õigustatud
- vähem
- raamatukogud
- kergelt
- LINK
- Linux
- nimekiri
- Litecoin
- asub
- Vaata
- mac
- põhiline
- tegema
- malware
- juhtimine
- juht
- Juhid
- Vastama
- mai..
- keskmine
- Metaandmed
- Kesk-
- protokoll
- moodulid
- Moodulid
- Monero
- Jälgida
- rohkem
- kõige
- nimi
- nimed
- järgmine
- ei
- mitte midagi
- Märka..
- märkides
- nüüd
- arvukad
- of
- Pakkumised
- ametlik
- offline
- on
- ONE
- ones
- ainult
- avatud lähtekoodiga
- avamine
- tegutsevad
- operatsioonisüsteemi
- ettevõtjad
- or
- Muu
- muidu
- meie
- väljund
- üle
- pakend
- pakette
- lehekülg
- Parool
- paroolid
- minevik
- kohta
- püsivus
- tükki
- Koht
- paigutamine
- Plasma
- Platon
- Platoni andmete intelligentsus
- PlatoData
- palun
- võrra
- populaarne
- potentsiaal
- PowerShell
- esitada
- era-
- tõenäoliselt
- protsess
- Toodet
- Programmeerijad
- Programming
- projekt
- projektid
- protokoll
- avalik
- avaldatud
- PYPL
- Python
- määr
- pigem
- põhjus
- vähendama
- ülejäänud
- kauge
- asendatakse
- Aruanded
- Hoidla
- teadustöö
- kaasa
- avalduma
- jooks
- jooksmine
- jookseb
- plaanitud
- planeerimine
- ekraanipilte
- käsikiri
- skripte
- Teine
- turvalisus
- vaata
- nähtud
- saatma
- saatmine
- eri
- server
- teenus
- seade
- jagamine
- peaks
- Näitused
- sarnane
- lihtne
- alates
- So
- sotsiaalmeedia
- Sotsiaaltehnoloogia
- tarkvara
- mõned
- mõnikord
- allikas
- lähtekoodi
- konkreetse
- Stage
- etappidel
- käivitamisel
- varastatakse
- kauplustes
- selline
- süsteem
- süsteemid
- tabel
- Võtma
- võtnud
- võtmine
- sihtimine
- eesmärgid
- Ülesanne
- tehnika
- tehnikat
- ajutine
- test
- kui
- et
- .
- Allikas
- oma
- SIIS
- Seal.
- Need
- nad
- Kolmas
- see
- põhjalikult
- oht
- kolm
- Läbi
- aeg
- korda
- et
- tehing
- Pöörake
- kaks
- tüüpiliselt
- all
- laetud
- peale
- us
- kasutama
- Kasutatud
- Kasutaja
- kasutusalad
- kasutamine
- tavaliselt
- variant
- sort
- versioon
- VET
- kaudu
- Ohver
- ohvreid
- visiit
- kõndis
- rahakott
- oli
- Tee..
- we
- web
- Veebibrauserid
- Hästi
- olid
- mis iganes
- Ratas
- millal
- millal iganes
- mis
- kuigi
- laialdaselt
- laius
- will
- aken
- aknad
- koos
- ilma
- töötab
- väärt
- kirjalik
- aasta
- sa
- sephyrnet
- Tõmblukk