Esta semana en la sección de Seguridad: Symbiote, Smart Locks y CosmicStrand

Symbiote es un rootkit de Linux particularmente desagradable, y tenemos el caso interesante de dos análisis separados publicados esta semana. Arriba está el primero [CyberMasterV] desmontando una muestra muy temprana del malware. El objetivo principal de Symbiote parece ser capturar los inicios de sesión SSH, y esta versión lo hace conectando un sistema de Módulos de autenticación conectables (PAM) para capturar a los usuarios que inician sesión en la máquina en la que se encuentran. También monitorea los binarios SSH y SCP y huele la terminal usando esos binarios, capturando así las credenciales salientes.

Todos estos datos se empaquetan como consultas DNS y se envían al servidor de comando y control. “Fácil”, le escucho decir, “simplemente bloquee el tráfico de DNS de todos lados menos de su proveedor de DNS de confianza”. Es más inteligente que eso. Los datos están en forma de subdominios DNS válidos. En su totalidad, es una solicitud de DNS para PacketNumber.MachineID.Data.px32.nss.atendimento-estilo[.]com, están codificados apropiadamente para ser válidos. Cada solicitud será para un nombre de host único, por lo que cada solicitud se reenvía al controlador de C&C, que cumple una doble función como el solucionador de DNS autorizado para ese dominio. Podría ganar algo bloqueando (o al menos registrando) consultas de DNS muy largas.

Symbiote también reemplaza los archivos y dispositivos típicos que buscaría para encontrar un problema potencial. Por ejemplo, /proc/net/tcp donde el kernel informa de conexiones TCP abiertas. En una computadora infectada, el malware mantiene una copia de este archivo, omitiendo convenientemente los enlaces resultantes de infecciones. El simbionte tiene un gancho. fopen, por lo que cada vez que un proceso intenta leer esta ubicación, la lectura se redirige a la versión cocinada, lo que oculta perfectamente el rootkit. Aparentemente, esta función de sigilo también se usa para ocultar otro malware de los mismos atacantes que pueden estar en la misma computadora.

Ahora veamos el segundo análisis, el trabajo conjunto de BlackBerry e Intezer. Esto es de una muestra posterior de Symbiote y ha habido una evolución interesante. En particular, utiliza el filtro de paquetes de Berkeley (BPF) para ocultar su tráfico de la captura de paquetes. Dado que los filtros BPF funcionan directamente en el kernel, esta es una técnica de ofuscación muy poderosa. Symbiote incluso revela el rendimiento. ldd, que lo enumeraría como una biblioteca en ejecución. Y este está desinfectado, por lo que el Simbionte es muy difícil de detectar. Debería ser posible utilizar las características del rootkit Symbiot en su contra, para la detección. Por ejemplo, uno de los nombres de archivo que está oculto es apache2start. debería ser posible touch este nombre de archivo y luego ejecutar ls en el directorio que debería contenerlo. Si el nuevo archivo aparece en la lista, probablemente esté bien. Si falta, es muy probable que se esté ejecutando un rootkit. Nos hemos puesto en contacto con los investigadores para que nos ayuden a validar esta sencilla técnica de detección, así que manténgase atento a cualquier actualización.

Cerraduras “inteligentes”

Una vez más, cuando se trata de IoT, la S significa seguridad. La diversión comienza con un error clásico, no hacer realmente la verificación SSL. Entonces el firmware llega al servidor HTTPS para funcionar, pero aceptará cualquier certificado para esa conexión. Man-in-the-Middle es mucho más fácil en ese caso. Y ese punto de vista de MitM encaja bien con el siguiente problema descubierto por los investigadores del Grupo NCC, los desbordamientos de búfer en el análisis de JSON. Conecte estos dos juntos y si está sentado en la misma red que el candado, ejecutará el código en él.

Para la mayoría de nosotros, un atacante en una red interna, o incluso dedicada a IoT, ya es un desastre. Hay otra cadena de ataques que se ha descubierto. La forma en que generalmente se instala esta cerradura es con un “giro” integrado en la puerta, físicamente inaccesible hasta que la puerta se desbloquea y se abre. La otra mitad es el “teclado”, la parte abierta al público donde se ingresa el código. En teoría, el hardware no debe confiar en ese teclado para girar las teclas y solo debe reenviar las pulsaciones de teclas a través de la conexión BLE. En la práctica, el teclado puede enviar una solicitud de desbloqueo sin código y desbloquear la puerta.

Esto lleva al elemento final, los puertos JTAG disponibles en el teclado. JTAG es una interfaz de depuración para dispositivos integrados, extremadamente útil para actualizar el firmware a dispositivos bloqueados, así como para la depuración en tiempo real. Ese último hace el trabajo aquí. Conéctese al puerto JTAG del teclado y tome los datos de autenticación de la memoria. Luego use otro dispositivo e información de autenticación para suplantar el teclado y enviar comandos arbitrarios a través de la conexión BLE. Pídele cortésmente al tornero de llaves que desbloquee y él lo hará. Con equipo dedicado y un poco de práctica, todo el proceso probablemente podría reducirse a unos pocos segundos. ¡Uf!

