Muerte por Doki: Una nueva vulnerabilidad de Docker con graves consecuencias (y lo que puede hacer al respecto)

Publicado el 25 de agosto de 2020
por el doctor Matias Madou
ESTUDIO DE CASO

Muerte por Doki: Una nueva vulnerabilidad de Docker con graves consecuencias (y lo que puede hacer al respecto)

Publicado el 25 de agosto de 2020
por el doctor Matias Madou
Ver recurso
Ver recurso

En la onomatopeya japonesa, la frase "doki-doki" ("""") representa el sonido de un corazón que late con fuerza... que es exactamente lo que los miembros del equipo de seguridad podrían experimentar si su servidor Docker se infecta con Doki, una nueva vulnerabilidad que proporciona una puerta trasera para la inyección de código malicioso, y mucho más. Un nombre apropiado, por decir lo menos.

A medida que adoptamos una dependencia cada vez mayor de la infraestructura en la nube, la necesidad de precisión y eficacia escalable de las mejores prácticas de seguridad es vital, y debe extenderse mucho más allá de lo mínimo para el despliegue seguro de las aplicaciones, con medidas personalizadas para la seguridad de los contenedores dadas a conocer y desplegadas a lo largo del SDLC.

Los ciberataques son cada vez más frecuentes, y las amenazas que afectan a la infraestructura basada en Linux son cada vez más comunes, con el objetivo final de abrir un botín de datos sensibles almacenados en la nube. Doki tiene como objetivo hacer eso, y su uso de múltiples tecnologías para permanecer sin ser detectado, potente y eficaz es diferente a todo lo visto anteriormente en el ámbito de los problemas de seguridad basados en Docker.

¿Qué es Doki y cómo funciona?

Como es un tema común en muchas aplicaciones comprometidas, la desconfiguración de la seguridad juega un papel inaceptablemente grande en la forma en que el software fue violado. En el caso concreto de Docker, la API del motor de Docker mal configurada ha resultado fructífera para los atacantes. El bot de criptominería Ngrok Botnet ha estado husmeando en busca de servidores Docker inseguros desde 2018, haciendo girar sus propios contenedores y ejecutando malware en la infraestructura de la víctima.

Doki es una versión más astuta y maliciosa de este malware, que tuvo éxito a través de la misma red de bots exponiendo el mismo vector de ataque: La desconfiguración de la API, que debería haber sido abordada mucho antes de cualquier despliegue de código o visibilidad pública del servidor. Doki utiliza la cadena de bloques de la criptomoneda satírica favorita de todos, Dogecoin, para actuar como una puerta trasera prácticamente indetectable. Tal y como está, se ha deslizado sin dejar mucho rastro desde enero.

El malware básicamente abusa de una cartera de blockchain para generar nombres de dominio de comando y control (C2), lo que no es nuevo en sí mismo, pero Doki proporciona una capacidad continua para la ejecución remota de código en un servidor infectado, dando paso a una serie de ataques dañinos basados en malware, como ransomware y DDoS. Es implacable, como un "Doge con un hueso", si se quiere. La buena gente de Intezer tiene un artículo completo sobre toda la amenaza y su extensa carga útil.

Detectar una vía Doki en código.

El hecho de que Doki sea una puerta trasera que opera en una red descentralizada de blockchain, empleando técnicas de escape de contenedores elusivos y rápidos para cubrir rastros, acceder a más áreas del host y continuar propagando la infección, lo convierte en una especie de pesadilla tanto para los desarrolladores como para los equipos de seguridad.

Aun así, Doki no puede infectar un servidor Docker que tenga puertos API seguros. Una mala configuración de los mismos durante la producción es un error con consecuencias de largo alcance, pero una formación eficaz tanto en la conciencia de la seguridad como en las habilidades prácticas de codificación segura para los desarrolladores de la nube es una solución un tanto "simple", frente a una pieza de malware tan compleja y dura.

Veamos este ejemplo de una API de Docker insegura, una en la que Doki podría encontrar una forma de entrar y empezar a propagarse:

dockerd -H tcp://0.0.0.0:2375

¿Puedes detectar los errores de configuración? La versión segura tiene este aspecto:

dockerd -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/etc/ssl/certs/ca.pem --tlscert=/etc/ssl/certs/server-cert.pem --tlskey=/etc/ssl/private/server-key.pem

En el ejemplo inseguro, la API del motor Docker está escuchando en el puerto TCP 2375, y aceptará cualquier solicitud de conexión, por lo que está disponible para cualquiera que llegue al servidor Docker.

En el ejemplo seguro, la API del motor Docker se ha configurado para utilizar la validación de certificados TLS, y sólo aceptará conexiones de clientes que proporcionen un certificado de confianza de su CA.

Tenemos un nuevo conjunto de desafíos gamificados para ayudar a los desarrolladores a identificar y arreglar la causa raíz de una infección Doki, y puedes jugar uno aquí:

Una infraestructura de nube segura es un deporte de equipo.

Las desconfiguraciones en la nube costaron a las organizaciones la alucinante cifra de 5 billones de dólares a lo largo de 2018 y 2019, lo que representa miles de millones de registros expuestos y daños irreversibles a la reputación. Para un vector de ataque que es en gran medida evitable, esta es una estadística bastante alarmante. Y pensar que medidas como la monitorización y la reparación de puertos expuestos (idealmente antes del despliegue), la comprobación de cualquier contenedor desconocido y la vigilancia de cualquier carga excesiva del servidor podrían detener el daño de bola de nieve de algo como Doki, bueno, es un pequeño precio a pagar por la tranquilidad.

La concienciación sobre la seguridad en toda la empresa es fundamental, y para cada persona involucrada en el SDLC, operar con las mejores prácticas de seguridad no es negociable. Las mejores organizaciones están comprometidas con un sólido proceso de DevSecOps, en el que la responsabilidad de la seguridad es compartida, y tanto los desarrolladores como los profesionales de AppSec tienen el conocimiento y las herramientas para evitar que las vulnerabilidades comunes se abran paso en el software, y en la infraestructura vital.
¿Quieres empezar como un ingeniero de la nube consciente de la seguridad y sobrecargado? Empieza a poner a prueba tus habilidades ahora.

Ver recurso
Ver recurso

Autor

Doctor Matias Madou

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Muerte por Doki: Una nueva vulnerabilidad de Docker con graves consecuencias (y lo que puede hacer al respecto)

Publicado el 25 de agosto de 2020
Por el doctor Matias Madou

En la onomatopeya japonesa, la frase "doki-doki" ("""") representa el sonido de un corazón que late con fuerza... que es exactamente lo que los miembros del equipo de seguridad podrían experimentar si su servidor Docker se infecta con Doki, una nueva vulnerabilidad que proporciona una puerta trasera para la inyección de código malicioso, y mucho más. Un nombre apropiado, por decir lo menos.

A medida que adoptamos una dependencia cada vez mayor de la infraestructura en la nube, la necesidad de precisión y eficacia escalable de las mejores prácticas de seguridad es vital, y debe extenderse mucho más allá de lo mínimo para el despliegue seguro de las aplicaciones, con medidas personalizadas para la seguridad de los contenedores dadas a conocer y desplegadas a lo largo del SDLC.

Los ciberataques son cada vez más frecuentes, y las amenazas que afectan a la infraestructura basada en Linux son cada vez más comunes, con el objetivo final de abrir un botín de datos sensibles almacenados en la nube. Doki tiene como objetivo hacer eso, y su uso de múltiples tecnologías para permanecer sin ser detectado, potente y eficaz es diferente a todo lo visto anteriormente en el ámbito de los problemas de seguridad basados en Docker.

¿Qué es Doki y cómo funciona?

Como es un tema común en muchas aplicaciones comprometidas, la desconfiguración de la seguridad juega un papel inaceptablemente grande en la forma en que el software fue violado. En el caso concreto de Docker, la API del motor de Docker mal configurada ha resultado fructífera para los atacantes. El bot de criptominería Ngrok Botnet ha estado husmeando en busca de servidores Docker inseguros desde 2018, haciendo girar sus propios contenedores y ejecutando malware en la infraestructura de la víctima.

Doki es una versión más astuta y maliciosa de este malware, que tuvo éxito a través de la misma red de bots exponiendo el mismo vector de ataque: La desconfiguración de la API, que debería haber sido abordada mucho antes de cualquier despliegue de código o visibilidad pública del servidor. Doki utiliza la cadena de bloques de la criptomoneda satírica favorita de todos, Dogecoin, para actuar como una puerta trasera prácticamente indetectable. Tal y como está, se ha deslizado sin dejar mucho rastro desde enero.

El malware básicamente abusa de una cartera de blockchain para generar nombres de dominio de comando y control (C2), lo que no es nuevo en sí mismo, pero Doki proporciona una capacidad continua para la ejecución remota de código en un servidor infectado, dando paso a una serie de ataques dañinos basados en malware, como ransomware y DDoS. Es implacable, como un "Doge con un hueso", si se quiere. La buena gente de Intezer tiene un artículo completo sobre toda la amenaza y su extensa carga útil.

Detectar una vía Doki en código.

El hecho de que Doki sea una puerta trasera que opera en una red descentralizada de blockchain, empleando técnicas de escape de contenedores elusivos y rápidos para cubrir rastros, acceder a más áreas del host y continuar propagando la infección, lo convierte en una especie de pesadilla tanto para los desarrolladores como para los equipos de seguridad.

Aun así, Doki no puede infectar un servidor Docker que tenga puertos API seguros. Una mala configuración de los mismos durante la producción es un error con consecuencias de largo alcance, pero una formación eficaz tanto en la conciencia de la seguridad como en las habilidades prácticas de codificación segura para los desarrolladores de la nube es una solución un tanto "simple", frente a una pieza de malware tan compleja y dura.

Veamos este ejemplo de una API de Docker insegura, una en la que Doki podría encontrar una forma de entrar y empezar a propagarse:

dockerd -H tcp://0.0.0.0:2375

¿Puedes detectar los errores de configuración? La versión segura tiene este aspecto:

dockerd -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/etc/ssl/certs/ca.pem --tlscert=/etc/ssl/certs/server-cert.pem --tlskey=/etc/ssl/private/server-key.pem

En el ejemplo inseguro, la API del motor Docker está escuchando en el puerto TCP 2375, y aceptará cualquier solicitud de conexión, por lo que está disponible para cualquiera que llegue al servidor Docker.

En el ejemplo seguro, la API del motor Docker se ha configurado para utilizar la validación de certificados TLS, y sólo aceptará conexiones de clientes que proporcionen un certificado de confianza de su CA.

Tenemos un nuevo conjunto de desafíos gamificados para ayudar a los desarrolladores a identificar y arreglar la causa raíz de una infección Doki, y puedes jugar uno aquí:

Una infraestructura de nube segura es un deporte de equipo.

Las desconfiguraciones en la nube costaron a las organizaciones la alucinante cifra de 5 billones de dólares a lo largo de 2018 y 2019, lo que representa miles de millones de registros expuestos y daños irreversibles a la reputación. Para un vector de ataque que es en gran medida evitable, esta es una estadística bastante alarmante. Y pensar que medidas como la monitorización y la reparación de puertos expuestos (idealmente antes del despliegue), la comprobación de cualquier contenedor desconocido y la vigilancia de cualquier carga excesiva del servidor podrían detener el daño de bola de nieve de algo como Doki, bueno, es un pequeño precio a pagar por la tranquilidad.

La concienciación sobre la seguridad en toda la empresa es fundamental, y para cada persona involucrada en el SDLC, operar con las mejores prácticas de seguridad no es negociable. Las mejores organizaciones están comprometidas con un sólido proceso de DevSecOps, en el que la responsabilidad de la seguridad es compartida, y tanto los desarrolladores como los profesionales de AppSec tienen el conocimiento y las herramientas para evitar que las vulnerabilidades comunes se abran paso en el software, y en la infraestructura vital.
¿Quieres empezar como un ingeniero de la nube consciente de la seguridad y sobrecargado? Empieza a poner a prueba tus habilidades ahora.

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.