PyTorch: Komplet orodij za strojno učenje, izdelan od božiča do novega leta PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

PyTorch: Zbirka orodij za strojno učenje je bila na voljo od božiča do novega leta

PyTorch je eden najbolj priljubljenih in pogosto uporabljanih kompletov orodij za strojno učenje.

(Ne bomo se zavzemali za mesto na lestvici najboljših umetne inteligence – tako kot pri mnogih široko uporabljanih odprtokodnih orodjih na konkurenčnem področju se zdi, da je odgovor odvisen od tega, koga vprašate in kateri komplet orodij uporablja sami.)

Programsko opremo, ki jo je kot odprtokodni projekt prvotno razvil Facebook, zdaj Meta, je bila konec leta 2022 predana fundaciji Linux, ki jo zdaj upravlja pod okriljem fundacije PyTorch.

žal projekt je bil ogrožen z napadom na dobavno verigo v prazničnem času ob koncu leta 2022, med božičnim dnem [2022-12-25] in dnevom pred silvestrovim [2022-12-30].

Napadalci so zlonamerno ustvarili paket Python, imenovan torchtriton na PyPI, priljubljenem repozitoriju indeksa paketov Python.

Ime torchtriton je bil izbran tako, da bi se ujemal z imenom paketa v samem sistemu PyTorch, kar je povzročilo nevarno situacijo pojasnila ekipa PyTorch (naš poudarek) kot sledi:

[A] zlonamerni paket odvisnosti (torchtriton) […] je bil naložen v repozitorij kod Python Package Index (PyPI) z enakim imenom paketa, kot ga pošiljamo v nočnem indeksu paketov PyTorch. Ker ima indeks PyPI prednost, ta zlonamerni paket je bil nameščen namesto različice iz našega uradnega repozitorija. Ta zasnova omogoča nekomu, da registrira paket z enakim imenom kot tisti, ki obstaja v indeksu tretje osebe, in pip bo privzeto namestil njihovo različico.

Program pip, mimogrede, nekoč znan kot pyinstall, in je očitno rekurzivna šala, ki je okrajšava za pip installs packages. Kljub izvirnemu imenu ni namenjen za namestitev samega Pythona – je standardni način za uporabnike Pythona za upravljanje programskih knjižnic in aplikacij, ki so napisane v Pythonu, kot je PyTorch in mnoga druga priljubljena orodja.

Ugrabljen s trikom v dobavni verigi

Vsakdo, ki je bil dovolj nesrečen, da je med nevarnim obdobjem namestil različico PyTorch, ki je bila nameščena v sistemu pwned, je skoraj zagotovo končal z zlonamerno programsko opremo za krajo podatkov, vstavljeno v njihov računalnik.

Glede na lastno PyTorch kratko, a uporabno analizo zlonamerne programske opreme, so napadalci iz okuženih sistemov ukradli nekatere, večino ali vse naslednje pomembne podatke:

  • Informacije o sistemu, vključno z imenom gostitelja, uporabniškim imenom, znanimi uporabniki v sistemu in vsebino vseh spremenljivk sistemskega okolja. Spremenljivke okolja so način zagotavljanja vhodnih podatkov samo za pomnilnik, do katerih lahko dostopajo programi, ko se zaženejo, pogosto vključujejo podatke, ki naj ne bi bili shranjeni na disk, kot so kriptografski ključi in žetoni za preverjanje pristnosti, ki omogočajo dostop do storitev v oblaku. Seznam znanih uporabnikov je izvlečen iz /etc/passwd, ki pa na srečo dejansko ne vsebuje nobenih gesel ali zgoščencev gesel.
  • Vaša lokalna konfiguracija Git. To je ukradeno iz $HOME/.gitconfigin običajno vsebuje uporabne informacije o osebnih nastavitvah vsakogar, ki uporablja priljubljen sistem za upravljanje izvorne kode Git.
  • Vaši ključi SSH. Ti so ukradeni iz imenika $HOME/.ssh. Ključi SSH običajno vključujejo zasebne ključe, ki se uporabljajo za varno povezovanje prek SSH (varna lupina) ali uporabo SCP (varna kopija) z drugimi strežniki v vaših lastnih omrežjih ali v oblaku. Veliko razvijalcev hrani vsaj nekatere svoje zasebne ključe nešifrirane, tako da se lahko skripti in programska orodja, ki jih uporabljajo, samodejno povežejo z oddaljenimi sistemi, ne da bi vsakič zahtevali geslo ali strojni varnostni ključ.
  • Prvih 1000 drugih datotek v domačem imeniku, manjših od 100 kilobajtov. Opis zlonamerne programske opreme PyTorch ne pove, kako se izračuna »seznam prvih 1000 datotek«. Vsebina in vrstni red seznamov datotek sta odvisna od tega, ali je seznam razvrščen po abecedi; ali so podimeniki obiskani pred, med ali po obdelavi datotek v katerem koli imeniku; ali so vključene skrite datoteke; in ali je v kodi, ki se sprehaja skozi imenike, uporabljena naključnost. Verjetno bi morali domnevati, da bi lahko bile vse datoteke pod pragom velikosti tiste, ki bi bile ukradene.

