Обеспечение безопасности CI/CD процессов в платформе GitFlic

Изображение: Sigmund (unsplash)
Уязвимости в программном обеспечении встречаются довольно часто. Раньше их выявляли и устраняли уже на этапе эксплуатации. Однако легче, проще и дешевле минимизировать проблему уязвимостей, внедрив процессы безопасной разработки. Это особенно актуально для ИТ-компаний, занимающихся производством программного обеспечения на промышленном уровне.
В России действует ГОСТ Р 56939-2016 «Разработка безопасного программного обеспечения», который устанавливает требования к процессам разработки ПО, с особым акцентом на обеспечение безопасности на всех стадиях жизненного цикла. Соответствие этому стандарту особенно важно для организаций, занимающихся разработкой программных продуктов, предназначенных для государственных информационных систем, предприятий КИИ и т.д.. Приведение конвейеров разработки (CI/CD) в соответствие с ГОСТ 56939 необходимо для минимизации уязвимостей и соблюдения требований по безопасности, что может быть критическим для выполнения требований нормативных актов и контрактов. По этому пути пошли и в «Группе Астра».
В портфеле «Группы Астра» сегодня имеется уже более двадцати программных продуктов. В том числе платформа для работы с исходным кодом GitFlic, ее разработчики из компании «РеСолют» стремятся создать из нее конвейер для промышленной разработки и тестирования ПО. ГОСТ 56939 требует наличия мер по обеспечению безопасности на всех этапах разработки, включая тестирование. Одним из ключевых этапов здесь является статический анализ кода: автоматизированное тестирование исходного кода на наличие потенциальных уязвимостей и ошибок безопасности на уровне кода.
Разработчики GitFlic реализовали интеграцию платформы с анализаторами кода российского производства, сертифицированными и размещенными в Реестре Минцифры РФ. Речь идет о статических (SAST, Static Application Security Testing) и динамических (DAST, Dynamic Application Security Testing) анализаторах. SAST-инструменты исследуют исходный код или двоичный код приложения без его выполнения. Статический анализатор кода проверяет его на этапе разработки и не требует запуска приложения. Он позволяет обнаружить уязвимости на ранних этапах. DAST тестирует работающие приложения, взаимодействуя с ними в режиме реального времени. Он выполняет тестирование приложения в рабочей среде, симулируя атаки, чтобы выявить уязвимости, которые могут быть эксплуатированы злоумышленниками. Дополняет эти методы SCA (Software Composition Analysis). Это процесс анализа открытых и коммерческих компонентов программного обеспечения на предмет известных уязвимостей и лицензий. SCA помогает выявить уязвимости в сторонних библиотеках и компонентах, которые используются в приложении. Сочетание этих методов позволяет свести появление уязвимостей к минимуму.
Помимо анализаторов кода GitFlic включает в себя продуманную ролевую модель, которая также способствует обеспечению безопасного процесса разработки. Так, поддерживаются защищенные ветки, сливать и изменять код в которых могут только разработчики с определенной ролью. Имеются настраиваемые политики управляющие запросами на слияние.
Удобным способом организации процесса безопасной разработки является использование готовых реестров контейнеров с инструментами для такой разработки. Такие реестры представляют собой специализированное хранилище контейнеров, которое содержит образы контейнеров с предварительно настроенными инструментами для обеспечения безопасности в процессе разработки. Компания «РеСолют» создала свой собственный реестр контейнеров, что обеспечивает независимость использования инструментальных средств от реестра контейнеров Docker Hub и надлежащий уровень защищенности инфраструктуры разработки. Российские разработчики теперь могут не беспокоиться, если их лишат доступа к Docker Hub.
В заключение стоит отметить, что разработчики GitFlic стараются сделать платформу не только более функциональной и универсальной, но и максимально безопасной и независимой.
Спикер — Максим Козлов, технический директор «РеСолют» (входит в «Группу Астра»).

