Paljastatud on rĂŒnnaku detailid infrastruktuuril, mida kasutatakse masinĂ”ppe raamistikku PyTorch arendamisel, mis vĂ”imaldas pÀÀsukoodide vĂ€ljavĂ”tmist, mis on piisavad, et hostida juhuslikke andmeid projekti versioonide hoidlas GitHubis ja AWS-is, samuti koodi sisestamine peavoolu hoidlas ja tagaukse lisamine sĂ”ltuvuste kaudu. PyTorchi versioonide muutmine vĂ”iks olla kasutusel rĂŒnnakutes suurte ettevĂ”tete vastu, nagu Google, Meta, Boeing ja Lockheed Martin, kes kasutavad PyTorchi oma projektides. Meta Bug Bounty programmi raames maksis ettevĂ”te uurijatele $16,250 probleemi kohta teabe eest.
RĂŒnnaku olemus seisneb vĂ”imaluses kĂ€itada oma koodi serverites katkestusvaba integreerimise sĂŒsteemides, mis teevad ĂŒmberkoordineerimist ja tĂ€idavad ĂŒlesandeid uute muudatuste testimiseks, mis on saadetud hoidlasse. Probleem puudutab projekte, mis kasutavad oma vĂ€list töötlust "Self-Hosted Runner" GitHub Actionsis. Erinevalt traditsioonilisest GitHub Actionsist, kĂ€ivad Self-Hosted töötlajad mitte GitHubi infrastruktuuris, vaid nende oma serverites vĂ”i virtuaalsetes arendajate poolt toetatud masinates.
Koodide kĂ€ivitamine oma serverites vĂ”imaldab korraldada koodi, mis vĂ”ib skannida ettevĂ”tte sisevĂ”rku, otsida kohaliku failisĂŒsteemi krĂŒpteerimisvĂ”tmeid ja juurdepÀÀsutoimikute tokenid, analĂŒĂŒsida keskkonnamuutujaid, mis sisaldavad vĂ€liste ladustamise vĂ”i pilveteenuste kutsumisparameetreid. Ilma nĂ”uetekohase isoleerimiseta vĂ”ivad leitud konfidentsiaalsed andmed rĂŒnnakute korral vĂ€ljapoole edastada, nĂ€iteks vĂ€liste API-de kutsumise kaudu. Projekti âSelf-Hosted Runnerâ rakenduse mÀÀratlemiseks vĂ”ib kasutada Gato tööriista, mis analĂŒĂŒsib avalikke töövoofailide ja CI-ĂŒlesannete kĂ€ivitamiselugusid.
PyTorchis ja paljude teiste projektide puhul, kus kasutatakse "Self-Hosted Runner"-it, on ehitusĂŒlesannete kĂ€itamine lubatud ainult arendajatele, kelle muudatused on eelnevalt lĂ€binud ĂŒlevaatamise ja lisatud projekti koodibaasi. "Contributor" staatuse omamine vaikeseadete hoidlas vĂ”imaldab kĂ€ivitada GitHub Actions töötlejat, kui edastatakse pull-requestid, ja seega kĂ€itada oma koodi mis tahes GitHub Actions Runneri keskkonnas, mis on seotud hoidla vĂ”i projekti juhtiva organisatsiooniga.
Statuse «contributor» saamise vĂ”imalust osutus lihtsaks â piisab, kui saata eelnevalt vĂ€ike muudatus ja oodata selle vastuvĂ”tmist koodibaasi, pĂ€rast mida sai arendaja automaatselt aktiivse osaleja staatuse, kelle pull-pĂ€ringuid on lubatud CI-infrastruktuuris testida ilma eraldi kontrollita. Aktiivse arendaja staatuse saamiseks kasutati eksperimendi kĂ€igus vĂ€ikeseid kosmeetilisi muudatusi, mis olid seotud dokumentatsiooniveate parandamisega. PyTorch'i hoidla ja vĂ€ljaandmisladustamisest juurde pÀÀsemiseks toimusid rĂŒnnaku kĂ€igus koodi tĂ€itmisel âSelf-Hosted Runnerâisâ GitHub'i tokeni pealtkuulamine, mis kasutati hoidla juurdepÀÀsuks koostamisprotsessidelt, samuti AWS vĂ”tmete rakendamine, mis olid kasutusel koostamise tulemuste salvestamiseks.
Probleem ei ole spetsiifiline PyTorchile ja mĂ”jutab paljusid teisi suuremaid projekte, mis kasutavad GitHub Actionsi âSelf-Hosted Runneriâ vaikeseadeid. NĂ€iteks on mainitud sarnaste rĂŒnnakute teostamist teatud suuremate krĂŒptovaluutakottide ja miljardilise turuvÀÀrsusega plokiahela projektide tagasikuulutamiseks, muudatusi Microsoft Deepspeedi ja TensorFlow vĂ€ljaannetes, CloudFlare'i ĂŒhe rakenduse kompromiteerimist ning koodi kĂ€ivitamist Microsofti vĂ”rgus. Karmide juhtumite ĂŒksikasjad ei ole veel avaldatud. KĂ€imasolevate Bug Bounty programmide raames on teadlased esitanud rohkem kui 20 taotlust, et saada preemiaid, mille koguvÀÀrtus on mitu sada tuhat dollarit.
Allikas: opennet.ru
