El ataque DDoS contra GitHub tuvo la peculiaridad de que no se apoyó en botnets, sino que lo hizo en unos 100.000 servidores memcached pertenecientes a empresas e instituciones, los cuales estaban expuestos sin protección por autenticación.
El lanzar ataques DDoS de esta manera se está convirtiendo en una tendencia, hasta el extremo de que hay publicadas pruebas de concepto sobre cómo realizarlos. En estos momentos hay unos 12.000 servidores memcached con el soporte de UDP habilitado accesibles desde Internet, un buen recurso para los hackers que quieran lanzar ataques DDoS.
Sin embargo, no todo iban a ser desgracias para los que tengan que protegerse de esa gran cantidad de servidores expuestos, ya que investigadores de Corero Network Security han descubierto una técnica que permitiría a las víctimas responder a este tipo de ataques mediante el envío de comandos simples (como por ejemplo apagar o flush_all) en bucle contra el servidor memcached atacante para evitar la amplificación, que puede ser de decenas de veces. Según la empresa, su descubrimiento ha sido 100% efectivo contra los servidores memcached atacantes, habiendo sido ya divulgado a agencias de seguridad.
A partir de los hallazgos descritos en el párrafo anterior, el investigador en seguridad Amir Khashayar Mohammadi ha creado y publicado una herramienta de mitigación, Memfixed, que se dedica a enviar órdenes de apagado o flush al servidor memcached atacante. Escrito en Python, obtiene una lista de los servidores memcached vulnerables utilizando la API de Shodan para luego disparar las órdenes contra estos.
Pero el problema no acaba aquí, ya que la vulnerabilidad (CVE-2018-1000115) en memcached que permite realizar los ataques DDoS es todavía peor de lo que se ha dicho hast ahora. Según los investigadores de Corero, también puede ser explotada para robar o modificar los datos de un servidor memcached vulnerable a través de la utilización de un comando de depuración, aunque de momento los investigadores no han mostrado ningún detalle técnico sobre esta posibilidad.
Memcached es utilizado por sitios web dinámicos apoyados en bases de datos para mejorar el rendimiento mediante el almacenamiento de datos en caché y objetos en la memoria RAM. Debido a que ha sido diseñado para funcionar sin autenticación, su exposición permite a los atacantes robar de forma remota datos sensibles que hayan sido cacheados, pudiendo abarcar registros de la base datos, correos electrónicos, información de los clientes de la empresa, datos de API, etc.
Se recomienda a los administradores de sistema actualizar cuanto antes a memcached 1.5.6, que tiene inhabilitado UDP por defecto.