
Go-библиотека для межсетевого экрана веб-приложений (WAF), совместимая с правилами ModSecurity SecLang и OWASP Core Rule Set v4, обеспечивающая проверку HTTP-трафика в реальном времени и блокировку атак для веб-приложений и API.
Coraza - Брандмауэр веб-приложений
Coraza — это брандмауэр веб-приложений (WAF) с открытым исходным кодом, корпоративного уровня и высокой производительностью, готовый защитить ваши любимые приложения. Он написан на Go, поддерживает наборы правил ModSecurity SecLang и на 100% совместим с OWASP Core Rule Set v4.
Ключевые особенности:
⇲ Бесшовная замена — Coraza — это альтернативный движок, который частично совместим с TrustwaveOWASP ModSecurity Engine и поддерживает отраслевые наборы правил SecLang.
🔥 Безопасность — Coraza запускает OWASP CRS v4 (ранее известный как Core Rule Set) для защиты ваших веб-приложений от широкого спектра атак, включая OWASP Top Ten, с минимальным количеством ложных срабатываний. CRS защищает от многих распространённых категорий атак, включая: SQL-инъекции (SQLi), межсайтовый скриптинг (XSS), инъекции кода PHP и Java, HTTPoxy, Shellshock, обнаружение скриптов/сканеров/ботов, утечки метаданных и ошибок. Обратите внимание, что более старые версии CRS несовместимы.
🔌 Расширяемость — Coraza по своей сути является библиотекой, имеющей множество интеграций для развёртывания локальных экземпляров брандмауэра веб-приложений. Журналы аудита, механизмы сохранения состояния, операторы, действия — создавайте собственные функции, чтобы расширять Coraza по своему усмотрению.
🚀 Производительность — От огромных веб-сайтов до маленьких блогов — Coraza справляется с нагрузкой с минимальным влиянием на производительность. Ознакомьтесь с нашими тестами производительности
﹡ Простота — Любой может понять и изменить исходный код Coraza. Легко расширять Coraza новыми функциями.
💬 Сообщество — Coraza — это проект сообщества, принимаются вклады и все идеи будут рассмотрены. Руководство для участников можно найти в документе CONTRIBUTION.
Проект Coraza поддерживает реализации и плагины для следующих серверов:
Coraza можно использовать как библиотеку для вашей программы на Go для реализации промежуточного ПО безопасности или интеграции с существующими приложениями и веб-серверами.
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 содержит пример для практики с Coraza.
Теги сборки Go позволяют изменять определённую функциональность во время компиляции. Они предназначены только для продвинутых сценариев использования и не имеют гарантий совместимости между минорными версиями — используйте с осторожностью.