Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Confianza cero como estrategia de seguridad No es un producto ni un servicio, sino un enfoque para diseñar e implementar el siguiente conjunto de principios de seguridad.
| Principio | Descripción |
|---|---|
| Comprobación explícita | Realice siempre las operaciones de autorización y autenticación en función de todos los puntos de datos disponibles. |
| Utilizar el acceso con menos privilegios | Limite el acceso de los usuarios con los modelos Just-In-Time (JIT) y Just-Enough-Access (JEA), políticas adaptativas basadas en el nivel de riesgo y protección de datos. |
| Dar por hecho que habrá intrusiones al sistema | Minimice el radio de explosión y segmente el acceso. Compruebe el cifrado de un extremo a otro y use análisis para obtener visibilidad, impulsar la detección de amenazas y mejorar las defensas. |
Con Zero Trust, se pasa de una perspectiva de confianza por defecto a una de confianza por excepción. Es importante una funcionalidad integrada para administrar automáticamente esas excepciones y alertas. Puede detectar más fácilmente amenazas, responder a ellas y evitar o bloquear eventos no deseados en toda la organización.
Las redes en la nube de Azure están diseñadas con varias capas de segmentación que pueden actuar como límites o zonas de confianza. Para más información sobre cómo segmentar la red basada en Azure mediante principios de confianza cero, consulte Aplicación de principios de confianza cero para segmentar la comunicación de red basada en Azure.
Modelo de madurez de confianza cero
El modelo de madurez de confianza cero (ZTMM) de la Agencia de seguridad de ciberseguridad e infraestructura (CISA) se basa en cinco pilares que abarcan funciones para mejorar las áreas de protección de confianza cero. Para obtener más información, consulte Configuración de servicios en la nube de Microsoft para el modelo de madurez de confianza cero de CISA.
- identidad
- Dispositivos
- Redes
- Aplicaciones y cargas de trabajo
- Datos
Los pilares abarcan las cuatro etapas del recorrido de ZTMM. Para obtener más información, consulte Fases de recorrido de ZTMM.
- Tradicional
- Inicial
- Avanzado
- Óptimo
Las cuatro fases se aplican al pilar Redes de la siguiente manera:
| Etapa | Pilar redes |
|---|---|
| Tradicional | - Perímetro grande/macro-segmentación - Resistencia limitada y conjuntos de reglas administrados manualmente y configuración |
| Inicial | - Aislamiento inicial de cargas de trabajo críticas - Las funcionalidades de red administran las demandas de disponibilidad para más aplicaciones - Configuración de red dinámica parcial |
| Avanzado | - Expandir el mecanismo de aislamiento y resistencia - Las configuraciones se adaptan en función de las evaluaciones del perfil de aplicación que reconocen el riesgo. |
| Óptimo | - Distribuya micro-perímetro con controles de acceso justo a tiempo y solo los necesarios, así como una resistencia proporcional - La configuración evoluciona para satisfacer las necesidades de perfil de aplicación. |
¿Cómo puede usar el análisis de tráfico para lograr la seguridad de Confianza cero?
Análisis de tráfico proporciona información sobre los flujos de tráfico de red dentro de su entorno de Azure. Usa registros de flujo de red virtual y realiza la agregación para reducir el volumen de datos al tiempo que conserva los patrones de tráfico clave. A continuación, los registros agregados se enriquecen con información geográfica, de seguridad y topología y se almacenan en un área de trabajo de Log Analytics.
Los patrones de tráfico se visualizan mediante paneles de control integrados, con la flexibilidad de personalizar la información de tráfico utilizando Azure Workbooks. El panel de análisis de tráfico también le permite configurar alertas e iniciar investigaciones en respuesta a posibles infracciones de seguridad.
Supervisión del tráfico de red: Capture el tráfico entrante y saliente mediante registros de flujo y use análisis de tráfico para procesar y visualizar estos datos. Obtenga información sobre los patrones de comunicación, el uso del ancho de banda y los flujos de tráfico entre cargas de trabajo.
Identificar patrones de comunicación de cargas de trabajo: Analice los datos de análisis de tráfico para comprender cómo se comunican los recursos dentro y entre inquilinos, regiones de suscripciones, redes virtuales, subredes, protocolos, grupos basados en seguridad, servicios y aplicaciones. Identifique patrones de tráfico innecesarios o anómalos que podrían indicar posibles riesgos de seguridad.
Visualizaciones con información: Use visualizaciones integradas y personalizables en el análisis de tráfico para explorar patrones de tráfico y detectar anomalías de forma más eficaz.
Detectar direcciones IP o recursos en peligro: Use análisis de tráfico para identificar direcciones IP o recursos potencialmente comprometidos, lo que ayuda a reforzar la seguridad y mantener el rendimiento.
¿Cómo implementar la segmentación de confianza cero (ZTS) con Análisis de tráfico?
Como primer paso crítico para implementar la segmentación de confianza cero en las necesidades del usuario de implementación de Azure existente o nueva
Observe los patrones a través de Análisis de tráfico: analice los registros de flujo para identificar los patrones de tráfico que son esenciales para la carga de trabajo.
Comience con la posición de denegación predeterminada: comienza con la eliminación o deshabilitación de todas las reglas de entrada y salida existentes que permiten el tráfico ampliamente (por ejemplo, Permitir todo, Permitir) y agregar reglas de denegación explícitas para el tráfico entrante y saliente.
Crear reglas de permiso selectivas: en función de la información de Análisis de tráfico, defina reglas que permitan explícitamente solo el tráfico observado y necesario. Este enfoque garantiza que solo se permita el tráfico necesario, que se alinee con el principio de confianza cero de Comprobar explícitamente.
En las secciones siguientes se resaltan los escenarios clave en los que el análisis de tráfico admite la segmentación para ayudar a implementar principios de confianza cero en Azure.
Escenario 1: Detección del flujo de tráfico a través de regiones de riesgo o restringidas
Use análisis de tráfico para detectar el tráfico entrante o saliente a regiones de alto riesgo, tal como se define en las directivas de su organización. Por ejemplo, puede identificar el tráfico que fluye hacia o desde regiones consideradas confidenciales o restringidas en función de los requisitos de seguridad y cumplimiento de su organización.
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
Escenario 2: Lograr la segmentación del tráfico en función de las interacciones del servicio de Azure
Use análisis de tráfico para obtener una visión general de cómo interactúan las distintas cargas de trabajo con los servicios de Azure. Por ejemplo, las cargas de trabajo de SAP pueden comunicarse con la infraestructura de Azure Arc, mientras que otras cargas de trabajo, como entornos de desarrollo o servicios de productividad, interactúan con Azure Monitor. Estas conclusiones le ayudan a comprender las dependencias del servicio, detectar patrones de tráfico inesperados o anómalos y aplicar directivas de seguridad más granulares a través de la microsegmentación.
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
Escenario 3: Identificación del radio de explosión en caso de infracción de red
Use análisis de tráfico para realizar un seguimiento de la ruta de acceso de direcciones IP potencialmente malintencionadas que intentan comunicarse con los recursos. En caso de que una máquina virtual (VM) esté en peligro, el análisis de tráfico puede ayudar a mapear todas las comunicaciones iniciadas por esa máquina virtual en las últimas 24 horas, ayudando a identificar la posible filtración de datos y a limitar el radio de impacto.
La consulta siguiente identifica todas las direcciones IP directas e indirectas que interactúan con flujos malintencionados de zonas geográficas de alto riesgo:
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)
Escenario 4: Aplicar límites de suscripción
Use análisis de tráfico para aplicar límites de suscripción y asegurarse de que el tráfico entre distintas suscripciones de Azure está segmentado correctamente.
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