[13/01/2023] En diciembre, el proveedor de seguridad de redes Fortinet reveló que una vulnerabilidad crítica en su sistema operativo FortiOS estaba siendo explotada por atacantes. Esta semana, tras un análisis adicional, la empresa ha dado a conocer más detalles sobre un sofisticado implante de malware que esos atacantes desplegaron a través de la falla.
Según la información actualmente disponible, el ataque de día cero original estaba muy dirigido a entidades relacionadas con el gobierno. Sin embargo, dado que la vulnerabilidad se conoce desde hace más de un mes, todos los clientes deberían parchearla lo antes posible, ya que más atacantes podrían empezar a utilizarla.
Ejecución remota de código en FortiOS SSL-VPN
La vulnerabilidad, rastreada como CVE-2022-42475, se encuentra en la funcionalidad SSL-VPN de FortiOS y puede ser explotada por atacantes remotos sin autenticación. Una explotación exitosa puede resultar en la ejecución de código y comandos arbitrarios.
Fortinet calificó la vulnerabilidad como 9,3 (Crítica) en la escala CVSS y publicó actualizaciones para las principales variantes de FortiOS, FortiOS-6K7K y FortiProxy, el producto de gateway web seguro de la empresa. FortiOS se ejecuta en los firewalls de seguridad de red FortiGate y otros dispositivos de la empresa.
Una solución para los clientes que no pueden desplegar inmediatamente las actualizaciones es desactivar SSL-VPN por completo, lo que podría ser difícil para las organizaciones que dependen de esta funcionalidad para apoyar sus entornos de trabajo remotos o híbridos. Fortinet también ha publicado una firma IPS (sistema de prevención de intrusiones) para detectar intentos de exploits, así como reglas de detección para el implante conocido en su motor antivirus.
Los clientes también pueden buscar en sus registros las siguientes entradas que podrían indicar intentos de explotación:
Logdesc="Aplicación bloqueada" y msg="[...] application:sslvpnd,[...], Señal 11 recibida, Backtrace: [...]"
Implante oculto como versión troyanizada del motor IPS de FortiOS
En el ataque analizado por Fortinet, los atacantes explotaron la vulnerabilidad y copiaron una versión troyanizada del FortiOS IPS Engine al sistema de archivos. Esto indica que los atacantes son altamente cualificados y capaces de realizar ingeniería inversa de componentes personalizados de FortiOS.
La versión falsa del motor IPS se guardó en el sistema de archivos como /data/lib/libips.bak y es una copia de la legítima /data/lib/libips.so pero con modificaciones maliciosas. En concreto, la versión maliciosa exporta dos funciones legítimas llamadas ips_so_patch_urldb y ips_so_query_interface que normalmente forman parte del libips.so legítimo, pero las secuestra para ejecutar código almacenado en otros componentes maliciosos.
"Si libps.bak se denomina libips.so en el directorio /data/lib, el código malicioso se ejecutará automáticamente, ya que los componentes de FortiOS llamarán a estas funciones exportadas", afirmaron los analistas de Fortinet. "El binario no intenta volver al código limpio del motor IPS, por lo que la funcionalidad IPS también se ve comprometida".
En otras palabras, una vez ejecutada la versión maliciosa, la funcionalidad IPS legítima deja de funcionar correctamente. Las funciones secuestradas ejecutan código malicioso que luego lee y escribe en una serie de archivos llamados libiptcp.so, libgif.so, .sslvpnconfigbk y libipudp.so.
Los analistas no pudieron recuperar todos estos archivos del dispositivo comprometido que analizaron, por lo que se desconoce la cadena de ataque completa. Sin embargo, encontraron un archivo llamado wxd.conf cuyo contenido es similar al archivo de configuración de un proxy inverso de código abierto que se puede utilizar para exponer un sistema detrás de NAT a Internet.
El análisis de las capturas de paquetes de red del dispositivo sugiere que el malware conectaba dos servidores externos controlados por el atacante para descargar cargas útiles y comandos adicionales para ejecutar. Uno de los servidores seguía en funcionamiento y contenía una carpeta con archivos binarios creados específicamente para diferentes versiones de hardware FortiGate. Esto permitió a los investigadores analizar archivos adicionales que creen que los atacantes ejecutaron en los sistemas para manipular la funcionalidad de registro en FortiOS.
Según los investigadores
- El malware parchea los procesos de registro de FortiOS para manipular los registros y evadir la detección. - /bin/miglogd y /bin/syslogd.
- Incluye offsets y opcodes para 27 modelos y pares de versiones de FortiGate. El malware abre un handle a los procesos e inyecta datos en ellos.
- Las versiones van de la 6.0.5 a la 7.2.1.
- Los modelos son FG100F, FG101F, FG200D, FG200E, FG201F, FG240D, FG3H0E, FG5H0E, FG6H1E, FG800D, FGT5HD, FGT60F, FGT80F.
- El malware puede manipular archivos de registro. Busca archivos elog, que son registros de eventos en FortiOS. Después de descomprimirlos en memoria, busca una cadena especificada por el atacante, la borra y reconstruye los registros.
El malware también puede matar los procesos de registro.
Los investigadores también encontraron una muestra en el escáner en línea VirusTotal de un binario de Windows que tiene similitudes de código con el binario de Linux encontrado en FortiOS. Esa muestra de Windows se compiló en una máquina de la zona horaria UTC+8, que incluye Australia, China, Rusia, Singapur y otros países de Asia Oriental. Los certificados autofirmados utilizados por los atacantes también se crearon entre las 3 y las 8 de la mañana UTC. "Es difícil sacar conclusiones de esto, dado que los hackers no operan necesariamente en horario de oficina y a menudo lo hacen durante las horas de oficina de las víctimas para ayudar a confundir su actividad con el tráfico general de la red", afirman los investigadores.
El aviso de Fortinet contiene muchos indicadores de compromiso, incluyendo rutas de archivos, hashes de archivos, direcciones IP, e incluso firmas para detectar la comunicación maliciosa por este implante dentro de las capturas de paquetes de red.
Basado en el artículo de Lucian Constantin (CSO) y editado por CIO Perú