Como seguramente algunos de vosotros ya habéis visto en redes sociales, telegram o algún otro medio, la semana que viene impartiré el curso de Hardening en infraestructuras basadas en microservicios. Se trata de un curso online en directo con una duración de 20 horas. Esto significa que las clases se llevarán a cabo en modalidad virtual y podréis ver en todo momento mi pantalla, escucharme hablar y plantear preguntas. Aunque quedan pocas plazas no quería dejar pasar esta oportunidad para escribir un post sobre lo que se verá exactamente en ésta formación y por qué (en mi opinión, por supuesto) te puede resultar interesante moverte al mundo del SecDevOps. Así que, vamos por partes.
¿Qué es eso del SecDevOps?
El término de DevOps es relativamente reciente. Se trata de un perfil profesional que responde a las necesidades que tienen las infraestructuras modernas relacionadas con la alta disponibilidad, rendimiento y correcta gestión de los despliegues. Se trata de un perfil en el que se ha intentado integrar la perspectiva de sistemas/operaciones y desarrollo para tener un control mucho más preciso de la infraestructura. Tal como yo lo veo, esto puede tener 2 lecturas, dependiendo evidentemente de la visión/filosofía/cultura empresarial del sitio en el que trabajes.
a) Un tío que viene aquí a hacer el trabajo de 2 cobrando lo de 1. Da igual que sepa o no (aunque si sabe, mejor que mejor), que es el que resuelve los problemas que se van produciendo y si hace falta, curra 16 horas en una jornada. Lo importante es precisamente el primer factor, el de que cobra como desarrollador y hace las funciones de un developer y sysadmin. Este es el hombre orquesta.
b) Un profesional que hace parte de un equipo bien formado, con conocimientos, habilidades y experiencia en ciberseguridad y despliegue de aplicaciones. Que sabe lo que cuesta su trabajo y que sobre todo, sabe que tiene que estar atento a novedades que van surgiendo para aplicarlas en su día a día. Se trata de un perfil que normalmente tiene una amplia experiencia en administración de sistemas y/o arquitectura de software, además de una actitud con un claro enfoque a la investigación y al "cacharreo".
El caso "a" evidentemente será común ya que hay empresas en las que por diferentes motivos es más importante el factor económico que la calidad/seguridad y otras cuestiones "no tangibles". El segundo caso será el que nos interesa y un perfil de esas características es cada vez más requerido. Ahora, dado que los despliegues que se realizan en cualquier arquitectura basada en microservicios, también requieren unos mínimos de seguridad, el perfil de "SecDevOps" viene cubrir dicha necesidad. Se trata de un perfil que es cada vez más demandado en empresas de IT, pero también es de los más difíciles de cubrir dado el nivel de conocimientos necesarios. No obstante, es el camino natural para una persona que ha pasado de Desarrollo/Sistemas a ciberseguridad y en mi opinión, aporta una imagen mucho más amplia de todo el ciclo de despliegues y puesta en producción de aplicaciones.
Evidentemente el conocimiento cuesta y como siempre digo, puedes saber mucho sobre cuestiones técnicas, pero si no sabes valorar tu trabajo correctamente, difícilmente conseguirás una buena relación entre el esfuerzo que te supone aprender algo (especialmente con el nivel de dificultad que tiene el mundo de la tecnología) y la compensación recibida por ese esfuerzo (sin tener en cuenta la "remuneración emocional" de hacer lo que te gusta, por supuesto que eso va por aparte).
Cuando se habla de algo tan especifico como SecDevOps o DevSecOps, da igual cómo lo llaméis, nos encontramos con una curva de aprendizaje bastante alta, incluso si ya sabes algo de seguridad porque el enfoque cambia mucho con respecto a las aplicaciones monolíticas tradicionales y te guste o no, es lo que se está imponiendo ahora mismo. No se trata simplemente de una moda pasajera, cuando ves organizaciones tan potentes como MicroSoft, Google, Amazon, entre muchas otras apostar por este tipo de infraestructuras invirtiendo enormes cantidades de dinero es porque muy seguramente "por ahí van a venir los tiros".
Dicho esto, la formación la tengo estructurada de la siguiente forma.
Primer día, viernes 26 de Junio.
Empezamos con una introducción rápida a Docker, sobre todo para ver los comandos básicos del cliente y cómo crear rápidamente contenedores, en esto dedicaremos poco tiempo para aprovechar mejor la formación y centrarnos en cosas más interesantes. Si no sabes Docker, te recomiendo que le eches un vistazo al curso de DevOps con Docker que he publicado en Udemy: aquí. Avanzamos hacia temas más interesantes como por ejemplo la posibilidad de securizar las conexiones, el uso de perfiles SecComp y AppArmor, crear registros de imágenes con autenticación, securizar el demonio DockerD con TLS y alguna otra cosilla más.
Segundo día, sábado 27 de Junio.
Este es el día en el que se verá la mayor cantidad del contenido. Se hablará aún más de Docker-compose y una introducción a Docker Swarm, seguridad con DCT y algunos casos prácticos de Hardening en contenedores e imágenes Docker. También veremos cómo realizar procedimientos de pentesting básicos contra contenedores y qué técnicas se pueden aplicar para defendernos de ataques en estos entornos. A continuación seguirá mi parte favorita. Hablaremos de todos los componentes que hacen parte de Kubernetes desde un punto de vista teórico y práctico (Deploys, Services, PODs, Ingress, ReplicaSets, DaemonSets, entre otras cosas). Veremos cómo desplegar un cluster con varios nodos y cómo securizar los "control plane" de K8S.
Tercer día, domingo 28 de Junio.
Seguimos cacharreando con Kubernetes. Veremos la gestión de secretos que tiene integrada K8S y las alternativas disponibles para mejorarla, gestión de accesos por medio de RBAC, hardening con la Access API, cómo habilitar el mecanismo de auditoría integrado en K8S, cómo hacer un "cifrado de secretos al vuelo" y herramientas de pentesting específicamente diseñadas para entornos K8S y otros orquestadores.
Como podéis ver es un contenido muy completo y me he esforzado para que sea de provecho y muy útil a cualquier persona que quiera enfocar su trayectoria profesional a la seguridad en estos entornos. Tienes toda la información del curso en el siguiente enlace: https://www.securizame.com/curso-online-hardening-en-contenedores-docker-y-arquitecturas-basadas-en-microservicios/
Por último, pero no menos importante, he creado un grupo en Telegram para los que estéis interesados en todo lo relacionado con SecDevOps al que os podéis unir libremente. https://t.me/SecDevOpsHispano
Un saludo y Happy SecDevOps Hack! xD
Adastra.