Заказная разработка ПО в IBS: Безопасная разработка и доставка

В этой статье мы продолжаем цикл публикаций, посвящённых практике безопасной разработки. Начальник отдела DevOps, Артур Галеев, делится опытом внедрения принципов безопасной разработки, рассматривает используемые инструменты и нормативные акты, на которые стоит опираться в условиях ужесточающихся требований регуляторов.

Важность безопасности в разработке заказного ПО

За последние пять лет количество утечек данных и атак на информационные системы увеличилось в 2,3 раза. Это привело к ужесточению требований регуляторов в сфере информационной безопасности – особенно в части процессов сборки и доставки программного обеспечения.

В ответ на эти вызовы был принят стандарт ГОСТ Р 56939-2024, который определяет ключевые принципы и подходы к внедрению безопасной разработки как эффективного способа защиты от киберугроз. В этой статье мы разберёмся, как обеспечить безопасность на всех этапах разработки и автоматизации поставки кода.

Что такое безопасная разработка в контексте CI/CD

Безопасная разработка – это не просто «написание хорошего кода». Это системный процесс управления рисками информационной безопасности на всех этапах жизненного цикла программного обеспечения. ГОСТ Р 56939-2024 определяет безопасную разработку как деятельность, включающую:

  • учёт актуальных угроз и рисков ИБ;
  • проектирование архитектуры и кода с учётом защиты от атак;
  • контроль качества и проверку безопасности;
  • обеспечение защищённости продукта от внедрения до вывода из эксплуатации.

Хотя ГОСТ напрямую не описывает практики CI/CD, он отлично сочетается с современными DevSecOps-подходами:

  • SAST/SCA/DAST/OSA-анализ интегрируются в пайплайн, что соответствует требованию раннего выявления угроз;
  • Автоматизированное тестирование безопасности входит в CI-процессы;
  • Ретроспективы и управление инцидентами закрывают цикл непрерывного улучшения;
  • Стратегия Shift-Left реализует принцип: чем раньше найдена уязвимость, тем дешевле и безопаснее её устранение.

Требования регуляторов в части безопасной разработки

Для корректной настройки CI/CD и процессов безопасной разработки необходимо определить, относится ли организация к субъектам КИИ:


Тип компании

Подход к инструментам

Рекомендации

Не является субъектом КИИ Гибкий, коммерческий или open-source Использование популярных DevSecOps-инструментов, адаптация под бизнес-задачи
Является субъектом КИИ С учётом требований регуляторов Использование сертифицированных ФСТЭК решений, соблюдение ГОСТ и моделей угроз
Частично попадает под КИИ Комбинированный Разделение пайплайнов (публичная часть vs защищённая), построение зон доверия

На основании таблицы выше нам необходимо выяснить:

  • Является ли организация субъектом КИИ (орган государственный власти, коммерческие организации, владеющие или управляющие объектом КИИ).
  • Имеются ли в её инфраструктуре объекты КИИ, такие как:
    • Информационные системы
    • Информационно-телекоммуникационные сети
    • Автоматизированные системы управления (АСУ ТП)

Работает ли организация в таких отраслях, как:

  • Энергетика
  • Транспорт
  • Банковская сфера
  • Здравоохранение
  • Оборонная или ракетно-космическая промышленность
  • ТЭК, АЭС и т.д.

Если ответ – да, значит CI/CD и процесс разработки должны быть выстроены с учётом следующих требований:

  • Федерального закона № 187-ФЗ
  • ГОСТ Р 56939-2016 (безопасная разработка)
  • Приказов ФСТЭК РФ (например, о категорировании объектов КИИ и обеспечении их защиты)

После того как мы определили причастность разрабатываемой информационной системы к КИИ следует переходить к реализации ГОСТ по безопасной разработке.

Как реализовать ГОСТ Р 56939-2024: структура внедрения

После подтверждения принадлежности к КИИ можно переходить к пошаговому внедрению требований ГОСТ. Все мероприятия логически сгруппированы: от планирования и архитектуры до поставки и вывода ПО из эксплуатации.

Каждое требование ГОСТа сопровождается перечнем конкретных мероприятий, а также примерами подходящих инструментов – как из open-source, так и из Единого реестра российского ПО (ЕРРП).

