关于Coraza
Coraza是一款功能强大的企业级OWASP Web应用程序防火墙框架,该工具基于Golang开发,不仅支持Modsecurity的Seclang语言,而且能够100%兼容OWASP核心规则集。
该工具完全开源,任何开发人员都可以根据自己的需求轻松完成自定义开发。
Coraza v2工具特性
1、内部API重构,公共API未做改动;
2、支持插件的全面审计引擎重构;
3、新增了很多插件接口;
4、完全兼容Modsecurity的Seclang语言;
5、删除了部分功能,并转换成了插件的形式,例如XML、GeoIP和PCRE正则表达式;
6、优化调试日志;
7、更新错误日志功能;
8、更好的性能;
工具要求
1、Linux发型版操作系统(推荐Debian或CentOS,当前版本暂不支持Windows);
2、Golang编译器v1.16+环境;
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/corazawaf/coraza.git
运行测试
下列命令可以直接运行Go测试:
go test ./... go test -race ./...
使用pre-commit:
pip install pre-commit pre-commit run --all-files
我们还可以直接通过下列命令来安装pre-commit Git钩子:
pre-commit install
你的第一个Coraza Web应用防火墙项目
package main import( "fmt" "github.com/corazawaf/coraza/v2" "github.com/corazawaf/coraza/v2/seclang" ) func main() { // 首先,我们初始化WAF以及Seclang解析器 waf := coraza.NewWaf() parser, _ := seclang.NewParser(waf) // 解析我们的规则 if err := parser.FromString(`SecRule REMOTE_ADDR "@rx .*" "id:1,phase:1,deny,status:403"`); err != nil { fmt.Println(err) } // 接下来,创建一个事务,并分配相关变量 tx := waf.NewTransaction() defer func(){ tx.ProcessLogging() tx.Clean() }() tx.ProcessConnection("127.0.0.1", 8080, "127.0.0.1", 12345) // 最后是请求Header处理阶段,该阶段可能会返回一个中断 if it := tx.ProcessRequestHeaders(); it != nil { fmt.Printf("Transaction was interrupted with status %d\n", it.Status) } }
疑难解决
依赖问题:
go get: github.com/jptosso/coraza-waf/v2@v2.0.0-rc.3: parsing go.mod: module declares its path as: github.com/corazawaf/coraza/v2 but was required as: github.com/jptosso/coraza-waf/v2
如果遇到问题,可以尝试使用下列命令修复:
go get -u github.com/corazawaf/coraza/v2@v2.0.0-rc.3
实用工具
1、GoFTW:规则测试引擎;
2、Coraza仪表盘:使用Web接口实现的规则测试沙盒;
3、OWASP核心规则集:非常好用的规则集,兼容Coraza;
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Coraza:【GitHub传送门】
参考资料
本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM
© 版权声明
部分文章采集于互联网,若侵权请联系删除!
THE END
cesfe 1个月前0
好的,谢谢昶之琴 1个月前0
这个安装地址失效了,我在网上找了一个:https://xiazai.zol.com.cn/detail/35/344340.shtml 如果还是不行的话就需要您自己去网上找找了cesfe 1个月前0
帆软部署 ,访问的地址访问不到昶之琴 2年前0
我以为只要提交就行了好想告诉你 2年前0
花巨资看一下