Bibliothèque de pare-feu d'applications Web basée sur Go, compatible avec les règles ModSecurity SecLang et l'ensemble de règles de base OWASP v4, offrant une inspection du trafic HTTP en temps réel et un blocage des attaques pour les applications Web et les API.
Coraza - Pare-feu applicatif Web
Coraza est un pare-feu applicatif Web (WAF) open source, de qualité professionnelle et haute performance, prêt à protéger vos applications bien-aimées. Il est écrit en Go, prend en charge les ensembles de règles SecLang de ModSecurity et est compatible à 100 % avec l'OWASP Core Rule Set v4.
Fonctionnalités clés :
⇲ Remplacement direct - Coraza est un moteur alternatif partiellement compatible avec TrustwaveOWASP ModSecurity Engine et prend en charge les ensembles de règles SecLang standard du secteur.
🔥 Sécurité - Coraza exécute l'OWASP CRS v4 (anciennement Core Rule Set) pour protéger vos applications Web contre un large éventail d'attaques, y compris l'OWASP Top Ten, avec un minimum de faux avertissements. CRS protège contre de nombreuses catégories d'attaques courantes, notamment : Injection SQL (SQLi), Cross Site Scripting (XSS), Injection de code PHP et Java, HTTPoxy, Shellshock, Détection de scripts/scanners/bots, Fuites de métadonnées et d'erreurs. Notez que les versions plus anciennes du CRS ne sont pas compatibles.
🔌 Extensible - Coraza est une bibliothèque à la base, avec de nombreuses intégrations pour déployer des instances de pare-feu applicatif Web sur site. Journaux d'audit, moteurs de persistance, opérateurs, actions, créez vos propres fonctionnalités pour étendre Coraza à volonté.
🚀 Performance - Des sites Web imposants aux petits blogs, Coraza peut gérer la charge avec un impact minimal sur les performances. Consultez nos Benchmarks
﹡ Simplicité - Tout le monde peut comprendre et modifier le code source de Coraza. Il est facile d'étendre Coraza avec de nouvelles fonctionnalités.
💬 Communauté - Coraza est un projet communautaire, les contributions sont acceptées et toutes les idées seront considérées. Trouvez des conseils pour les contributeurs dans le document CONTRIBUTION.
Le projet Coraza maintient des implémentations et des plugins pour les serveurs suivants :
Coraza peut être utilisé comme une bibliothèque pour votre programme Go afin d'implémenter un middleware de sécurité ou de l'intégrer à des applications et serveurs Web existants.
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 fournit un exemple pour pratiquer avec Coraza.
Les étiquettes de compilation Go peuvent ajuster certaines fonctionnalités au moment de la compilation. Elles sont destinées uniquement aux cas d'utilisation avancés et n'offrent pas de garanties de compatibilité entre versions mineures - utilisez-les avec précaution.