Cómo corregir la vulnerabilidad de PHP 7 en servidores web

0
260


Hace un par de días, especialistas en análisis de vulnerabilidades reportaron la detección de CVE-2019-11043, una peligrosa vulnerabilidad de ejecución remota de código que puede afectar cualquier sitio web PHP 7 que use PHP-FPM. El uso de esta característica es muy común en los sitios web con NGINX, lo que los hace especialmente vulnerables a la explotación de esta falla.

Es importante destacar que la vulnerabilidad
reside en PHP-FPM, no en NGINX, por lo que la única corrección permanente es
actualizar a la versión actualizada de la implementación de PHP: PHP 7.1.33,
PHP 7.2.24 o PHP 7.3.11.

De ser explotada, la vulnerabilidad CVE-2019-11043
podría dejar que los hackers fuercen la ejecución de su propio código
arbitrario en un servidor remoto, usando sólo una URL especialmente diseñada y
añadiendo algunos caracteres, además de la carga útil de los atacantes.

Por otra parte, reportes de expertos en análisis
de vulnerabilidades menciona que esta falla es demasiado fácil de explotar,
pues incluso los usuarios con limitados conceptos y sin conocimientos de
hacking podrían tomar control de un sistema expuesto, pues sólo se requiere una
configuración común de NGINX, mediante la cual NGINX usa una expresión regular
en fastcgi_split_path_info para dividir una solicitud en dos partes.

Aunque lo más recomendable es actualizar su
versión de PHP de inmediato, en caso de que esto no sea posible, a contiuación
se muestra una forma de mitigar el riesgo de explotación de esta
vulnerabilidad:

  • Puede agregar una directiva try_files a la configuración de NGINX para verificar que la variable $uri se resuelva en un archivo (el script PHP) y rechace la solicitud con el código 404 (Not Found), de lo contrario:
location ~ [^/].php(/|$) {
    fastcgi_split_path_info ^(.+?.php)(/.*)$;
    fastcgi_param           PATH_INFO $fastcgi_path_info;
    try_files               $uri =404;
    #...
}

Es importante resaltar que esta mitigación sólo funciona si NGINX y PHP-FPM
comparten el mismo docroot en el mismo host.

  • Utilice F5 BIG-IP ASM
    (Application Security Manager) para proteger su aplicación. Los conjuntos de
    firmas existentes “Ejecución de comandos” e “Inyección de código
    del lado del servidor” incluyen firmas de ataque que bloquearán la mayoría
    de los intentos de explotación.
  • Agregue una regla ModSecurity para bloquear las solicitudes que contienen el carácter sospechoso %0a o %0d:
SecRule REQUEST_URI "@rx %0(a|A|d|D)" "id:1,phase:1,t:lowercase,deny"

Este método de mitigación podría causar falsos positivos, por lo que un
actor de amenazas aún podría encontrar una forma de explotar la vulnerabilidad,
mencionan expertos en análisis de vulnerabilidades del Instituto Internacional
de Seguridad Cibernética.



Source link