Fallo de seguridad de Nette CVE-2020-15227

21 de octubre de 2020

Lang: cs en de es

Se ha descubierto un fallo de seguridad en el popular framework PHP Nette para aplicaciones web. ¿Cómo asegurar su aplicación o servidor? En este artículo, descubrirá cuáles son las diferentes opciones para arreglar o aumentar la seguridad del servidor.

Lee el comunicado oficial del fallo de seguridad descubierto en el artículo Primera vulnerabilidad descubierta en Nette, update! por el autor del framework Nette. La mejor solución, y que además es muy fácil de hacer, es actualizar la versión del framework Nette y el problema de seguridad desaparecerá. El cambio que conlleva la actualización no afecta a la funcionalidad, por lo que es una tarea realmente sencilla y segura.

Seguridad

¿En qué sentido es peligroso este agujero de seguridad? Cualquiera que conozca HTML, JavaScript o sepa hacer scripts en BASH, puede realizar una inyección XSS o leer los archivos fuente, incluyendo la configuración y el acceso a la base de datos, y así descargar todos los datos.

Control de versiones de Nette

Si está ejecutando varias aplicaciones también puede comprobar en bloque que tiene instalada una versión de Nette que contiene el parche. El fallo se encuentra en un paquete llamado nette/aplication. Para obtener una lista de los paquetes instalados actualmente, incluida la información sobre la versión, consulte composer.loc. Así que puedes usar el siguiente comando para obtener un listado de las versiones de todos los paquetes nette/application instalados:

    grep -r '"nombre": "nette/aplicación"' */composer.lock -A1
Si estás usando la versión 3 de Nette deberías tener v3.0.6 instalada.

Comprobar registros

Los programas Unix registran lo que sucede. También lo hace el servidor web. Los registros se encuentran en el directorio /var/log/apache2 si está utilizando web Apache server en distribuciones tipo debian, en el directorio /var/log/httpd en distribuciones base RPM. SI usas servidor web Nginx, los logs están en un directorio en /var/log/nginx.

El siguiente comando:

    grep -r callback /var/log/apache2
para obtener las entradas de registro que comprueban si la aplicación web es vulnerable.

Por lo que he visto de los logs, los bots están probando diferentes sitios, mientras que pueden adivinar a partir de la respuesta HTTP si la aplicación web está usando el framework Nette.

Corregir bug

Si no usas composer para actualizar paquetes o no quieres descargar el archivo con Nette, hay otras formas de bug de arreglarlo.

Composer

Si usas composer, ¡que deberías! Para actualizar las librerías usa el comando:

    composer update

Script de corrección de errores

Puedes utilizar un script que utiliza utilidades Unix para arreglar el código fuente script bash para arreglar Nette. O un script PHP que también arregle Nette. Ahí el proceso de reparación puede ser mucho más rápido. Pero ten cuidado que si haces un cambio, no ejecutarás la versión original de la librería que arregla no arregla.

Desactivar URLs

Para realizar un ataque, necesitas especificar una URL concreta. Tanto los servidores web Apache como Nginx permiten aplicar reglas a la URL. Así que es posible crear una regla sobre esa URL específica que bloqueará la URL directamente a nivel del servidor web.

Mejorando la seguridad

También puedes aumentar la seguridad en general reduciendo las características permitidas en el servidor web. Puedes modificar la configuración de PHP, que se encuentra en el archivo php.ini. Sólo tienes que añadir la siguiente línea:

    disable_functions=exec,passthru,shell_exec,system,proc_open,popen
Y al menos limitará algunos tipos de ataques. Pero al mismo tiempo, puede limitar algunas aplicaciones que necesitan usarlas.

Diversión

Por ejemplo, web hosting wedos bloquea dinámicamente por completo el tráfico web HTTP/HTTPS de una determinada casa sólo sobre los puertos 80 y 443, y corta así al visitante el acceso a todos los sitios que aloja, y por tanto a otros clientes, aunque tengan un sitio en una tecnología diferente o parcheado. También cortan el acceso a su sitio corporativo principal. Y como probablemente lo bloquean por IP, hacen que los sitios en su sitio sean inaccesibles para todas las personas que están NAT'd para la misma IP.

Noticias

Nueva información sobre cve-2020-15227 se puede encontrar en los foros de Nette.

Artículos sobre un tema similar

Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Programa Python para controlar Docker mediante la API
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Cómo ejecutar aplicaciones PHP antiguas
Lo que debe saber un buen programador
Lenguaje de programación Rust
NodeJS: desarrollo, configuración del servidor
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Smartphone abierto con Linux - Openmoko Neo FreeRunner

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+