
Go-basierte Web Application Firewall-Bibliothek, kompatibel mit ModSecurity SecLang-Regeln und dem OWASP Core Rule Set v4, die Echtzeit-Überprüfung von HTTP-Datenverkehr und Angriffsblockierung für Webanwendungen und APIs bietet.
Coraza - Web Application Firewall
Coraza ist eine quelloffene, unternehmensgerechte, leistungsstarke Web Application Firewall (WAF), bereit, Ihre geschätzten Anwendungen zu schützen. Es ist in Go geschrieben, unterstützt ModSecurity SecLang-Regelsätze und ist 100% kompatibel mit dem OWASP Core Rule Set v4.
Hauptmerkmale:
⇲ Drop-in - Coraza ist eine alternative Engine mit teilweiser Kompatibilität zu TrustwaveOWASP ModSecurity Engine und unterstützt branchenübliche SecLang-Regelsätze.
🔥 Sicherheit - Coraza führt die OWASP CRS v4 (ehemals Core Rule Set) aus, um Ihre Webanwendungen vor einer Vielzahl von Angriffen zu schützen, einschließlich der OWASP Top Ten, mit minimalen Fehlalarmen. CRS schützt vor vielen gängigen Angriffskategorien: SQL Injection (SQLi), Cross Site Scripting (XSS), PHP & Java Code Injection, HTTPoxy, Shellshock, Scripting/Scanner/Bot Erkennung & Metadaten & Fehlerlecks. Beachten Sie, dass ältere Versionen des CRS nicht kompatibel sind.
🔌 Erweiterbar - Coraza ist im Kern eine Bibliothek mit vielen Integrationen für den Einsatz von On-Premise Web Application Firewalls. Audit-Logger, Persistenz-Engines, Operatoren, Aktionen – erstellen Sie Ihre eigenen Funktionen, um Coraza beliebig zu erweitern.
🚀 Leistung - Von großen Websites bis zu kleinen Blogs, Coraza bewältigt die Last mit minimalen Leistungseinbußen. Siehe unsere Benchmarks
﹡ Einfachheit - Jeder kann den Quellcode von Coraza verstehen und ändern. Es ist einfach, Coraza mit neuen Funktionen zu erweitern.
💬 Community - Coraza ist ein Community-Projekt, Beiträge sind willkommen und alle Ideen werden berücksichtigt. Anleitungen für Mitwirkende finden Sie im CONTRIBUTION-Dokument.
Das Coraza-Projekt unterhält Implementierungen und Plugins für die folgenden Server:
Coraza kann als Bibliothek für Ihr Go-Programm verwendet werden, um eine Sicherheits-Middleware zu implementieren oder in bestehende Anwendungen und Webserver zu integrieren.
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 bietet ein Beispiel zum Üben mit Coraza.
Go-Build-Tags können bestimmte Funktionalitäten zur Compile-Zeit anpassen. Diese sind nur für fortgeschrittene Anwendungsfälle gedacht und haben keine Kompatibilitätsgarantien über Nebenversionen hinweg – mit Bedacht verwenden.