Куда я попал?
AppSec Table Top: методология безопасной разработки от Positive Technologies
Framework
Релиз и развёртывание
Для проведения оценки соответствия по документу войдите в систему.
Список требований
-
Инициатива: Настройка параметров развёртывания
Описание:
Автоматизация развертывания — это процесс, который позволяет переносить приложения между различными средами (разработка, тестирование, эксплуатация) и настраивать их конфигурацию без необходимости вносить изменения в сам код. Ключевой принцип — отделение кода приложения от его конфигурационных параметров, которые могут легко меняться без перекомпиляции.
Автоматизация развертывания достигается благодаря стандартизации процессов и использованию инструментов (например, Jenkins, Ansible, Docker, Kubernetes). Настройка параметров развертывания осуществляется через конфигурационные файлы или специальные инструменты, которые позволяют легко изменять параметры без необходимости в изменении кода. Такой подход значительно сокращает время развертывания, минимизирует риски возникновения ошибок, делает процесс развертывания более гибким, а также оптимизирует работу сотрудников, освобождая их от рутинных задач.
Важно, чтобы подробная инструкция по развертыванию была задокументирована для повторного использования, а также упрощения и понимания процесса [OAD4].
Шаги реализации:- Проанализировать архитектуру, специфику и ограничения приложения.
- Выбрать подходящий подход: CI/CD, контейнеризация (Docker), оркестрация (Kubernetes) или др.
- Выбрать инструменты для автоматизации.
- Подготовить инфраструктуру под различные среды (разработка, тестирование, эксплуатация) — создать необходимые серверы, виртуальные машины/кластеры и сервисы для размещения инструментов автоматизации и хранения артефактов развертывания.
- Разработать конфигурационные файлы для каждой среды, включая параметры развертывания, настройки баз данных, сервисов и т. д.
- Использовать переменные для упрощения настройки параметров и уменьшения дублирования кода.
- Проверить правильность конфигурационных файлов, убедиться, что они работают как задумано.
- Разработать скрипты (например, на Bash, Python, Ansible) для автоматизации развертывания.
- Интегрировать выбранные инструменты с разработанными скриптами для автоматизации процесса развертывания.
- Внедрить автоматизированный процесс развертывания в рабочий процесс разработки.
- Задокументировать процесс развертывания с описанием конфигураций, скриптов и подробными инструкциями.
- Довести информацию до сотрудников и разместить на внутреннем портале.
Зона ответственности: ИТ
Инструмент: CI/CD
Артефакт: Артефакты процесса разработки -
Инициатива: Выход обновлений
Описание:
При развертывании приложений крайне важно внедрить механизмы обновления, которые позволяют бесшовно и с минимальным временем простоя накатывать обновления новых версий.
Такой подход обеспечивает бесперебойную работу приложения и минимизирует риски сбоев во время обновления. Очень важно строго соблюдать правила контроля версий [GF1], чтобы обеспечить прозрачность изменений и возможность отката к предыдущей версии в случае необходимости. Автоматизация процесса обновления с помощью скриптов или специальных инструментов позволит ускорить процесс и снизить риск ошибок.
Важно, чтобы описание всего процесса обновления, включая шаги установки, отката и отслеживания работы обновлений, было задокументировано [OAD4]. Документация поможет разработчику или администратору понять процесс и внести изменения при необходимости.
Шаги реализации:- Уточнить требования к обновлению приложения: SLA, частота обновлений, критичность приложения и т. д.
- Изучить текущие процессы развертывания.
- Разработать скрипты (например, на Bash, Python) для автоматизации процесса обновления.
- Разработать скрипты отката к предыдущей версии приложения в случае необходимости.
- Интегрировать скрипты с выбранными инструментами автоматизации развертывания для обеспечения гладкого процесса обновления и отката.
- Внедрить механизм обновления в рабочий процесс развертывания.
- Настроить мониторинг процесса обновления для отслеживания ошибок, сбоев и других проблем.
- Дополнить документацию механизмами обновления, включая шаги установки, отката и отслеживания работы обновлений.
- Довести информацию до сотрудников и разместить на внутреннем портале.
Зона ответственности: ИТ
Инструмент: CI/CD
Артефакт: Артефакты процесса разработки -
Инициатива: Комплексность выполнения конвеера
Описание:
Перед развертыванием приложения необходимо убедиться, что оно прошло все этапы и необходимое тестирование, соответствует всем требованиям качества и безопасности, а также соблюдает ОРД Компании [OAD5]. Это особенно важно в рамках CI/CD-конвейера, где автоматизация может ускорить процесс и повысить риск развертывания уязвимого продукта.
Этапы проверки включают:- Функциональное и нагрузочное тестирование.
- Инструментальные проверки безопасности.
- Проверку соответствия требованиям и политике безопасности компании.
В идеале проверка происходит во время ПСИ, но в контексте глубокой автоматизации процесса развертывания риск выхода в продакшн уязвимого продукта увеличивается. Для минимизации этого риска можно применять Quality Gate [VC1] в блокирующем режиме, что предотвращает развертывание приложения, если оно не удовлетворяет заданным критериям.
Шаги реализации:- Проанализировать документацию по процессу разработки и выявить необходимые шаги, проверки и требования, необходимые для разрешения развёртывания приложения.
- Выявить несоответствия и разработать план корректировки процесса.
- Настроить пайплайны разработки в соответствии с выявленными требованиями, добавить все необходимые шаги и виды тестирования.
- Внедрить QG в пайплайн разработки для автоматизации проверки качества и недопущения уязвимого продукта в промышленную эксплуатацию.
- Обновить документацию по процессу разработки в соответствии с изменениями.
- Довести информацию до сотрудников и разместить на внутреннем портале.
Зона ответственности: ИТ
Инструмент: CI/CD
Артефакт: Артефакты процесса разработки -
Инициатива: Эксплуатационная документация
Описание:
Развертываемое приложение должно сопровождаться комплексной документацией, которая обеспечивает четкое понимание его структуры, функциональности, используемых технологий и процесса эксплуатации. Такая документация может включать:- Архитектурную схему [TP4]: общее устройство приложения, взаимодействие компонент и подсистем, используемые технологии и инфраструктурные решения.
- Описание компонент и подсистем: подробное описание каждой компоненты или подсистемы приложения, их функциональность, взаимодействие с другими компонентами, используемые технологии и библиотеки.
- Диаграммы потоков данных: визуализация движения данных в приложении и между компонентами.
- Руководства по эксплуатации: процессы установки, настройки, запуска и остановки приложения, а также решения по устранению распространенных проблем и ошибок.
- Настройки конфигурации [PA1]: детальное описание всех конфигурационных параметров приложения
- Описание механизмов внедрения в эксплуатацию и обновления [PA2]: процесс развертывания приложения, а также механизмы обновления.
- Паспорт системы: краткое описание приложения, его функциональности, используемого технологического стека [TP1].
Такая документация позволяет лучше понимать приложение разработчикам, администраторам и другим заинтересованным лицам, упрощает процесс сопровождения, а также позволяет легче вносить изменения в приложение, обновлять его и проводить аудит безопасности [ISA2].
Шаги реализации:- Выбрать целевую аудиторию и цели документации.
- Определить состав (перечень артефактов) и формат документации.
- Собрать информацию об используемых технологиях: языки программирования, фреймворки, библиотеки, базы данных, облачные платформы.
- Собрать информацию об архитектуре приложения, каждой компоненте или подсистеме, их функциональности, взаимодействии с другими компонентами.
- Собрать информацию о конфигурации приложения, процессе развертывания и обновления.
- На основе собранной информации составить необходимую документацию.
- Проверить правильность и полноту документации, убедиться в ее четкости и легкости понимания.
- Утвердить документацию и сделать ее обязательной при выводе продукта в продуктовую среду.
- Довести документацию до сотрудников и разместить на внутреннем портале.
- Регулярно обновлять документацию в соответствии с изменениями в приложении и процессах.
Зона ответственности: Организация
Инструмент: -
Артефакт: Эксплуатационная документация -
Инициатива: Проверка подписи артефактов
Описание:
Проверка подписи в релизе позволяет доказать подлинность и целостность артефакта. Если в организации применяется правило подписи кода [SCS1] на этапе сборки, то проверка позволяет идентифицировать авторство артефакта и убедиться, что он не был изменен или подделан с момента подписи на последующих этапах, соответствует оригинальной версии и не содержит вредоносного кода.
Шаги реализации:- Создать ключ для подписи артефактов.
- Настроить процесс подписи кода на этапе сборки (например, с помощью скрипта или инструмента CI/CD).
- Внедрить проверку подписи на этапах развертывания и использования артефакта.
- Обеспечить блокировку артефакта в случае неудовлетворительного результата проверки.
- Задокументировать процесс подписи и проверки подписи, включая шаги и используемые инструменты.
- Довести документацию до сотрудников и разместить на внутреннем портале.
Зона ответственности: ИТ
Инструмент: CI/CD
Артефакт: Артефакты процесса разработки
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для вас с целью персонализации сервисов и предложений. Вы может прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом, вы даёте согласие на использование ваших cookie-файлов и соглашаетесь с Политикой обработки персональных данных.