Dezvoltatorii distribuției Alpine Linux au dezvăluit informații despre tentativa de hacking a platformei de colaborare gitlab.alpinelinux.org, pe care se lucra la managerul de pachete APK, uneltele de compilare, componentele infrastructurii și scripturile de compilare a pachetelor (aports). Atacul a fost efectuat prin exploatarea unei vulnerabilități în platforma GitLab, cauzată de o depășire a valorii întregi în motorul de expresii regulate al limbajului Ruby. Nu s-au găsit dovezi sau urme ale unei breșe reușite, dar, deoarece nu se poate exclude complet exploatarea cu succes a vulnerabilității, containerul cu GitLab a fost considerat potențial compromis și conținutul său a fost reconstruit complet de la zero, iar utilizatorilor li s-a inițiat procedura de schimbare a parolelor.
Administratorii infrastructurii Alpine Linux nu au identificat apariția fișierelor externe, procese suspecte în execuție, apeluri neobișnuite la API, modificări ale setărilor și fișierelor de sistem, precum și creșteri ale încărcării specifice extragerii masive de date. În timpul analizei integrității repository-ului aports, pachetelor și fișierelor de release, precum și a verificării acestora cu copiile de pe serverele externe de compilare și sistemele dezvoltatorilor, nu s-au descoperit modificări ascunse.
Excluderea completă a unui atac reușit este imposibilă din cauza lipsei de informații despre conexiunile rețelei externe, ștergerea unor loguri în timpul rotării (de exemplu, logul cron) și absența detaliilor adecvate în logurile serverului web (aplicarea cu succes a exploit-ului care nu duce la o întrerupere bruscă nu este reflectată în log).
În cazul unui atac reușit, atacatorii ar fi putut obține acces la baza de date cu informații despre toți utilizatorii GitLab (hash-uri de parole, email, adrese IP și altele), variabile de mediu și token-uri din sistemele de integrare continuă, coduri de autentificare în doi pași, hash-uri ale token-urilor personale de acces, conținutul repository-urilor private și discuțiile confidențiale despre probleme. Cheile pentru generarea semnăturilor digitale pentru release-uri și pachete pe sistemul atacat server nu erau stocate.
Primele încercări de exploatare a vulnerabilității au fost înregistrate pe 20 și 21 octombrie. Atacatorul a înregistrat un cont în GitLab și a încercat să trimită configurații modificate pentru sistemul de integrare continuă. În jurnale au fost înregistrate 8 finalizări anormale ale proceselor GitLab, dintre care 4 erau legate de aplicarea exploit-ului. Se remarcă faptul că prima fază de funcționare a exploit-ului a fost de succes, dar a doua etapă s-a terminat cu eșec.
În momentul atacului, în container era utilizată versiunea vulnerabilă GitLab 19.3.4, care pe 22 octombrie a fost actualizată la versiunea GitLab 19.3.6. Însă, administratorii Alpine nu au ținut cont de faptul că remedierea a fost inclusă doar în pachetele oficiale de instalare GitLab 19.3.6, nu în codul GitLab în sine, deoarece vulnerabilitatea era prezentă în instrumentarul Ruby. În container continua să fie utilizat vechiul instrumentar Ruby și vulnerabilitatea a rămas nerezolvată.
Faptul că sistemul rămâne vulnerabil a fost descoperit abia pe 26 octombrie. Analiza jurnalelor a arătat că pe 25 și 26 octombrie atacatorii au reluat încercările de atac. Pe 27 octombrie, accesul utilizatorilor externi la GitLab a fost restricționat. Pe 28 octombrie, conținutul a fost recompus, toate parolele au fost resetate (utilizatorii trebuie să își stabilească o nouă parolă prin procedura de recuperare a parolei uitate), iar cheile de acces au fost înlocuite. Pe 29 octombrie, noul serverul a fost pus în funcțiune. Proiectul Docker-container al alpinelinux/gitlab a rămas vulnerabil până pe 27 octombrie.
Sursa: opennet.ro
