PyTorch: Setul de instrumente de învățare automată a fost lansat de la Crăciun până la Anul Nou PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

PyTorch: Setul de instrumente pentru învățare automată, lansat de Crăciun până în Anul Nou

PyTorch este unul dintre cele mai populare și utilizate seturi de instrumente de învățare automată.

(Nu ne vom lăsa atrași de locul în care se află în clasamentul inteligenței artificiale – ca și în cazul multor instrumente open source utilizate pe scară largă într-un domeniu competitiv, răspunsul pare să depindă de cine întrebați și de ce set de instrumente se întâmplă să folosească înșiși.)

Dezvoltat și lansat inițial ca proiect open-source de Facebook, acum Meta, software-ul a fost predat Fundației Linux la sfârșitul anului 2022, care acum îl conduce sub egida Fundației PyTorch.

Din pacate, proiectul a fost compromis printr-un atac al lanțului de aprovizionare în perioada sărbătorilor de la sfârșitul anului 2022, între ziua de Crăciun [2022-12-25] și ziua dinaintea Revelionului [2022-12-30].

Atacatorii au creat cu răutate un pachet Python numit torchtriton pe PyPI, popularul depozit Python Package Index.

Numele torchtriton a fost ales astfel încât să se potrivească cu numele unui pachet din sistemul PyTorch în sine, ceea ce duce la o situație periculoasă explicat de echipa PyTorch (sublinierea noastră) după cum urmează:

[Un] pachet de dependențe rău intenționate (torchtriton) […] a fost încărcat în depozitul de coduri Python Package Index (PyPI) cu același nume de pachet ca cel pe care îl livrăm în indexul de pachete de noapte PyTorch. Deoarece indicele PyPI are prioritate, acest pachet rău intenționat a fost instalat în locul versiunii din depozitul nostru oficial. Acest design permite cuiva să înregistreze un pachet cu același nume ca unul care există într-un index terță parte și pip vor instala versiunea lor implicit.

Programul pip, apropo, era cunoscută ca pyinstall, și este aparent o glumă recursivă care este prescurtarea pentru pip installs packages. În ciuda numelui său original, nu este pentru instalarea Python în sine – este modalitatea standard pentru utilizatorii Python de a gestiona bibliotecile software și aplicațiile care sunt scrise în Python, cum ar fi PyTorch și multe alte instrumente populare.

Pwned de un truc al lanțului de aprovizionare

Oricine este suficient de nefericit să instaleze versiunea pwned a PyTorch în timpul perioadei de pericol aproape sigur a ajuns cu malware de furt de date implantat pe computer.

Potrivit propriului PyTorch scurt, dar util analiza malware-ului, atacatorii au furat unele, majoritatea sau toate următoarele date semnificative din sistemele infectate:

  • Informații despre sistem, inclusiv numele de gazdă, numele de utilizator, utilizatori cunoscuți din sistem și conținutul tuturor variabilelor de mediu ale sistemului. Variabilele de mediu sunt o modalitate de a furniza date de intrare doar din memorie pe care programele le pot accesa atunci când pornesc, incluzând adesea date care nu ar trebui să fie salvate pe disc, cum ar fi cheile criptografice și jetoanele de autentificare care oferă acces la serviciile bazate pe cloud. Lista utilizatorilor cunoscuți este extrasă din /etc/passwd, care, din fericire, nu conține de fapt nicio parolă sau hash-uri de parole.
  • Configurația dvs. locală Git. Acesta este furat de la $HOME/.gitconfig, și de obicei conține informații utile despre configurarea personală a oricărei persoane care utilizează popularul sistem de gestionare a codului sursă Git.
  • Cheile dvs. SSH. Acestea sunt furate din director $HOME/.ssh. Cheile SSH includ de obicei cheile private utilizate pentru conectarea în siguranță prin SSH (shell securizat) sau utilizarea SCP (copie securizată) la alte servere din propriile rețele sau în cloud. O mulțime de dezvoltatori păstrează cel puțin o parte din cheile lor private necriptate, astfel încât scripturile și instrumentele software pe care le folosesc să se poată conecta automat la sistemele de la distanță fără a se întrerupe pentru a cere o parolă sau o cheie de securitate hardware de fiecare dată.
  • Primele alte 1000 de fișiere din directorul dvs. de acasă mai mici de 100 de kiloocteți. Descrierea programului malware PyTorch nu spune cum este calculată „lista primelor 1000 de fișiere”. Conținutul și ordonarea listelor de fișiere depind de dacă lista este sortată alfabetic; dacă subdirectoarele sunt vizitate înainte, în timpul sau după procesarea fișierelor din orice director; dacă fișierele ascunse sunt incluse; și dacă se folosește vreo aleatorie în codul care își parcurge calea prin directoare. Probabil ar trebui să presupuneți că orice fișiere sub pragul de dimensiune ar putea fi cele care ajung să fie furate.

