
Уязвимость пришла из зависимости, которую вы не добавляли: ловим дыры в Spring до прода в GitLab
sproshchaev 18 минут назад Уязвимость пришла из зависимости, которую вы не добавляли: ловим дыры в Spring до прода в GitLab Средний 13 мин 849 Блог компании OTUS Информационная безопасность * Java * DevOps * Open source...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. sproshchaev 18 минут назад Уязвимость пришла из зависимости, которую вы не добавляли: ловим дыры в Spring до прода в GitLab Средний 13 мин 849 Блог компании OTUS Информационная безопасность * Java * DevOps * Open source * Туториал Всем привет, меня зовут Сергей Прощаев и в этой статье расскажу, как настроить в GitLab автоматический поиск уязвимостей в зависимостях Spring‑приложения так, чтобы дыры всплывали в merge request до прода, а не на проде, — и при этом пайплайн не падал на каждой устаревшей библиотеке. Я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech & E‑commerce и преподаю на курсах разработки и архитектуры в ОТУС. Сразу обозначу рамку.
Это не обзор «что такое SCA» и не пересказ документации GitLab. Это рабочий маршрут: берём типовой Spring Boot сервис, подключаем dependency scanning на новом движке и настраиваем так, чтобы security‑гейт реально защищал, а не превращался в красный крестик, который все привыкли игнорировать. Уязвимость, спрятанная в глубине дерева зависимостей, и контрольная точка в пайплайне, которая ловит её до продакшенаС чего всё начинается: «у нас же ничего такого не подключено»Помню историю, которая до сих пор для меня как эталон.
Технические детали
Декабрь 2021-го, Log4Shell. Полночь, дежурный канал разрывается, и первый вопрос, который задаёт половина команд по всему рынку, звучит не «как пропатчить», а «а у нас вообще есть этот Log4j? И вот это самое страшное.
Никто его не добавлял. Он приехал транзитивно — через стартер, через библиотеку логирования, через зависимость зависимости. Команды тратили дни, чтобы просто понять, затронуты они или нет: не было полной карты того, что собирается в JAR.
Мне как‑то попалась оценка по экосистеме Maven за 2025 год (её приводили в аналитике по supply‑chain рискам): уязвимости затрагивали порядка трети последних релизов библиотек через прямые зависимости и заметно больше — через транзитивные. Точные проценты гуляют от источника к источнику, но порядок один: основной канал риска — не то, что вы написали в pom. xml, а то, что подтянулось следом, на два‑три уровня глубже.
Отраслевые последствия
Я бы сформулировал так: если ваш инструмент проверки смотрит только на прямые зависимости, он показывает вам верхушку и молчит про корни. А именно в корнях обычно и сидит то, что вас положит. Что мы будем делать и в каких условияхБерём типовой сервис: Spring Boot 4.
0, Spring Framework 7. 8 под капотом, Java 21, сборка через Maven. Пример протестирован на Spring Boot 4.
1 и проверен на GitLab 19. Используемые возможности относятся к GitLab, поэтому для Spring Boot 3.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





