Введение в практику кибероценок и реальных угроз
Представьте: пятница вечер, вы закрываете последний таск перед релизами, а в корпоративном чате внезапно загорается красный индикатор — кто-то тихо выкачал базу данных клиентов через старый тестовый скрипт, о котором все давно забыли. В мире, где за каждый пропущенный баг приходится платить репутацией и миллионами, теория из учебников по кибербезопасности разбивается о суровую реальность (ведь в документации всегда написано «временно», что на языке IT означает «навечно»). В нашей практике мы регулярно проводим комплексные аудиты безопасности, penetration testing и Red Teaming для клиентов из финтеха и enterprise-сегмента, чтобы находить такие „скелеты в шкафу“ первыми.
Модели угроз вроде MITRE ATT&CK и OWASP Top 10 дают отличную базу, но реальный мир всегда сложнее. Злоумышленники комбинируют социальную инженерию, ошибки конфигурации и устаревшую инфраструктуру. В этой статье мы разберем три реальных инцидента из наших недавних аудитов: проанализируем векторы атак, инструменты и методы защиты.
Инцидент 1: Несанкционированный доступ через забытый CI/CD артефакт
Когда деплой настроен в два клика, разработчики часто забывают, что каждый артефакт сборки может стать готовой картой сокровищ для хакера. Именно это и произошло в крупной финтех-компании во время планового аудита, где команда активно использовала GitLab и кастомные раннеры для автоматизации.
Вектор атаки и разведка
На этапе OSINT наши специалисты обнаружили поддомен для внутреннего тестирования API. Функция восстановления пароля при отправке некорректных JSON-запросов выдавала подробные системные стектрейсы (Stack Trace).
Анализ кэша поисковых систем выявил старый архив с артефактами сборки в публичном объектном хранилище. Внутри находился конфиг с захардкоженными учетными данными тестовой БД и токен доступа к внутреннему GitLab API с правами администратора.
Развитие атаки и Lateral Movement
Используя API-токен, специалист получил доступ к репозиториям и запустил через CI/CD кастомный пайплайн для проверки изоляции среды:
stages:
- audit
security_check:
stage: audit
script:
- uname -a
- id
- curl -s http://internal-vault-service.local/v1/sys/health
- cat /etc/passwd
Скрипт успешно выполнился на хосте сборщика. Раннер имел избыточные сетевые привилегии и доступ к внутренним корпоративным сервисам, включая Vault и базы данных.
Уроки и защита
- Никогда не хардкодьте секреты в коде и артефактах сборки. Используйте специализированные менеджепы секретов (HashiCorp Vault, GitLab CI/CD Variables).
- Изолируйте CI/CD-раннеры в изолированных виртуальных сетях (VLAN/подсетях) без прямого доступа к критическому периметру.
- Регулярно проводите сканирование публичных бакетов (AWS S3, MinIO) на предмет утечки конфиденциальных данных. вовремя обнаруживать уязвимости до того, как ими воспользуются злоумышленники. Проверьте свои пайплайны прямо сейчас, пока это не сделали за вас.