Categorías
Ciberinteligencia devsecops Hacking

Plan Starter en Ciberseguridad (PSC): El AntiBootcamp de la ciberseguridad

Hace algunas semanas hemos lanzado el AntiBootcamp en ciberseguridad, el cual, como ya te imaginas, es todo lo contrario a lo que te ofrecen algunas academias que se dedican a vender ese tipo de formación.

¿En qué consiste?

Es un plan de formación completo y personalizado con enfoque en dos áreas: La parte técnica, que consiste en aprender lo necesario para trabajar en ciberseguridad y, por otro lado, la parte de «soft-skills» con ejercicios prácticos para que aprendas a destacar en los procesos de selección o mejores tu estrategia profesional.

Esto es a grandes rasgos.

Para que entiendas el motivo de llamarle «AntiBootcamp», mira la siguiente tabla comparativa:

Academias en España vendiendo Bootcamps en ciberseguridad AntiBootcamp en ciberseguridad: Plan PSC de THW
€7000 o más Menos de €2000.
3 meses y se olvidan de ti. Si te he visto no me acuerdo. 6 meses y te acompañamos hasta que consigas el objetivo planteado en el momento de iniciar el plan.
Clases a 20 personas o más. Acceso a todos los cursos disponibles en THW y los que se publicarán a lo largo del 2024. Además, tendrás clases personalizadas, uno a uno, sobre los temas en los que necesites refuerzo.
Conocimientos básicos sobre informática y nociones generales de ciberseguridad. Conocimientos específicos sobre lo que necesitas para trabajar en ciberseguridad.
Las personas que trabajan en esos sitios carecen de contactos y experiencia en el sector de la ciberseguridad. Se dedican a venderte el curso, ese es su negocio.
Buscan un sitio donde impartir las clases, un profesor para que te enseñe cosas básicas y te cobran un pastizal por ello. No hacen nada más por ti. 
Tenemos contactos y experiencia contrastada en el sector. Nos dedicamos a proyectos reales en ciberseguridad y desarrollo seguro, no solo a vender cursos.
Se acabó el bootcamp.
«Lo has hecho muy bien, campeón, ¡enhorabuena!
Te deseamos suerte en tu búsqueda de trabajo»
Te preparamos para afrontar entrevistas técnicas y de RRHH mediante ejercicios y simulaciones con profesionales del sector.
/dev/null Estaremos a tu lado hasta que consigas el objetivo planteado al inicio del programa. El plan no termina hasta que alcances el objetivo previsto.
/dev/null Si es lo que deseas, te ponemos en contacto con empresas que buscan un perfil como el tuyo y te ayudamos con ejercicios prácticos orientados a mejorar tus «soft skills».
/dev/null Acompañamiento continuo y ayuda en la elaboración de tu estrategia profesional.

Seguramente con esto te queda mucho más clara la finalidad del «AntiBootcamp» y lo que nos diferencia del resto de academias que venden cursos caros.

Vas a contar con profesionales del sector de RRHH que te ayudarán a identificar tus debilidades y fortalezas en los procesos de selección.

Te diremos exactamente cómo mejorar tu empleabilidad y, no solo eso, nos implicaremos contigo desde el primer momento.

Si en tu caso concreto, buscas mejorar profesionalmente, ya sea en la empresa en la que te encuentras o quieres moverte a otra, también podemos ayudarte a conseguir ese objetivo.

Si te interesa, pero tienes dudas, puedes ponerte en contacto enviando un email a info@thehackerway.com

Por último, cerramos esta convocatoria del plan el 30 de abril del 2024, por lo que te recomiendo que te apuntes o contactes con nosotros antes de esa fecha.

Aunque la convocatoria cierra ese día, una vez adquieres el PSC, puedes elegir la fecha de inicio con total flexibilidad.

¡Nos vemos en el AntiBootcamp!

¡Un saludo y Happy Hack!
Adastra.

Categorías
devsecops Hacking Services - Software Web Applications

Resumen de la guía OWASP Top 10

Si te dedicas al Hacking web o pretendes hacerlo, sin duda tendrás que pasarte por la comunidad OWASP y, muy especialmente, aprender la guía OWASP Top 10.

Se trata de un proyecto que enseña la evolución de las tecnologías web en los últimos años, ya que viendo los cambios que se van introduciendo en cada versión, ves cómo algunas vulnerabilidades que antes se consideraban críticas y comunes, con el paso del tiempo dejan de ser tan frecuentes.

La guía refleja las vulnerabilidades que, según la opinión de múltiples comunidades y empresas del sector, son las más peligrosas en el mundo de las aplicaciones web.

Se trata de una lista que se genera tras un proceso de votación, donde se valoran factores tan importantes como la facilidad de detectar y explotar el defecto, su impacto y el riesgo.

Si bien es cierto que se suele hablar mucho de esta guía, he notado que en ocasiones algunas personas no tienen del todo claro algunas de las categorías descritas, por ese motivo en esta infografía, explicaré de una forma clara y concisa cada una.

Ahora mismo, la última guía publicada es del 2021, pero, toma nota: En septiembre del 2024 se publicará una nueva versión.

Las categorías son:

A1-2021: Broken Access Control

Se produce cuando la aplicación web no controla adecuadamente el acceso a funcionalidades o secciones de la aplicación web. Puede conducir a la elevación de privilegios o suplantación de la identidad de un usuario. Es un problema muy habitual en las aplicaciones web y se puede solucionar implementando controles RBAC (Role-Based Access Control) y probando que están correctamente implantados.

A2-2021: Cryptographic Failures

Antes era conocida como «Sensitive Data Exposure», pero se ha renombrado, ya que la exposición de datos sensibles es el resultado de malas prácticas, no el problema en sí. En esta categoría se expone el hecho de que la información sensible se debe cifrar para evitar fugas y problemas sobre la confidencialidad de la información.

A3-2021: Injection

