Заказная разработка ПО в IBS: безопасная разработка и доставка
Продолжаем цикл публикаций, посвященных специфике создания программного обеспечения на заказ. В прошлом материале речь шла об организации процессов разработки и тестирования. В этой статье начальник отдела DevOps компании IBS Артур Галеев расскажет об опыте внедрения принципов безопасной разработки, используемых инструментах и нормативных актах, на которые стоит опираться.
Важность безопасности в разработке заказного ПО
За пять лет количество утечек данных и атак на информационные системы увеличилось в 2,3 раза. Это привело к ужесточению требований регуляторов в сфере информационной безопасности (ИБ), особенно в части процессов сборки и доставки ПО.
В ответ на эти вызовы был принят стандарт ГОСТ Р 56939-2024, который определяет ключевые принципы и подходы к внедрению безопасной разработки как эффективного способа защиты от киберугроз.
Что такое безопасная разработка в контексте CI/CD
Безопасная разработка — это не просто «написание хорошего кода». Это системный процесс управления рисками ИБ на всех этапах жизненного цикла ПО. ГОСТ Р 56939-2024 определяет безопасную разработку как деятельность, включающую:
- учёт актуальных угроз и рисков ИБ;
- проектирование архитектуры и кода с учётом защиты от атак;
- контроль качества и проверку безопасности;
- обеспечение защищённости продукта от внедрения до вывода из эксплуатации.
Хотя ГОСТ напрямую не описывает практики CI/CD, он отлично сочетается с современными DevSecOps-подходами:
- SAST/SCA/DAST/OSA-анализ интегрируются в пайплайн, что соответствует требованию раннего выявления угроз;
- автоматизированное тестирование безопасности входит в CI-процессы;
- ретроспективы и управление инцидентами закрывают цикл непрерывного улучшения;
- стратегия Shift — Left реализует принцип: чем раньше найдена уязвимость, тем дешевле и безопаснее ее устранение.
Требования регуляторов в части безопасной разработки
Для корректной настройки CI/CD и процессов безопасной разработки необходимо определить, относится ли организация к субъектам КИИ.
 
| Тип компании | Подход к инструментам | Рекомендации | 
|---|---|---|
| Не является субъектом КИИ | Гибкий, коммерческий или Open Source | Использование популярных DevSecOps-инструментов, адаптация под бизнес-задачи | 
| Является субъектом КИИ | С учетом требований регуляторов | Использование сертифицированных ФСТЭК решений, соблюдение ГОСТа и моделей угроз | 
| Частично попадает под КИИ | Комбинированный | Разделение пайплайнов на публичную и защищенную части, построение зон доверия | 
Необходимо выяснить:
1. Является ли организация субъектом КИИ (орган государственный власти, коммерческие организации, владеющие или управляющие объектом КИИ).
2. Имеются ли в её инфраструктуре объекты КИИ, такие как:
- информационные системы,
- информационно-телекоммуникационные сети,
- автоматизированные системы управления (АСУ ТП).
3. Работает ли организация в таких отраслях, как энергетика, транспорт, банковская сфера, здравоохранение, оборонная или ракетно-космическая промышленность, ТЭК, АЭС и т.д.
Если ответ — да, значит, CI/CD и процесс разработки должны быть выстроены с учетом федерального закона № 187-ФЗ, ГОСТ Р 56939-2016 (безопасная разработка) и приказов ФСТЭК РФ (например, о категорировании объектов КИИ и обеспечении их защиты).
После того как мы определили причастность разрабатываемой информационной системы к КИИ, следует переходить к пошаговой реализации ГОСТа по безопасной разработке.
Как реализовать ГОСТ Р 56939-2024: структура внедрения
Все мероприятия в ГОСТе логически сгруппированы — от планирования и архитектуры до поставки и вывода ПО из эксплуатации. Каждое требование сопровождается перечнем конкретных мер, а также примерами подходящих инструментов — как из Open Source, так и из Единого реестра российского ПО (ЕРРП).
| Требование ГОСТ Р 56939 | Необходимые мероприятия | Инструменты Open Source | Инструменты из ЕРРП | 
|---|---|---|---|
| 5.1 Планирование процессов разработки безопасного ПО | 
			 Разработать политику безопасной разработки | 
			 Confluence/Jira для документации процессов | Kaiten / Naumen / Eva | 
