Janë zbuluar detaje të sulmit ndaj infrastrukturës së përdorur gjatë zhvillimit të framework-ut të mësimit makinerik PyTorch, i cili bëri të mundur nxjerrjen e çelësave të aksesit të mjaftueshëm për të publikuar të dhëna arbitrare në depozitën e publikimeve të projektit në GitHub dhe AWS, si edhe për të futur kod në degën kryesore të depozitës dhe për të shtuar një backdoor përmes varësive. Zëvendësimi i publikimeve të PyTorch mund të ishte përdorur për të kryer një sulm ndaj kompanive të mëdha si Google, Meta, Boeing dhe Lockheed Martin, të cilat përdorin PyTorch në projektet e tyre. Në kuadër të programit Bug Bounty, kompania Meta u ka paguar studiuesve $16250 për informacionin mbi problemin.
Thelbi i sulmit qëndron në mundësinë e ekzekutimit të kodit të vet në sistemet sistemet e integrimit të vazhdueshëm, të cilat kryejnë rindërtimin dhe ekzekutimin e detyrave për testimin e ndryshimeve të reja që dërgohen në depozitë. Problemi prek projektet që përdorin përpunues të jashtëm të vetët «Self-Hosted Runner» me GitHub Actions. Ndryshe nga GitHub Actions tradicionalë, përpunuesit Self-Hosted nuk ekzekutohen në infrastrukturën e GitHub, por në serverët e tyre ose në makina virtuale, të mirëmbajtura nga zhvilluesit.
Ekzekutimi i detyrave tĂ« ndĂ«rtimit nĂ« serverĂ«t e vet lejon organizimin e nisjes sĂ« kodit qĂ« mund tĂ« kryejĂ« skanimin e rrjetit tĂ« brendshĂ«m tĂ« kompanisĂ«, kĂ«rkimin nĂ« FS lokale tĂ« çelĂ«save tĂ« enkriptimit dhe tokenĂ«ve tĂ« aksesit, si edhe analizĂ«n e variablave tĂ« mjedisit me parametrat e aksesit te depot e jashtme ose shĂ«rbimet cloud. NĂ« mungesĂ« tĂ« izolimit tĂ« duhur tĂ« mjedisit tĂ« ndĂ«rtimit, tĂ« dhĂ«nat konfidenciale tĂ« gjetura mund tâu dĂ«rgohen sulmuesve jashtĂ«, pĂ«r shembull pĂ«rmes thirrjeve ndaj API-ve tĂ« jashtme. PĂ«r tĂ« pĂ«rcaktuar nĂ«se projektet pĂ«rdorin «Self-Hosted Runner», mund tĂ« pĂ«rdoret instrumenti Gato, i cili analizon skedarĂ«t publikĂ« tĂ« workflow-ve dhe log-et e ekzekutimit tĂ« detyrave CI.
Në PyTorch dhe në shumë projekte të tjera që përdorin «Self-Hosted Runner», nisja e detyrave të build-it lejohet vetëm për zhvilluesit, ndryshimet e të cilëve janë rishikuar më parë dhe janë përfshirë në bazën e kodit të projektit. Statusi «contributor», kur në depo përdoren cilësimet e parazgjedhura, mundëson nisjen e handler-ëve të GitHub Actions gjatë dërgimit të pull request-eve dhe, rrjedhimisht, ekzekutimin e kodit të tyre në çdo mjedis GitHub Actions Runner të lidhur me depon ose me organizatën që mbikëqyr projektin.
Rezultoi se lidhja me statusin «contributor» mund të anashkalohej lehtësisht: mjaftonte të dërgohej paraprakisht një ndryshim i vogël dhe të pritej pranimi i tij në bazën e kodit, pas së cilës zhvilluesi merrte automatikisht statusin e një kontribuesi aktiv, pull request-et e të cilit lejoheshin të testoheshin në infrastrukturën CI pa verifikim të veçantë. Gjatë eksperimentit, për marrjen e statusit të zhvilluesit aktiv u përdorën ndryshime të vogla kozmetike që lidhen me korrigjimin e gabimeve tipografike në dokumentacion. Për të fituar qasje te depoja dhe te ruajtja e release-ve të PyTorch gjatë sulmit, gjatë ekzekutimit të kodit në «Self-Hosted Runner» u kap token-i i GitHub i përdorur për qasje në depo nga proceset e build-it, si edhe çelësat AWS të përdorur për ruajtjen e rezultateve të build-it.
Problemi nuk është specifik vetëm për PyTorch dhe prek shumë projekte të tjera të mëdha që përdorin cilësimet e parazgjedhura për «Self-Hosted Runner» në GitHub Actions. Për shembull, përmendet kryerja e sulmeve të ngjashme për futjen e backdoor-eve në disa kuleta të mëdha kriptomonedhash dhe projekte blockchain me kapitalizim shumëmiliardësh, për ndryshime në release-t e Microsoft Deepspeed dhe TensorFlow, për komprometimin e një prej aplikacioneve të CloudFlare, si edhe për ekzekutimin e kodit në një kompjuter brenda rrjetit të Microsoft. Detajet për këto incidente ende nuk janë bërë publike. Në kuadër të programeve aktuale Bug Bounty, studiuesit kanë dërguar më shumë se 20 raportime për të marrë shpërblime me vlerë disa qindra mijëra dollarë.
Burimi: opennet.ru