Es la vulnerabilidad clásica que vemos desde los orígenes de la guía, sin embargo, en esta última versión, se ha fusionado con la categoría de «Cross-Site Scripting (XSS)». Ahora hace referencia a cualquier problema de inyección, tanto en el servidor como en el cliente

A4-2021: Insecure Design

Esta categoría es nueva y trata de centrar la atención en el problema de seguridad real que sufren prácticamente todas las aplicaciones web: Diseño inseguro.
Tal como se describe en la guía, se recomienda aplicar esquemas de modelos de amenazas y el DevSecOps en los proyectos.

A5-2021: Security Misconfiguration

Hace referencia a configuraciones inseguras en lenguajes de programación, frameworks, librerías, servidores y cualquier componente que haga parte de la aplicación.

A6-2021: Vulnerable and Outdated Components

Refleja el hecho de que, en muchas ocasiones, las aplicaciones web desplegadas utilizan componentes con vulnerabilidades conocidas.

A7-2021: Identification and Authentication Failures

Hace referencia a todos los problemas que se pueden presentar en la autenticación de los usuarios. No solamente en los formularios de login, en esta categoría también se incluyen otras funcionalidades que de forma indirecta afectan al mecanismo de autenticación, como la forma en la que un usuario recupera su contraseña olvidada.

A8-2021: Software and Data Integrity Failures

Se trata de una categoría nueva que describe los problemas de asumir datos críticos, actualizaciones de software y parámetros en procesos de CI/CD sin verificar la integridad.

A9-2021: Security Logging and Monitoring Failures

Se relaciona con la falta de vigilancia y control sobre los eventos que se producen en la aplicación. La ausencia de herramientas de monitorización o no revisar continuamente los eventos generados, hace que tenga sentido esta categoría.

A10-2021: Server-Side Request Forgery

Gracias al auge de las arquitecturas basadas en microservicios y APIs Rest, es habitual que una aplicación reciba datos de otra para realizar algún tipo de procesamiento. El problema está en que si esos datos inicialmente provienen de una fuente no confiable y no se validan correctamente, puede afectar a la seguridad de ambas aplicaciones.

Algunas no son nuevas y vienen de versiones anteriores, mientras que otras se han renombrado para dar una connotación más clara del problema en cuestión.

Es una guía que, en mi opinión, es de obligado conocimiento por parte de cualquiera que se dedique al mundo de la ciberseguridad, es por ello que te recomiendo los cursos de Hacking web con ZAP y el pack que incluye, además, la formación de Hacking contra APIs Rest, todos ellos disponibles en la plataforma THW.


 

Recuerda que tienes todas las formaciones y packs de The Hacker Way.

Las mejores formaciones en castellano que podrás encontrar y al mejor precio.
No lo digo yo, puedes ver las reseñas en el sitio web.

Más de 500 alumnos han aprovechado los cursos online en THW y tú también podrías ser uno de ellos: https://thehackerway.es/cursos

Además de los cursos y la comunidad THW, tenemos el Plan Starter en Ciberseguridad (PSC) con el que no solo aprenderás Hacking ético, además adquirirás las habilidades necesarias para trabajar en el sector de la ciberseguridad.
Ya sea que seas un trabajador en activo o busques una primera experiencia, en THW podemos ayudarte mediante el plan PSC. Tienes más información en este enlace

¡Un saludo y Happy Hack!
Adastra.

Categorías
devsecops Hacking Services - Software

Monta tu entorno para Hacking Web con Docker

Si quieres aplicar técnicas de Hacking Web, necesitas un entorno de pruebas.
Aunque es cierto que tienes plataformas como HackTheBox, TryHackMe o VulnHub, en ocasiones te encuentras con retos que nada tienen que ver con lo que estás estudiando en ese momento o en los que no puedes probar una técnica concreta.
En esos casos, lo más habitual es montar tu propio entorno con aplicaciones web vulnerables por diseño, que hay muchas.
El problema que te encuentras es que muchas de estas aplicaciones requieren que instales una base de datos, un servidor web y apliques ciertas configuraciones para que todo funcione y eso lleva tiempo, además, si quieres montar múltiples aplicaciones el esfuerzo y la dificultad es mayor.

Es justo este uno de los casos en los que Docker te puede servir para montar tu entorno fácil y rápidamente.

¿Qué necesitas?

Solo dos cosas, el servicio de Docker correctamente instalado y crear contenedores para las aplicaciones web vulnerables que quieras usar.
Ya está. Es un proceso simple y que te ahorrará varias horas de trabajo si quieres montar el entorno desde cero.
Además de las aplicaciones web vulnerables, también puedes montar herramientas que te servirán para realizar pruebas y aplicar técnicas, nuevamente Docker puede ser útil para ese propósito.

¿Cómo lo montas todo?

Puedes ejecutar los siguientes comandos para montar cada una de las aplicaciones web vulnerables que se listan a continuación

• Damn Vulnerable Web Application (DVWA) en el puerto 8080:
docker run –name dvwa –rm -it -d -p 8083:80 vulnerables/web-dvwa

• Juice Shop en el puerto 3000:
docker run –rm -it -d -p 3000:3000 bkimminich/juice-shop

• WebGoat en el puerto 8081:
docker run –rm –name webgoatandwolf -d -p 8082:8080 -p 9090:9090 -e TZ=Europe/Amsterdam webgoat/goatandwolf

• Mutillidae en el puerto 81:
git clone https://github.com/webpwnized/mutillidae-docker && cd mutillidae-docker && docker-compose up -d

Hay muchas más aplicaciones web con vulnerabilidades, pero con estas es suficiente para tener un pequeño laboratorio de pruebas.
Si quieres aprender a montar tus propios entornos vulnerables, aplicaciones de Hacking, dominar Docker y ser más productivo con esta tecnología, te recomiendo el curso de Docker aplicado a la ciberseguridad. Se trata de un curso corto y 100% práctico y si aprendes esta tecnología en profundidad, te aseguro que para muchas cosas no volverás a perder el tiempo en instalaciones complejas y configuraciones que en ocasiones son un auténtico quebradero de cabeza.


