Защита развертываний PaaS

Эта статья содержит сведения, которые помогут вам:

  • понять преимущества безопасности размещения приложений в облаке;
  • оценить преимущества безопасности платформы как услуги (PaaS) перед другими моделями облачных служб;
  • изменить ориентированную на сеть модель безопасности на модель периметра безопасности на основе удостоверений;
  • внедрить общие рекомендации по безопасности PaaS.

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

Преимущества безопасности облака

Важно понимать разделение ответственности между вами и корпорацией Майкрософт. В локальной среде весь стек принадлежит вам, но при переходе в облако некоторые обязанности переходят к корпорации Майкрософт.

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

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

Преимущества безопасности модели облачных служб PaaS

Используя ту же таблицу ответственности, рассмотрим преимущества развертывания службы PaaS в Azure перед локальным развертыванием.

Security advantages of PaaS

Начиная с нижней части стека, физической инфраструктуры, корпорация Майкрософт уменьшает распространенных риски и обязанности. Так как корпорация Майкрософт непрерывно наблюдает за облаком Майкрософт, его сложно атаковать. Злоумышленнику нет смысла выбирать в качестве цели облако Майкрософт. Если только у злоумышленника нет множества денежных средств и технических ресурсов, скорее всего он выберет другую цель.

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

В верхней части стека (управление данными и управление правами) вы подвергаетесь одному риску, который можно снизить с помощью управления ключами. Хотя управление ключами добавляет обязанности, некоторыми областями в развернутой службе PaaS больше не нужно будет управлять, поэтому вы сможете выделить эти ресурсы для управления ключами.

Платформа Azure также обеспечивает надежную защиту от атак DDoS с помощью различных сетевых технологий. Тем не менее все разновидности сетевых методов защиты от атак DDoS имеют свои пределы по числу защищаемых каналов и центров обработки данных. Чтобы избежать масштабных атак DDoS, можно воспользоваться преимуществами основной возможности облака Azure, чтобы быстро и автоматически развертывать ресурсы для защиты от атак DDoS. Мы подробнее рассмотрим, как это сделать, в статьях с рекомендациями.

Модернизация мышления Defender для облака

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

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

Применение политики удостоверения в качестве основного периметра безопасности

Одной из пяти основных характеристик облачных вычислений является расширенный сетевой доступ, что делает менее уместным подход, ориентированный на сеть. Цель большинства сред облачных вычислений — предоставлять пользователям доступ к ресурсам независимо от расположения. Расположение большинства пользователей будет находиться где-то в Интернете.

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

Identity as new security perimeter

Первоначально службы PaaS Azure (например, веб-роли и SQL Azure) обеспечивали крайне мало или вообще не обеспечивали традиционных средств защиты периметра сети. Было понятно, что цель элемента должна быть предоставлена Интернету (веб-роли) и что проверка подлинности предоставляет новый периметр (например, BLOB или SQL Azure).

В современных рекомендациях по безопасности предполагается, что злоумышленник уже нарушил периметр сети. Поэтому в современных рекомендациях по защите на первое место выходят удостоверения. Организациям необходимо установить периметр безопасности на основе удостоверений со строгой санацией с использованием аутентификации и авторизации (рекомендуется).

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

Ниже приведены рекомендации по управлению периметром на основе удостоверений.

Рекомендация. Защитите свои ключи и учетные данные, чтобы обеспечить безопасность развертывания PaaS. Сведения. Потеря ключей и учетных данных является распространенной проблемой. Вы можете использовать централизованное решение, в котором ключи и секретные данные могут храниться в аппаратных модулях безопасности (HSM). Azure Key Vault защищает ключи и секреты путем шифрования ключей проверки подлинности, ключей учетной записи хранения, ключей шифрования данных, PFX-файлов и паролей с помощью ключей, защищенных HSM.

Рекомендация. Не помещайте учетные данные и другие секреты в исходный код или GitHub. Сведения. Хуже потери ключей и учетных данных может быть только получение к ним несанкционированного доступа. Злоумышленники могут воспользоваться преимуществами программ-роботов для поиска ключей и секретных данных, хранящихся в репозиториях кода, например на сайте GitHub. Не помещайте ключ и секретные данные в эти общедоступные репозитории кода.

Рекомендация. Защищайте свои интерфейсы управления виртуальной машиной в гибридных службах PaaS и IaaS, используя интерфейс управления, который позволяет удаленно управлять этими виртуальными машинами напрямую. Сведения. Можно использовать такие протоколы удаленного управления, как SSH и RDP, и также удаленное взаимодействие через PowerShell. Как правило, рекомендуется не включать прямой удаленный доступ к виртуальным машинам из Интернета.

