Стратегии архитектуры для защиты ресурсов

Это относится к рекомендации по безопасности Azure Well-Architected Framework:

SE:08 Ужесточение всех компонентов рабочей нагрузки путем уменьшения дополнительных областей поверхности и ужесточения конфигураций для повышения затрат злоумышленников.

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

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

Защита безопасности — это непрерывный процесс , требующий непрерывного мониторинга и адаптации к эволюционировающим угрозам и уязвимостям.

Терминология

Термин Определение
Усиление защиты Практика уменьшения области атаки путем удаления лишних ресурсов или настройки конфигураций.
Рабочая станция привилегированного доступа (PAW) Выделенный и безопасный компьютер, используемый для выполнения конфиденциальных задач, что снижает риск компрометации.
Безопасная административная рабочая станция (SAW) Специализированный PAW, используемый учетными записями критического влияния.
Область поверхности Логический след рабочей нагрузки, содержащей уязвимости.

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

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

Создание инвентаризации ресурсов рабочей нагрузки

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

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

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

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

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

Также учитывайте следующие факторы.

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

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

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

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

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

Удаление того, что не требуется

Злоумышленники используют системы, имеющие ненужные конфигурации. Удалите то, что вам не нужно, и выведите из эксплуатации всё устаревшее.

  • Обнаружение и отключение неиспользуемых возможностей или функций, таких как неиспользуемый доступ к плоскости данных и функции продукта, которые могут охватывать другие компоненты. Например, Служба приложений поддерживает Kudu, который предоставляет развертывания FTP, удаленную отладку и другие функции. Если эти функции не нужны, отключите их.

  • Отключите порты и протоколы, которые не используются активно. Например, в службе приложение Azure, если вам не нужно развертывать через FTP, ее можно отключить. Или если вы выполняете операции управления через внутреннюю сеть, вы можете отключить административный доступ из Интернета.

  • Удалите или отключите устаревшие протоколы. Злоумышленники используют системы, использующие старые версии. Используйте службу обнаружения Azure для просмотра журналов и определения использования протокола. Может быть трудно удалить протоколы, так как это может нарушить функциональные возможности системы. Рекомендуется изолировать устаревшие протоколы, чтобы свести к минимуму воздействие. Проверьте все изменения перед реализацией, чтобы снизить риск прерывания работы.

  • Удалите неиспользуемые учетные записи или учетные записи по умолчанию. Отключите неиспользуемые методы проверки подлинности и авторизации.

  • Отключите устаревшие методы проверки подлинности, так как они часто используют векторы атак. Старые протоколы часто не имеют контрмер, таких как блокировки учетных записей. Переносите ваши требования к проверке подлинности вашему поставщику удостоверений (IdP), например, Microsoft Entra ID.

Уменьшение воздействия на Интернет

Свести к минимуму количество рабочих нагрузок, доступных из общедоступного Интернета.

  • Рассматривать публичные IP-адреса (PIP) как ресурсы высокого риска, так как к ним легко получить доступ и они имеют широкий охват по всему миру. Чтобы уменьшить уязвимость, удалите ненужный доступ в Интернет к рабочей нагрузке. Используйте общие общедоступные IP-адреса из службы Майкрософт, например Azure Front Door. Эти службы предназначены для подключения к Интернету, и они блокируют доступ к запрещенным протоколам. Многие такие службы выполняют первоначальные проверки входящих запросов на периферии сети. При использовании выделенного PIP вы отвечаете за управление своими аспектами безопасности, включая разрешение или блокировку портов, а также сканирование входящих запросов, чтобы обеспечить их допустимость.

  • Добавьте службу уровня 7 для приложений, подключенных к Интернету, чтобы фильтровать недопустимый трафик. Изучите собственные службы, которые применяют защиту от атак типа "отказ в обслуживании" (DDoS), имеют брандмауэры веб-приложений и обеспечивают защиту на границе до достижения уровня приложения.

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

  • Используйте частные конечные точки для обеспечения безопасного подключения к службам Azure без общедоступных IP-адресов. Частные конечные точки снижают уязвимость к общедоступному Интернету.

