PyTorch: Machine Learning-verktygssats från jul till nyår PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

PyTorch: Machine Learning verktygslåda från jul till nyår

PyTorch är en av de mest populära och mest använda verktygssatserna för maskininlärning som finns.

(Vi kommer inte att dras på var det sitter på ledartavlan för artificiell intelligens – som med många allmänt använda verktyg med öppen källkod i ett konkurrensutsatt område verkar svaret bero på vem du frågar och vilken verktygslåda de råkar använda sig själva.)

Ursprungligen utvecklad och släppt som ett open source-projekt av Facebook, nu Meta, överlämnades programvaran till Linux Foundation i slutet av 2022, som nu driver den under PyTorch Foundations beskydd.

Tyvärr, projektet äventyrades med hjälp av en supply-chain attack under semesterperioden i slutet av 2022, mellan juldagen [2022-12-25] och dagen före nyårsafton [2022-12-30].

Angriparna skapade illvilligt ett Python-paket som heter torchtriton på PyPI, det populära Python Package Index-förrådet.

Namnet torchtriton valdes så att det skulle matcha namnet på ett paket i själva PyTorch-systemet, vilket leder till en farlig situation förklarat av PyTorch-teamet (vår betoning) enligt följande:

[A] skadligt beroendepaket (torchtriton) […] laddades upp till Python Package Index (PyPI) kodlager med samma paketnamn som det vi skickar på PyTorchs nattliga paketindex. Eftersom PyPI-indexet har företräde, det här skadliga paketet installerades istället för versionen från vårt officiella arkiv. Denna design gör det möjligt för någon att registrera ett paket med samma namn som ett som finns i ett tredjepartsindex, och pip kommer att installera sin version som standard.

Programmet pip, förresten, brukade vara känd som pyinstall, och är tydligen ett rekursivt skämt som är förkortning för pip installs packages. Trots sitt ursprungliga namn är det inte för att installera själva Python – det är standardsättet för Python-användare att hantera programbibliotek och applikationer som är skrivna i Python, som PyTorch och många andra populära verktyg.

Pwned av ett försörjningskedja-trick

Den som var olycklig nog att installera den pwned-versionen av PyTorch under riskperioden hamnade nästan säkert med att skadlig programvara implanteras på sin dator.

Enligt PyTorchs egna korta men användbara analys av skadlig programvara, stal angriparna en del, de flesta eller alla av följande viktiga data från infekterade system:

  • Systeminformation, inklusive värdnamn, användarnamn, kända användare på systemet och innehållet i alla systemmiljövariabler. Miljövariabler är ett sätt att tillhandahålla enbart minnesdata som program kan komma åt när de startar, ofta inklusive data som inte ska sparas på disken, såsom kryptografiska nycklar och autentiseringstokens som ger åtkomst till molnbaserade tjänster. Listan över kända användare extraheras från /etc/passwd, som, lyckligtvis, faktiskt inte innehåller några lösenord eller lösenords-hashar.
  • Din lokala Git-konfiguration. Detta är stulet från $HOME/.gitconfig, och innehåller vanligtvis användbar information om den personliga installationen för alla som använder det populära Git källkodshanteringssystemet.
  • Dina SSH-nycklar. Dessa är stulna från katalogen $HOME/.ssh. SSH-nycklar inkluderar vanligtvis de privata nycklar som används för att ansluta säkert via SSH (secure shell) eller använda SCP (secure copy) till andra servrar i dina egna nätverk eller i molnet. Många utvecklare håller åtminstone en del av sina privata nycklar okrypterade, så att skript och mjukvaruverktyg som de använder automatiskt kan ansluta till fjärrsystem utan att pausa för att be om ett lösenord eller en säkerhetsnyckel för hårdvara varje gång.
  • De första 1000 andra filerna i din hemkatalog är mindre än 100 kilobyte i storlek. PyTorchs beskrivning av skadlig programvara säger inte hur den "första 1000-fillistan" beräknas. Fillistornas innehåll och ordning beror på om listan är sorterad i alfabetisk ordning; om underkataloger besöks före, under eller efter bearbetning av filerna i någon katalog; om dolda filer ingår; och om någon slumpmässighet används i koden som går sin väg genom katalogerna. Du bör förmodligen anta att alla filer under storlekströskeln kan vara de som blir stulna.