Na tem mestu bomo omenili dobro novico: ogroženi so bili samo tisti, ki so prinesli tako imenovano "nočno" ali eksperimentalno različico programske opreme. (Ime »nočno« izvira iz dejstva, da gre za najnovejšo zgradbo, ki je običajno ustvarjena samodejno ob koncu vsakega delovnega dne.)

Večina uporabnikov PyTorcha se bo verjetno držala tega tako imenovano »stabilno« različico, na katero ta napad ni vplival.

Tudi iz poročila PyTorcha se zdi, da izvršljiva datoteka zlonamerne programske opreme Triton je bila posebej usmerjena na 64-bitna okolja Linux.

Zato predpostavljamo, da bi se ta zlonamerni program izvajal samo v računalnikih z operacijskim sistemom Windows, če bi bil nameščen podsistem Windows za Linux (WSL).

Ne pozabite pa, da so ljudje, ki bodo najverjetneje namestili običajne »nočnice«, razvijalci samega PyTorcha ali aplikacij, ki ga uporabljajo – morda vključno z vašimi lastnimi razvijalci, ki imajo morda dostop do gradnje podjetja na podlagi zasebnega ključa. , testni in produkcijski strežniki.

Kraja podatkov DNS

Zanimivo je, da zlonamerna programska oprema Triton ne izloči svojih podatkov (izraz v militarističnem žargonu, ki ga industrija kibernetske varnosti rada uporablja namesto kradejo or kopirati nezakonito) z uporabo HTTP, HTTPS, SSH ali katerega koli drugega protokola na visoki ravni.

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.

To je isti trik, ki ga je uporabil Hekerji Log4Shell konec leta 2021, ki je razkril šifrirne ključe z iskanjem DNS za »strežnike« z »imeni«, ki so bila po naključju vrednost vašega skrivnega dostopnega ključa AWS, ukradenega iz spremenljivke okolja v pomnilniku.

Torej, kar je izgledalo kot nedolžno, če nesmiselno, iskanje DNS za "strežnik", kot je npr S3CR3TPA55W0RD.DODGY.EXAMPLE bi tiho razkril vaš dostopni ključ pod krinko preprostega iskanja, ki je vodilo do uradnega strežnika DNS, navedenega za DODGY.EXAMPLE domena.


DEMO LOG4SHELL V ŽIVO, KI RAZLAGA FILTRACIJO PODATKOV PREKO DNS

[Vgrajeni vsebina]

Če tukaj ne morete jasno prebrati besedila, poskusite uporabiti celozaslonski način ali gledati neposredno v YouTubu.
Kliknite na zobnik v videopredvajalniku, da pospešite predvajanje ali vklopite podnapise.


Če so prevaranti lastniki domene DODGY.EXAMPLE, sporočijo svetu, s katerim strežnikom DNS naj se povežejo, ko izvajajo ta iskanja.

Še pomembneje pa je, da tudi omrežja, ki strogo filtrirajo omrežne povezave na osnovi TCP z uporabo HTTP, SSH in drugih protokolov za skupno rabo podatkov na visoki ravni ...

