Безопасность бессерверных функций

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

Планирование

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

В начале 10-го списка OWASP описаны наиболее распространенные уязвимости безопасности бессерверных приложений и предоставляются основные методы для выявления и защиты от них.

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

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

Развертывание

Чтобы подготовить бессерверные приложения Функций для рабочей среды, персонал безопасности должен:

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

В статье "Базовые показатели безопасности Azure для Функции Azure" содержатся дополнительные рекомендации, которые помогут повысить уровень безопасности развертывания.

Обеспечение безопасности кода

Найдите уязвимости безопасности и ошибки в коде и управляйте уязвимостями безопасности в проектах и зависимостях.

Дополнительные сведения см. в разделе:

Выполнение проверки входных данных

Различные источники событий, такие как хранилище BLOB-объектов, базы данных NoSQL Azure Cosmos DB, центры событий, очереди или события Graph, могут активировать бессерверные функции. Внедрение не ограничивается входными данными, поступающими непосредственно из вызовов API. Функции могут использовать другие входные данные из возможных источников событий.

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

Дополнительные сведения см. в разделе:

Защита конечных точек HTTP для разработки, тестирования и рабочей среды

Функции Azure позволяет использовать ключи, чтобы упростить доступ к конечным точкам функции HTTP. Чтобы полностью защитить конечные точки функций в рабочей среде, рассмотрите возможность реализации одного из следующих параметров безопасности на уровне приложения-функции:

Дополнительные сведения см. в статье "Защита конечной точки HTTP в рабочей среде".

Настройка управления доступом на основе ролей Azure (Azure RBAC)

Управление доступом на основе ролей Azure (Azure RBAC) включает несколько встроенных ролей Azure, которые можно назначать пользователям, группам, субъектам-службам и управляемым удостоверениям для управления доступом к ресурсам Azure. Если встроенные роли не соответствуют потребностям вашей организации, можно создать собственные пользовательские роли Azure.

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

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

Дополнительные сведения о Azure RBAC см. в следующем разделе:

Использование управляемых удостоверений и хранилищ ключей

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

Дополнительные сведения см. в статье Использование ссылок на Key Vault в Службе приложений и Функциях Azure.

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

Дополнительные сведения см. в разделе:

Использование маркеров подписанного URL-адреса (SAS) для ограничения доступа к ресурсам

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

Дополнительные сведения см. в статье Предоставление ограниченного доступа к ресурсам службы хранилища Azure с помощью подписанных URL-адресов (SAS).

Безопасное хранилище BLOB-объектов

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

Дополнительные сведения см. в статье Рекомендации по безопасности для хранилища BLOB-объектов.

Optimization

После того как приложение в рабочей среде, персонал безопасности может помочь оптимизировать рабочий процесс и подготовиться к масштабированию.

Использование Microsoft Defender для облака и применение рекомендаций по безопасности

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

Дополнительные сведения см. в разделе:

Применение политик управления приложениями

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

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