Recuerda que tienes todas las formaciones y packs de The Hacker Way.

Las mejores formaciones en castellano que podrás encontrar y al mejor precio.
No lo digo yo, puedes ver las reseñas en el sitio web.

Más de 500 alumnos han aprovechado los cursos online en THW y tú también podrías ser uno de ellos: https://thehackerway.es/cursos

Por otro lado, puedes registrarte en la comunidad THW: https://comunidad.thehackerway.es/registro

En este sitio web recibirás anuncios sobre ofertas de trabajo y novedades del sector, además podrás participar en los foros y chat.
Puedes acceder a los cursos cortos y artículos con una suscripción: https://comunidad.thehackerway.es/suscripcion
Los contenidos a los que tendrás acceso te serán útiles para comprender por qué no consigues trabajo en el sector o mejoras profesionalmente y, por supuesto, proponerte ideas para mejorar esa situación.

¡Un saludo y Happy Hack!
Adastra.

Categorías
devsecops Hacking

Las mejores imágenes Docker para Hacking y Ciberseguridad

Vídeo en YouTube

Docker es una tecnología interesante por varios motivos, pero su facilidad de uso y la posibilidad de desplegar aplicaciones rápidamente, es una de sus características más llamativas.

Si te fijas en la cantidad de imágenes que se encuentran disponibles en DockerHub, te darás cuenta de la buena «salud» de este proyecto. Aunque originalmente su objetivo era el de facilitar la vida a los desarrolladores, con el tiempo se han ido creando y distribuyendo imágenes Docker orientadas a diferentes ámbitos de la informática, entre los que se incluyen la ciberseguridad.
En mi opinión, las imágenes más interesantes que están orientadas al pentesting/hacking y ciberseguridad en general son las siguientes.

  • Kali Linux

    Esta es una de las imágenes más populares en DockerHub relacionadas con la ciberseguridad. Kali Linux es una distribución de Linux especializada en pentesting y auditoría de seguridad.

  • OWASP ZAP

    Herramienta de pentesting sobre aplicaciones web que puede usarse como proxy web. La imagen Docker de esta herramienta cuenta con varios scripts en Python que permiten automatizar su uso, especialmente con aplicaciones de CI/CD

  • Snort

    Se trata de una solución que permite la detección de intrusos en entornos de red.

  • Metasploit Framework

    Framework con utilidades orientadas a la detección y explotación de vulnerabilidades. La imagen Docker de Metasploit se puede utilizar para ejecutar esta herramienta desde un contenedor.

  • OpenVAS

    Se trata de un escáner de vulnerabilidades de código abierto que, entre otras cosas, cuenta con una interfaz web y es altamente configurable.

  • KrakenRDI

    Se trata de un conjunto de imágenes Docker que contienen herramientas de Hacking y Pentesting. Cada una de dichas imágenes cuenta con herramientas especializadas en una etapa concreta de una auditoría o campaña de Red Team.

  • Security Onion

    Es una distribución de Linux especializada en la detección y respuesta a incidentes de seguridad. Destaca por contar con varias herramientas orientadas a la detección de amenazas y trazabilidad.

  • Wazuh

    Es una plataforma del tipo SIEM que ayuda en el proceso de detección de amenazas, respuesta a incidentes y cumplimiento de seguridad. Es capaz de categorizar los eventos con las técnicas y tácticas definidas en el Mitre ATT&CK

  • OSQuery

    Es una herramienta que permite recolectar eventos de seguridad a nivel de host, ampliamente extendida y de código abierto.

  • Suricata

    Sistema de detección y prevención de intrusos basado en firmas. Es opensource y está diseñado para ofrecer un alto rendimiento y consumo mínimo de recursos

Todas estas imágenes las puedes descargar y usar en tu entorno rápidamente, sin embargo, hay que recordar que la gestión de contenedores es una labor compleja y, precisamente por esa razón, existen orquestadores como Kubernetes, que, entre otras cosas, permite una gestión dinámica de dichos espacios. Si bien tradicionalmente se ha relacionado con Docker, las últimas versiones de Kubernetes tienen un amplio soporte a otras soluciones tales como CRI-O y ContainerD.
Kubernetes es una de las tecnologías más demandadas por las empresas en los últimos años, por lo que es posible que te interese aprender cómo funciona y todas sus características. Si ese es el caso, te recomiendo que te apuntes al curso de Kubernetes aplicado al DevSecOps que tenemos disponible en THW, pensado para aprender esta tecnología desde cero y orientado a utilizarlo de forma segura.


Recuerda que puedes registrarte en la comunidad THW: https://comunidad.thehackerway.es/registro

En este sitio web recibirás anuncios sobre ofertas de trabajo y novedades del sector, además podrás participar en los foros y ganar premios por ello.
Puedes acceder a los cursos cortos y artículos con una suscripción: https://comunidad.thehackerway.es/suscripcion
Los contenidos a los que tendrás acceso te serán útiles para comprender por qué no consigues trabajo en el sector o mejoras profesionalmente y, por supuesto, proponerte ideas para mejorar esa situación.

Por otro lado, también tienes todas las formaciones y packs de The Hacker Way. Las mejores formaciones en castellano que podrás encontrar. Y no lo digo yo, puedes ver las reseñas en el sitio web. Más de 500 alumnos han aprovechado los cursos online en THW y tú también podrías ser uno de ellos: https://thehackerway.es/cursos

¡Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion devsecops Hacking Services - Software

Lista de comandos útiles con «kubectl» para administrar un cluster de Kubernetes

Vídeo en YouTube