| 5.2 Обучение сотрудников | Проводить регулярное обучение разработчиков, тестировщиков и аналитиков по безопасной разработке | Курсы по кибербезопасности | Курсы по кибербезопасности с сертификацией ФСТЭК | 
| 5.3 Формирование и предъявление требований безопасности к ПО | Включить требования ИБ в спецификации, архитектуру и технические задания | Confluence-шаблоны | Kaiten / Naumen / Eva | 
| 5.4 Управление конфигурацией ПО | 
			 Вести контроль версий, логировать изменения | 
			 Git, GitLab/GitHub | Gitflic / Gitverse | 
| 5.5 Управление недостатками и запросами на изменение ПО | Внедрить процесс triage, управления багами, изменениями | 
			 Jira | Kaiten / Naumen / Eva + Gitflic / Gitverse | 
| 5.6 Разработка, уточнение и анализ архитектуры ПО | 
			 Регулярно проводить архитектурные ревью | Draw.io | Kaiten / Эсборд / Яндекс Концепт | 
| 5.7 Моделирование угроз и разработка описания поверхности атаки | 
			 Проводить моделирование угроз (STRIDE, LINDDUN) | 
			 OWASP Threat Dragon | Отсутствует, можно использовать OSS (OWASP Threat Dragon) | 
| 5.8 Формирование и поддержание в актуальном состоянии правил кодирования | 
			 Использовать стандарты безопасного кодирования | ESLint, Bandit, Pylint, SonarQube | Svace / PT AI / SharpChecker и т.п. | 
| 5.9 Экспертиза исходного кода | Включить ручное ревью с фокусом на ИБ | 
			 GitLab Merge Requests с шаблонами проверок | 
			 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 | 
| 5.15 Обеспечение безопасности используемых секретов | 
			 Исключить хранение секретов в коде | HashiCorp Vault, AWS Secrets Manager, Doppler | 
  | 
| 5.16 Использование инструментов композиционного анализа | Анализировать сторонние зависимости | Snyk, OWASP Dependency-Check, Syft/Grype | MaxPatrol SCA, PT AI, CodeScoring, Solar AppScreener и т.п. | 
| 5.17 Проверка кода на предмет внедрения вредоносного ПО через цепочки поставок | Верифицировать внешние компоненты и поставщиков | Cosign, in-toto, Rebuilderd, SBOM | MaxPatrol 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, CodeScoring | 
| 5.24 Поиск уязвимостей в ПО при эксплуатации | Мониторинг рантайма, IDS/IPS, EDR | Falco, Wazuh, CrowdStrike, Sysdig | Luntry, CodeScoring | 
| 5.25 Обеспечение безопасности при выводе ПО из эксплуатации | 
			 Удалить данные и ключи | Ansible/Salt, SIEM, удаление образов и артефактов | 
			 Средства гарантированного удаления данных (Zecurion, Eraser RU) | 
Например, в IBS используются следующие инструменты:
- SAST: SonarQube — для статического анализа кода на уязвимости и нарушения стандартов безопасности.
- IAST: Contrast Community Edition — для интерактивного анализа во время выполнения, особенно в средах тестирования.
- SCA/OSA: Grype, Trivy — для анализа зависимостей и поиска уязвимостей в сторонних библиотеках и образах контейнеров.
- BCA (Binary Composition Analysis): Orbit, DotPeek и аналогичные средства — для анализа составных частей бинарных файлов.
- DAST: OWASP ZAP в связке с фаззерами — для динамического анализа веб-приложений в режиме «черного ящика».
- MAST: Cycript, MobSF — инструменты для анализа мобильных приложений, включая статический и динамический анализ.
- RASP: OpenRASP — решение для защиты приложений в рантайме.
- API Security: WSO2 — платформа для обеспечения безопасности REST/SOAP API, включая авторизацию, аудит и ограничение доступа.
Все эти решения интегрированы в DevSecOps-конвейер IBS на базе Jenkins, что позволяет автоматически запускать проверки безопасности на каждом этапе CI/CD, начиная с анализа кода и зависимостей и заканчивая безопасной сборкой, выпуском и поставкой ПО.
 
Обеспечение безопасности при заказной разработке ПО — это комплексный и систематизированный процесс, охватывающий все этапы жизненного цикла продукта. В IBS данная практика реализуется через интеграцию современных DevSecOps-подходов, соответствующих ГОСТу и нормативам регуляторов, с применением Open Source и сертифицированных отечественных инструментов. Это позволяет минимизировать риски, повысить качество продукта и доверие к нему, а также обеспечить выполнение внутренних и внешних требований ИБ.
Мы хорошо знаем методологию, инструменты и практику безопасной разработки и готовы внедрять их в проектах наших заказчиков. Если вы планируете автоматизировать уникальные бизнес-процессы или создать индивидуальное программное решение, обратитесь за консультацией к экспертам IBS.
Оригинал статьи можно прочитать здесь.