锦衣盾:开源WEB应用防火墙介绍 – 作者:chenjc

jxwaf

DjangoPython3

jxwaf(锦衣盾)是一款基于openresty(nginx+lua)开发的下一代web应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统WAF无法对业务安全进行防护的痛点。内置的语义分析引擎配合机器学习引擎可以避免传统WAF规则叠加太多导致速度变慢的问题,同时增强检测精准性(低误报、低漏报)。

Feature 功能

  • 基础攻击防护
    • SQL注入攻击
    • XSS攻击
    • 目录遍历漏洞
    • 命令注入攻击
    • WebShell上传防护
    • 扫描器攻击等…
  • 机器学习
    • 支持向量机(SVM)
  • 语义分析
    • SQL注入语义分析
    • XSS攻击语义分析
  • 业务逻辑漏洞防护
    • 注册保护
    • 登陆保护
    • 活动防刷
    • 短信炸弹防护
    • 越权漏洞防护
    • 短信验证码校验绕过防护等…
  • 高级CC攻击防护
    • 可针对不同URL,不同请求参数单独设置不同防护变量
    • 人机识别
  • Cookie安全防护
  • 前端参数加密防护
    • 支持AES加解密
    • 支持DES加解密
    • 支持RSA加解密
  • 透明部署动态口令功能
    • 可对后台管理系统和网站用户提供动态口令(OTP)功能
  • 检测缓存功能
    • 对已经过WAF检测请求进行MD5缓存,提高检测效率
  • 支持协议
    • HTTP/HTTPS
  • 性能&可靠性
    • 毫秒级响应,请求处理时间小于一毫秒
    • 支持主备部署,避免单点故障
    • 支持集群反向代理模式部署,可处理超大数据流量
    • 支持嵌入式部署,无需改变原有网络拓扑结构
    • 支持云模式部署
  • 管理功能
    • 基础配置
    • 规则配置
    • 报表展示
    • 告警配置

Architecture 架构

jxwaf(锦衣盾)由jxwaf与jxwaf管理中心组成:

Environment 环境

  • jxwaf
    • Centos 7
    • Openresty 1.11.2.4

Install 安装

将代码下载到/tmp目录,运行jxwaf_install.sh文件,jxwaf将安装在/opt/jxwaf目录,具体如下:

  1. $ cd /tmp
  2. $ git clone https://github.com/jx-sec/jxwaf.git
  3. $ cd jxwaf
  4. $ sh install_waf.sh
  5. 安装后显示如下即安装成功

    nginx: the configuration file /opt/jxwaf/nginx/conf/nginx.conf syntax is ok

    nginx: configuration file /opt/jxwaf/nginx/conf/nginx.conf test is successful

  6. 访问 http://www.jxwaf.com 并注册账号,在 WAF规则管理->查看官方规则组 页面按照自身需求加载规则,之后在 WAF规则配置->WAF全局配置 页面获取 “WAFAPIKEY”
  7. 修改/opt/jxwaf/nginx/conf/jxwaf/jxwafconfig.json 中的”waf_api_key”为你自己账号的”WAF_API_KEY”

  8. $ /opt/jxwaf/nginx/sbin/nginx 启动openresty,openresty会在启动或者reload的时候自动到jxwaf管理中心拉取用户配置的最新规则

Docs 文档

Contributor 贡献者

BUG&Requirement BUG&需求

Other 其他

目前开源版本已经可以正常使用,基础功能和官方基础规则均测试完成,可以满足中小企业基本的防护需求。

但是功能还没有全部上线,还有一些功能没有从线下版本迁移到开源版本,现在仅上线了基础攻击防护,Cookie安全防护功能和语义分析功能。其他功能会陆续上线,进度取决于某前端能扣出来的时间,预计年内能全部搞完。

以上是存量的功能,下面列些To do:

  1. 通过规则配置实现机器学习数据清洗,特征获取,模型训练,简单说就是个轻量级的机器学习训练-应用平台,用户只需关注最核心的特征获取,其他”脏话累活”由平台解决,降低机器学习应用门槛。目前核心功能已开发完成,与现存其他功能整合中。
  2. 命令执行,代码执行等语义分析库开发
  3. 官方规则完善
  4. 第三方安全应用接口整合
  5. 业务安全防护场景开发
  6. 报表报警功能完善
  7. 云WAF系统开发

Github地址:https://github.com/jx-sec/jxwaf

JXWAF管理中心:http://www.jxwaf.com/

这个项目从最开始的构思到现在开发得七七八八,也差不多一年了。最开始搞这个项目,是因为在深度使用Modsecurity后,发现坑太多Hold不住,没办法我一搞渗透的也只能转行开发WAF了,然后因为职业病的原因,在写的时候特别对一些容易被绕过的地方重点关注,具体体现在代码的方方面面,这算是这款WAF的一个优点。

接下来谈谈性能这块,目前测试的结果是在1ms以内,核心模块处理时间大概在0.001ms,得益于luajit技术,增加规则几乎没影响。并发的话,单台2G 1核虚拟机测试在5000上下,我这没资源,有兴趣可以测试配置好的实体机的性能,达到10K以上应该没问题。按照之前用Modsecurity的经验,单日PV一亿以下的就不用考虑啥性能问题了,没”富人命”就不用考虑”富人病”。至于并发大流量大的情况,可以上集群或者自研。

简单总结下目标用户:

  1. 一个人的安全部/没预算的安全部
  2. 有WAF需求没WAF预算没安全人员的公司
  3. 给内网/线上应用上二次验证功能
  4. 有机器学习防护需求
  5. 有业务安全防护需求
  6. 盒子WAF扛不住,不想上云/无法上云
  7. 有高定制规则/功能需求的公司

文章就不配图了,需要的上www.jxwaf.com查看功能

最后感谢 jsp 在内测期间提交BUG&需求,欢迎各位提交BUG&需求,有坑必填。

来源:freebuf.com 2018-04-09 17:24:09 by: chenjc

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论