开源WEB应用防火墙jxwaf怎么用

jxwaf

开源WEB应用防火墙jxwaf怎么用开源WEB应用防火墙jxwaf怎么用

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管理中心组成:

  • jxwaf : 基于openresty(nginx+lua)开发

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

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 文档

  • JXWAF使用说明

  • 基于Openresty实现业务安全防护

  • 基于Openresty实现透明部署动态口令功能

  • WAF开发之Cookie安全防护

Contributor 贡献者

  • chenjc 安全工程师

  • jiongrizi 前端开发工程师

BUG&Requirement BUG&需求

  • github 提交BUG题或需求

  • QQ群 730947092

  • 邮箱 jx-sec@outlook.com

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. 有高定制规则/功能需求的公司

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

文章标题:开源WEB应用防火墙jxwaf怎么用,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/29138

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云
上一篇 2022年9月24日 上午12:07
下一篇 2022年9月24日 上午12:08

相关推荐

  • 2024年9款优质CRM系统全方位解析

    文章介绍的工具有:纷享销客、Zoho CRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpot CRM、Apptivo。 在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要…

    2024年7月25日
    1600
  • 数据库权限关系图表是什么

    数据库权限关系图表是一种以图表形式展示数据库权限分配和管理的工具。它可以有效地帮助我们理解和管理数据库中的各种权限关系。数据库权限关系图表主要包含以下几个部分:数据对象、用户(或用户组)、权限类型、权限级别、权限状态等。其中,数据对象是权限关系图表中的核心元素,它代表了数据库中的各种数据资源,如表、…

    2024年7月22日
    200
  • 诚信数据库是什么意思

    诚信数据库是一种收集、存储和管理个人或组织诚信信息的系统。它是一种用于评估和管理个人或组织行为的工具,通常由政府、商业组织或者非营利组织进行运营。诚信数据库的主要功能包括:1、评估个人或组织的诚信状况;2、提供决策支持;3、预防和控制风险;4、促进社会信用体系建设。 在这四大功能中,评估个人或组织的…

    2024年7月22日
    400
  • 数据库期末关系代数是什么

    关系代数是一种对关系进行操作的代数系统,是关系模型的数学基础,主要用于从关系数据库中检索数据。其操作包括选择、投影、并集、差集、笛卡尔积、连接、除法等。其中,选择操作是对关系中的元组进行筛选,只保留满足某一条件的元组;投影操作则是从关系中选择出一部分属性构造一个新的关系。 一、选择操作 选择操作是关…

    2024年7月22日
    700
  • mysql建立数据库用什么命令

    在MySQL中,我们使用"CREATE DATABASE"命令来创建数据库。这是一个非常简单且基础的命令,其语法为:CREATE DATABASE 数据库名。在这个命令中,“CREATE DATABASE”是固定的,而“数据库名”则是你要创建的数据库的名称,可以自己设定。例如,如…

    2024年7月22日
    500
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部