Внедрение DevSecOps-практик в процесс разработки
Внедряем DevSecOps более 7 лет, на счету 50+ проектов. DevSecOps — не отдельный инструмент и не отдельная команда. Это сдвиг влево (shift left) безопасности. Проверки, которые раньше делались вручную перед релизом или вообще не делались, теперь встраиваются в повседневный процесс разработки: в pre-commit hooks, в CI/CD пайплайн, в деплой в Kubernetes. Разработчик узнаёт об уязвимости до мерджа, а не после инцидента. Гарантируем снижение числа инцидентов безопасности на ранних этапах. Статический анализ находит на 80% больше уязвимостей, чем ручное тестирование на проникновение (по данным NIST). Оценим ваш текущий уровень безопасности — свяжитесь с нами.
Наш подход гарантирует, что безопасность становится неотъемлемой частью разработки, а не отдельной проверкой перед релизом. Мы не просто настраиваем инструменты — мы адаптируем их под ваш стек и процессы.
Почему «просто поставить Trivy» недостаточно
Самая частая ошибка при внедрении DevSecOps — установить один инструмент и считать задачу решённой. Реальная картина сложнее: один и тот же сервис имеет несколько векторов атаки, и каждый требует своего инструмента.
Вектор 1 — код приложения
SAST (SonarQube, Semgrep, CodeQL) ищет уязвимые паттерны в исходниках — SQL injection, hardcoded credentials, небезопасная десериализация.
Вектор 2 — зависимости
SCA (Software Composition Analysis) — Dependabot, Snyk, OWASP Dependency-Check анализирует npm/pip/maven зависимости на известные CVE.
Вектор 3 — контейнеры
Trivy, Grype сканируют Docker-образы, включая OS-пакеты и транзитивные зависимости.
Вектор 4 — IaC
Checkov, tfsec, KICS проверяют Terraform, Kubernetes manifests, Helm charts — открытые S3 buckets, избыточные IAM права, отсутствие encryption at rest.
Вектор 5 — секреты в коде
gitleaks, truffleHog ищут случайно закоммиченные API-ключи, токены, приватные ключи.
Вектор 6 — runtime
Falco детектирует подозрительное поведение в запущенных контейнерах — неожиданный exec, изменение файлов /etc/passwd, network connection из неожиданного процесса.
Как справиться с ложными срабатываниями?
Любой security инструмент генерирует false positive. Процесс управления исключениями критически важен: без него инженеры начинают отключать инструменты целиком.
Для каждого исключения:
- Уникальный идентификатор CVE/правила
- Обоснование: почему не применимо или не исправимо
- Дата пересмотра (обычно +3 месяца или +6 месяцев)
- Кто принял решение
# semgrep inline suppression с обоснованием
password = get_password() # nosemgrep: python.lang.security.audit.hardcoded-password # Exemption: password читается из env var, а не захардкожен. Проверено актуально. Архитектура DevSecOps пайплайна
Распределяем проверки по этапам с учётом скорости и важности: Pre-commit (секунды):
# .pre-commit-config.yaml
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.0
hooks:
- id: gitleaks
- repo: https://github.com/antonbabenko/pre-commit-terraform
rev: v1.86.0
hooks:
- id: terraform_tfsec
- id: terraform_checkovCI/CD — стадия security (параллельно, минуты):
# .gitlab-ci.yml
stages: [build, security, test, deploy]
.security-base:
stage: security
needs: [build]
sast:
extends: .security-base
image: returntocorp/semgrep
script:
- semgrep --config=auto --error --json --output=semgrep.json src/
artifacts:
reports:
sast: semgrep.json
container-scan:
extends: .security-base
image: aquasec/trivy:latest
script:
- trivy image --exit-code 1 --ignore-unfixed --severity CRITICAL --format sarif --output trivy.sarif $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
artifacts:
reports:
container_scanning: trivy.sarif
iac-scan:
extends: .security-base
image: bridgecrew/checkov:latest
script:
- checkov -d terraform/ --output junitxml --output-file-path checkov.xml --soft-fail-on MEDIUM
artifacts:
reports:
junit: checkov.xml
dependency-scan:
extends: .security-base
script:
- npm audit --audit-level=high # или pip-audit, safety
Все стадии security запускаются параллельно — не добавляют последовательного времени к пайплайну.
Политика реагирования на находки
Инструменты без чёткой политики создают шум. Нужно заранее договориться:
| Тип | Severety | Действие |
|---|---|---|
| Секрет в коде | любой | Блокируем merge, ротируем секрет немедленно |
| Критическая CVE с патчем | CRITICAL | Блокируем merge, исправляем в течение 24 ч |
| Критическая CVE без патча | CRITICAL | Тикет в backlog, exemption с обоснованием |
| SAST: SQL injection, RCE | HIGH | Блокируем merge |
| SAST: best practice нарушения | LOW/MEDIUM | Фиксируем, не блокируем |
| IaC: открытый S3 bucket | CRITICAL | Блокируем merge |
| IaC: отсутствие тега | LOW | Предупреждение |
Политика должна быть закреплена в документации и всем известна заранее — иначе каждое заблокированное MR будет неожиданностью для разработчика. Исправление уязвимости на этапе разработки обходится в 30 раз дешевле, чем в продакшене (по данным NIST).
Почему runtime-мониторинг критически важен?
После деплоя — Falco как HIDS (Host Intrusion Detection System) для Kubernetes:
# Пример кастомного Falco rule
rule: Unexpected Network Connection from App Container
desc: Детектирует неожиданные исходящие соединения из app-контейнеров
condition: >
outbound and container.image.repository = "myorg/myapp" and not fd.rip in (allowed_ips)
output: >
Unexpected outbound connection (user=%user.name command=%proc.cmdline connection=%fd.name container=%container.name image=%container.image.repository)
priority: WARNING
tags: [network, myapp]Falco интегрируется с Falcosidekick для отправки событий в Slack, PagerDuty, Elasticsearch.
Процесс внедрения
Не внедряем всё сразу. Последовательность по приоритету:
- Неделя 1–2: gitleaks pre-commit + Trivy в CI (самый быстрый ROI)
- Неделя 3–4: SAST (Semgrep с базовым ruleset) + dependency scanning
- Месяц 2: IaC scanning + политика обработки findings
- Месяц 3: ESO для secrets management + подписание образов
- Месяц 4+: Falco runtime detection + OPA/Kyverno policies
Каждый этап начинаем в audit mode — собираем baseline, исправляем существующие нарушения, только потом включаем blocking.
Что вы получаете в результате
- Аудит текущего состояния CI/CD и инфраструктуры
- Настройка всех описанных инструментов (gitleaks, Trivy, Semgrep, Checkov, Falco)
- Интеграция в ваш пайплайн (GitLab CI, GitHub Actions или Jenkins)
- Политики безопасности для каждого типа находки
- Документация по процессу обработки исключений
- Обучение команды DevSecOps-практикам (2 воркшопа)
- Поддержка в течение 1 месяца после внедрения
Сроки всего проекта
| Масштаб | Оценка |
|---|---|
| Стартовый набор: gitleaks + Trivy + Semgrep (1 репозиторий) | 3–5 дней |
| Полный стек: все векторы + политика + документация (1 команда) | 2–4 недели |
| Enterprise: несколько команд + governance + обучение | 2–3 месяца |
Стоимость рассчитывается индивидуально после аудита текущего состояния инфраструктуры и CI/CD пайплайнов. Закажите аудит безопасности вашего CI/CD и получите консультацию сертифицированных инженеров.







