Compartir a través de


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.

  1. Importe una imagen vulnerable simulada a Azure Container Registry:

    1. En primer lugar, extraiga una imagen base (por ejemplo, alpine) al entorno local mediante la ejecución de:

      docker pull alpine
      
    2. 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
      
    3. 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
      
    4. 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>
      
  2. 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>    
    
  3. Instale el controlador de entrada de ngnix:

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  4. 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
    
  5. 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

  1. Creación de un repositorio de ECR denominado mdc-mock-0001

  2. Vaya a su cuenta de AWS y elija Línea de comandos o acceso mediante programación.

  3. 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.

  4. 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
    
  5. 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
    
  6. 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>
    
  7. Confirme la configuración. Puede comprobar si kubectl está configurado correctamente mediante la ejecución de:

    kubectl get nodes
    
  8. Instale el controlador de entrada de ngnix:

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  9. 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

  1. En el portal de GCP, busque Registro de artefactos y, a continuación, cree un repositorio de GCP denominado mdc-mock-0001

  2. 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
    
  3. Vaya al portal de GCP. A continuación, vaya a Motor de Kubernetes>Clústeres. Seleccione el botón Conectar.

  4. 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
    
  5. Confirme la configuración. Puede comprobar si kubectl está configurado correctamente mediante la ejecución de:

    kubectl get nodes
    
  6. Para instalar el gráfico de Helm, siga estos pasos:

    1. En Registro de artefactos en el portal, vaya al repositorio y busque el URI de imagen en Extracción por resumen.

    2. 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:

En las secciones siguientes, presentamos ejemplos de consultas que puede seleccionar o crear.

Exploración de riesgos con plantillas de Cloud Security Explorer

  1. En la página de información general de Defender for Cloud, abra Cloud Security Explorer.

  2. 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

    Captura de pantalla que muestra dónde seleccionar plantillas.

  3. Seleccione Abrir consulta; la plantilla compila la consulta en la parte superior de la pantalla. Seleccione Buscar para ver los resultados.

    Captura de pantalla que muestra la consulta integrada y dónde seleccionar la búsqueda.

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.

Captura de pantalla en la que se muestra una consulta personalizada.

Los resultados se muestran debajo de la consulta.

Captura de pantalla que muestra los resultados de una consulta personalizada.

Pasos siguientes