În acest moment, vom menționa veștile bune: doar cei care au preluat așa-numita versiune „noaptă” sau experimentală a software-ului erau expuși riscului. (Numele „noapte” vine de la faptul că este cea mai recentă versiune, creată de obicei automat la sfârșitul fiecărei zile lucrătoare.)

Majoritatea utilizatorilor PyTorch vor rămâne probabil așa-numita versiune „stabilă”, care nu a fost afectată de acest atac.

De asemenea, din raportul lui PyTorch, se pare că fișierul executabil malware Triton a vizat în mod special mediile Linux pe 64 de biți.

Prin urmare, presupunem că acest program rău intenționat s-ar rula numai pe computerele Windows dacă ar fi instalat subsistemul Windows pentru Linux (WSL).

Nu uitați, totuși că persoanele cel mai probabil să instaleze „noapte” obișnuite includ dezvoltatorii PyTorch în sine sau ai aplicațiilor care îl folosesc – poate inclusiv proprii dezvoltatori interni, care ar putea avea acces pe bază de chei private la construirea corporativă. , servere de testare și producție.

Furtul de date DNS

În mod intrigant, malware-ul Triton nu își exfiltrează datele (termenul din jargon militarist pe care industria de securitate cibernetică îi place să-l folosească în loc de fura or copie ilegal) folosind HTTP, HTTPS, SSH sau orice alt protocol de nivel înalt.

Instead, it encrypts and encodes the data it wants to steal into a sequence of what look like “server names” that belong to a domain name controlled by the criminals.

This means that, by making a sequence of DNS lookups, the crooks can sneak out a small amount of data in every fake request.

Acesta este același tip de truc care a fost folosit de Hackerii Log4Shell la sfârșitul anului 2021, care a scurs cheile de criptare făcând căutări DNS pentru „servere” cu „nume” care tocmai s-a întâmplat să fie valoarea cheii tale secrete de acces AWS, jefuite dintr-o variabilă de mediu în memorie.

Așadar, ceea ce părea o căutare DNS inocentă, chiar dacă inutilă, pentru un „server” cum ar fi S3CR3TPA55W0RD.DODGY.EXAMPLE ar scurge în liniște cheia dvs. de acces sub masca unei căutări simple care a direcționat către serverul DNS oficial listat pentru DODGY.EXAMPLE domeniu.


DEMO LIVE LOG4SHELL EXPLICĂ EXFILTRAREA DATELOR PRIN DNS

[Conținutul încorporat]

Dacă nu puteți citi clar textul aici, încercați să utilizați modul Ecran complet sau priveste direct pe Youtube.
Faceți clic pe roata din playerul video pentru a accelera redarea sau pentru a activa subtitrările.


Dacă escrocii dețin domeniul DODGY.EXAMPLE, ei ajung să spună lumii la ce server DNS să se conecteze atunci când fac acele căutări.

Mai important, chiar și rețelele care filtrează strict conexiunile de rețea bazate pe TCP folosind HTTP, SSH și alte protocoale de partajare a datelor la nivel înalt...

…uneori nu filtrează deloc conexiunile de rețea bazate pe UDP utilizate pentru căutări DNS.

Singurul dezavantaj pentru escroci este că cererile DNS au o dimensiune destul de limitată.

