Coraza - Web Application Firewall

Regression Tests Coreruleset Compatibility CodeQL codecov Project Status: Active OWASP Lab Project GoDoc

Coraza es un Web Application Firewall (WAF) de código abierto, nivel empresarial y alto rendimiento, listo para proteger tus aplicaciones más preciadas. Esta escrito en Go, soporta conjuntos de reglas ModSecurity SecLang y es 100% compatible con el OWASP Core Rule Set.


Características principales:

  • Reemplazo directo - Coraza es un motor alternativo que tiene compatibilidad parcial con Trustwave OWASP ModSecurity Engine y soporta conjuntos de reglas SecLang estándar de la industria.

  • 🔥 Seguridad - Coraza ejecuta el OWASP CRS para proteger tus aplicaciones web de una amplia gama de ataques, incluyendo el OWASP Top Ten, con un mínimo de falsas alertas. CRS protege contra muchas categorías de ataques comunes, incluyendo Inyección SQL (SQLi), Cross Site Scripting (XSS), Inyección de código PHP y Java, HTTPoxy, Shellshock, Detección de Scripts/Escáner/Bots y Fugas de Metadatos y Errores.

  • 🔌 Extensible - Coraza es una biblioteca en su núcleo, con muchas integraciones para desplegar instancias de Web Application Firewall en tus propias instalaciones. Registradores de auditoría, motores de persistencia, operadores, acciones, crea tus propias funcionalidades para extender Coraza tanto como desees.

  • 🚀 Rendimiento - Desde sitios web enormes hasta blogs pequeños, Coraza puede manejar la carga con un impacto mínimo en el rendimiento. Consulta nuestros Benchmarks

  • Simplicidad - Cualquier persona puede entender y modificar el código fuente de Coraza. Es fácil extender Coraza con nuevas funcionalidades.

  • 💬 Comunidad - Coraza es un proyecto comunitario, se aceptan contribuciones y todas las ideas serán consideradas. Encuentra la guia para contribuir en el documento CONTRIBUTION.


Integraciones

El Proyecto Coraza mantiene implementaciones y plugins para los siguientes servidores:

Plugins

Requisitos previos

  • Compilador Golang v1.18+
  • Distribucion Linux (Debian o Centos recomendado) o Mac. Windows aun no esta soportado.

Uso de Coraza Core

Coraza puede usarse como biblioteca para tu programa en Go para implementar un middleware de seguridad o integrarlo con aplicaciones y servidores web existentes.

package main

import (
	"fmt"
	"github.com/corazawaf/coraza/v3"
)

func main() {
	// First we initialize our waf and our seclang parser
	waf, err := coraza.NewWAF(coraza.NewWAFConfig().
		WithDirectives(`SecRule REMOTE_ADDR "@rx .*" "id:1,phase:1,deny,status:403"`))
	// Now we parse our rules
	if err != nil {
		fmt.Println(err)
	}

	// Then we create a transaction and assign some variables
    tx := waf.NewTransaction()
	defer func() {
		tx.ProcessLogging()
		tx.Close()
	}()
	tx.ProcessConnection("127.0.0.1", 8080, "127.0.0.1", 12345)

	// Finally we process the request headers phase, which may return an interruption
	if it := tx.ProcessRequestHeaders(); it != nil {
		fmt.Printf("Transaction was interrupted with status %d\n", it.Status)
	}
}

Examples/http-server proporciona un ejemplo para practicar con Coraza.

Etiquetas de compilación

Las etiquetas de compilación de Go pueden ajustar ciertas funcionalidades en tiempo de compilación. Estas son solo para casos de uso avanzados y no tienen garantías de compatibilidad entre versiones menores - usar con precaución.

  • coraza.disabled_operators.* - excluye el operador especificado de la compilación. Particularmente útil si se sobreescribe el operador con operators.Register para reducir el tamano del binario / la sobrecarga de inicio.
  • coraza.rule.multiphase_valuation - habilita la evaluación de variables de reglas en las fases en que estan listas, no solo en la fase para la que la regla esta definida.

Herramientas

Desarrollo

Coraza solo requiere Go para el desarrollo. Puedes ejecutar mage.go para emitir comandos de desarrollo.

Ver la lista de comandos

go run mage.go -l

Por ejemplo, para formatear tu código antes de enviarlo, ejecuta

go run mage.go format

Contribuir

Las contribuciones son bienvenidas! Por favor consulta CONTRIBUTING.md para orientación.

Agradecimientos

  • Al equipo de Modsecurity por crear ModSecurity
  • Al equipo de OWASP Coreruleset por el CRS y su ayuda

Empresas/Productos que usan Coraza

Coraza en X/Twitter

Donaciones

Para donaciones, consulta el sitio de donaciones

Gracias a todas las personas que han contribuido

No podriamos haberlo logrado sin ustedes!

Hecho con contrib.rocks.