Если это возможно, используйте альтернативные подходы, такие как использование виртуальных частных сетей в виртуальной сети Azure. Если альтернативные подходы недоступны, убедитесь, что используются сложные парольные фразы и двухфакторная проверка подлинности (например , многофакторная проверка подлинности Microsoft Entra).

Рекомендация. Используйте надежные платформы аутентификации и авторизации. Сведения. Используйте федеративные удостоверения в идентификаторе Microsoft Entra, а не в пользовательских хранилищах пользователей. При использовании федеративных удостоверений вы получаете преимущества подхода на основе платформы и делегируете партнерам управление авторизованными удостоверениями. Модель федеративной идентификации особенно важна, когда сотрудники прекращают выполнение тех или иных обязанностей, и эти данные должны быть отражены в нескольких системах идентификации и авторизации.

Используйте предоставляемые платформой механизмы аутентификации и авторизации вместо пользовательского кода. Ведь разработка пользовательского кода аутентификации может быть подвержена ошибкам. Большинство ваших разработчиков не являются экспертами в области безопасности и, скорее всего, не учитывают тонкостей и последних разработок в области аутентификации и авторизации. Коммерческий код (например, создаваемый корпорацией Майкрософт), как правило, подвергается тщательным проверкам безопасности.

Используйте двухфакторную аутентификацию. Двухфакторная аутентификация является текущим стандартом аутентификации и авторизации, так как позволяет избежать уязвимостей системы безопасности, присущих разновидностям аутентификации по имени пользователя и паролю. Для использования многофакторной проверки подлинности Microsoft Entra следует разрабатывать и настраивать доступ к интерфейсам управления Azure (портал или удаленный powerShell).

Используйте стандартные протоколы аутентификации, такие как OAuth2 и Kerberos. Эти протоколы внимательно оценены коллегами и скорее всего реализованы в составе библиотек аутентификации и авторизации для вашей платформы.

Использование моделирование угроз во время разработки приложения

Жизненный цикл разработки защищенных приложений (Майкрософт) указывает, что команды должны принимать участие в процессе моделирования угроз на этапе проектирования. Чтобы ускорить этот процесс, корпорация Майкрософт создала средство моделирования угроз SDL. Моделирование архитектуры приложения и перечисление угроз STRIDE на всех границах доверия позволяют обнаружить ошибки на раннем этапе.

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

Угроза Свойство безопасности Потенциальные миграции платформы Azure
Спуфинг Проверка подлинности Требуйте подключение только по протоколу HTTPS.
Незаконное изменение Целостность Подтвердите сертификаты TLS/SSL.
Отказ Неподдельность Включите мониторинг и диагностику в Azure.
Раскрытие информации Конфиденциальность Зашифруйте конфиденциальные неактивные данные с помощью сертификатов службы.
Отказ в обслуживании Доступность Отслеживайте метрики производительности на наличие признаков атаки типа "отказ в обслуживании". Примените фильтры подключения.
Несанкционированное получение привилегий Авторизация Используйте технологию управления привилегированными пользователями.

Разработка в Службе приложений Azure

Служба приложений Azure — это предложение PaaS, которое позволяет создавать веб-приложения и мобильные приложения для любой платформы или устройства и подключаться к данным откуда угодно, как в облаке, так и в локальной среде. Служба приложений обладает возможностями для работы в сетевой и мобильной среде, которые ранее предлагались отдельно в службе "Веб-сайты Azure" и мобильных службах Azure. Она также предусматривает новые возможности для автоматизации бизнес-процессов и размещения облачных API. Служба приложений — это отдельная интегрируемая служба, которая добавляет широкий спектр возможностей в сценарии с использованием Интернета, мобильных устройств и интеграции.

Ниже приведены рекомендации по использованию Службы приложений.

Рекомендация. Проверка подлинности с помощью идентификатора Microsoft Entra. Сведения. Служба приложений предоставляет службу OAuth 2.0 для поставщика удостоверений. Служба OAuth 2.0 предназначена упростить разработку клиентов, так как предоставляет определенные процедуры авторизации для веб-приложений, классических приложений и мобильных телефонов. Идентификатор Microsoft Entra использует OAuth 2.0, чтобы разрешить доступ к мобильным и веб-приложениям.