Требование ГОСТ Р 56939

Необходимые мероприятия

Инструменты OpenSource

Инструменты из ЕРРП

5.1 Планирование процессов разработки безопасного ПО Разработать политику безопасной разработки

Встроить ИБ в процессы SDLC

Назначить ответственных
Confluence/Jira для документации процессов

GitLab/GitHub Projects для управления задачами
Kaiten / Naumen / Eva
5.2 Обучение сотрудников Проводить регулярное обучение разработчиков, тестировщиков и аналитиков по безопасной разработке Курсы по кибербезопасности Курсы по кибербезопасности с сертификацией ФСТЭК
5.3 Формирование и предъявление требований безопасности к ПО Включить требования ИБ в спецификации, архитектуру и технические задания Confluence шаблоны Kaiten / Naumen / Eva
5.4 Управление конфигурацией ПО Вести контроль версий, логировать изменения

Использовать хранилища с разграничением доступа
Git, GitLab/GitHub

HashiCorp Terraform / Ansible (для IaC)
Gitflic / Gitverse
5.5 Управление недостатками и запросами на изменение ПО Внедрить процесс triage, управления багами, изменениям Jira

Gitlab Tasks или аналог
Kaiten / Naumen / Eva + Gitflic / Gitverse
5.6 Разработка, уточнение и анализ архитектуры ПО Регулярно проводить архитектурные ревью

Документировать архитектуру
Draw.io Kaiten / Эсборд / Яндекс концепт
5.7 Моделирование угроз и разработка описания поверхности атаки Проводить моделирование угроз (STRIDE, LINDDUN)

Описывать потенциальные точки входа
OWASP Threat Dragon

Microsoft Threat Modeling Tool
Отсутствует, можно использовать OSS (OWASP Threat Dragon)
5.8 Формирование и поддержание в актуальном состоянии правил кодирования Использовать стандарты безопасного кодирования

Обновлять линтеры и правила
ESLint, Bandit, Pylint, SonarQube Svace / PT AI / SharpChecker и т.п.
5.9 Экспертиза исходного кода Включить ручное ревью с фокусом на ИБ GitLab Merge Requests с шаблонами проверок

Gerrit
Gitflic / Gitverse Merge requests
5.10 Статический анализ исходного кода Интегрировать SAST в CI/CD SonarQube, Checkmarx, CodeQL, Fortify PT AI, Solar AppScreener и т.п.
5.11 Динамический анализ кода программы Проводить анализ во время выполнения OWASP ZAP, Burp Suite PT AI, Solar AppScreener и т.п.
5.12 Использование безопасной системы сборки ПО Изолировать сборочные процессы

Проводить валидацию зависимостей
Jenkins, GitLab CI GitVerse / Gitflic
5.13 Обеспечение безопасности сборочной среды ПО Изолировать сборочные агенты

Сканировать среду на уязвимости
Docker, Clair, Trivy, Anchore PT AI, Solar AppScreener, CodeScoring и т.п.
5.14 Управление доступом и контроль целостности кода при разработке ПО Использовать ACL, RBAC

Подписывать коммиты и сборки
GPG, Git Hooks, SLSA, Sigstore КриптоПро CSP, VipNet CSP

Хэш-функции ГОСТ Р 34.11
5.15 Обеспечение безопасности используемых секретов Исключить хранение секретов в коде

Использовать защищённые хранилища
HashiCorp Vault, AWS Secrets Manager, Doppler Secret Manager от РЕД ОС или VipNet Safe Storage и т.п.
5.16 Использование инструментов композиционного анализа Анализировать сторонние зависимости Snyk, OWASP Dependency-Check, Syft/Grype MaxPatrom SCA, PT AI, CodeScoring, Solar AppScreener и т.п.
5.17 Проверка кода на предмет внедрения вредоносного ПО через цепочки поставок Верифицировать внешние компоненты и поставщиков Cosign, in-toto, Rebuilderd, SBOM MaxPatrom SCA, CodeScoring, Solar AppScreener и т.п.
5.18 Функциональное тестирование Автоматизировать проверку бизнес-логики и ИБ-функций Postman, Selenium, JUnit/Pytest TestIT, Кайман и т.п.
5.19 Нефункциональное тестирование Тестировать отказоустойчивость, стресс и безопасность k6, JMeter, ChaosMonkey TestIT, Кайман и т.п.
5.20 Обеспечение безопасности при выпуске готовой к эксплуатации версии программного обеспечения Проверка уязвимостей перед продом

