Общие положения#

В Global ERP безопасная разработка является неотъемлемой частью инженерного процесса. Раздел устанавливает обязательные требования и принципы безопасной разработки для сотрудников и контрагентов, участвующих в создании, интеграции, тестировании, выпуске и сопровождении прикладных решений и компонентов платформы Global ERP.

Цель раздела — формализация процесса безопасной разработки, снижение риска включения в поставку уязвимого прикладного кода и непроверенных сторонних компонентов, а также обеспечение единого подхода к контролю безопасности на всех этапах жизненного цикла разработки. Раздел систематизирует реализованные в системе меры, применяемые в рамках подхода security by design, а также процесс централизованного учета и устранения выявленных уязвимостей.

Область применения#

Раздел применяется ко всем подразделениям, сотрудникам и внешним контрагентам, участвующим в:

  • разработке, интеграции и сопровождении прикладных решений и компонентов платформы Global ERP;

  • включении сторонних библиотек и компонентов в поставочный контур;

  • сопровождении и выпуске релизов системы, в рамках которых изменяются код, зависимости или конфигурация;

  • тестировании, анализе и устранении уязвимостей на всех этапах жизненного цикла.

Подход к безопасной разработке#

Подход к безопасной разработке учитывает архитектуру платформы Global ERP: система использует СУБД PostgreSQL / Postgres Pro, сервер приложений и браузерный клиент, а прикладные решения и интеграционные компоненты поставляются в составе общей системы. В связи с этим контроль безопасности строится вокруг трех основных направлений:

  • проверка прикладного кода;

  • проверка сторонних зависимостей;

  • проверка поведения развернутых веб-интерфейсов и API.

Основные принципы#

Внутренний процесс безопасной разработки строится на следующих принципах:

  • проверка безопасности выполняется на нескольких этапах жизненного цикла: при разработке, при сборке, перед выпуском и после устранения выявленных замечаний;

  • для прикладного кода применяется обязательный статический анализ;

  • изменения прикладного кода проходят рецензирование перед включением в поставочный контур;

  • для сторонних библиотек применяется отдельный контроль состава зависимостей;

  • для веб-интерфейсов и HTTP/API-контуров применяется динамическая проверка на выделенном стенде;

  • для отдельных компонентов и значимых изменений может применяться фаззинг-тестирование как дополнительный метод проверки устойчивости к некорректным и специально искаженным входным данным;

  • все новые внешние библиотеки проходят архитектурное согласование до включения в доверенный контур сборки.

Точные правила срабатывания, внутренние профили сканирования, наборы правил проверки и настройки доверенных репозиториев не раскрываются в открытой эксплуатационной документации.

Ответственность участников процесса#

Распределение ответственности между ролями не исключает совместного участия в процессе безопасной разработки. Все участники процесса обязаны соблюдать требования раздела в пределах своей компетенции.

Разработчик#

Осуществляет разработку и изменение прикладного кода, обеспечивает соблюдение требований безопасной разработки, прохождение статического анализа и устранение выявленных уязвимостей, а также обосновывает использование сторонних библиотек.

Архитектор#

Осуществляет согласование использования сторонних компонентов, оценивает архитектурные и технологические риски и принимает решение о включении библиотек в доверенный контур сборки.

Инженер по тестированию#

Участвует в обеспечении безопасности за счет выполнения проверок в процессе тестирования, проведения динамического анализа и верификации исправлений уязвимостей.

Специалист по информационной безопасности#

Обеспечивает методологическую поддержку процесса, участвует в анализе уязвимостей и инцидентов, проводит адресные проверки и формирует рекомендации по снижению рисков.

Ответственный за релиз#

Контролирует прохождение обязательных проверок, учитывает результаты анализа и принимает решение о допуске версии к поставке либо о возврате на доработку.

Нормативная база#

Процесс безопасной разработки реализуется с учетом следующих нормативных документов:

  • Приказ ФСТЭК России от 25.12.2017 № 239 «Об утверждении Требований по обеспечению безопасности значимых объектов критической информационной инфраструктуры Российской Федерации» в части требований к безопасной разработке и жизненному циклу программного обеспечения;

  • внутренние нормативные документы ООО «Бизнес Технологии» по информационной безопасности и качеству разработки;

  • руководство по безопасной эксплуатации и сопровождению компонентов;

  • рекомендации OWASP.

Термины и сокращения#

В разделе используются следующие термины и сокращения:

  • CI/CD — конвейер автоматизированной сборки, проверки и поставки программного обеспечения.

  • SCA (Software Composition Analysis) — анализ состава сторонних компонентов и зависимостей на наличие известных уязвимостей, устаревших версий и лицензионных ограничений.

  • DAST (Dynamic Application Security Testing) — динамический анализ безопасности развернутых веб-интерфейсов, HTTP-сервисов и прикладных API.

  • SBOM (Software Bill of Materials) — сведения о составе зависимостей и компонентов поставки.

  • CVSS — система оценки критичности уязвимостей.

  • Фаззинг-тестирование — метод проверки устойчивости компонента к некорректным, неожиданным или специально искаженным входным данным.

  • Доверенный контур сборки — контролируемый набор репозиториев, зависимостей и процедур, используемых для формирования поставочных сборок.