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

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

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

Повністю виключити успішне проведення атаки не дозволяє відсутність інформації про вихідні мережеві з'єднання, видалення деяких логів при ротації (наприклад, лога cron-а) та відсутність належної деталізації в логах web-сервера (успішне застосування експлоїту, що не призводить до аварійного завершення, не відображається в лозі).
У разі успішної атаки, зловмисники могли отримати доступ до БД з даними про всіх користувачів 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