Vid det här laget kommer vi att nämna de goda nyheterna: endast de som hämtade den så kallade "nattliga" eller experimentella versionen av programvaran var i riskzonen. (Namnet "nightly" kommer från det faktum att det är den allra senaste versionen, vanligtvis skapad automatiskt i slutet av varje arbetsdag.)

De flesta PyTorch-användare kommer förmodligen att hålla sig till den så kallade "stabila" versionen, som inte påverkades av denna attack.

Även från PyTorchs rapport verkar det som Tritons körbara skadliga fil är specifikt inriktad på 64-bitars Linux-miljöer.

Vi antar därför att detta skadliga program bara skulle köras på Windows-datorer om Windows Subsystem for Linux (WSL) var installerat.

Glöm dock inte att de personer som med största sannolikhet installerar vanliga "nattljus" inkluderar utvecklare av PyTorch själv eller av applikationer som använder den – kanske inklusive dina egna interna utvecklare, som kan ha privat-nyckel-baserad tillgång till företagsbyggen , test- och produktionsservrar.

DNS-datastöld

Spännande nog exfiltrerar inte Tritons skadliga program sin data (den militaristiska jargongterm som cybersäkerhetsindustrin gillar att använda istället för stjäla or kopiera olagligt) med HTTP, HTTPS, SSH eller något annat högnivåprotokoll.

Istället krypterar och kodar den data den vill stjäla till en sekvens av vad som ser ut som "servernamn" som tillhör ett domännamn som kontrolleras av brottslingarna.

Detta innebär att genom att göra en sekvens av DNS-uppslagningar kan skurkarna smyga ut en liten mängd data i varje falsk begäran.

Detta är samma typ av trick som användes av Log4Shell hackare i slutet av 2021, som läckte krypteringsnycklar genom att göra DNS-sökningar efter "servrar" med "namn" som bara råkade vara värdet på din hemliga AWS-åtkomstnyckel, plundrade från en miljövariabel i minnet.

Så vad som såg ut som en oskyldig, om än meningslös, DNS-sökning för en "server" som t.ex S3CR3TPA55W0RD.DODGY.EXAMPLE skulle tyst läcka din åtkomstnyckel under sken av en enkel uppslagning som riktade sig till den officiella DNS-servern som är listad för DODGY.EXAMPLE domän.


LIVE LOG4SHELL DEMO SOM FÖRKLARAR DATAEXFILTRERING VIA DNS

[Inbäddat innehåll]

Om du inte kan läsa texten tydligt här, prova att använda helskärmsläge, eller titta direkt på Youtube.
Klicka på kugghjulet i videospelaren för att snabba upp uppspelningen eller för att aktivera undertexter.


Om skurkarna äger domänen DODGY.EXAMPLE, får de tala om för världen vilken DNS-server de ska ansluta till när de gör dessa uppslagningar.

Ännu viktigare, även nätverk som strikt filtrerar TCP-baserade nätverksanslutningar med HTTP, SSH och andra datadelningsprotokoll på hög nivå...

…filtrera ibland inte UDP-baserade nätverksanslutningar som används för DNS-uppslagningar alls.

Den enda nackdelen för skurkarna är att DNS-förfrågningar har en ganska begränsad storlek.

Individuella servernamn är begränsade till 64 tecken från en uppsättning av 37 (AZ, 0-9 och bindestreck eller bindestreck), och många nätverk begränsar individuella DNS-paket, inklusive alla inneslutna förfrågningar, rubriker och metadata, till bara 512 byte vardera.