Cuando trabajas con Kubernetes, es habitual utilizar el comando kubectl para aplicar ficheros «manifest» o consultar información sobre el cluster y sus componentes, es por ese motivo que viene bien conocer los comandos más habituales para K8S con kubectl.
Kubernetes no es una tecnología sencilla, está lejos de serlo y, en mi opinión, la curva de aprendizaje es elevada. No obstante, en los últimos años se ha convertido en el orquestador por excelencia y si te dedicas al DevSecOps, es más que recomendable conocerlo y saber cómo funciona. Aunque es una tecnología moderna, en realidad se basa en conceptos que son ampliamente extendidos en redes desde hace varios años, tales como el balanceo de carga, routing meshing y el escalado de servicios.

A continuación, enumero algunos de los comandos más útiles para administrar un cluster de K8S.

  • kubectl cluster-info → Información del cluster
  • kubectl config view → Configuración utilizada actualmente en el cluster
  • kubectl api-resources → Listado de api-resources disponibles, útil para saber qué esquemas puedes usar en tus manifiestos de K8S
  • kubectl api-versions → Listado de las versiones de APIs disponibles en tu cluster
  • kubectl get all –all-namespaces → Obtener todos los objetos disponibles en el cluster, sin filtrar por namespaces. Aporta información abundante
  • kubectl create namespace “NOMBRE_NAMESPACE” → Te permite crear un namespace nuevo
  • kubectl get namespace “NOMBRE_NAMESPACE” → Lista los namespaces disponibles o información de un namespace concreto si se indica su nombre
  • kubectl get deployment → Listado de todos los deployments disponibles
  • kubectl describe deployment “NOMBRE_DEPLOYMENT” → Enseña información detallada sobre un deployment concreto
  • kubectl edit deployment “NOMBRE_DEPLOYMENT” → Permite modificar el manifiesto del deployment especificado
  • kubectl create deployment “NOMBRE_DEPLOYMENT” → Crear un nuevo deployment
  • kubectl delete deployment “NOMBRE_DEPLOYMENT” → Eliminar un deployment existente
  • kubectl rollout status deployment “NOMBRE_DEPLOYMENT” → Enseña el estado de rollout para un deployment concreto
  • kubectl get events → Lista los eventos que se han producido recientemente
  • kubectl top pod → Enseña los POD que consumen más recursos (memoria, CPU y almacenamiento)
  • kubectl logs –since=1h “NOMBRE_POD” → Enseña los logs producidos en la última hora para el POD especificado
  • kubectl top node → Enseña los nodos de tu cluster que consumen más recursos (CPU, memoria y almacenamiento)
  • kubectl cordon node “NOMBRE_NODO” → Marca el nodo especificado como “no planificable”. Dicho nodo no recibirá cargas de trabajo por parte del Control Plane de Kubernetes
  • kubectl uncordon node “NOMBRE_NODO” → Si el nodo especificado se encontraba en estado “no planificable”, este comando lo devuelve a su estado normal. Dicho nodo estará preparado para recibir cargas de trabajo por parte del Control Plane de Kubernetes
  • kubectl drain node “NOMBRE_NODO” → Marca el nodo especificado en estado de mantenimiento

Si administras un cluster de Kubernetes, te recomiendo que tengas esta lista a mano, son comandos útiles que vienen muy bien para consultar información o realizar actividades de gestión.

Por otro lado, si lo que has leído en este post te ha sonado a chino, pero quieres aprender, te recomiendo el curso de Introducción a Kubernetes aplicado al DevSecOps.
Es una formación en la que empiezas con los conceptos básicos y la instalación de un cluster desde cero y, poco a poco, vas avanzando hasta llegar a la parte de securización propiamente dicha. Es un curso muy completo, que estoy seguro te gustará si realmente estás interesado en esta tecnología.

 


 

Recuerda que puedes registrarte en la comunidad THW: https://comunidad.thehackerway.es/registro

En este sitio web recibirás anuncios sobre ofertas de trabajo y novedades del sector, además podrás participar en los foros y ganar premios por ello.
Puedes acceder a los cursos cortos y artículos con una suscripción: https://comunidad.thehackerway.es/suscripcion
Los contenidos a los que tendrás acceso te serán útiles para comprender por qué no consigues trabajo en el sector o mejoras profesionalmente y, por supuesto, proponerte ideas para mejorar esa situación.

Por otro lado, también tienes todas las formaciones y packs de The Hacker Way. Las mejores formaciones en castellano que podrás encontrar. Y no lo digo yo, puedes ver las reseñas en el sitio web. Más de 500 alumnos han aprovechado los cursos online en THW y tú también podrías ser uno de ellos: https://thehackerway.es/cursos

¡Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion devsecops Hacking Networking Services - Software

5 plugins imprescindibles para administrar y securizar Kubernetes

Demostración en vídeo de este post:

En el post anterior sobre cómo administrar tu cluster de Kubernetes con Krew, he explicado el uso de este gestor de complementos en K8S y ahora, en este post, vamos a ver 5 plugins que considero imprescindibles para la administración y securización de un cluster.
Sin más preámbulos, son estos:

1- RBAC-Tool

Cuando se trata de la gestión de accesos mediante roles (Role-Based Access Control), contar con esta herramienta resulta fundamental. El motivo de esto, es que la gestión de estos objetos se puede complicar mucho en la medida en la que el cluster va creciendo. Gracias a este complemento, se simplifica muchísimo la creación y gestión de políticas RBAC en el cluster de K8S.
Con RBAC-Tool, se pueden realizar consultas sobre «quién puede» acceder a los recursos del entorno y verificar si estos accesos son correctos, además, cuenta con una opción para generar una imagen en formato PNG con todas las políticas de seguridad que se han aplicado en el entorno.

2- Access-Matrix

Se trata de otro complemento que se puede instalar fácilmente con Krew y que permite generar una matriz con los recursos a los que se puede acceder en un namespace. Genera una tabla que indica el nombre, clase, namespace y CRUD para el recurso indicado. De esta manera, es posible visualizar si el usuario con el que se ejecuta el comando tiene más permisos de los que debería. Se puede ejecutar sobre un namespace concreto y se puede filtrar por tipo de recurso y «verb», que es la operación que nos interesa consultar (create, get, list, watch, update, etc).

3- np-viewer

Es una herramienta que permite visualizar la topología red de un clúster de Kubernetes. Ejecutando este complemento se pueden ver las conexiones entre pods, servicios y otros recursos dentro de un clúster en un formato gráfico.

Dado que la información que enseña es muy concisa, ayuda a comprender y visualizar como se comunican los PODs dentro de un cluster, independiente del complemento CNI utilizado.
Un beneficio de seguridad del complemento np-viewer es que ayuda a solucionar problemas de red dentro de un clúster. Por ejemplo, si hay problemas de conectividad entre pods o servicios, este  complemento ayuda a detectar dichos problemas ya que enseña las conexiones existentes entre esos recursos y las políticas de red aplicadas.

4- ksniff y capture

Ksniff sirve para capturar y analizar el tráfico de red en un clúster de Kubernetes, funciona como cualquier otro sniffer de red como Wireshark o TCPDump, con la diferencia de que se ejecuta dentro del cluster. Se puede usar para solucionar problemas de red, detectar patrones de tráfico y realizar comprobaciones de seguridad.

Con este complemento es posible capturar y analizar el tráfico sin tener que acceder directamente a los nodos de un clúster, lo cual puede ser útil en situaciones en las que no se tiene acceso directo o no se quiere trabajar sobre dichas máquinas.
Con sniff se puede mejorar la seguridad de un clúster de Kubernetes ya que permite identificar problemas y vulnerabilidades relacionadas con la red, además, a diferencia de Wireshark o TCPDump, está diseñado para entornos K8S, en donde la comunicación se puede realizar entre servicios, PODs, despliegues, etc.

Se trata de un complemento interesante, desafortunadamente, en versiones superiores a Kubernetes 1.24 no funciona correctamente.

Dado que sniff es un complemento que no funciona correctamente en versiones actualizadas de K8S, la alternativa es el complemento «capture», el cual se encarga de capturar el tráfico durante un período de tiempo determinado y, cuando dicho tiempo finaliza, genera un fichero de captura que se puede abrir posteriormente con la herramienta sysdig-inspect. No obstante, hay que tener en cuenta que para ejecutar este complemento se deben tener privilegios altos en el cluster. Una se genera el fichero por parte del complemento en el sistema host, se puede analizar con la utilidad sysdig-inspect, lo cual se puede hacer fácilmente levantando un contenedor Docker de la siguiente forma

docker run -d -v /path/to/captures:/captures -p8080:3000 sysdig/sysdig-inspect:latest

5- Stern

Se trata de un complemento de kubectl que funciona de manera muy similar a ‘tail -f’ en Linux. A diferencia de kubectl log -f, que tiene algunas limitaciones, Stern permite filtrar por el ID del pod o del contenedor, además, soporta expresiones regulares.
Puede ser útil para operaciones de DevSecOps, ya que permite observar la actividad de cada uno de los componentes del cluster, como por ejemplo, los procesos de autenticación que se llevan a cabo en un tiempo determinado (por ejemplo, los últimos 20 minutos).

kubectl stern -t –since 20m auth

En el listado de complementos que se pueden instalar con Krew hay más de 200 a la fecha de redactar este post, por lo que hay bastantes más que son interesantes. En este artículo simplemente me he enfocado en aquellos que son muy útiles para las actividades de DevSecOps que se realizan sobre un cluster de Kuberntes.

Espero que te sea útil y, si conoces algún otro complemento que consideres importante o necesario para la administración de un cluster, por favor, indícalo en los comentarios.

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion devsecops Hacking

Cómo administrar tu cluster de Kubernetes con Krew

Demostración en vídeo de este post

Kubernetes no es una tecnología fácil de dominar, por ese motivo resulta conveniente primero, aprender muy bien los conceptos fundamentales y su arquitectura, y luego, las herramientas que giran entorno a su ecosistema. Si has tenido que gestionar un cluster de K8S, ya sea on-premise o en alguno de los tantos proveedores en la nube que se encuentran disponibles, lo más probable es que hayas tenido que trabajar con «kubectl», es la herramienta por excelencia para hacer cualquier tipo de operación en Kubernetes.

Aunque el comando kubectl funciona estupendamente y es fundamental aprender a usarlo, para ciertas operaciones se queda corto y es por ese motivo que en esta ocasión quiero hablaros de Krew.
En cualquier sistema basado en Linux has utilizado gestores de paquetes como «apt», «yum», «packman» o «apk», son utilidades que te permiten gestionar software. Krew funciona igual que estas utilidades pero para gestionar plugins de Kubernetes. Te permite instalar en tu cluster de Kubernetes cualquiera de los más de 200 plugins soportados, de forma simple y rápida.
El hecho de usar Krew no significa que tengas que olvidarte de kubectl, de hecho, Krew es en si mismo un plugin que funciona sobre kubectl.

¿Cómo instalo Krew en mi cluster de K8S?

Evidentemente, el primer requisito que debes cumplir es tener un cluster de Kubernetes en ejecución y tener instalada la herramienta kubectl, si tienes esto, lo cierto es que el procedimiento que sigue a continuación es muy sencillo, basta con seguir las instrucciones que se encuentran disponibles en el «quickstart» del proyecto, que puedes consultar aquí

En un sistema basado en Linux, basta con ejecutar el comando que ves en la siguiente imagen y luego, dependiendo de la distribución de Linux que utilices, añadir la ruta del binario en el fichero .bashrc o .zshrc

Si el proceso de instalación se ha llevado a cabo correctamente, verás en la terminal el siguiente mensaje, indicando que todo ha ido bien y que ahora puedes empezar a utilizar la herramienta por medio de kubectl

Ahora, puedes ejecutar el comando «kubectl krew» para las opciones que se encuentran disponibles en el complemento.

¿Cómo usar Krew y qué opciones se encuentran disponibles?

Su uso es muy intuitivo, basta con ejecutar  «kubectl krew» y el comando que quieres lanzar. Algunos de los más interesantes y que normalmente usarás, son los siguientes:

info: Te permite obtener información detallada de un plugin concreto
list: Te enseña los plugins instalados
update: Para actualizar la copia de complementos que se encuentra almacenada localmente. Si hay un complemento nuevo en el repositorio central, se actualiza la lista de complementos disponibles automáticamente.
upgrade: A diferencia del comando «update», con «upgrade» se realiza una actualización de todos los complementos instalados
search: Recibe como parámetro el nombre del complemento y enseña su estado (si está instalado o no).
index: Este comando permite añadir o eliminar repositorios de complementos para Kubernetes. Por defecto, la herramienta viene configurada con el indice oficial del proyecto.

Cuando usas esta herramienta, lo más habitual es listar los complementos y luego, seleccionar el que te interese para ver más detalles sobre su funcionamiento

Si ejecutas el comando «kubectl krew search» sin ningún argumento, aparecerá la lista completa de los complementos que se pueden instalar el cluster, lo cual viene bien para ver cuáles resultan interesantes en un momento dado y probarlos.

Finalmente, para instalar un complemento se ejecuta el comando «kubectl krew install <plugin>«, solamente hace falta indicar el nombre del complemento y la herramienta se encargará del resto.

Como se puede apreciar en la imagen anterior, se instala el complemento, se enseña su uso básico y a dónde dirigirse para obtener información detallada. Además, se enseña un mensaje importante, el cual indica que los complementos que se instalan desde el index oficial, son desarrollados por terceros y que el equipo de Krew no ha realizado ningún tipo de comprobación de seguridad sobre ellos, por lo que es recomendable saber exactamente qué se está instalando por motivos de seguridad. Aunque lo cierto es que muchos de los complementos disponibles en Krew son bastante conocidos y, las empresas o comunidades que los desarrollan, suelen tener precaución a la hora de crear estos componentes.
A partir de este punto, es necesario aprender a utilizar cada plugin, leer la documentación oficial y ver si realmente merece la pena tenerlo instado en nuestro cluster.
Precisamente, en el siguiente post hablaré de algunos de los complementos en K8S que son especialmente interesantes para seguridad y DevSecOps

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking devsecops Networking Services - Software

Crea tu infraestructura de contenedores con Docker Compose

Demostración en vídeo de éste post:

Docker es una tecnología robusta y potente, te permite crear espacios virtuales conocidos como «contenedores», los cuales se basan en una imagen que tiene todo preparado para que simplemente funcionen. Si bien es una tecnología que inicialmente tiene una pequeña curva de aprendizaje, por si sola no es escalable. Esto significa que solamente utilizando Docker es un tanto complicado gestionar una infraestructura completa en la que tengas que trabajar con múltiples contenedores y precisamente por este motivo existen soluciones como Kubernetes o Docker Swarm. No obstante existe otra alternativa en el caso de que no quieras trabajar con todas las prestaciones (y lidiar con las complejidades) que vienen implícitas de un «enjambre» de contenedores distribuidos en múltiples máquinas, esta alternativa es Docker Compose o simplemente Compose.

Esta herramienta se encuentra integrada en las últimas versiones de Docker y permite levantar múltiples contenedores al mismo tiempo, que compartan volúmenes y redes e incluso que se conecten entre ellos, lo único que hace falta es definir dichas condiciones en un fichero en formato YAML que siga la sintaxis de Compose. Representa un modelo sencillo para trabajar y especialmente útil cuando quieres ejecutar aplicaciones y herramientas que usan múltiples contenedores y no quieres levantarlos uno a uno, ni tampoco instalar un orquestador como K8S que lo haga por ti.

Hay que tener en cuenta, eso sí, que la estructura del fichero YAML es estricta, tienes que respetar la indentación y conocer las palabras reservadas, de lo contrario tu infraestructura con Compose no va a funcionar. Por otro lado, si bien es habitual utilizar un único fichero YAML, es posible crear varios e importarlos o en uno principal, de tal manera que puedes controlar mejor tu infraestructura y definir ficheros que están pensados para un entorno de desarrollo, staging, pruebas, pre-producción, producción, etc.

Algunos comandos en Docker-Compose

Lo mejor de Compose es que tiene un conjunto de comandos reducido y es muy fácil de ejecutar, tal como indicaba anteriormente, su complejidad se encuentra en los ficheros YAML, pero incluso éstos son fáciles de manejar cuando aprendes la sintaxis y las instrucciones mínimas. A continuación, verás algunos comandos disponibles en Compose.

docker-compose build

Permite construir las imágenes definidas en el fichero docker-compose.yml

docker-compose images

Permite consultar las imágenes que se han construido previamente en el fichero “compose” actual.

docker-compose stop

Detiene los contenedores de los servicios especificados, sin destruirlos.

docker-compose run

Equivalente de «docker run» permite ejecutar un comando sobre uno o varios de los servicios definidos en el fichero compose.

docker-compose up

Ejecuta los comandos «build» y «run» de docker-compose.

docker-compose ps

Listado de los contenedores en ejecución para el fichero compose actual.

docker-compose down

Detiene todos los servicios para el fichero compose actual y limpia todos los recursos
(contenedores, redes, volúmenes, imágenes).

Fichero YAML para Docker-Compose

El corazón de ésta tecnología se encuentra en el fichero YAML que lee el comando «docker compose» o «docker-compose», el cual normalmente declara las siguientes secciones:

version: Permite definir la versión con la que trabajará Docker-compose. Dependiendo del número de versión definido en esta sección, tendrás más o menos instrucciones que puedes aplicar en tu fichero YAML.

services: Se refiere a cada uno de los servicios que se pueden definir en Compose y a efectos prácticos, son los contenedores que Docker-Compose va a levantar por ti. Esta es probablemente la sección más completa, ya que aquí es posible indicar cuántos contenedores se deben levantar para la imagen especificada, si tiene relaciones con otros servicios (contenedores), si utiliza algún volumen o si se debe conectar a un red Docker concreta, etc.

volumes: Aquí se pueden declarar los volúmenes que se utilizarán por parte de los servicios.

networks: Aquí se pueden declarar las redes a las que se van a conectar los servicios definidos en el compose.

Ejemplo de Docker-Compose con WordPress.

Un ejemplo que describe fácil y rápidamente el uso de Docker-Compose sería levantar un WordPress. Este tipo de aplicación requiere un servidor web con soporte a PHP y una base de datos (típicamente MySQL) para poder funcionar. Un YAML como el siguiente permitirá tener una instalación de WordPress perfectamente funcional y lo mejor de todo, con persistencia gracias al uso de volúmenes.

Docker Compose YAML

Normalmente, para montar esto tendrías que crear los volúmenes y las redes por separado, luego crear los contenedores y conectarlos a la red creada anteriormente, es decir, mucho trabajo. Con Compose lo haces todo con un comando y la herramienta lo hace todo por ti.

Docker Compose WordPress


Una maravilla.

En este post se ha hecho una introducción rápida a Docker-Compose, pero hay muchas más opciones disponibles que merece la pena conocer. Te invito a que leas la documentación oficial y te fijes en los ejemplos que aportan, la verdad es que es un proyecto que merece la pena dedicarle tiempo para aprenderlo en detalle.

Un saludo y Happy Hack!
Adastra.

Categorías
devsecops Hacking Networking

Despliega tu entorno para pentesting con Docker y KrakenRDI

Demostración en vídeo de éste post

Hace algún tiempo he empezado el proyecto de KrakenRDI en los pocos ratos que he tenido libres y aunque algunos de vosotros ya lo conocéis y me habéis aportado algunas ideas sobre cómo mejorarlo (muchas gracias a todos), es la primera vez que escribo sobre esto en el blog y ya era hora, creo). Docker es una plataforma estupenda a la hora de crear pequeñas «cajas» conocidas como contenedores, los cuales incluyen todo lo necesario para ejecutar diferentes tipos de aplicaciones. Es flexible, rápido y liviano, a diferencia de las máquinas virtuales tradicionales que se caracterizan por ser pesadas y obligarte a gestionar un sistema operativo independiente del anfitrión. Aunque en mi opinión Docker aún es bastante mejorable, especialmente a la hora de crear imágenes,  es más que suficiente para crear un entorno de pentesting completo, al mejor estilo de distribuciones como Kali o Parrot, pero sin necesidad de sacrificar 50GB de disco duro o más y sin tener que pegarse con los problemas tan habituales en ese tipo de sistemas. Este es precisamente el objetivo de KrakenRDI: permitirte crear una imagen Docker con las herramientas de pentesting que tu quieras usar, seleccionas las que necesitas en un momento, creas la imagen Docker y luego el contenedor. Este modelo tiene varias ventajas en mi opinión:

  1. No va a consumir tanta memoria ni espacio en disco como una VM. Una imagen con todo un «arsenal» de herramientas puede pesar entre 6 y 10 GB como mucho.
  2. Los contenedores que creas partiendo de la imagen los puedes destruir y volver a crear cuando quieras. Si algo no te funciona o la has liado haciendo cambios en ficheros de configuración o instalando programas, no pasa nada: Tiras el contenedor y levantas uno nuevo.
  3. Vas a tener las últimas versiones de las herramientas que hayas seleccionado y además, la probabilidad de incompatibilidades en librerías serán menores ya que solamente se instala lo estrictamente necesario.
  4. Puedes montar el entorno donde quieras, solo hace falta tener Docker instalado.
  5. Puedes crear las imágenes a tu gusto, ya sea partiendo de un fichero Dockerfile o descargando una de las que ya están disponibles en Docker Hub
  6. KrakenRDI soporta cerca de 50 herramientas y utilidades, aunque poco a poco se irán introduciendo más. Me faltan manos 😉
  7. Si echas en falta alguna herramienta que usas habitualmente, puedes abrir el Dockerfile correspondiente e incluirla, construir nuevamente la imagen y con esto ya podrías crear un contenedor con esa utilidad instalada.

Crear una imagen con KrakenRDI

Es posible clonar el repositorio de GitHub y luego construir una imagen con el comando «docker build», lo único que hay que tener en cuenta es que existen varios ficheros Dockerfile ubicados en <KRAKENRDI-HOME>/core/docker. Como podrás ver en los nombres de cada uno de estos ficheros, representan alguna de las etapas de una auditoría de pentesting o una campaña de RedTeam, solamente el fichero Dockerfile-base es el que soporta todas las herramientas disponibles en el proyecto. Esto quiere decir que puedes instalar solo las herramientas que necesitas para la etapa de reconocimiento (Dockerfile-recon), explotación (Dockerfile-exploitation), elevación de privilegios (Dockerfile-escalation), etc.
Por ejemplo, para construir una imagen con las herramientas de anonimato (Dockerfile-anon) se ejecutaría el comando:

docker build -t adastraa/krakenrdi:anon -f Dockerfile-anon .

Si quieres las herramientas para la etapa de reconocimiento, usarías Dockerfile-recon con el comando: docker build -t adastraa/krakenrdi:common -f Dockerfile-common .

Y así para todas las etapas de una auditoría. Para saber exactamente que herramientas se incluyen en cada fichero Dockerfile puedes leer la documentación aquí