… včasih sploh ne filtrirajo omrežnih povezav na osnovi UDP, ki se uporabljajo za iskanje DNS.

Edina slaba stran prevarantov je, da imajo zahteve DNS precej omejeno velikost.

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.

Predvidevamo, da se je zato zlonamerna programska oprema v tem primeru začela tako, da je iskala vaše zasebne ključe, nato pa se je omejila na največ 1000 datotek, od katerih je vsaka manjša od 100,000 bajtov.

Na ta način lahko prevaranti ukradejo veliko zasebnih podatkov, zlasti vključno s ključi za dostop do strežnika, ne da bi ustvarili neobvladljivo veliko število iskanj 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.

Kaj storiti?

PyTorch je že ukrepal, da bi zaustavil ta napad, tako da, če še niste bili prizadeti, skoraj zagotovo ne boste prizadeti zdaj, ker zlonamerni torchtriton paket na PyPI je bil nadomeščen z namerno "neumnim", praznim paketom z istim imenom.

To pomeni, da je katera koli oseba ali katera koli programska oprema, ki je poskušala namestiti torchtriton iz PyPI po 2022-12-30T08:38:06Z, po naključju ali namerno, ne bi prejel zlonamerne programske opreme.

Prevarantski paket PyPI po posredovanju PyTorcha.

PyTorch je objavil priročen seznam IoC-jev, oz kazalnike kompromisa, ki jih lahko iščete po svojem omrežju.

Ne pozabite, kot smo omenili zgoraj, da tudi če se skoraj vsi vaši uporabniki držijo »stabilne« različice, na katero ta napad ni vplival, imate morda razvijalce ali navdušence, ki eksperimentirajo z »nočnimi«, tudi če uporabljajo stabilno tudi sprostitev.

Glede na PyTorch:

  • Zlonamerna programska oprema je nameščena z imenom datoteke triton. Privzeto bi pričakovali, da ga boste našli v podimeniku triton/runtime v vašem imeniku paketov spletnega mesta Python. Glede na to, da so samo imena datotek šibki indikatorji zlonamerne programske opreme, obravnavajte prisotnost te datoteke kot dokaz nevarnosti; ne obravnavajte njegove odsotnosti kot vse jasno.
  • Zlonamerna programska oprema v tem napadu ima vsoto SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Še enkrat, zlonamerno programsko opremo bi bilo mogoče zlahka znova prevesti, da bi ustvarila drugačno kontrolno vsoto, zato odsotnost te datoteke ni znak dokončnega zdravja, vendar lahko njeno prisotnost obravnavate kot znak okužbe.
  • Iskanje DNS, ki se uporablja za krajo podatkov, se konča z imenom domene H4CK.CFD. Če imate omrežne dnevnike, ki beležijo iskanja DNS po imenu, lahko poiščete ta besedilni niz kot dokaz, da so tajni podatki ušli.
  • Zlonamerni odgovori DNS so očitno šli na in odgovori, če sploh, so prišli s strežnika DNS, imenovanega WHEEZY.IO. Trenutno ne moremo najti nobene številke IP, povezane s to storitvijo, in PyTorch ni zagotovil nobenih podatkov o IP, ki bi povezovali promet DNS s to zlonamerno programsko opremo, zato nismo prepričani, koliko so te informacije uporabne za lov na grožnje trenutno [2023-01-01T21:05:00Z].

Na srečo ugibamo, da to ne bo vplivalo na večino uporabnikov PyTorcha, bodisi zato, ker ne uporabljajo nočnih gradenj ali pa niso delali med počitnicami ali oboje.

Če pa ste navdušenec nad PyTorchom, ki se ukvarja z nočnimi gradnjami, in če ste delali čez praznike, tudi če ne najdete nobenega jasnega dokaza, da ste bili ogroženi ...

… kljub temu boste morda želeli razmisliti o ustvarjanju novih parov ključev SSH kot previdnostnem ukrepu in posodobitvi javnih ključev, ki ste jih naložili na različne strežnike, do katerih dostopate prek SSH.

Če seveda sumite, da ste bili ogroženi, ne odlašajte s posodobitvami ključev SSH – če jih še niste storili, jih storite zdaj!


Časovni žig:

Več od Gola varnost