SSH es la forma abreviada de referirse a Secure Shell, un protocolo de red para conectar computadoras y dispositivos de manera remota mediante un enlace de red cifrado. Generalmente, este protocolo es utilizado para gestionar los servidores Linux utilizando una consola modo texto. Asimismo, SSH es la forma más común para que los administradores de sistemas administren de manera remota, en la nube o de forma dedicada, servidores Linux alquilados.

La implementación de facto, que viene prácticamente en todas las distribuciones de Linux, es la versión portable de OpenSSH. Un popular método utilizado por atacantes para mantener la persistencia en servidores Linux comprometidos es backdoorear el servidor y cliente OpenSSH ya instalado. Existen varias razones para explicar la popularidad de crear un malware basado en OpenSSH.

  • No requiere que se abra un nuevo Puerto TCP en la computadora comprometida. SSH ya debería estar ahí y ser fácilmente accesible desde Internet.
  • Tanto el daemon como el cliente OpenSSH ven las contraseñas en texto plano, brindándole al atacante la posibilidad de robar las credenciales.
  • El código fuente de OpenSSH está disponible de forma gratuita, haciendo que sea sencillo crear una versión “personalizada” y backdooreada.
  • OpenSSH está diseñado para que sea difícil implementar un ataque man-in-the-middle y espiar la actividad de sus usuarios. Esto hace que sea más dificil detectar las actividades maliciosas del atacante.

Para combatir mejor el malware para Linux, investigadores de ESET fueron en busca de backdoors OpenSSH activos, tanto conocidos como desconocidos. Tomamos como punto de partida para nuestra investigación el conocimiento recopilado en una de nuestras investigaciones previas: Operación Windigo. En ese whitepaper describimos en detalle los múltiples componentes del malware Windigo y cómo trabajan juntos. En su núcleo estaba Ebury, un backdoor OpenSHH y un spyware diseñado para robar credenciales que había sido instalado en decenas de miles de servidores Linux comprometidos a nivel mundial.

Algo que originalmente no fue discutido en el documento sobre Operación Windigo, pero que es algo de lo que sí han hablado los investigadores de ESET en conferencias, es cómo esos atacantes intentan detectar otros backdoors OpenSHH antes de desplegar el suyo (Ebury). Utilizan un script en Perl que desarrollaron y que contiene más de 40 firmas para diferentes backdooors.

@sd = gs( 'IN: %s@ \(%s\) ', '-B 2' );
@sc = gc( 'OUT=> %s@%s \(%s\)', '-B 1' );
if ( $sd[1] =~ m|^/| or $sc[0] =~ m|^/| ) {
    print
      "mod_sshd29: '$sd[0]':'$sd[1]':'$sd[2]'\nmod_sshc29: '$sc[0]':'$sc[1]'\n";
    ssh_ls( $sd[1], $sc[0] );
}

Ejemplo de firmas descubiertas en el script en Perl de Windigo para detectar backdoors OpenSHH

Cuando analizamos estas firmas, nos dimos cuenta rápidamente que no contábamos con muestras que coincidieran con la mayoría de los backdoors descritos en el script. La realidad es que los operadores de malware tenían más conocimiento y visibilidad de los backdoors SSH activos que nosotros. Por lo tanto, para hacer frente a esta realidad comenzamos a buscar las muestras de malware faltantes utilizando sus firmas. Esto nos ayudó a encontrar muestras previamente desconocidas para la industria de la seguridad y reportar detalladamente los hallazgos.

En el día de hoy, investigadores de ESET están publicando un paper enfocado en las 21 familias de malware OpenSSH activas. Si bien algunos de estos backdoors ya han sido analizados y documentados, ningún análisis de la mayoría de estos estaba disponible hasta ahora. En este sentido, la intención de este paper es describir de manera general cómo está conformado el actual ecosistema de backdoors para OpenSSH. El documento es el resultado de un largo proyecto de investigación que involucra reglas de escritura y detecciones, el despliegue de honeypots personalizados, clasificación de muestras y el análisis de las diferentes familias de malware.

Desvelando el lado oscuro

Poco después de la investigación de Windigo, traducimos las firmas del anteriormente mencionado script en Perl a las reglas YARA (ahora disponibles en GitHub) y las utilizamos para encontrar posibles nuevas muestras de malware provenientes de nuestras distintas fuentes. Recopilamos nuevas muestras por más de tres años y, luego de filtrar los falsos positivos, obtuvimos unos cientos de binarios OpenSSH troyanizados. El análisis de estas muestras recopiladas evidencia el uso de un conjunto de funciones que son comunes en los diferentes malware. Dos de ellos realmente se destacan:

  • 18 de las 21 familias cuentan con una funcionalidad para el robo de credenciales que permite robar contraseñas y/o claves utilizadas por el servidor y cliente OpenSSH troyanizado.
  • 17 de las 21 familias cuentan con un modo backdoor que ofrece a los atacantes una forma sigilosa y persistente de conectarse nuevamente con el equipo comprometido.

Más detalles sobre las funciones comunes de estos backdoors OpenSSH están disponibles en el whitepaper.

Paralelamente y con el análisis de las muestras recopiladas, configuramos una arquitectura honeypot personalizada (detallada en profundidad en el whitepaper) para extender nuestros resultados. La idea fue proporcionar (es decir, filtrar intencionalmente) credenciales a los atacantes utilizando técnicas de exfiltración a partir de ingeniería inversa sobre las muestras. Esto nos permitiría observar el comportamiento de los atacantes una vez que comprometen el servidor, y con suerte, obtener las muestras más recientes.

