Атака на GitLab сървъра на проекта Alpine Linux

Разработчиците на дистрибуцията Alpine Linux разкриха информация за опити за хакване на платформата за съвместна разработка gitlab.alpinelinux.org, на която се работеше по пакетния мениджър APK, инструментите за изграждане, компонентите на инфраструктурата и скриптовете за изграждане на пакети (aports). Атаката беше осъществена чрез експлоатация на уязвимост в платформата GitLab, предизвикана от цялостно препълване в движението на регулярните изрази на езика Ruby. Доказателства и следи от успешен хак не бяха намерени, но тъй като е невъзможно напълно да се изключи успешното експлоатиране на уязвимостта, контейнерът с GitLab беше признат за потенциално компрометиран и неговото съдържание беше напълно реконструирано от нулата, а при потребителите беше инициирана процедурата за смяна на паролите.

Администраторите на инфраструктурата Alpine Linux не откриха появата на чужди файлове, подозрителни активни процеси, необичайни API повиквания, промени в настройките и системните файлове, както и скокове в натоварването, характерни за масово извличане на данни. При анализа на целостта на хранилището aports, пакетите и файловете с издания, както и тяхното сверяване с копия от външни компилиращи сървъри и системи на разработчици, не бяха открити скрити промени.

Напълно да се изключи успешното провеждане на атака не позволява отсъствието на информация за изходящи мрежови връзки, изтриването на някои логове при ротация (например, логът на cron) и отсъствието на необходимата детайлност в логовете на уеб сървъра (успешното прилагане на експлоита, което не води до аварийно завършване, не се отразява в логовете).
В случай на успешна атака, злонамерените лица биха могли да получат достъп до БД с данни за всички потребители на GitLab (хешове на пароли, email, IP адреси и т.н.), променливи на средата и токени от системите за непрекъсната интеграция, кодове за двуфакторна удостоверяване, хешове на лични токени за достъп, съдържанието на частни хранилища и конфиденциални обсъждания на проблеми. Ключовете за формиране на цифрови подписи за издания и пакети на атакувания сървър не бяха съхранявани.

Първите опити за експлоатация на уязвимостта бяха регистрирани на 20 и 21 октомври. Атакуващият регистрира акаунт в GitLab и се опита да изпрати модифицирани настройки на системата за непрекъсната интеграция. В логовете са регистрирани 8 извънредни завършвания на работните процеси на GitLab, от които 4 са свързани с прилагането на експлойта. Отбелязва се, че първата фаза на работа на експлойта беше успешна, но втората фаза завърши с неуспех.

По времето на атаката в контейнера се използваше уязвима версия на GitLab 19.3.4, която на 22 октомври бе актуализирана до версия GitLab 19.3.6. Но администраторите на Alpine не взеха предвид, че корекцията е приложена само в официалните инсталационни пакети на GitLab 19.3.6, а не в самия код на GitLab, тъй като уязвимостта присъства в инструментария Ruby. В контейнера продължи да се използва старият инструментарий Ruby и уязвимостта остана неотстранена.

Фактът, че системата остава уязвима, беше установен едва на 26 октомври. Разглеждането на логовете показа, че на 25 и 26 октомври атакуващите възобновиха опитите за атака. На 27 октомври достъпът на външни потребители до GitLab беше ограничен. На 28 октомври съдържанието беше повторно събрано, всички пароли бяха нулирани (потребителите трябва да зададат нова парола чрез процедурата за възстановяване на забравена парола) и достъпните ключове бяха заменени. На 29 октомври обновеният сървър беше въведен в експлоатация. Проектът Docker-контейнер alpinelinux/gitlab остана уязвим до 27 октомври.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster