Saltar a contenido

naxsi: Módulo Anti XSS & SQL Injection de NGINX

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-naxsi
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-naxsi

Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:

load_module modules/ngx_http_naxsi_module.so;

Este documento describe nginx-module-naxsi v1.6 lanzado el 28 de noviembre de 2023.


naxsi

¿Qué es Naxsi?

NAXSI significa Nginx Anti XSS & SQL Injection.

Técnicamente, es un módulo de nginx de terceros, disponible como un paquete para muchas plataformas similares a UNIX. Este módulo, por defecto, lee un pequeño subconjunto de reglas simples (y legibles) que contienen el 99% de los patrones conocidos involucrados en vulnerabilidades de sitios web. Por ejemplo, <, | o drop no se supone que sean parte de una URI.

Siendo muy simple, esos patrones pueden coincidir con consultas legítimas, es deber del administrador de Naxsi añadir reglas específicas que blanqueen comportamientos legítimos. El administrador puede añadir listas blancas manualmente analizando el registro de errores de nginx, o (recomendado) iniciar el proyecto con una fase de autoaprendizaje intensiva que generará automáticamente reglas de blanqueo en relación con el comportamiento de un sitio web.

En resumen, Naxsi se comporta como un firewall DROP por defecto, la única tarea es añadir las reglas de ACCEPT requeridas para que el sitio web objetivo funcione correctamente.

¿Por qué es diferente?

A diferencia de la mayoría de los Firewalls de Aplicaciones Web, Naxsi no se basa en una base de firmas como un antivirus, y por lo tanto no puede ser eludido por un patrón de ataque "desconocido". Naxsi es software libre (en libertad) y gratuito (como en cerveza gratis) para usar.

¿En qué se ejecuta?

Naxsi debería ser compatible con cualquier versión de nginx.

Depende de libpcre para su soporte de expresiones regulares, y se informa que funciona muy bien en NetBSD, FreeBSD, OpenBSD, Debian, Ubuntu y CentOS.

¿Por qué usar este repositorio?

El proyecto original está (oficialmente) abandonado, pero puedes solicitar soporte aquí ya que estoy dispuesto a mantener el proyecto funcionando como el último desarrollador restante.

Documentación

docs

Soporte

Puedes solicitar soporte sobre NAXSI aquí o en el repositorio original https://github.com/nbs-system/naxsi

Planes futuros

  • Recuperar nxapi a través de py3
  • Creación de una herramienta simple para crear reglas y probarlas

GitHub

Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-naxsi.