Как защитить приложения на Python Flask
Узнать большеDevOps – процесс автоматизированного управления инфраструктурой разработки. Среди факторов, обуславливающих рост его популярности, – быстрый time-to-market (вывод продукта на рынок), совершенствование взаимодействия с клиентами (пользователями программных продуктов), оперативное внесение изменений в ПО и решение связанных с этим проблем.
Но методология реализации данного процесса не лишена недостатков. Согласно отчету «Enterprise DevOps Report 2020–21» в Топ-5 проблем разработки входит и проблема обеспечения безопасности ПО. Для ее решения требуется формирование четких требований безопасности, автоматизация таких процессов и контроль их исполнения со стороны руководства. Все эти вопросы лежат в зоне внимания DevSecOps (она же – безопасность процесса DevOps).
Безопасность процесса DevOps, его преимущества и составляющие
Внедрение DevSecOps имеет следующие преимущества:
-
Снижение расходов на программный продукт на стадии поддержки. При обеспечении безопасности процесса DevOps критические уязвимости выявляются на этапе разработки, до выпуска в производство. Это позволяет сэкономить время и деньги на выпуске патчей. В противном случае иногда приходится даже отзывать продукты из эксплуатации.
-
Уверенность в соответствии продуктов комплаенс-требованиям. Контроль этих вопросов на всех этапах жизненного цикла позволяет разработчикам легче проходить аудиты и выводить на рынок продукт, удовлетворяющий стандартам и руководящим документам, в том числе и в области информационной безопасности.
-
Обеспечение внутренней безопасности IT-инфраструктур, задействованных в процессе разработки, и закрытие брешей по максимуму. Стандартными средствами DevOps это реализовать проблематично.
Процесс внедрения практик обеспечения безопасности DevOps не быстрый и не дешевый. Но затраты на него того стоят.
Составляющие подхода DevSeсOps и средства его реализации
Практики обеспечения безопасности процесса DevOps немного различаются между собой, но почти во всех можно выделить следующие компоненты.
Безопасная разработка
Безопасная работка программного продукта включает:
-
Моделирование угроз или оценку рисков (в зависимости от принятой в организации методологии), которые могут повлиять на стабильность работы программного продукта или сохранность обрабатываемых в нем данных. Проводится своими силами или с помощью сторонних организаций, имеющих лицензии ФСТЭК на осуществление такой деятельности. Примеры к организации таких работ представлены в методических документах крупнейших IT-компаний, доступных для ознакомления, а также отраслевых и отечественных стандартах.
-
Обеспечение должного уровня организации процесса DevSecOps. Необходимо поддерживать полную вовлеченность участников команды в проект построения процесса DevSecOps. Для этого необходимо четко определить цели данного процесса и в доступной форме донести эту информацию до команды. Важно вести документацию с описанием процесса и фиксацией результатов, достигаемых в рамках данного процесса.
-
Обеспечение разработки программного продукта с применением в его составе механизмов безопасности. К таким механизмам можно отнести: двухфакторную аутентификацию (2FA), защищенные протоколы (например, HTTPS), технологии совместного использования ресурсов между разными источниками (CORS), шифрование данных и другие технологии/средства.
-
Внедрение в сборочную инфраструктуру средств анализа кода с точным определением, на каких этапах пайплайна (работы конвейера) они будут наиболее эффективны. К таким инструментам можно отнести DAST- и SAST-инструменты. Первые анализируют исполняемый код – в этом случае потребуются ресурсы для развертывания приложения или его модулей для тестирования, а также время (иногда значительное). SAST, или статический анализ кода, не требует запуска приложений, такие инструменты можно использовать на любом этапе жизненного цикла ПО. Пример подобных решений – наш продукт Solar appScreener.
Обеспечение информационной безопасности инфраструктуры
Для обеспечения информационной безопасности инфраструктуры в процессе DevOps могут использоваться как «штатные» (нативные) средства и элементы безопасности (настройки, компоненты), так и сторонние решения, такие как DLP-системы (предотвращение утечек), SIEM-системы (сбор и анализ информации из разных систем), инструменты предотвращения DDoS-атак, средства управления доступом, разграничения прав, обеспечения безопасности Kubernetes-кластеров и так далее.
Хорошая практика – сегментация сети в сборочной инфраструктуре, задействованной в процессе DevOps. В этом случае разделение логических единиц позволяет исключить возникновение единой точки отказа и получение злоумышленниками контроля над всеми элементами инфраструктуры (приложения, хранилища, серверы, среды для тестирования, микросервисы).
Созданию безопасного DevOps способствует также применение принципа представления минимальных привилегий. Не следует давать членам команды больше привилегий, чем им требуется. Если же кому-то полномочия необходимо предоставить, то после решения требуемой задачи их действие должно быть прекращено.
Обучение, создание внутренней базы знаний
Важная составляющая обеспечения безопасности процесса DevOps – создание в компании и поддержка в актуальном состоянии базы знаний в области информационной безопасности. В нее включаются сведения о типовых угрозах, современных рисках в сфере ИБ, рассматриваются подходы и практики предотвращения и нейтрализации различных типов угроз. Базы знаний создаются для всех категорий специалистов: разработчиков, инженеров, тестировщиков, сотрудников поддержки и так далее.
Организация обучения разработчиков правилам, подходам, методологиям написания безопасного кода при участии экспертов отрасли – важная часть DevSecOps.
Как видно, безопасность DevOps требует немалых вложений. Чтобы ее обеспечить, необходимо предпринять целый комплекс затратных организационных и подкрепленных серьезным пулом программных продуктов и сервисов технических мер. Но даже несмотря на это данная практика набирает популярность, ведь для конечного пользователя гораздо привлекательнее хорошо защищенный продукт (что в конечном счете обойдется дешевле), чем представляющий угрозу безопасности.