Razvijači distribucije Alpine Linux otkrili su informacije o pokušajima hakiranja platforme za zajednički rad gitlab.alpinelinux.org, na kojoj su radili na paket menadžeru APK, alatima za izgradnju, infrastrukturnim komponentama i skriptama za izgradnju paketa (aports). Napad je izvršen eksploatacijom ranjivosti na platformi GitLab, izazvane prekomjernim punjenjem cijelih brojeva u engineu regularnih izraza jezika Ruby. Dokazi i tragovi uspješnog hakiranja nisu pronađeni, ali s obzirom na to da se potpuno isključenje uspješne eksploatacije ranjivosti ne može smatrati mogućim, kontejner s GitLabom je proglašen potencijalno kompromitiranim i njegovo je sadržajno potpuno rekonstruirano iz temelja, a korisnicima je pokrenuta procedura promjene lozinki.
Administratori infrastrukture Alpine Linux nisu otkrili pojavu eksternih datoteka, sumnjivih pokrenutih procesa, neobičnih poziva prema API-ju, promjena postavki i sistemskih datoteka, kao ni skokova opterećenja karakterističnih za masovno vađenje podataka. Tijekom analize cjelovitosti repozitorija aports, paketa i datoteka s izdanjima, kao i njihove usporedbe s kopijama s vanjskih servera za izgradnju i sustava programera, skrivene promjene nisu otkrivene.
Potpuno isključiti uspješnu provedbu napada onemogućuje nedostatak informacija o odlaznim mrežnim vezama, brisanje nekih logova prilikom rotacije (npr. cron loga) i nedostatak odgovarajuće detaljnosti u logovima web servera (uspješna primjena eksploita koja ne dovodi do izvanrednog završetka ne odražava se u logu).
U slučaju uspješnog napada, napadači su mogli pristupiti bazi podataka s informacijama o svim korisnicima GitLaba (hash lozinki, email, IP adrese itd.), varijablama okruženja i tokenima iz sustava kontinuirane integracije, kodovima za dvostruku autentifikaciju, hash-ima osobnih tokena pristupa, sadržaju privatnih repozitorija i povjerljivim raspravama o problemima. Ključevi za stvaranje digitalnih potpisa za izdanja i pakete na napadnutom serveru nisu se čuvali.
Prve pokušaje iskorištavanja ranjivosti zabilježene su 20. i 21. listopada. Napadač je registrirao račun na GitLabu i pokušao poslati modificirane postavke sustava za kontinuiranu integraciju. U logovima je zabilježeno 8 izvanrednih završetaka radnih procesa GitLaba, od kojih su 4 povezana s primjenom eksploitacije. Primjećuje se da je prva faza funkcionalnosti eksploita bila uspješna, ali je druga faza završila neuspjehom.
Tijekom napada u kontejneru je korištena ranjiva verzija GitLaba 19.3.4, koja je 22. listopada ažurirana na izdanja GitLab 19.3.6. No, administratori Alpine nisu uzeli u obzir da je ispravak uveden samo u službenim instalacijskim paketima GitLab 19.3.6, a ne u samom kodu GitLaba, budući da ranjivost postoji u Ruby alatu. U kontejneru je nastavljena upotreba starog Ruby alata, te je ranjivost ostala neispravljena.
To da sustav ostaje ranjiv otkriveno je tek 26. listopada. Analiza logova pokazala je da su 25. i 26. listopada napadači obnovili pokušaje napada. 27. listopada pristup vanjskih korisnika GitLabu bio je ograničen. 28. listopada sadržaj je ponovo sastavljen, sve lozinke su resetirane (korisnicima je potrebno postaviti novu lozinku putem postupka vraćanja zaboravljene lozinke), a pristupni ključevi su zamijenjeni. 29. listopada ažurirani server je pušten u rad. Projekt Docker kontejner alpinelinux/gitlab ostao je ranjiv sve do 27. listopada.
Izvor: opennet.ru