Выпуск только подписанных сборок
GitLab Release Management, Cosign Подпись через КриптоПро или VipNet

Хранилище подписанных артефактов на изолированной инфраструктуре
5.21 Безопасная поставка программного обеспечения пользователям Цифровая подпись

Защищённые каналы доставки
TLS, VPN, Artifact Repositories (Nexus, Artifactory) VipNet, Континент-АП, TLS по ГОСТ
5.22 Обеспечение поддержки программного обеспечения при эксплуатации пользователями Регулярные патчи, обновления

Обработка инцидентов
Ticketing-системы, Grafana, Prometheus Zabbix (в РФ-совместимой сборке), MaxPatrol SIEM, СЗИ от ФСТЭК
5.23 Реагирование на информацию об уязвимостях Создать процесс triage

Выпуск исправлений
Bug Bounty платформы, Jira, GitHub Security Advisories Системы обработки инцидентов на базе MaxPatrol или InfoWatch
5.24 Поиск уязвимостей в программном обеспечении при эксплуатации Мониторинг рантайма, IDS/IPS, EDR Falco, Wazuh, CrowdStrike, Sysdig Luntry
5.25 Обеспечение безопасности при выводе программного обеспечения из эксплуатации Удалить данные и ключи

Отключить системы от сетей
Ansible/Salt, SIEM, удаление образов и артефактов Средства гарантированного удаления данных (Zecurion, Eraser RU)

Автоматизация с Ansible (локально) или Бастион

Например, в IBS используются следующие инструменты:

  • SAST: SonarQube – для статического анализа кода на уязвимости и нарушения стандартов безопасности.
  • IAST: Contrast Community Edition – для интерактивного анализа во время выполнения, особенно в средах тестирования.
  • SCA/OSA: Grype, Trivy – для анализа зависимостей и поиска уязвимостей в сторонних библиотеках и образах контейнеров.
  • BCA (Binary Composition Analysis): Orbit, DotPeek и аналогичные средства – для анализа составных частей бинарных файлов.
  • DAST: OWASP ZAP в связке с fuzzer-ами – для динамического анализа веб-приложений в режиме "чёрного ящика".
  • MAST: Cycript, MobSF – инструменты для анализа мобильных приложений, включая статический и динамический анализ.
  • RASP: OpenRASP – решение для защиты приложений в рантайме.
  • API Security: WSO2 – платформа для обеспечения безопасности REST/SOAP API, включая авторизацию, аудит и ограничение доступа.

Все эти решения интегрированы в DevSecOps-конвейер IBS на базе Jenkins, что позволяет автоматически запускать проверки безопасности на каждом этапе CI/CD, начиная с анализа кода и зависимостей и заканчивая безопасной сборкой, выпуском и поставкой ПО.


Обеспечение безопасности при заказной разработке программного обеспечения – это не разовая мера, а комплексный и систематизированный процесс, охватывающий все этапы жизненного цикла продукта: от планирования и архитектуры до поставки, эксплуатации и вывода из обращения. В IBS данная практика реализуется через интеграцию современных DevSecOps-подходов, соответствующих требованиям ГОСТ Р 56939-2024 и нормативам регуляторов, с применением как open-source, так и отечественных сертифицированных инструментов. Такой подход позволяет минимизировать риски, повысить качество и доверие к продукту, а также обеспечить его соответствие как внутренним, так и внешним требованиям информационной безопасности. Всё это – и методология, и инструменты, и практика безопасной разработки – мы в IBS хорошо знаем, умеем применять и готовы внедрять в проектах наших заказчиков.

544

Комментировать могут только авторизованные пользователи.
Предлагаем Вам в систему или зарегистрироваться.

Предметная область
Отрасль
Управление
Мы используем файлы cookie в аналитических целях и для того, чтобы обеспечить вам наилучшие впечатления от работы с нашим сайтом. Заходя на сайт, вы соглашаетесь с Политикой использования файлов cookie.