El lado positivo es que Nuki, el fabricante de esta cerradura, ha hecho un excelente trabajo al manejar el informe de vulnerabilidad. Los parches salieron menos de dos meses después de que se informara del problema. Se enviaron notificaciones a los usuarios activos y luego, después de un período de tiempo apropiado, las vulnerabilidades se hicieron públicas.

Su servidor está comprometido

Recibe una llamada o un correo electrónico de su empresa de alojamiento, Linode en este caso, que su servidor alojado está participando en un ataque DoS. Probablemente seas Pwned.

¿Que sigue? Los investigadores de Trunco ​​tienen algunos consejos. En primer lugar, es útil tener algo similar sysstat comenzó, un demonio para recopilar estadísticas del sistema. Lo siguiente es SSH a la máquina y ejecutar algunas herramientas. last muestra el historial de inicio de sesión de la máquina, top enumera el uso de CPU y memoria ordenado por proceso, df muestra espacio libre en disco, ps enumera los procesos en ejecución y lsof muestra una lista de archivos abiertos. A menos que esté tratando con un rootkit realmente desagradable, como el Symbiote que discutimos anteriormente, estas herramientas deberían mostrar algo inusual. Si sysstat se estaba ejecutando, sar -n DEV proporciona información sobre el uso de la red a lo largo del tiempo. Si esta máquina está enviando una tonelada de tráfico, debería aparecer aquí, brindándole una buena idea de cuándo comenzó todo.

El sistema en cuestión mostró un gran salto en el tráfico y apache binary estaba ejecutando un uso de CPU muy alto. Eso parecía extraño. Los diarios tenían varias entradas que indicaban una llamada a POST //xmlrpc.php HTTP/1.1. Aunque se puede abusar de este extremo para la reflexión de DDoS, no había suficientes entradas de registro para indicar este problema. Entonces, lo siguiente es buscar archivos modificados. Hay opciones para eso, por ejemplo OSSEC, pero deben ejecutarse en una máquina en buen estado conocido. Entonces, ¿cómo comprueba si hay archivos maliciosos si no tiene uno? Si está utilizando WordPress, simplemente puede descargar y extraer una copia nueva del tarball de instalación que coincida con su versión instalada. Desempáquelo y úselo diff encontrar alguna diferencia. Una de esas diferencias puede ser simplemente un webshell insertado en uno de los archivos PHP de WordPress.

REstringer desenmascara Javascript

Como hacker, uno de los problemas más irritantes es la ofuscación. Javascript en sí está abierto, pero las técnicas de enmascaramiento hacen que la fuente sea completamente ilegible. [Ben Baryo] está trabajando en una solución, un desenmascarador al que llama REstringer. Intenta encontrar qué tipo de enmascaramiento se está utilizando y luego pasa por los métodos de enmascaramiento seguro. Hay una advertencia importante aquí. Puede ser muy difícil desenmascarar el código sin ejecutar accidentalmente partes de ese código. Todavía es un trabajo activo en progreso, así que revise el código o pruebe la demostración en vivo.

Rootkits UEFI

Existe algo así como un hombre del saco en la seguridad informática, un malware mítico que se incrusta en el firmware de una computadora, haciendo que la eliminación sea imposible. Si bien es teóricamente posible que el firmware de la placa base se pueda manipular de esta manera, esto seguramente es solo un mito y los actores estatales pueden usarlo para sus objetivos más importantes.

Esa teoría ha recibido un duro golpe ya que un rootkit que usa esta misma técnica ha aparecido en la naturaleza. Los investigadores de Kaspersky lo han llamado CosmicStrand y señalan que se han encontrado infecciones en China, Vietnam, Irán y Rusia. Algunas pistas en el código sugieren un origen chino y una posible conexión con otro malware que también se origina en esa región.

Técnicamente hablando, usar firmware malicioso para iniciar una reinfección es toda una proeza. Primero, tenga en cuenta que este código se ejecuta mientras la máquina se está inicializando, mucho antes de que se inicie el sistema operativo Windows. ¿Cómo se las arregla el código de rootkit para realizar una infección sofisticada cuando su propia ejecución finaliza mucho antes de que el kernel de Windows comience a ejecutarse?

Incorpora código en el administrador de arranque de Windows, que a su vez conecta el cargador del sistema operativo Windows. Este cargador es parte del proceso de arranque de Windows y permite múltiples manipulaciones dirigidas al propio núcleo de Windows. Y finalmente, después de que se inicia el kernel, esta carga configura el código de shell real. La sofisticación de este malware es bastante sorprendente.

Leave a Reply

Your email address will not be published. Required fields are marked *

*