Введение в практику кибероценок и реальных угроз

Представьте: пятница вечер, вы закрываете последний таск перед релизами, а в корпоративном чате внезапно загорается красный индикатор — кто-то тихо выкачал базу данных клиентов через старый тестовый скрипт, о котором все давно забыли. В мире, где за каждый пропущенный баг приходится платить репутацией и миллионами, теория из учебников по кибербезопасности разбивается о суровую реальность (ведь в документации всегда написано «временно», что на языке 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) на предмет утечки конфиденциальных данных.
  • вовремя обнаруживать уязвимости до того, как ими воспользуются злоумышленники. Проверьте свои пайплайны прямо сейчас, пока это не сделали за вас.