Análisis de rutas de acceso de ataque y búsqueda mejorada de riesgos para contenedores
El análisis de rutas de acceso de ataque es un algoritmo basado en grafos que examina el grafo de seguridad en la nube. Los exámenes exponen rutas de acceso aprovechables que los atacantes pueden usar para vulnerar el entorno para llegar a los recursos de alto impacto. El análisis de rutas de acceso de ataque expone las rutas de acceso de ataque y sugiere recomendaciones sobre la mejor forma de corregir los problemas que interrumpen la ruta de acceso de ataque y evitan que la brecha tenga éxito.
Explore e investigue rutas de acceso de ataque ordenándolas en función del nivel de riesgo, el nombre, el entorno y los factores de riesgo, el punto de entrada, el destino, los recursos afectados y las recomendaciones activas. Explore las conclusiones del grafo de seguridad en la nube en el recurso. Entre los tipos de conclusiones, se incluyen:
- El pod expuesto a Internet
- Contenedor con privilegios
- El pod usa la red de host
- La imagen de contenedor es vulnerable a la ejecución remota de código
Azure: Prueba de la ruta de acceso de ataque y el explorador de seguridad con una imagen de contenedor vulnerable simulada
Si no hay entradas en la lista de rutas de acceso de ataque, puede probar esta característica mediante una imagen de contenedor simulada. Siga los pasos siguientes para configurar la prueba:
Requisito: una instancia de Azure Container Registry (ACR) en el ámbito probado.
Importe una imagen vulnerable simulada a Azure Container Registry:
En primer lugar, extraiga una imagen base (por ejemplo, alpine) al entorno local mediante la ejecución de:
docker pull alpine
Etiquete la imagen con la etiqueta siguiente e insértela en el ACR. Reemplace
<MYACR>
por el nombre de Azure Container Registry:docker tag alpine <MYACR>.azurecr.io/mdc-mock-0001 docker push <MYACR>.azurecr.io/mdc-mock-0001
Si no tiene un clúster de AKS (Azure Kubernetes Service), use el siguiente comando para crear un nuevo clúster de AKS:
az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr $MYACR
Si el AKS no está asociado a ACR, use la siguiente línea de comandos de Cloud Shell para que apunte a la instancia de AKS para extraer imágenes de la instancia de ACR seleccionada:
az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acr-name>
Autentique la sesión de Cloud Shell para trabajar con el clúster:
az aks get-credentials --subscription <cluster-suid> --resource-group <your-rg> --name <your-cluster-name>
Instale el controlador de entrada de ngnix:
helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
Implemente la imagen vulnerable simulada para exponer el contenedor vulnerable a Internet mediante la ejecución del siguiente comando:
helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<your-image-uri> --set distribution=AZURE
Para comprobar si la operación se realiza correctamente, siga estos pasos:
- Busque una entrada con mdc-dcspm-demo como espacio de nombres
- En la pestaña Cargas de trabajo:> implementaciones, compruebe que "pod1" y "pod2" se crean 3/3 y se crea el controlador de entrada-nginx-ingress-controller 1/1.
- En los servicios y entradas, busque> servicio service1 y entrada-controller-nginx-ingress-controller. En la pestaña entrada, compruebe que se crea una entrada con una dirección IP y una clase nginx.
Nota:
Después de completar el flujo anterior, puede tardar hasta 24 horas en ver los resultados en Cloud Security Explorer y la ruta de acceso a ataques.
Después de completar la prueba de la ruta de acceso de ataque, investigue esta ruta de acceso creada; para ello, vaya al análisis de ruta de acceso de ataque y busque la ruta de acceso de ataque que ha creado. Para más información, consulte Identificación y corrección de rutas de acceso de ataque.
AWS: Prueba de la ruta de acceso de ataque y el explorador de seguridad con una imagen de contenedor vulnerable simulada
Creación de un repositorio de ECR denominado mdc-mock-0001
Vaya a su cuenta de AWS y elija Línea de comandos o acceso mediante programación.
Abra una línea de comandos y elija Opción 1: Establecimiento de variables de entorno de AWS (credenciales a coro plazo). Copie las credenciales de las variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN.
Ejecute el siguiente comando para obtener el token de autenticación del registro de Amazon ECR. Reemplace
<REGION>
por la región del registro. Reemplace<ACCOUNT>
por el identificador de la cuenta de AWS.aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com
Cree una imagen de Docker etiquetada como vulnerable por nombre. El nombre de la imagen debe contener la cadena mdc-mock-0001. Una vez creada la imagen, insértela en el registro de ECR, con el siguiente comando (reemplace
<ACCOUNT>
y<REGION>
por la región y el identificador de la cuenta de AWS):docker pull alpine docker tag alpine <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 docker push <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
Conéctese al clúster de EKS e instale el gráfico de Helm proporcionado. Configure
kubectl
para trabajar con el clúster de EKS. Ejecute este comando (reemplace<your-region>
y<your-cluster-name>
por la región y el nombre del clúster de EKS):aws eks --region <your-region> update-kubeconfig --name <your-cluster-name>
Confirme la configuración. Puede comprobar si
kubectl
está configurado correctamente mediante la ejecución de:kubectl get nodes
Instale el controlador de entrada de ngnix:
helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
Instale el siguiente gráfico de Helm:
helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 --set distribution=AWS
El gráfico de Helm implementa recursos en el clúster que se pueden usar para deducir las rutas de acceso de ataque. También incluye la imagen vulnerable.
Nota:
Después de completar el flujo anterior, puede tardar hasta 24 horas en ver los resultados en Cloud Security Explorer y la ruta de acceso a ataques.
Después de completar la prueba de la ruta de acceso de ataque, investigue esta ruta de acceso creada; para ello, vaya al análisis de ruta de acceso de ataque y busque la ruta de acceso de ataque que ha creado. Para más información, consulte Identificación y corrección de rutas de acceso de ataque.
GCP: Prueba de la ruta de acceso de ataque y del explorador de seguridad con una imagen de contenedor vulnerable simulada
En el portal de GCP, busque Registro de artefactos y, a continuación, cree un repositorio de GCP denominado mdc-mock-0001
Siga estas instrucciones para insertar la imagen en el repositorio. Ejecute estos comandos :
docker pull alpine docker tag alpine <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001 docker push <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
Vaya al portal de GCP. A continuación, vaya a Motor de Kubernetes>Clústeres. Seleccione el botón Conectar.
Una vez conectado, ejecute el comando en Cloud Shell o copie el comando de conexión y ejecútelo en el equipo:
gcloud container clusters get-credentials contra-bugbash-gcp --zone us-central1-c --project onboardingc-demo-gcp-1
Confirme la configuración. Puede comprobar si
kubectl
está configurado correctamente mediante la ejecución de:kubectl get nodes
Para instalar el gráfico de Helm, siga estos pasos:
En Registro de artefactos en el portal, vaya al repositorio y busque el URI de imagen en Extracción por resumen.
Use el siguiente comando para instalar el gráfico de Helm:
helm install dcspmcharts oci:/mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<IMAGE_URI> --set distribution=GCP
El gráfico de Helm implementa recursos en el clúster que se pueden usar para deducir las rutas de acceso de ataque. También incluye la imagen vulnerable.
Nota:
Después de completar el flujo anterior, puede tardar hasta 24 horas en ver los resultados en Cloud Security Explorer y la ruta de acceso a ataques.
Después de completar la prueba de la ruta de acceso de ataque, investigue esta ruta de acceso creada; para ello, vaya al análisis de ruta de acceso de ataque y busque la ruta de acceso de ataque que ha creado. Para más información, consulte Identificación y corrección de rutas de acceso de ataque.
Búsqueda de problemas de posición de contenedor con el Cloud Security Explorer
Puede crear consultas de una de las siguientes maneras:
- Exploración de riesgos con plantillas integradas de Cloud Security Explorer
- Creación de consultas personalizadas con Cloud Security Explorer
En las secciones siguientes, presentamos ejemplos de consultas que puede seleccionar o crear.
Exploración de riesgos con plantillas de Cloud Security Explorer
En la página de información general de Defender for Cloud, abra Cloud Security Explorer.
Aparecen algunas plantillas listas para usar para Kubernetes. Seleccione una de las plantillas:
- Pods de Azure Kubernetes que ejecutan imágenes con vulnerabilidades de gravedad alta
- Los espacios de nombres de Kubernetes contienen pods vulnerables
Seleccione Abrir consulta; la plantilla compila la consulta en la parte superior de la pantalla. Seleccione Buscar para ver los resultados.
Creación de consultas personalizadas con Cloud Security Explorer
También se pueden crear consultas propias personalizadas. En el ejemplo siguiente, se muestra una búsqueda de pods que ejecutan imágenes de contenedor que son vulnerables a la ejecución remota de código.
Los resultados se muestran debajo de la consulta.
Pasos siguientes
- Obtenga más información sobre los planes de Defender Defender for Cloud.