Pag-atake sa imprastraktura ng PyTorch, na nakompromiso ang repositoryo at mga release

Ang mga detalye ng pag-atake sa imprastraktura na ginamit sa pagbuo ng PyTorch machine learning framework ay inihayag, na naging posible upang kunin ang mga access key na sapat upang maglagay ng arbitrary na data sa repository na may mga paglabas ng proyekto sa GitHub at AWS, gayundin sa pagpapalit ng code sa pangunahing sangay ng repositoryo at magdagdag ng backdoor sa pamamagitan ng mga dependencies. Maaaring gamitin ang PyTorch release spoofing sa pag-atake sa malalaking kumpanya gaya ng Google, Meta, Boeing at Lockheed Martin na gumagamit ng PyTorch sa kanilang mga proyekto. Bilang bahagi ng programang Bug Bounty, binayaran ng Meta ang mga mananaliksik ng $16250 para sa impormasyon tungkol sa problema.

Ang esensya ng pag-atake ay ang kakayahang patakbuhin ang iyong code sa tuluy-tuloy na integration server na nagsasagawa ng mga muling pagtatayo at nagpapatakbo ng mga trabaho upang subukan ang mga bagong pagbabago na ipinadala sa repositoryo. Nakakaapekto ang isyu sa mga proyektong gumagamit ng sarili nilang external na "Self-Hosted Runner" na humahawak sa GitHub Actions. Hindi tulad ng tradisyonal na GitHub Actions, ang mga Self-Hosted na humahawak ay hindi tumatakbo sa imprastraktura ng GitHub, ngunit sa kanilang sariling mga server o sa mga virtual machine na pinapanatili ng developer.

Ang pagsasagawa ng mga gawain sa pagpupulong sa iyong mga server ay nagbibigay-daan sa iyong ayusin ang paglulunsad ng code na maaaring mag-scan sa panloob na network ng isang enterprise, maghanap sa lokal na FS para sa mga encryption key at access token, at pag-aralan ang mga variable ng kapaligiran na may mga parameter para sa pag-access ng panlabas na storage o mga serbisyo sa cloud. Sa kawalan ng wastong paghihiwalay ng kapaligiran ng pagpupulong, ang natagpuang kumpidensyal na data ay maaaring ipadala sa mga umaatake sa labas, halimbawa, sa pamamagitan ng pag-access sa mga panlabas na API. Upang matukoy ang paggamit ng Self-Hosted Runner sa pamamagitan ng mga proyekto, magagamit ang Gato toolkit upang suriin ang mga file ng workflow na naa-access ng publiko at mga log ng paglulunsad ng gawain ng CI.

Sa PyTorch at marami pang ibang proyekto na gumagamit ng Self-Hosted Runner, tanging ang mga developer na ang mga pagbabago ay dati nang na-peer-review at kasama sa codebase ng proyekto ang pinapayagang magpatakbo ng mga build job. Ang pagkakaroon ng status na "contributor" kapag ginagamit ang mga default na setting sa repository ay ginagawang posible na ilunsad ang mga tagapangasiwa ng GitHub Actions kapag nagpapadala ng mga pull request at, nang naaayon, isagawa ang iyong code sa anumang kapaligiran ng GitHub Actions Runner na nauugnay sa repositoryo o sa organisasyong nangangasiwa sa proyekto.

Ang link sa katayuan ng "contributor" ay naging madaling i-bypass - sapat na upang magsumite muna ng isang menor de edad na pagbabago at hintayin itong matanggap sa base ng code, pagkatapos ay awtomatikong natanggap ng developer ang katayuan ng isang aktibong kalahok, na ang mga kahilingan sa paghila ay pinapayagang masuri sa imprastraktura ng CI nang walang hiwalay na pag-verify. Upang makamit ang aktibong status ng developer, kasama sa eksperimento ang mga maliliit na pagbabago sa kosmetiko upang itama ang mga typo sa dokumentasyon. Upang makakuha ng access sa repositoryo at storage ng mga release ng PyTorch, ang pag-atake habang nagpapatupad ng code sa β€œSelf-Hosted Runner” ay humarang sa GitHub token na ginamit upang ma-access ang repository mula sa mga proseso ng build, pati na rin ang mga AWS key na ginamit para i-save ang mga resulta ng build .

Ang isyu ay hindi partikular sa PyTorch at nakakaapekto sa maraming iba pang malalaking proyekto na gumagamit ng mga default na setting para sa "Self-Hosted Runner" sa GitHub Actions. Halimbawa, ang pagpapatupad ng mga katulad na pag-atake ay binanggit upang mag-install ng backdoor sa ilang malalaking cryptocurrency wallet at mga proyekto ng blockchain na may bilyong dolyar na capitalization, gumawa ng mga pagbabago sa mga release ng Microsoft Deepspeed at TensorFlow, ikompromiso ang isa sa mga application ng CloudFlare, at i-execute din ang code sa isang computer sa network ng Microsoft. Ang mga detalye ng mga insidenteng ito ay hindi pa nabubunyag. Sa ilalim ng umiiral na mga bug bounty program, nagsumite ang mga mananaliksik ng higit sa 20 aplikasyon para sa mga reward na nagkakahalaga ng ilang daang libong dolyar.

Pinagmulan: opennet.ru

Magdagdag ng komento