Ontwikkelaars van de Alpine Linux-distributie hebben informatie vrijgegeven over pogingen tot hacken van het samenwerkingsplatform gitlab.alpinelinux.org, waarop werd gewerkt aan de pakketbeheerder APK, assemblagetools, infrastructucomponenten en buildscripts (aports). De aanval werd uitgevoerd door het misbruiken van een kwetsbaarheid in het GitLab-platform, veroorzaakt door een buffer overflow in de Ruby-reguliere expressie-engine. Er zijn geen bewijzen of sporen van een succesvolle hack gevonden, maar aangezien het niet mogelijk is om de succesvolle misbruik van de kwetsbaarheid volledig uit te sluiten, werd de container met GitLab als potentieel gecompromitteerd beschouwd en werd de inhoud volledig opnieuw opgebouwd vanuit het niets, terwijl gebruikers het proces voor het wijzigen van hun wachtwoorden in gang zijn gezet.
Beheerders van de infrastructuur van Alpine Linux hebben geen ongebruikelijke bestanden, verdachte actieve processen, ongebruikelijke API-aanroepen, wijzigingen in configuraties en systeembestanden, of pieken in de belasting, kenmerkend voor massale gegevensextractie, geconstateerd. Tijdens de analyse van de integriteit van de aports-repository, pakketten en releasebestanden en hun vergelijking met kopieƫn van externe buildservers en ontwikkelaarsystemen, zijn er geen verborgen wijzigingen ontdekt.
De afwezigheid van informatie over uitgaande netwerkverbindingen, het verwijderen van bepaalde logs tijdens rotatie (zoals de cron-log) en het ontbreken van voldoende detail in de logs van de webserver (succesvolle exploit-toepassing die niet leidt tot een crash, wordt niet in de log weergegeven), staat niet toe om een succesvolle aanval volledig uit te sluiten.
In het geval van een succesvolle aanval zouden de aanvallers toegang hebben kunnen krijgen tot de database met gegevens van alle GitLab-gebruikers (hashes van wachtwoorden, e-mail, IP-adressen enzovoort), omgevingsvariabelen en tokens van continue integratiesystemen, codes voor twee-factor-authenticatie, hashes van persoonlijke toegangstokens, inhoud van privƩ-repositories en vertrouwelijke discussies over problemen. Sleutels voor het genereren van digitale handtekeningen voor releases en pakketten werden niet opgeslagen op de aangevallen de server machine.
De eerste pogingen om de kwetsbaarheid te misbruiken werden geregistreerd op 20 en 21 oktober. De aanvaller registreerde een account bij GitLab en probeerde gemodificeerde instellingen voor het continue integratiesysteem te verzenden. In de logs zijn 8 noodstoppen van GitLab-processen vastgelegd, waarvan 4 verband hielden met het gebruik van de exploit. Opmerkelijk is dat de eerste fase van de exploit succesvol was, maar de tweede fase faalde.
Op het moment van de aanval werd in de container een kwetsbare versie van GitLab 19.3.4 gebruikt, die op 22 oktober werd bijgewerkt naar GitLab 19.3.6. Maar de beheerders van Alpine hielden er geen rekening mee dat de patch alleen was aangebracht in de officiƫle installatielijsten van GitLab 19.3.6, en niet in de code van GitLab zelf, aangezien de kwetsbaarheid aanwezig was in de Ruby-toolkit. In de container bleef de oude Ruby-toolkit gebruikt worden en de kwetsbaarheid bleef onopgelost.
Dat het systeem kwetsbaar bleef, werd pas op 26 oktober vastgesteld. Analyse van de logs toonde aan dat op 25 en 26 oktober de aanvallers hun pogingen om de aanval uit te voeren hervatten. Op 27 oktober werd de toegang voor externe gebruikers tot GitLab beperkt. Op 28 oktober werd de inhoud opnieuw opgebouwd, werden alle wachtwoorden gereset (gebruikers moeten een nieuw wachtwoord instellen via de procedure voor het herstellen van het vergeten wachtwoord) en werden de toegangssleutels vervangen. Op 29 oktober werd de bijgewerkte server in gebruik genomen. Het project Docker-container alpinelinux/gitlab bleef kwetsbaar tot 27 oktober.
Bron: opennet.ru
