EVITANDO un HACK de KUBERNETES - Mejores prácticas explicadas

Поделиться
HTML-код
  • Опубликовано: 11 сен 2024
  • Hoy voy a mostrar mi video sobre mi charla en nerdear.la, donde hackeé un cluster de pruebas y pude obtener acceso a una base de datos para tomar control de ella.
    Usá mi link para probar Cast.AI y ahorrar hasta un 70% en tu cuenta de nube: cast.ai/pelado...
    Slides: speakerdeck.co...
    ---
    Repo con todos los archivos que uso: github.com/pab...
    Merchandising Pelado Nerd: merch.peladone...
    Micrófono: Rode VideoMic NTG
    Cámara: Sony A7 Mark III
    Lente: Sony 28-70mm 3.5
    Laptop: Macbook Pro 16'' 2019
    Puedes encontrar todos mis links en peladonerd.com

Комментарии • 48

  • @matiasr2503
    @matiasr2503 11 месяцев назад +3

    Hola Pela. Tengo dudas sobre lo obtener secrets en runtime desde un servicio externo (pongamosle por ej vault). Para poder obtener los secretos del servicio externo, la app necesitaría además de una url de dicho servicio, permisos y autenticación a ese servicio, ya sea un service account montado en el pod con permisos en vault, un token, datos de una autenticación básica o lo que sea para que logre autenticar se en dicho servicio; por lo cual siempre se terminaría cargando al menos un secreto en el pod que seria potencialmente accesible (ya sea variable de entorno o archivo). En tal caso, si un infiltrado llega a poder correr una Shell dentro del pod, de todas formas ya estaría "hackeado", xq mediante esas credenciales si la descubre podrá acceder al servicio de credenciales y de este obtener otras credenciales (más allá que la app pueda tener una policy que restrinja el acceso a ciertas credenciales). No sé si me entiendes , si estoy errado y me estoy perdiendo de algo 😢 o que no me he dado cuenta y debo estudiar mas. Podrías hechar un par de palabras de luz sobre esto? Excelente siempre tus videos

    • @PeladoNerd
      @PeladoNerd  11 месяцев назад +18

      Como dije en el video, la seguridad es una suma de muchas prácticas, una sola práctica no hace tu entorno seguro o inseguro. Respondiendo tu pregunta concretamente, poniendo el ejemplo usando AWS:
      - Usar AWS secret manager para guardar los secretos. (de esta forma no ponemos secretos como ENV o como archivos en el pod)
      - Configurar IRSA para que el pod asuma un rol de AWS y pueda obtener esos secretos (de esta forma no ponemos credenciales de AWS como ENV o como archivo en el pod)
      - Usar una imagen de Docker que no tenga shell (para que no puedan hacer una reversa)
      - Usar IMDSv2 para que no se puedan obtener metadata sin credenciales
      - Configurar RBAC para que el pod no pueda hacer nada mas de lo que necesite hacer
      - Mantener actualizados tus paquetes de dependencias por las dudas que salga alguna vulnerabilidad
      Ahi yo creo que tenés varios agujeros cubiertos, vuelvo a repetir, esto no lo hace 100% seguro, pero definitivamente hace muy dificil que te hackeen si seguis todas estas prácticas. Saludos!

    • @matiasr2503
      @matiasr2503 11 месяцев назад +1

      Gracias pela! Excelente como siempre más claro que el agua 😊

    • @bryanmora4996
      @bryanmora4996 10 месяцев назад

      @@matiasr2503 Hay un operador que esta muy bueno que se llama ESO (External Secrets Operator) que por debajo usa cualquier proveedor de secretos que te guste (Secrets Manager, Vault, etc), guarda las credenciales como k8s secrets y los sincroniza automaticamente cuando ya no son validos, aun no lo he usado mucho pero parece ser una buena soluciona tu problema, saludos!

  • @jorgenksistemas
    @jorgenksistemas 11 месяцев назад +3

    Como estas Pelado, uso Cast hace unos meses y tiene buen soporte, en vez de hacerlo a manopla me hice un módulo con terraform y helm para automatizar el deploy de cast. Ahora me estoy peleando para correr instancias spot y ahorrar un poco más de costos, sobre todo en Argentina. Saludos!!!

  • @aquiles973
    @aquiles973 11 месяцев назад +2

    Estaba esperando esto hoy en día muchos usan KUBERNETES , excelente data gracias pelado. Un saludo grande.

  • @bryanmora4996
    @bryanmora4996 10 месяцев назад +1

    Hola Pelado, podrias hacer un video algun dia hablando sobre Pulumi? Lo he estado usando recientemente para el desarrollo de mi IaC y es taaan facil y comodo que me extrania que no mucha gente sepa de eso y sinceramente creo que necesita mas reconocimiento y mas ahora que obtuvo una Series C de financiamiento, asi que esperemos cosas mejores de ellos en el futuro, saludos

  • @VANTYCSolutions
    @VANTYCSolutions 11 месяцев назад

    Intersantísimo! oro molido Pelado, porque no haces una sesión hands on para crear un cluster autoadministrado (k0,3 u8) e irlo asegurando? romperías record de audiencia. Que tal se ve afectada la seguridad del 0 al 10 para un servicio a) autoadministrado y otro b) de un proveedor como linode o vultr por ejemplo? Conoces o recomiendas un servicio de escaneo de seguridad para el cluster? (tipo castai pero en lugar de costos, seguridad?).

  • @JoseElbioDarioVelazco
    @JoseElbioDarioVelazco 11 месяцев назад

    Impresionante como siempre Pela!!

  • @andresbravo161
    @andresbravo161 11 месяцев назад

    Pelado, te quería felicitar por tu presentación en Nerdearla, creo que fue la mejor! 😀

  • @ricardoid
    @ricardoid 11 месяцев назад

    Excelente video. Adicionalmente en el codigo de la aplicacion manipular cadenas secretas como un Array de caracteres y no como un String.

  • @gonzariosm
    @gonzariosm 10 месяцев назад

    Creo que aqui me salto una duda 13:09 si el pod no tiene internet tampoco deberia poder conectarse con tu shell y si tiene un SG que limita el outbound traffic tambien deberia fallar, no?
    Peladito eres una maravilla

  • @fedex602
    @fedex602 11 месяцев назад

    Pela, como siempre, excelentes las recomendaciones 👌🏽un craa

  • @svnchez9589
    @svnchez9589 11 месяцев назад

    Excelente video muy muy util ! Saludos desde el salvador.

  • @mauriciorondonfajardo4207
    @mauriciorondonfajardo4207 11 месяцев назад

    El final fue muy chistoso jajaja ¡Buen Contenido!

  • @balrogthanatos804
    @balrogthanatos804 11 месяцев назад +2

    La falta de validación de archivos es una vulnerabilidad clásica y común en aplicaciones web, especialmente en aquellas que utilizan PHP u otros lenguajes de servidor que permiten la carga y manipulación de archivos.

    • @alejandrosan
      @alejandrosan 11 месяцев назад

      De hecho cuando uno revisa las herramientas de pentesting sobre kubernetes/cloud/otros servicios al final terminan siendo un script de validación de la configuración. Cosas que con un poco de cuidado, buenas prácticas se solucionan.

  • @elrus0o
    @elrus0o 11 месяцев назад

    como data extra el metadata que usas para traer info de la vm tambien es compatible con openstack ya que utilizan un protocolo similar, por si alguien quiere hacer pruebas

  • @leoMLops
    @leoMLops 11 месяцев назад

    Manso video pela, abrazo!!

  • @gerardvalverde5179
    @gerardvalverde5179 9 месяцев назад

    Que maravilla de video

  • @kevindigranmontanezolmedo9297
    @kevindigranmontanezolmedo9297 11 месяцев назад

    Buen video, saludos desde Perú!

  • @arielqmdz
    @arielqmdz 11 месяцев назад

    Final Épico...! Jajajajaja

  • @dirceupavon
    @dirceupavon 11 месяцев назад

    Saludos Pelado, por curiosidad tienes alguna certificación de Kubernetes? me interesa saber que tan importantes son en el día a día y a la hora de buscar trabajo

  • @carlomagno55
    @carlomagno55 11 месяцев назад

    Hola Pelado, puse la IP de mi clúster pública y desplegué un nginx que tiene en la carpeta HTML el kubeconfig pero con nombre index.html, ¿Qué opinas?😂 Muchas gracias por compartir tantos conocimientos, definitivamente necesario ver tus videos, saludos desde Costa Rica

  • @txetxutnt
    @txetxutnt 3 месяца назад

    Claro! desde que pudiste subir una backshell o incluso podría haber sido un backdoor las puertas se abrieron.

  • @pinocodex
    @pinocodex 4 месяца назад

    Oe cual es esa app donde sacas snippes de commandos para el curl? Me molo un monto, podrias dajarte por aqui un link? Merci!

  • @JaminFernandez
    @JaminFernandez 11 месяцев назад

    Pelado cuando publican tu charla en Nedearla? ajaja

  • @Cristian-Guerrero
    @Cristian-Guerrero 10 месяцев назад

    Que tuviste que hacer para conseguir el título de cncf ambassador??

  • @círculoabierto182
    @círculoabierto182 10 месяцев назад

    Hola pelado, pregunta si tengo un ambiente controlado de integracion continua, cual seria la mejor manera de manejar los scripts, ejecucion de procedimientos, inserts updates, paquetes etc, esto con el fin de automatizar llevar control sobre una base de datos QA, agradezco tu respuesta. (el ambiente esta jenkins, gitlab, bd oracle)

  • @TheApilar
    @TheApilar 11 месяцев назад

    Un abrazo desde Ecuador, pregunta si tengo levantado un bastión pero con la VPN, estará seguro el clúster 🤔

  • @johnedissonortizroman2886
    @johnedissonortizroman2886 11 месяцев назад

    Quiza usar imagenes distroless podria ayudar a evitar un ataque de este tipo?

  • @sauljabin
    @sauljabin 11 месяцев назад

    Excelente video

  • @kazapeke
    @kazapeke 11 месяцев назад

    jajajaj super especifico ese numero del final

  • @tutorialeshonestos
    @tutorialeshonestos 10 месяцев назад

    Me convenciste, yo ponía mis manos al fuego por kubernates 🔥

  • @riderguerrero2963
    @riderguerrero2963 10 месяцев назад

    bro, saludos, .. requiero de tu ayuda.. deseo instalar una maquina (local) para compartir mis videos a traves de rclone, dame una idea de como hacerlo... agradeciendo de antemano tu colaboracion.. me ayudarias un monton....un abrazo

  • @MEJA98
    @MEJA98 11 месяцев назад

    Hola, mucha gracias por el vídeo.
    Tengo una duda, como se hizo para ejecutar el script que lanza el shell reverse?
    Si el servicio almacena archivos, como fue capaz de ejecutar el script?
    Tiene permisos de ejecución?

    • @PeladoNerd
      @PeladoNerd  11 месяцев назад

      Simplemente visité la página apuntándole al script y PHP lo ejecutó

    • @MEJA98
      @MEJA98 11 месяцев назад

      @@PeladoNerd gracias Pelado

  • @gguestdub3518
    @gguestdub3518 11 месяцев назад

    Hola peladito que tal sos mi mentor queria que sepas eso y por otro lado quiero hacerte una consulta o una ayuda, como hago para asignar una IP a un contenedor pero que siempre sea esa IP asi reinicie el docker o asi reinicie el sistema anfitrion pase lo que pase quiero que mantenga esa IP que yo le asigne como haria?

    • @Murzbul
      @Murzbul 9 месяцев назад

      Buenas! Eso que comentas no tendria sentido.
      Para mantener una IP unica por ejemplo estando en un cluster de alguna nube directamente podes utilizar un Service como LoadBalancer. En ese caso ese LoadBalancer es un recurso concreto de cada nube que te genera la IP publica unica.

  • @alegorosito
    @alegorosito 11 месяцев назад

    Nunca nos nos pasó que nos hayan puesto a minar en un server con un CMS brasilero de mapas de extraña procedencia 😆

  • @erickr9272
    @erickr9272 11 месяцев назад

    Muy buen ejemplo 😬, se ve la maldad en tu risa 😬

  • @AdrianoChiliseo
    @AdrianoChiliseo 11 месяцев назад

    PeladoHacker,PeladoNinja,PeladoRedHat,PeladoBlackHack

  • @miguelmateos6656
    @miguelmateos6656 11 месяцев назад

    Aaaaa eso nada más tu lo sabes, cómo crees que la gente normal va a poder saber eso, creo que necesitas ser un nerd, no tener vida social y estudiar mucho para tener este nivel de conocimientos, yo si pude hackear varios sitios pero solo cuando antes no era tan avanzado como ahora

  • @kernelpanic3520
    @kernelpanic3520 11 месяцев назад

    iptables -A INPUT -p tcp --dport-kuberenetes-only-god-knows -j DROP --update-you-resume --send-automatic-resign-letter , listo! estoy contratado?

    • @TheApilar
      @TheApilar 11 месяцев назад

      Lo veo bien , pero hay que probarlo