
ModSecurity es un motor de cortafuegos de aplicaciones web (WAF) de código abierto y multiplataforma para Apache, IIS y Nginx. Cuenta con un robusto lenguaje de programación basado en eventos que proporciona protección contra una amplia gama de ataques contra aplicaciones web y permite la monitorización del tráfico HTTP, el registro y el análisis en tiempo real.
Libmodsecurity es uno de los componentes del proyecto ModSecurity v3. La base de código de la biblioteca sirve como interfaz para los Conectores de ModSecurity, recibiendo tráfico web y aplicando el procesamiento tradicional de ModSecurity. En general, proporciona la capacidad de cargar e interpretar reglas escritas en el formato ModSecurity SecRules y aplicarlas al contenido HTTP proporcionado por su aplicación a través de los Conectores.
Si está buscando ModSecurity para Apache (también conocido como ModSecurity v2.x), todavía está en mantenimiento y disponible: aquí.
Libmodsecurity es una reescritura completa de la plataforma ModSecurity. Cuando se ideó por primera vez, el proyecto ModSecurity comenzó como un simple módulo de Apache. Con el tiempo, el proyecto se ha ampliado, debido a la demanda popular, para admitir otras plataformas, incluidas (entre otras) Nginx e IIS. Con el fin de satisfacer la creciente demanda de soporte adicional de plataformas, se ha vuelto necesario eliminar las dependencias de Apache subyacentes a este proyecto, haciéndolo más independiente de la plataforma.
Como resultado de este objetivo, hemos rediseñado la arquitectura de Libmodsecurity de modo que ya no dependa del servidor web Apache (tanto en la compilación como durante la ejecución). Un efecto secundario de esto es que, en todas las plataformas, los usuarios pueden esperar un mayor rendimiento. Además, hemos aprovechado esta oportunidad para sentar las bases de algunas nuevas funcionalidades que los usuarios han estado buscando durante mucho tiempo. Por ejemplo, pretendemos admitir de forma nativa los registros de auditoría en formato JSON, junto con una serie de otras funcionalidades en futuras versiones.
La rama 'ModSecurity' ya no contiene la lógica tradicional del módulo (para Nginx, Apache e IIS) que tradicionalmente se empaquetaba toda junta. En su lugar, esta rama solo contiene la parte de la biblioteca (libmodsecurity) de este proyecto. Esta biblioteca es consumida por lo que hemos denominado 'Conectores'; estos conectores se interconectarán con su servidor web y proporcionarán a la biblioteca un formato común que esta entiende. Cada uno de estos conectores se mantiene como un proyecto separado en GitHub. Por ejemplo, el conector de Nginx es proporcionado por el proyecto ModSecurity-nginx (https://github.com/owasp-modsecurity/ModSecurity-nginx).
Mantener estos conectores separados permite que cada proyecto tenga diferentes ciclos de lanzamiento, problemas y árboles de desarrollo. Además, significa que cuando instala ModSecurity v3 solo obtiene exactamente lo que necesita, sin extras que no vaya a utilizar.
Antes de comenzar el proceso de compilación, asegúrese de que todas las dependencias requeridas estén instaladas.
Consulte la sección Dependencias y Submódulos de Git para obtener más información.
Después de la compilación, asegúrese de que no haya problemas en su compilación/plataforma.
Recomendamos encarecidamente ejecutar las pruebas unitarias y las pruebas de regresión. Estas utilidades de prueba se encuentran en la subcarpeta tests/.
Como biblioteca dinámica, libmodsecurity debe instalarse en una ubicación donde su sistema operativo pueda encontrar bibliotecas dinámicas.
En sistemas tipo Unix, el proyecto utiliza autotools para el proceso de compilación.
Si está trabajando con un checkout de git, asegúrese de clonar el repositorio de forma recursiva o inicializar todos los submódulos antes de compilar.
Consulte también la sección Submódulos de Git.
git clone https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity
Este repositorio utiliza submódulos de git. Después de clonar, asegúrate de inicializar y obtener todos los submódulos:
git submodule update --init --recursive
Puedes verificar que todos los submódulos estén correctamente inicializados con:
git submodule status
Los submódulos que están correctamente inicializados muestran un hash de commit.
Un - inicial indica que el submódulo no ha sido inicializado.
A continuación, puede iniciar el proceso de compilación:
./build.sh
./configure
make
sudo make install
Los detalles sobre las compilaciones específicas de cada distribución se pueden encontrar en nuestra Wiki: Recetas de compilación
La información sobre la compilación en Windows se puede encontrar aquí.
Regex (src/utils/regex.*).@rx, @rxGlobal y @verifyCC.