Vi gissar att det var därför skadlig programvara i det här fallet började med att gå efter dina privata nycklar och sedan begränsade sig till högst 1000 100,000 filer, var och en mindre än XNUMX XNUMX byte.

På så sätt kan skurkarna stjäla massor av privat data, särskilt inklusive serveråtkomstnycklar, utan att generera ett ohanterligt stort antal DNS-uppslagningar.

Ett ovanligt stort antal DNS-sökningar kan uppmärksammas av rutinmässiga operativa skäl, även i frånvaro av någon granskning som tillämpas specifikt för cybersäkerhetsändamål.

Vad göra?

PyTorch har redan vidtagit åtgärder för att stänga av denna attack, så om du inte har blivit träffad än kommer du nästan säkert inte att bli träffad nu, eftersom den skadliga torchtriton paket på PyPI har ersatts med ett medvetet "dud", tomt paket med samma namn.

Detta betyder att någon person, eller någon programvara, som försökte installera torchtriton från PyPI efter 2022-12-30T08:38:06Z, antingen av misstag eller av misstag, skulle inte ta emot skadlig programvara.

Det oseriösa PyPI-paketet efter PyTorchs ingripande.

PyTorch har publicerat en praktisk lista över IoC, eller indikatorer på kompromiss, som du kan söka efter i ditt nätverk.

Kom ihåg, som vi nämnde ovan, att även om nästan alla dina användare håller sig till den "stabila" versionen, som inte påverkades av den här attacken, kan du ha utvecklare eller entusiaster som experimenterar med "nightlies", även om de använder stabila släppa också.

Enligt PyTorch:

  • Skadlig programvara installeras med filnamnet triton. Som standard förväntar du dig att hitta den i underkatalogen triton/runtime i din Python-webbplatspaketkatalog. Med tanke på att enbart filnamn är svaga skadliga indikatorer, behandla dock närvaron av denna fil som bevis på fara; behandla inte dess frånvaro som ett helt klart.
  • Skadlig programvara i just denna attack har summan SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Återigen kan skadlig programvara lätt kompileras för att producera en annan kontrollsumma, så frånvaron av denna fil är inte ett tecken på definitivt hälsa, men du kan behandla dess närvaro som ett tecken på infektion.
  • DNS-sökningar som används för att stjäla data slutade med domännamnet H4CK.CFD. Om du har nätverksloggar som registrerar DNS-sökningar efter namn, kan du söka efter den här textsträngen som bevis på att hemlig data har läckt ut.
  • De skadliga DNS-svaren gick tydligen till, och eventuella svar kom från en DNS-server som heter WHEEZY.IO. För tillfället kan vi inte hitta några IP-nummer associerade med den tjänsten, och PyTorch har inte tillhandahållit någon IP-data som skulle binda DNS-taffic till denna skadliga programvara, så vi är inte säkra på hur mycket användningen av denna information är för hotjakt för tillfället [2023-01-01T21:05:00Z].

Lyckligtvis gissar vi att majoriteten av PyTorch-användare inte kommer att ha påverkats av detta, antingen för att de inte använder nattbyggen, eller inte arbetade under semesterperioden, eller båda.

Men om du är en PyTorch-entusiast som pysslar med nattliga byggen, och om du har jobbat under semestern, så även om du inte kan hitta några tydliga bevis på att du har blivit utsatt...

…du kanske ändå vill överväga att generera nya SSH-nyckelpar som en försiktighetsåtgärd, och uppdatera de publika nycklar som du har laddat upp till de olika servrarna som du kommer åt via SSH.

Om du misstänker att du har blivit utsatt för intrång, skjut naturligtvis inte upp dessa SSH-nyckeluppdateringar – om du inte redan har gjort dem, gör dem nu!


Tidsstämpel:

Mer från Naken säkerhet