Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Нулевое доверие — это стратегия безопасности. Это не продукт или услуга, а подход к проектированию и реализации следующего набора принципов безопасности.
| Принцип | Описание |
|---|---|
| Явная проверка | Всегда осуществляйте аутентификацию и авторизацию на основе всех доступных данных. |
| Использование минимального доступа к привилегиям | Ограничение доступа пользователей с помощью Just-In-Time и Just-Enough-Access (JIT/JEA), адаптивных политик, основанных на оценке рисков, и защиты данных. |
| Предположим взлом. | Минимизируйте радиус взрыва и сегментируйте доступ. Проверьте сквозное шифрование и используйте аналитику, чтобы получить видимость, стимулировать обнаружение угроз и улучшать методы защиты. |
При использовании нулевого доверия вы переходите от точки зрения доверия по умолчанию к принципу доверия как исключения. Встроенная возможность автоматического управления этими исключениями и оповещениями важна. Вы можете более легко обнаруживать угрозы, реагировать на угрозы и предотвращать или блокировать нежелательные события в вашей организации.
Облачная сеть Azure разработана с несколькими уровнями сегментации, которые могут выступать в качестве границ или зон доверия. Дополнительные сведения о сегментации сети на основе Azure с помощью принципов "Нулевое доверие" см. в статье "Применение принципов нулевого доверия к сегментации сетевого взаимодействия на основе Azure".
Модель зрелости концепции Zero Trust
Модель зрелости нулевого доверия (ZTMM) агентства по кибербезопасности и инфраструктуре (CISA) основана на пяти основных принципах, охватывающих функции для повышения уровня защиты нулевого доверия. Дополнительные сведения см. в разделе "Настройка облачных служб Майкрософт для модели зрелости нулевого доверия CISA"
- Идентичность
- Устройства
- Сети
- Приложения и рабочие нагрузки
- Данные
Столпы охватывают четыре этапа пути ZTMM. Дополнительные сведения см. в разделе "Этапы пути ZTMM".
- Традиционно
- Начальное
- Продвинутый
- Оптимальный
Четыре этапа применяются к столпу "Сети", как следует из следующего.
| Этап | Столп сетей |
|---|---|
| Традиционно | — Большой периметр / макросегментация — ограниченная устойчивость и управляемые вручную наборы правил и конфигурация |
| Начальное | — начальная изоляция критически важных рабочих нагрузок — возможности сети управляют требованиями доступности для дополнительных приложений — частичная динамическая конфигурация сети |
| Продвинутый | — расширение механизма изоляции и устойчивости — конфигурации адаптируются на основе оценки профилей приложений с учетом рисков |
| Оптимальный | — Распространяйте микропериметр с помощью контроля доступа точно в срок и достаточными элементами управления, включая пропорциональную защиту. — Конфигурация развивается в соответствии с потребностями профиля приложения |
Как использовать аналитику трафика для обеспечения безопасности нулевого доверия?
Аналитика трафика предоставляет аналитические сведения о потоках сетевого трафика в среде Azure. Он использует журналы виртуальных сетевых потоков и выполняет агрегирование для уменьшения объема данных, сохраняя основные шаблоны трафика. Затем агрегированные журналы обогащены сведениями о географической, безопасности и топологии и хранятся в рабочей области Log Analytics.
Шаблоны трафика визуализируются с помощью встроенных панелей мониторинга, с возможностью настройки аналитических сведений о трафике с помощью Azure Workbooks. Панель мониторинга аналитики трафика также позволяет настраивать оповещения и инициировать расследования в ответ на потенциальные нарушения безопасности.
Мониторинг сетевого трафика: Захватить входящий и исходящий трафик с помощью журналов потоков и использовать аналитику трафика для обработки и визуализации этих данных. Получите аналитические сведения о шаблонах связи, использовании пропускной способности и потоках трафика между рабочими нагрузками.
Определите шаблоны взаимодействия с рабочей нагрузкой: Анализируйте данные аналитики трафика, чтобы понять, как ресурсы взаимодействуют между арендаторами, регионами подписок, виртуальными сетями, подсетями, протоколами, группами безопасности, службами и приложениями. Определите ненужные или аномальные шаблоны трафика, которые могут указывать на потенциальные риски безопасности.
Аналитические визуализации: Используйте встроенные и настраиваемые визуализации в аналитике трафика для изучения шаблонов трафика и более эффективного обнаружения аномалий.
Обнаружение скомпрометированных IP-адресов и ресурсов: Используйте аналитику трафика, чтобы определить потенциально скомпрометированные IP-адреса или ресурсы, помогая укрепить безопасность и обеспечить производительность.
Как развернуть сегментацию нулевого доверия (ZTS) с помощью аналитики трафика?
В качестве первого критического шага для развертывания сегментации нулевого доверия на существующем или новом развертывании Azure, пользователь должен выполнить следующие действия.
Просмотрите шаблоны с помощью аналитики трафика: анализ журналов потоков, чтобы определить шаблоны трафика, необходимые для рабочей нагрузки.
Начните с запрета по умолчанию: это начинается с удаления или отключения всех существующих правил для входящего и исходящего трафика, которые позволяют трафику проходить без ограничений (например, «Разрешить Все», «Разрешить»), и добавления явных правил запрета для входящего и исходящего трафика.
Создание правил выборочного разрешения: на основе аналитических сведений из аналитики трафика определяют правила, которые явно разрешают только наблюдаемый и необходимый трафик. Этот подход гарантирует, что разрешен только проверенный необходимый трафик, соответствующий принципу "Нулевого доверия" проверки явным образом.
В следующих разделах рассматриваются ключевые сценарии, в которых аналитика трафика поддерживает сегментацию для реализации принципов нулевого доверия в Azure.
Сценарий 1. Обнаружение трафика через рискованные или ограниченные регионы
Используйте аналитику трафика для обнаружения входящего или исходящего трафика в регионы с высоким уровнем риска, как определено политиками вашей организации. Например, можно определить трафик, поступающий в регионы, которые считаются конфиденциальными или ограниченными на основе требований к безопасности и соответствию требованиям вашей организации.
let ExternalIps = NTAIpDetails
| where Location in ("country1", "country2")
| where FlowType in ("MaliciousFlow", "ExternalPublic")
//and FlowIntervalStartTime between (datetime('{timeInterval') .. datetime('{timeInterval'))
| project-away
TimeGenerated,
SubType,
FaSchemaVersion,
FlowIntervalEndTime,
FlowIntervalStartTime,
FlowType,
Type
| distinct Ip, ThreatType, DnsDomain, ThreatDescription, Location, PublicIpDetails, Url;
let ExternalFlows = NTANetAnalytics
//| where FlowStartTime between (datetime('{timeInterval}') .. datetime('{timeInterval}'))
| where SubType == "FlowLog" and FlowType in ("ExternalPublic", "MaliciousFlow")
| extend PublicIP = SrcPublicIps
| extend ExtractedIPs = split(PublicIP, " ") // Split IPs by spaces
| mv-expand ExtractedIPs // Expand into multiple rows
| extend IP = tostring(split(ExtractedIPs, "|")[0])
| extend AllSrcIps = coalesce(SrcIp, IP)
| project
AllSrcIps,
DestIp,
SrcVm,
DestVm,
SrcSubscription,
DestSubscription,FlowType;
let SrcMalicious = ExternalFlows
| lookup kind=inner ExternalIps on $left.AllSrcIps == $right.Ip
| extend CompromisedVM = iff(isnotempty(DestVm),strcat("/subscriptions/",DestSubscription,"/resourceGroups/",tostring(split(DestVm,"/")[0]),"/providers/Microsoft.Compute/virtualMachines/",tostring(split(DestVm,"/")[1])),'')
| project
SrcExternalIp = strcat('🌐 ', AllSrcIps),
DestCompromisedIp = strcat('🖥️', DestIp),
CompromisedVM,
PublicIpDetails,
FlowType,
ThreatType,
DnsDomain,
ThreatDescription,
Location,
Url;
SrcMalicious
| summarize count() by SrcExternalIp ,DestCompromisedIp, CompromisedVM,
PublicIpDetails,
FlowType,
ThreatType,
DnsDomain,
ThreatDescription,
Location,
Url
Сценарий 2. Достижение сегментации трафика на основе взаимодействия со службой Azure
Используйте аналитику трафика, чтобы получить представление о том, как различные рабочие нагрузки взаимодействуют со службами Azure. Например, рабочие нагрузки SAP могут взаимодействовать с инфраструктурой Azure Arc, а другие рабочие нагрузки, такие как среды разработки или службы повышения производительности, взаимодействуют с Azure Monitor. Эти аналитические сведения помогают понять зависимости служб, обнаруживать непредвиденные или аномальные шаблоны трафика и применять более детализированные политики безопасности с помощью микросегации.
let SpecificServices = NTAIpDetails
| where FlowType == "AzurePublic"
| where FlowIntervalStartTime > ago(4h)
| project Ip, PublicIpDetails;
let PublicIPs = NTANetAnalytics
| where SubType == 'FlowLog'
| where FlowIntervalStartTime > ago(4h)
| where(isnotempty(SrcPublicIps) or isnotempty(DestPublicIps))
| extend PublicIP = coalesce(SrcPublicIps, DestPublicIps), Vnet = iff(isnotempty(SrcSubnet), strcat("/subscriptions/", SrcSubscription, "/resourceGroups/", tostring(split(SrcSubnet, "/")[0]), "/providers/Microsoft.Network/virtualNetworks/", tostring(split(SrcSubnet, "/")[1])), iff(isnotempty(DestSubnet), strcat("/subscriptions/", DestSubscription, "/resourceGroups/", tostring(split(DestSubnet, "/")[0]), "/providers/Microsoft.Network/virtualNetworks/", tostring(split(DestSubnet, "/")[1])),''))
| extend ExtractedIPs = split(PublicIP, " ") // Split IPs by spaces
| mv-expand ExtractedIPs // Expand into multiple rows
| extend IP = tostring(split(ExtractedIPs, "|")[0]) // Extract IP address
| lookup kind=inner SpecificServices on $left.IP == $right.Ip
| project Vnet, PublicIpDetails;
PublicIPs
| summarize CounterValue = count() by Vnet, PublicIpDetails
| top 100 by CounterValue desc
Сценарий 3. Определение радиуса взрыва в случае нарушения сети
Используйте аналитику трафика для трассировки пути потенциально вредоносных IP-адресов, пытающихся взаимодействовать с ресурсами. В случае скомпрометированного виртуальной машины аналитика трафика может помочь сопоставить все связи, инициированные этой виртуальной машиной за последние 24 часа, помогая определить потенциальные утечки данных и ограничить радиус взрыва.
Следующий запрос определяет все прямые и косвенные IP-адреса, взаимодействующие с вредоносными потоками из географических регионов с высоким риском:
let MAliciousIps = NTAIpDetails
| where FlowIntervalStartTime between (datetime('{timeInterval:startISO}') .. datetime('{timeInterval:endISO}'))
| where FlowType == "MaliciousFlow"
| distinct Ip;
let MaliciousFlows = NTANetAnalytics
| where FlowStartTime between (todatetime('{timeInterval:startISO}') .. todatetime('{timeInterval:endISO}'))
| where SubType == "FlowLog" and FlowType == "MaliciousFlow"
| project SrcIp, DestIp, FlowLogResourceId, TargetResourceId;
let SrcMalicious = MaliciousFlows
| lookup kind=leftouter MAliciousIps on $left.SrcIp == $right.Ip
| project SrcIp, DestIp;
let DestMalicious = MaliciousFlows
| lookup kind=leftouter MAliciousIps on $left.DestIp == $right.Ip
| project SrcIp, DestIp;
let MaliciousIps = SrcMalicious
| union DestMalicious
| distinct *;
let SpecificCountryIPs = NTAIpDetails
| where Location in ("country1", "country2")
| project Ip;
let SrcIpCountry = SpecificCountryIPs
| join kind=inner NTANetAnalytics on $left.Ip == $right.SrcIp
| project SrcIp, DestIp;
let DestIpCountry = SpecificCountryIPs
| join kind=inner NTANetAnalytics on $left.Ip == $right.DestIp
| project SrcIp, DestIp;
let SpecificCountryFlows = SrcIpCountry
| union DestIpCountry;
let MaliciousFlowsObserved = MaliciousIps
| union SpecificCountryFlows
| distinct SrcIp, DestIp;
let MaliciousFlowsTransitive = MaliciousFlowsObserved
| join kind=inner MaliciousFlowsObserved on $left.DestIp == $right.SrcIp
| project SrcIp, DestIp = DestIp1
| distinct SrcIp, DestIp;
let MaliciousFlowsObserved1 = MaliciousFlowsObserved
| union MaliciousFlowsTransitive
| distinct SrcIp, DestIp;
let MaliciousFlowsTransitive1 = MaliciousFlowsObserved1
| join kind=inner MaliciousFlowsObserved1 on $left.DestIp == $right.SrcIp
| project SrcIp, DestIp = DestIp1
| distinct SrcIp, DestIp;
let MaliciousFlowsObserved2 = MaliciousFlowsObserved1
| union MaliciousFlowsTransitive1
| distinct SrcIp, DestIp;
MaliciousFlowsObserved2
| project SrcIp = strcat('🖥️ ', SrcIp), DestIp = strcat('🖥️ ', DestIp)
Сценарий 4. Применение границ подписки
Используйте аналитику трафика для принудительного применения границ подписки и обеспечения правильного сегментирования трафика между различными подписками Azure.
NTANetAnalytics
| where SubType == "FlowLog" and FlowType !in ("AzurePublic","ExternalPublic","Unknown","UnknownPrivate") // Filter to flows for which we know the Subscription Details
| where FlowStartTime between (start .. end)
| where AclGroup !contains "Unspecified"
|extend Dest = iff(isnotempty(DestSubnet),strcat("/subscriptions/",DestSubscription,"/resourceGroups/",tostring(split(DestSubnet,"/")[0]),"/providers/Microsoft.Network/virtualNetworks/",tostring(split(DestSubnet,"/")[1])),'')
| extend Src = iff(isnotempty(SrcSubnet),strcat("/subscriptions/",SrcSubscription,"/resourceGroups/",tostring(split(SrcSubnet,"/")[0]),"/providers/Microsoft.Network/virtualNetworks/",tostring(split(SrcSubnet,"/")[1])),'')
| extend SrcSubscription = strcat("/subscriptions/",SrcSubscription), DestSubscription = strcat("/subscriptions/",DestSubscription)
| where SrcSubscription != DestSubscription // Cross Subscription
| summarize Flows = sum(CompletedFlows) by Src, Dest, SrcSubscription, DestSubscription, AclGroup,AclRule, FlowType
//| top 10 by Flows