Como he mencionado antes, también existe la posibilidad de seleccionar manualmente las herramientas y crear una imagen personalizada. El resultado final será un contenedor con únicamente las herramientas que deseas y para ello hay que usar el fichero Dockerfile-base e indicar durante la construcción de la imagen qué herramientas se deben incluir. Por ejemplo:

docker build -f Dockerfile-base -t adastraa/krakenrdi:base –build-arg RECON_NMAP=True –build-arg RECON_SPIDERFOOT=True –build-arg WEAPON_DEMIGUISE=True .

El comando anterior creará una imagen llamada «adastraa/krakenrdi:base» y todos los contenedores creados a partir de ella tendrán instaladas las herramientas Nmap, Demiguise y Spiderfoot. Como puedes ver, para indicar qué herramienta habilitar en la imagen es necesario utilizar la opción «–build-arg» y además, el nombre de la herramienta. Para ver los nombres soportados en KrakenRDI puedes ver la documentación en GitHub aquí.

Ahora bien, si no quieres construir las imágenes manualmente, puedes descargar las que he subido a DockerHub, aunque dichas imágenes habilitan todas las herramientas disponibles en cada uno de los ficheros Dockerfile-* y pesan bastante más, no obstante es una buena alternativa si quieres probar el proyecto rápidamente.

Crear y utilizar un contenedor con la imagen de KrakenRDI

Una vez que creas la imagen, es el momento de levantar un contenedor partiendo de ella. Como ocurre con cualquier contenedor en Docker, si quieres preservar la información que en él se va a almacenar, lo mejor es montar volúmenes y guardar en ellos lo que quieres conservar una vez se destruya el contenedor. En todo caso, la creación de un contenedor con una imagen de KrakenRDI no tiene ningún misterio, basta con ejecutar un comando como «docker run» e indicar las opciones que se quiera junto con el nombre de la imagen. Por ejemplo, la siguiente captura de pantalla enseña cómo se ha creado un contenedor partiendo de la imagen «adastraa/krakenrdi:anon».

Como puedes ver, es posible acceder al contenedor con una shell en bash y ejecutar cualquier tipo de comando, con la ventaja evidente de que ya viene todo montado en dicho contenedor gracias a la imagen seleccionada.

Espero que este proyecto te sea de utilidad y si quieres aportar los PRs siempre son bienvenidos o simplemente prueba el entorno y reporta fallos, eso también ayuda.
En otros artículos describiré con mayor detalle cómo crear imágenes personalizadas, las herramientas disponibles y la API Rest disponible en el proyecto.

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion devsecops Hacking

10 plugins para Jenkins que pueden ayudar a definir tu DevOps y DevSecOps – Parte 2 de 2

Demostración en vídeo del post

En la primera parte de esta serie se han mencionado 5 plugins interesantes que pueden ser útiles a la hora de definir tu DevOps/DevSecOps y en esta ocasiones, se mencionarán 5 más.

Snyk Security Scanner

Snyk es una herramienta del tipo SAST que se encarga de analizar proyectos y detectar defectos relacionados con dependencias vulnerables, imágenes de contenedores y el código fuente propiamente dicho. Es una herramienta que soporta los lenguajes de programación más comunes, entre los que destacan Node.js, Golang, Java, Python, Ruby, entre otros.
Este plugin para Jenkins se encarga de utilizar la API Rest disponible en una cuenta de Snyk y ejecutar pruebas del tipo SAST desde un pipeline, algo que como se ha mencionado en otros posts, es deseable a la hora de automatizar procesos en el DevSecOps.

Anchore Container Image Scanner

Anchore Engine es una herramienta que permite analizar imágenes de contenedores Docker con el objetivo de detectar vulnerabilidades. Este plugin permite que desde un job en Jenkins se pueda automatizar la ejecución de estas pruebas utilizando la API disponible en Anchore Engine. El plugin permite realizar la integración con esta herramienta desde un pipeline o un paso de construcción en un job del tipo «free-style», lo único que hay que tener en cuenta es que la herramienta se debe encontrar en ejecución, con la API habilitada y accesible a los workers de Jenkins.

Audit Trail

Es un complemento que permite generar logs sobre las acciones más interesantes para el administrador, como por ejemplo quién ha ejecutado jobs, cuándo se han llevado a cabo procesos de autenticación o qué cambios de configuración se han llevado a cabo en alguno de los workers de Jenkins. Además de permitir la generación de los logs en ficheros de texto concretos, también se puede conectar con un servicio de SYSLOG remoto para enviar los eventos producidos, algo que puede ser especialmente útil a la hora de centralizar las trazas de aquellas actividades criticas que se ejecutan en el servidor.

OWASP Dependency-Check

Dependency-Check es uno de los proyectos insignia de la comunidad OWASP y este plugin permite la ejecución de la herramienta desde cualquier job, ya sea del tipo «free-style» o pipeline. Esta herramienta permite realizar comprobaciones sobre las librerías y cualquier dependencia que se esté utilizando en el proyecto para determinar si existen vulnerabilidades conocidas.

Active Directory

Se trata de un complemento que permite delegar el proceso de autenticación a un directorio activo. Jenkins reconoce todos los grupos a los que pertenece el usuario en el Active Directory y con esto, se puede configurar Jenkins para tomar decisiones de autorización, por ejemplo se podría establecer la seguridad basada en matriz como la estrategia de autorización y permitir que uno o varios grupos concretos puedan administrar Jenkins o ejecutar jobs. En otras palabras, la gestión de la seguridad, junto con los permisos y grupos viene dada por la información del Active Directory.

Se trata de una serie muy corta, en la que de forma resumida se explican los plugins que en mi opinión, son útiles en a la hora de definir tu DevOps o DevSecOps. Si te ha interesado o conoces algún otro plugin que merezca estar en la lista, deja un comentario.

Un saludo y Happy Hack!
Adastra.