Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seguridad en Kubernetes - Nerdearla 2023

Seguridad en Kubernetes - Nerdearla 2023

Charla que di en Nerdearla 2023 sobre seguridad en Kubernetes.

Pablo Fredrikson

September 29, 2023
Tweet

More Decks by Pablo Fredrikson

Other Decks in Technology

Transcript

  1. Y un par de historias de cómo casi nos hackearon

    PABLO FREDRIKSON SEGURIDAD EN KUBERNETES
  2. @pablokbs Pablo Fredrikson • Principal SRE @ Split Software •

    Nerd • 17 años de experiencia en el rubro • 5 años con Kubernetes en Producción • CNCF Ambassador • YouTuber Extraordinaire
  3. Recapitulemos 1. Encontramos un sitio vulnerable para subir archivos (sin

    checkeo de tipo de archivo) 2. Ejecutamos una shell reversa 3. kubectl (no tenía permisos suficientes) 4. curl user-data y security-credentials (IMDSv1) a. Obtuvimos credenciales AWS b. Obtuvimos credenciales de Kubernetes 5. kubectl describe voto-app a. Obtuvimos credenciales Postgres 6. Descargamos psql y h4xx PABLO FREDRIKSON @pablokbs
  4. Cómo prevenir: Configurá bien tu cluster PABLO FREDRIKSON @pablokbs 1.

    Desactivá acceso externo a tu API de Kubernetes 2. No compartas usuarios de Kubernetes 3. No uses variables de entorno para secretos 4. Desactivá IMDSv1 (para AWS) $ curl http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ instance-action instance-id instance-type local-hostname local-ipv4 …
  5. Cómo prevenir: Usá IMDSv2! PABLO FREDRIKSON @pablokbs $ TOKEN=`curl -X

    PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ instance-action instance-id instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ $ curl http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ events/ hostname iam/ instance-action instance-id instance-type local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups services/
  6. OWASP Kubernetes Top 10 (2022) K01: Insecure Workload Configurations K02:

    Supply Chain Vulnerabilities K03: Overly Permissive RBAC Configurations K04: Lack of Centralized Policy Enforcement K05: Inadequate Logging and Monitoring K06: Broken Authentication Mechanisms K07: Missing Network Segmentation Controls K08: Secrets Management Failures K09: Misconfigured Cluster Components K10: Outdated and Vulnerable Kubernetes Components https://owasp.org/www-project-kubernetes-top-ten PABLO FREDRIKSON @pablokbs