Coraza:一款功能强大的企业级OWASP Web应用程序防火墙

关于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/[email protected]: 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/[email protected]

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

猜你喜欢

转载自blog.csdn.net/text2203/article/details/128794136