Combinar nuestra búsqueda pasiva con las reglas YARA y la interacción de los atacantes con nuestro honeypot nos aporta información acerca de cuán activos están los atacantes y cuáles son sus habilidades.

.

 

Este gráfico resume las familias del backdoor OpenSSH en esta investigación. Alguno de nuestros lectores seguramente habrá reconocido la correspondencia entre los nombres con los planetas de la saga Star Wars. Nótese que no corresponden con los nombres de detección de ESET; ya que es solo una forma conveniente de identificarlos en nuestra investigación. Los nombres de detección y varios datos de los indicadores de compromiso son aportados en el white paper y en nuestro repositorio de IoC en Github.

Evaluar la complejidad de una familia puede ser subjetivo. Hemos intentado ser lo más objetivos posibles y basar nuestra clasificación en varios factores, entre ellos:

  • La presencia de una técnica de exfiltración – presencia de servidor C&C, protocolo de red, cifrado en transporte o almacenamiento, etc.
  • La implementación de módulos que aportan funciones adicionales a OpenSSH – comandos adicionales, minería de criptomonedas, etc.
  • El uso de cifrado u ofuscación para hacer más difícil el análisis.

Para cada familia hay una descripción completa en el informe, pero la representación de la galaxia aún nos ofrece algunas conclusiones.

  • Según nuestro conjunto de muestras, la complejidad del código es cada vez más importante en la mayoría de las familias recientes.
  • Recopilamos más muestras para las familias más viejas y simples. Esto puede explicarse por el hecho de que los más sofisticados son más difíciles de detectar y menos prevalentes.

Visitando algunos planetas interesantes

Algunos de los backdoors que encontramos no son particularmente nuevos o interesantes desde un punto de vista técnico. Sin embargo, hay algunas excepciones que muestran que algunos atacantes están poniendo mucho esfuerzo en mantener sus botnets.

Uno de estos es Kessel, que se destaca por sus múltiples métodos de comunicación con su servidor C&C. Implementa HTTP, TCP y DNS. Además de solicitar credenciales robadas, el servidor C&C también tiene la habilidad de enviar comandos adicionales para realizar descargas o subir archivos a la máquina comprometida. Todas las comunicaciones con su servidor C&C son también cifradas. Además, es bastante nuevo: el dominio del servidor C&C fue registrado en agosto de 2018.

Kessel DNS exfiltration

Otro ejemplo similar es Kamino. A partir de analizar las muestras, descubrimos que esta amenaza existe desde hace bastante tiempo y que evolucionó, tanto en su técnica de ofuscación como en uso. En un principio fue utilizada como parte de una campaña de crimeware conocida por lograr que el malware DarkLeech redireccione tráfico, tal como fue documentado por investigadores de ESET en 2013.

Análisis detallado de Chandrila y Bonadam (funcionalidad para minar criptomonedas) también son aportadas en el whitepaper.

Mitigación y detección

Debido a que los datos que analizamos eran en su mayoría muestras de malware tomadas fuera de su contexto, es difícil identificar el vector de infección original. En este sentido, las técnicas podrían incluir: utilizar credenciales robadas una vez que la víctima utilizó un cliente SSH comprometido, fuerza bruta o explotación de un servicio vulnerable expuesto por el servidor.

Cualquiera de los vectores de ataque mencionados podría ser utilizado en futuros ataques. Por lo tanto, se deben seguir todas las buenas prácticas destinadas a evitar que un sistema se vea comprometido:

  • Mantener el sistema actualizado.
  • Favorecer la autenticación basada en certificados para SSH.
  • Deshabilitar el inicio de sesión remota para el usuario administrador.
  • Utilizar una solución de multi factor de autenticación para SSH.

Los productos de ESET detectan los backdoors OpenSSH analizados como variantes Linux/SSHDoor. Adicionalmente, las reglas YARA utilizadas pueden ayudar a clasificar las muestras potenciales. El paper aporta más detalles sobre la validación de archivos OpenSSH utilizando gestor de paquetes Linux para verificar la integridad de ejecutables instalados.

Conclusión

Con esta investigación, esperamos arrojar luz sobre los backdoors OpenSHH, y por extensión, en el malware para Linux en general. Tal como observamos a lo largo de la diversidad de la complejidad del código, algunos atacantes simplemente reutilizan código fuente disponible, mientras que otros ponen real esfuerzo en desarrollar sus propias implementaciones. Además, la búsqueda activa a través de nuestra estructura personalizada de honeypot muestra que algunos atacantes aún permanecen activos y son muy cautos al momento de desplegar sus backdoors

Tras leer el paper puede que sienta que ahora existe una mayor cantidad de malware para Linux que antes; que esto es una tendencia. Pero no creemos que este sea necesariamente el caso: siempre hubo malware para Linux, pero debido a la poca visibilidad se mantiene debajo del radar por un período mayor.

Aún existen muchas preguntas sin respuesta, como: ¿qué tan prevalente es cada una de estas familias?, ¿cómo son utilizados los sistemas comprometidos por parte de los atacantes? Además de robar credenciales, ¿utilizan técnicas adicionales para propagarse?

Investigadores de ESET creen que los administradores de sistemas e investigadores de malware pueden ayudarse mutuamente en la lucha contra el malware dirigido a servidores. Aquellos que cuenten con detalles adicionales sobre los backdoors que hemos descrito (o que no hemos descrito) o si tiene alguna consulta, pueden contactarnos a través de threatintel@eset.com.

.