Рекомендация. Доступ следует ограничивать с учетом возможности использования необходимой информации и минимальных полномочий. Сведения. Ограничение доступа крайне важно для организаций, которые планируют применять политики безопасности для доступа к данным. Вы можете использовать Azure RBAC для назначения разрешений пользователям, группам и приложениям в определенной области. Дополнительные сведения о предоставлении пользователям доступа к приложениям см. в статье Что такое управление доступом на основе ролей (RBAC)?

Рекомендация. Обеспечьте защиту ключей. Сведения. Azure Key Vault помогает защитить криптографические ключи и секреты, используемые облачными приложениями и службами. С помощью Key Vault можно шифровать ключи и секреты (например, ключи аутентификации, ключи учетных записей хранения, ключи шифрования данных, PFX-файлы и пароли), используя ключи, защищенные аппаратными модулями безопасности. Для повышения безопасности можно импортировать или создавать ключи в HSM. Чтобы узнать больше, ознакомьтесь с разделом то такое хранилище ключей Azure? Key Vault можно также использовать для управления TLS-сертификатами с автоматическим продлением.

Рекомендация. Ограничьте исходные IP-адреса входящего трафика. Сведения. В среде службы приложений есть функция интеграции виртуальных сетей, которая помогает ограничить IP-адреса входящего трафика с помощью групп безопасности сети. Виртуальные сети позволяют размещать ресурсы Azure в сети, недоступной из Интернета, доступом к которой управляете вы сами. Дополнительные сведения см. в статье Интеграция приложения с виртуальной сетью Azure.

Рекомендация. Отслеживайте состояние безопасности сред службы приложений. Сведения. Используйте Microsoft Defender для облака для мониторинга Служба приложений сред. Когда Defender для облака выявляет потенциальные уязвимости в системе безопасности, он создает рекомендации по настройке необходимых элементов управления.

Oблачныe службы Azure2

Облачные службы Azure Cloud Services являются примером концепции платформы как услуги (PaaS). Так же как и служба приложений Azure, эта технология предназначена для поддержки масштабируемых, надежных и недорогих в эксплуатации приложений. Облачные службы Azure размещаются так же, как и службы приложений на виртуальных машинах (ВМ). Однако над виртуальными машинами доступен больший контроль. На виртуальных машинах, использующих облачные службы Azure, можно установить собственное программное обеспечение, а затем получить удаленный доступ к нему.

Установка брандмауэра веб-приложения

Веб-приложения все чаще подвергаются вредоносным атакам, использующим общеизвестные уязвимости. Повсеместно используются уязвимости для атак путем внедрения кода SQL и межсайтовых сценариев, и это лишь немногие из них. Предотвращение таких атак в коде приложения может быть сложной задачей и потребовать тщательного обслуживания, исправления и мониторинга на многих уровнях топологии приложения. Централизованный брандмауэр веб-приложения значительно упрощает управление безопасностью и помогает администраторам защищать приложение от угроз вторжения. Решение WAF может быстрее реагировать на угрозы безопасности по сравнению с защитой каждого отдельного веб-приложения благодаря установке исправлений известных уязвимостей в центральном расположении.

Брандмауэр веб-приложений (WAF) обеспечивает централизованную защиту веб-приложений от распространенных эксплойтов и уязвимостей.

Защита от атак DDoS

Защита от атак DDoS Azure в сочетании с рекомендациями по проектированию приложений предоставляет расширенные функции защиты от атак DDoS. Необходимо включить защиту от атак DDOS Azure в любой виртуальной сети периметра.

Отслеживание производительности приложений

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

Используйте Azure Application Insights для мониторинга доступности, производительности и потребления приложения, независимо от того, где оно размещено: в облаке или локально. С помощью Application Insights можно быстро обнаружить и диагностировать ошибки в приложении, не дожидаясь, пока о них сообщит пользователь. Собранные данные позволят сделать осознанный выбор в отношении обслуживания и улучшений вашего приложения.

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

Тесты на проникновение

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

Тестирование методом Монте-Карло — это метод поиска ошибок программы (ошибок в коде) путем предоставления неправильно сформированных входных данных для программных интерфейсов (точек входа), которые анализируют и потребляют эти данные.

Следующие шаги

В этой статье были рассмотрены преимущества безопасности развертывания PaaS в Azure и рекомендации по безопасности для облачных приложений. Далее вы можете изучить рекомендации по защите веб-приложений и мобильных приложений PaaS с помощью определенных служб Azure. Начнем с службы приложение Azure, База данных SQL Azure и Azure Synapse Analytics, служба хранилища Azure и Azure Облачные службы. По мере выпуска статей с рекомендациями для других служб Azure ссылки на них будут добавляться в приведенный ниже список.

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

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

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