Alpine Linuxi distributsi arendajad avalikustasid teavet häkkimisürituse kohta ühise arenduse platvormil gitlab.alpinelinux.org, kus töötati APK paketihalduri, koostamisriistade, infrastruktuurikomponentide ja paketihalduse skriptide (aports) kallal. Rünnak toimus GitLabi platvormi haavatavuse kaudu, mille põhjustas Ruby regulaaravaldiste mootori täisarvude ülevool. Tõendeid ja jälgi eduka häkkimise kohta ei leitud, kuid kuna ei ole võimalik täielikult välistada haavatavuse edukat kasutamist, tunnistati GitLabi konteiner potentsiaalselt kompromiteerituks ning selle sisu ehitati täielikult nullist ümber ja kasutajatele algatati paroolivahetusprotseduur.
Alpine Linuxi infrastruktuuri administraatorid ei tuvastanud kolmandate osapoolte failide, kahtlaste käivitatud protsesside, ebatavaliste API päringute, seadete ja süsteemifailide muutuste ning massilise andmeekstraktsioonile iseloomulike koormuse hüppeid. Aports reposti, pakettide ja väljaannete failide terviklikkuse analüüsi käigus ning nende võrdlemisel välistest koostamisserveritest ja arendajate süsteemidest ei tuvastatud varjatud muudatusi.
Üksikasjalik välistamine eduka rünnaku toimumise kohta on keeruline, kuna puudub teave väljaminevate võrguseoste kohta, mõned logid on logimise käigus eemaldatud (nt cron-log) ning veebiserveri logides puudub vajalik detailitase (eduka ekspluateerimise rakendamine, mis ei loo kokkuvarisemist, ei peegeldu logis).
Edasi viia rünnaku korral oleks kurjategijatel olnud juurdepääs GitLabi andmebaasile, kus on teave kõikide kasutajate kohta (paroolide räsi, e-posti aadressid, IP-aadressid jne), keskkonnamuutujad ja pideva integreerimise süsteemide tokenid, kahefaktorilise autentimise koodid, isiklike juurdepääsutokenite räsi, privaatsete hoidlate sisu ja tundlikud probleemide arutelud. Rünnaku käigus ei hoidnud digitaalsete allkirjade genereerimise võtmeid väljaannetele ja pakettidele. serveris kuskil.
Esimene katse turvanõrkust ära kasutada toimusid 20. ja 21. oktoobril. Ründaja registreeris konto GitLabis ja proovis saata muudetud pideva integreerimise süsteemi seadistusi. Logides on fikseeritud 8 GitLabi töövoo avariilist lõpetamist, millest 4 on seotud eksploidiga. Täheldatakse, et eksploodi esimene faas oli edukas, kuid teine etapp ebaõnnestus.
Rünnaku hetkel kasutati konteineris haavatavat GitLab versiooni 19.3.4, mis uuendati 22. oktoobril versiooniks GitLab 19.3.6. Kuid Alpine'i administraatorid ei arvestanud, et parandused tehti ainult ametlikele GitLab 19.3.6 installipakettidele, mitte GitLabi koodile, kuna haavatavus on Ruby tööriistakomplektis. Konteineris kasutati endiselt vana Ruby tööriistakomplekti ja haavatavus jäi lahendamata.
Süsteemi haavatavuse jätkumine tuvastati alles 26. oktoobril. Logide analüüs näitas, et 25. ja 26. oktoobril jätkasid ründajad katseid rünnaku sooritamiseks. 27. oktoobril piirati väliste kasutajate juurdepääs GitLabile. 28. oktoobril koostati sisu uuesti, kõik paroolid lähtestati (kasutajatel on vajalik saata uus parool unustatud parooli taastamise protseduuri kaudu), ja ligipääsuvõtmed vahetati. 29. oktoobril uuendatud server viidi sisse. Docker-konteineri alpinelinux/gitlab projekt jäi haavatavaks kuni 27. oktoobrini.
Allikas: opennet.ru
