Az Alpine Linux disztró fejlesztői nyilvánosságra hozták, hogy megpróbálták feltörni a gitlab.alpinelinux.org közös fejlesztési platformot, ahol az APK csomagkezelő, a build eszközök, az infrastruktúra komponensek és a csomagok összeállításához szükséges szkriptek (aports) fejlesztése zajlott. A támadást a GitLab platformján található sérülékenység kihasználásával hajtották végre, amelyet a Ruby programozási nyelv reguláris kifejezési motorjában fellépő egész számok túlcsordulása okozott. Bizonyítékokat és a sikeres betörés nyomait nem sikerült megtalálni, de mivel a sérülékenység sikeres kihasználása nem zárható ki, a GitLab konténert potenciálisan kompromittáltnak nyilvánították, és tartalmát teljesen újraépítették, a felhasználóknál pedig kezdeményezték a jelszóváltás folyamatát.
Az Alpine Linux infrastruktúrájának rendszergazdái nem észleltek idegen fájlokat, gyanúsan futó folyamatokat, szokatlan API-hívásokat, beállítások és rendszerszintű fájlok módosítását, valamint terhelés ugrásokat, amelyek a tömeges adatkinyerésre jellemzőek. A repository (aports), csomagok és kiadási fájlok integritásának elemzése során, valamint az ezeknek külső build szerverekről és fejlesztői rendszerekről származó másolatokkal való összehasonlítása során nem találtak rejtett változtatásokat.
A sikeres támadás teljes kizárását megnehezíti, hogy nincs információ az outgoing hálózati kapcsolatokkal kapcsolatban, egyes naplók törlése a rotáció során (például a cron naplója), valamint a web szerver naplóiban a megfelelő részletesség hiánya (a sikertelen exploit alkalmazása, amely nem vezetett a rendszer leállásához, nem tükröződik a naplóban).
Sikeres támadás esetén a támadók hozzáférhettek volna a GitLab összes felhasználójáról szóló adatbázishoz (jelszóhash-ek, e-mail, IP address stb.), a környezeti változókhoz és a folyamatos integrációs rendszerekből származó tokenekhez, a kétfaktoros hitelesítés kódjaihoz, a személyes hozzáférési tokenek hash-jeihez, a privát repók tartalmához és a bizalmas problematikus megbeszélésekhez. Az támadott kiadásokhoz és csomagokhoz tartozó digitális aláírások generálásához szükséges kulcsok nem voltak tárolva. szerveren A támadott
Az első kísérleteket a sérülékenység kihasználására október 20-án és 21-én regisztrálták. A támadó létrehozott egy fiókot a GitLaben és megpróbálta elküldeni a módosított folyamatos integrációs beállításokat. A naplókból nyolc GitLab munkafolyamat összeomlása volt rögzítve, amelyek közül négy a kihasználás alkalmazásával kapcsolatos. Megjegyzendő, hogy a kihasználó első fázisának végrehajtása sikeres volt, de a második szakasz hiba miatt kudarcot vallott.
A támadás időpontjában a konténerben a GitLab 19.3.4 sérülékeny verziója futott, amelyet október 22-én frissítettek a GitLab 19.3.6 kiadásra. Az Alpine rendszergazdái azonban figyelmen kívül hagyták, hogy a javítás csak a GitLab 19.3.6 hivatalos telepítőcsomagjaiba került bele, és nem a GitLab kódjába, mivel a sérülékenység a Ruby eszközkészletében található. A konténerben továbbra is a régi Ruby eszközkészletet használták, ezért a sérülékenység megmaradt.
Hogy a rendszer továbbra is sérülékeny marad, azt csak október 26-án fedezték fel. A naplók elemzése megmutatta, hogy október 25-én és 26-án a támadók folytatták a támadási kísérleteket. Október 27-én a külső felhasználók hozzáférése a GitLabhoz korlátozásra került. Október 28-án a tartalom újraépült, minden jelszó visszaállításra került (a felhasználóknak új jelszót kell beállítaniuk a jelszó helyreállítási eljárás során), és a hozzáférési kulcsok cserére kerültek. Október 29-én a frissített szerver telepítésre került. A Docker-konténeres alpinelinux/gitlab projekt továbbra is sérülékeny maradt egészen október 27-ig.
Forrás: opennet.ru
