Vulnerabilidad RCE en F5 BIG-IP

Múltiples vulnerabilidades críticas (RCE) en F5 Big-IP - Una al Día

El pasado 4 de mayo, F5 liberó distintos parches de seguridad para su balanceador de carga F5 BIG-IP. Entre los fallos que mitigaba este parche, se encuentra una vulnerabilidad crítica de ejecución de código remoto (RCE).

Impacto de la vulnerabilidad

Este fallo permite a un atacante ejecutar código arbitrario de forma remota, que permitiría: crear o borrar archivos, habilitar o deshabilitar servicios en el equipo vulnerado.

Para poder ser explotada esta vulnerabilidad es necesario contar con acceso a la red, sin embargo, no se necesitan credenciales o estar autenticado.

Versiones vulnerables

La vulnerabilidad se presenta dado que existe un fallo en la autenticación de iControl REST, un atacante puede realizar un bypass al módulo mencionado.

ProductoVersión vulnerableVersión recomendadaSeveridadComponente vulnerable
BIG-IP (Todos los módulos)16.1.0-16.1.216.1.2.2CríticaiControl REST
BIG-IP (Todos los módulos)15.1.0 – 15.1.515.1.5.1CríticaiControl REST
BIG-IP (Todos los módulos)14.1.0 – 14.1.414.1.4.6CríticaiControl REST
BIG-IP (Todos los módulos)13.1.0 – 13.1.413.1.5CríticaiControl REST
BIG-IP (Todos los módulos)12.1.0 – 12.1.6No tendrán parchesCríticaiControl REST
BIG-IP (Todos los módulos)11.6.1 – 11.6.5No tendrán parchesCríticaiControl REST
Versiones vulnerables

Mitigación

Hasta que sea posible instalar una versión segura, puede efectuar las siguientes mitigaciones temporales. Estas mitigaciones restringen el acceso a iControl REST solo a redes o dispositivos confiables, lo que limita la superficie de ataque.

Bloquear el acceso REST a iControl a través de la propia dirección IP

Puede bloquear todos los accesos a la interfaz REST iControl de su sistema BIG-IP a través de direcciones IP propias. Para hacerlo, puede cambiar la configuración de Port Lockdown a Allow None para cada dirección IP propia en el sistema. Si debe abrir algún puerto, debe usar la opción Permitir personalizado, teniendo cuidado de no permitir el acceso a iControl REST. De manera predeterminada, iControl REST escucha en el puerto TCP 443 o en el puerto TCP 8443 en instancias únicas de NIC BIG-IP VE. Si modificó el puerto predeterminado, asegúrese de prohibir el acceso al puerto alternativo que configuró.

Bloquee el acceso REST de iControl a través de la interfaz de administración

Para mitigar esta vulnerabilidad para los productos F5 afectados, debe restringir el acceso de administración solo a usuarios y dispositivos de confianza a través de una red segura.

Modificar la configuración httpd de BIG-IP

Además de bloquear el acceso a través de las propias direcciones IP y la interfaz de administración, o como una alternativa para bloquear el acceso si esas opciones no son posibles en su entorno, puede modificar la configuración httpd de BIG-IP para mitigar este problema.

BIG-IP 14.1.0 y posteriores

  • Inicie sesión en TMOS Shell (tmsh) del sistema BIG-IP ingresando el siguiente comando:
tmsh
  • Abra la configuración de httpd para editarla ingresando el siguiente comando:
edit /sys httpd all-properties
  • Busque la línea que comienza con include none y reemplace none con el siguiente texto:
<If \"%{https:connection} =~ /close/i \">
RequestHeader set connection close
</If>
<ElseIf \"%{https:connection} =~ /keep-alive/i \">
RequestHeader set connection keep-alive
</ElseIf>
<Else>
    RequestHeader set connection close
</Else>
  • Después de actualizar la declaración de inclusión, use la tecla ESC para salir del modo interactivo del editor, luego guarde los cambios ingresando el siguiente comando:
:wq
  • En el mensaje Guardar cambios (y/n/e), seleccione «y» para guardar los cambios.
  • Guarde la configuración de BIG-IP ingresando el siguiente comando:
save /sys config

BIG-IP 14.0.0 y anteriores

  • Inicie sesión en TMOS Shell (tmsh) del sistema BIG-IP ingresando el siguiente comando:
tmsh
  • Abra la configuración de httpd para editarla ingresando el siguiente comando:
edit /sys httpd all-properties
  • Busque la línea que comienza con include none y reemplace none con el siguiente texto:
"RequestHeader set connection close"
  • Después de actualizar la declaración de inclusión, use la tecla ESC para salir del modo interactivo del editor, luego guarde los cambios ingresando el siguiente comando:
:wq
  • En el mensaje Guardar cambios (y/n/e), seleccione «y» para guardar los cambios.
  • Guarde la configuración de BIG-IP ingresando el siguiente comando:
save /sys config

Indicadores de compromiso (IOCs)

Utilice esta comparación para determinar la intención y el impacto potencial de los registros de BIG-IP. Por ejemplo, puede ver las siguientes entradas en estos registros:

'/var/log/audit'

May 00 00:00:00 hostname notice icrd_child[11111]: 11111111:5: AUDIT - pid=11111 user=admin folder=/Common module=(tmos)# status=[Command OK] cmd_data=run util bash -c id

'/var/log/restjavad-audit.0.log'

[I][1111][00 May 0000 00:00:00 UTC][ForwarderPassThroughWorker] {"user":"local/admin","method":"POST","uri":"https://localhost:8100/mgmt/tm/util/bash","status":200,"from":"nnn.nnn.nnn.nnn"}

Si los registros muestran entradas similares a estos ejemplos, esto puede indicar que una solicitud REST de la dirección IP nnn.nnn.nnn.nnn invoca el comando "run util bash -c id«. (en estas entradas de registro, el comando id se usa solo como ejemplo). Debe examinar detenidamente cualquier entrada de "/var/log/restjavad-audit..log» y «/var/log/audit» y compararlas con llamadas REST legítimas contra el dispositivo.

Recomendaciones

  • Efectuar las actualizaciones a las versiones seguras tan pronto como sea posible. Sobre todo si se encuentra en las versiones 11.x y 12.x.
  • En caso de no poder efectuar las actualizaciones, realizar las mitigaciones de manera urgente, exceptuando el caso en que se encuentre en las versiones 11.x o 12.x, en estos casos debe actualizar de inmediato.
  • Realizar la revisión de los logs para validar que no hayan indicadores de compromiso.