Ограничьте доступ только к необходимому

Предоставьте каждому компоненту доступ только к нужному ему доступу и запретите все остальное по умолчанию.

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

  • Используйте группы безопасности сети (NSG) для фильтрации сетевого трафика к ресурсам Azure и от них в виртуальной сети Azure. NSG содержат правила, разрешающие или запрещающие входящий и исходящий сетевой трафик в зависимости от IP-адресов источника или назначения, портов и протоколов.

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

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

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

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

Использование возможностей платформы

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

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

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

Оставайтесь актуальными с помощью исправлений и обновлений

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

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

Защита ресурсов данных

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

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

Защита элементов кода

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

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

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

  • Проверка и очистка входных данных: предотвращение атак внедрения, таких как внедрение SQL и межсайтовые скрипты (XSS), путем проверки и очистки всех входных данных пользователей. Автоматизация очистки входных данных с помощью библиотек и платформ проверки входных данных.

  • Управление сеансами: защита идентификаторов и маркеров сеанса от атак кражи или фиксации сеансов с помощью методов безопасного управления сеансами. Реализуйте тайм-ауты сеанса и применяйте повторную проверку подлинности для конфиденциальных действий.

  • Управление ошибками: реализуйте пользовательскую обработку ошибок, чтобы свести к минимуму предоставление конфиденциальной информации злоумышленникам. Безопасно регистрировать ошибки и следить за этими журналами на предмет подозрительных действий.

  • Заголовки безопасности HTTP: устранение распространенных веб-уязвимостей путем использования заголовков безопасности в ответах HTTP, таких как политика безопасности содержимого (CSP), X-Content-Type-Options и X-Frame-Options.

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

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

Усиление операций управления

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

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

Рассмотрите возможность использовать PAW или SAW при операциях привилегированного администрирования. PaWs и SAW являются защищенными физическими устройствами, которые предлагают значительные преимущества безопасности, но их реализация требует тщательного планирования и управления. Дополнительные сведения см. в статье "Защита устройств в рамках истории привилегированного доступа".

Контролируйте и поддерживайте укрепление защиты

Благодаря непрерывному мониторингу и обнаружению угроз вы получите представление о ваших ресурсах. Используйте такие средства, как Cloud Security Posture Management (CSPM), чтобы обнаружить неправильные конфигурации, несанкционированный доступ и небезопасные интерфейсы.

Реализуйте процесс проверки журналов для потенциальных нарушений. Регулярно просматривайте и обновляйте правила управления доступом на основе журналов доступа. Работайте с центральными командами для анализа журналов управления событиями информационной безопасности (SIEM) и автоматизированного ответа оркестрации безопасности (SOAR) для обнаружения аномалий.

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

Упрощение функций Azure

Центр интернет-безопасности (CIS) предлагает защищенные образы в Azure Marketplace.

С помощью построителя образов виртуальных машин Azure можно создать повторяемый процесс для защищенных образов ОС. Common Base Linux-Mariner — это защищенный дистрибутив Linux, разработанный корпорацией Майкрософт, который соответствует стандартам безопасности и отраслевым сертификациям. Его можно использовать с продуктами инфраструктуры Azure для создания реализаций рабочих нагрузок.

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

  • Частные конечные точки используют частный IP-адрес из Azure Virtual Network (виртуальной сети) для безопасного подключения к службам, управляемым Приватный канал Azure. Вы можете использовать частные конечные точки для снижения воздействия на общедоступный Интернет и повышения безопасности для ваших Azure ресурсов.

Пример

Следующая процедура — это пример того, как заклинить операционную систему:

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

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

    Отключите ненужный доступ к файловой системе. Шифруйте файловую систему и выполняйте тонкую настройку элементов управления доступом для удостоверения личности и сетевых подключений.

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

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

Ориентиры CIS

Контрольный список по безопасности

Ознакомьтесь с полным набором рекомендаций.