
Biblioteca de firewall de aplicaciones web basada en Go compatible con reglas ModSecurity SecLang y OWASP Core Rule Set v4, que proporciona inspección de tráfico HTTP en tiempo real y bloqueo de ataques para aplicaciones web y APIs.
Coraza - Cortafuegos de Aplicaciones Web
Coraza es un cortafuegos de aplicaciones web (WAF) de código abierto, de grado empresarial y alto rendimiento, listo para proteger tus queridas aplicaciones. Está escrito en Go, es compatible con los conjuntos de reglas SecLang de ModSecurity y es 100% compatible con el OWASP Core Rule Set v4.
Características clave:
⇲ Integración directa - Coraza es un motor alternativo que tiene compatibilidad parcial con TrustwaveOWASP ModSecurity Engine y admite conjuntos de reglas SecLang estándar de la industria.
🔥 Seguridad - Coraza ejecuta el OWASP CRS v4 (anteriormente conocido como Core Rule Set) 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 de 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/scanners/bots y Fugas de metadatos y errores. Ten en cuenta que las versiones anteriores del CRS no son compatibles.
🔌 Extensible - Coraza es una biblioteca en su núcleo, con muchas integraciones para implementar instancias de cortafuegos de aplicaciones web on-premise. Registradores de auditoría, motores de persistencia, operadores, acciones: crea tus propias funcionalidades para extender Coraza tanto como quieras.
🚀 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, las contribuciones son aceptadas y todas las ideas serán consideradas. Encuentra orientación para contribuir en el documento CONTRIBUTION.
El Proyecto Coraza mantiene implementaciones y plugins para los siguientes servidores:
Coraza se puede utilizar como una biblioteca para tu programa 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.
Las etiquetas de compilación de Go pueden ajustar cierta funcionalidad en tiempo de compilación. Son solo para casos de uso avanzados y no tienen garantías de compatibilidad entre versiones menores: úsalas con cuidado.