Individual server names are limited to 64 characters from a set of 37 (A-Z, 0-9 and the dash or hyphen symbol), and many networks limit individual DNS packets, including all enclosed requests, headers and metadata, to just 512 bytes each.

Bănuim că de aceea malware-ul în acest caz a început prin a urmări cheile tale private, apoi s-a limitat la cel mult 1000 de fișiere, fiecare mai mic de 100,000 de octeți.

În acest fel, escrocii ajung să fure o mulțime de date private, în special inclusiv cheile de acces la server, fără a genera un număr necontrolat de căutări DNS.

An unusually large number of DNS lookuos might get noticed for routine operational reasons, even in the absence of any scrutiny applied specifically for cybersecurity purposes.

Ce să fac?

PyTorch a luat deja măsuri pentru a opri acest atac, așa că dacă nu ați fost lovit încă, aproape sigur că nu veți fi lovit acum, deoarece torchtriton pachetul de pe PyPI a fost înlocuit cu un pachet gol în mod deliberat „dud” cu același nume.

Aceasta înseamnă că orice persoană sau orice software care a încercat să se instaleze torchtriton de la PyPI după 2022-12-30T08:38:06Z, fie din întâmplare, fie prin proiect, nu ar primi malware-ul.

Pachetul necinstiți PyPI după intervenția lui PyTorch.

PyTorch a publicat o listă utilă de IoC sau indicatori de compromis, pe care le puteți căuta în rețeaua dvs.

Amintiți-vă, așa cum am menționat mai sus, că, chiar dacă aproape toți utilizatorii dvs. rămân la versiunea „stabilă”, care nu a fost afectată de acest atac, este posibil să aveți dezvoltatori sau entuziaști care experimentează cu „noapte”, chiar dacă folosesc stabilul. eliberarea de asemenea.

Potrivit PyTorch:

  • Malware-ul este instalat cu numele fișierului triton. În mod implicit, vă așteptați să îl găsiți în subdirector triton/runtime în directorul de pachete ale site-ului dvs. Python. Având în vedere că numai numele fișierelor sunt indicatori slabi de malware, totuși, tratați prezența acestui fișier ca o dovadă a pericolului; nu trata absența ei ca pe un total clar.
  • Malware-ul din acest atac special are suma SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Încă o dată, malware-ul ar putea fi ușor recompilat pentru a produce o sumă de control diferită, așa că absența acestui fișier nu este un semn de sănătate certă, dar puteți trata prezența lui ca un semn de infecție.
  • Căutările DNS utilizate pentru furtul datelor s-au încheiat cu numele domeniului H4CK.CFD. Dacă aveți jurnale de rețea care înregistrează căutări DNS după nume, puteți căuta acest șir de text ca dovadă că datele secrete s-au scurs.
  • Răspunsurile DNS rău intenționate se pare că au venit la, iar răspunsurile, dacă există, au venit de la un server DNS numit WHEEZY.IO. Momentan, nu putem găsi niciun număr IP asociat cu serviciul respectiv, iar PyTorch nu a furnizat date IP care să lege traficul DNS cu acest malware, așa că nu suntem siguri cât de mult folosesc aceste informații pentru vânătoarea de amenințări. în acest moment [2023-01-01T21:05:00Z].

Din fericire, bănuim că majoritatea utilizatorilor PyTorch nu vor fi afectați de acest lucru, fie pentru că nu folosesc versiuni de noapte, fie pentru că nu au lucrat în perioada vacanței, fie pentru ambele.

Dar dacă ești un pasionat de PyTorch care se ocupă de build-uri de noapte și dacă ai lucrat de sărbători, atunci chiar dacă nu poți găsi nicio dovadă clară că ai fost compromis...

...cu toate acestea, poate doriți să luați în considerare generarea de noi perechi de chei SSH ca măsură de precauție și actualizarea cheilor publice pe care le-ați încărcat pe diferitele servere pe care le accesați prin SSH.

Dacă bănuiți că ați fost compromis, desigur, atunci nu amânați acele actualizări ale cheilor SSH – dacă nu le-ați făcut deja, faceți-le chiar acum!


Timestamp-ul:

Mai mult de la Securitate goală