Git Product home page Git Product logo

safe3 / uuwaf Goto Github PK

View Code? Open in Web Editor NEW
610.0 8.0 56.0 1.06 GB

A industry-leading free, high-performance, AI and semantic technology web application and API security protection product - uuWAF. 一款工业级免费、高性能、高扩展,支持AI和语义引擎的Web应用和API安全防护产品-南墙。Web应用防火墙、WAF、WAAP

Home Page: https://waf.uusec.com

License: Other

Lua 19.50% M4 0.61% C 58.44% CWeb 13.73% Shell 7.73%
waf application-security web-application-firewall modsecurity web-security-gateway api-gateway api-security waap security uuwaf

uuwaf's Introduction

南墙简介

GitHub stars Chat

南墙WEB应用防火墙(简称:uuWAF)一款工业级免费、高性能、高扩展,支持AI和语义引擎的Web应用和API安全防护产品。

🏠安装及使用请访问官网: https://waf.uusec.com/

🎯 技术优势

  • ♎ 先进语义引擎

    南墙采用业界领先的SQL、XSS、RCE、LFI 4种基于语义分析的检测引擎,结合多种深度解码引擎可对base64、json、form-data等HTTP内容真实还原,从而有效抵御各种绕过WAF的攻击方式,并且相比传统正则匹配具备准确率高、误报率低、效率高等特点,管理员无需维护庞杂的规则库,即可拦截多种攻击类型。

  • ⛎ 智能0day防御

    南墙创新性的运用机器学习技术,使用异常检测算法对http正常与攻击流量进行区分识别,并对正常流量进行白名单威胁建模。通过机器学习算法自动学习正常流量中的参数特征,并转化成对应的参数白名单规则库,可以在面对各种突发0day漏洞时,无需添加规则即可拦截攻击,免除网站管理者一出现漏洞就需挑灯夜战升级的痛苦。

  • ♊ 高级规则引擎

    南墙积极运用nginxluajit的高性能、高灵活性特点,除了提供对普通用户友好性较好的传统规则创建模式,还提供了高扩展性、高灵活性的lua脚本规则编写功能,使得有一定编程功底的高级安全管理员可以创造出一系列传统WAF所不能实现的高级漏洞防护规则,用户可以编写一系列插件来扩展WAF现有功能。从而使得在拦截一些复杂漏洞时,可以更加得心应手。

🚀 一键安装

南墙为你提供了强大灵活的扩展和安全规则的编写API,在管理后台发布后所有规则无需重启立即生效,远超市面上大部分免费WAF产品如ModSecurity,规则展示如下:

🏠请访问官网: https://waf.uusec.com/ 下载 南墙WAF使用说明书 了解规则API详情

南墙安装及其简便,通常在几分钟内即可安装完毕,具体耗时视网络下载情况而定。

注意:请尽量选择一台纯净Linux x86_64环境的服务器安装,因为安装过程会卸载旧的MySQL数据库并重新安装,如果没有备份,可造成旧的MySQL数据丢失,并且南墙采用云WAF反向代理模式,默认需要使用80、443端口。

主机版安装方式如下:

sudo yum install -y ca-certificates
curl https://waf.uusec.com/waf-install -o waf-install && sudo bash ./waf-install && rm -f ./waf-install

安装成功后会显示 “ 恭喜您,安装成功!”

Docker版安装方式如下:

curl https://waf.uusec.com/waf.tgz -o waf.tgz && tar -zxf waf.tgz && sudo bash ./waf/uuwaf.sh

快速入门:

  1. 登录后台:访问https://ip:4443 ,ip为安装南墙的服务器ip地址,用户名admin,密码wafadmin。

  2. 添加站点:进入站点管理菜单,点击添加站点按钮,按提示添加站点域名与网站服务器ip。

  3. 添加TLS证书:进入证书管理菜单,点击添加证书按钮,上传第二步中域名的https证书和私钥文件。

  4. 修改域名DNS指向:到域名服务商管理后台把域名DNS A记录的ip地址改为南墙服务器ip地址。

  5. 测试连通性:访问站点域名查看网站是否能够打开,查看返回的http header头server字段是否为uuWAF。

💝 贡献名单

如何贡献?参照: https://waf.uusec.com/#/guide/contribute

这里感谢puhui222、Kingdom、k4n5ha0为南墙所做的贡献!

捐赠

😘 加入讨论

欢迎各位就 南墙 的各种bug或功能需求及使用问题,在如下渠道参与讨论

uuwaf's People

Contributors

puhui222 avatar safe3 avatar shuaizend avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uuwaf's Issues

有没有纯净版的docker-compose安装文件,不想使用一键安装

Is your feature request related to a problem? Please describe.
一键安装脚本,既安装程序又安装数据库,我们本身有现成的数据库,直接使用即可,不需要这个一键安装自带的

Describe the solution you'd like
完全手工配置的安装方式

Describe alternatives you've considered

Additional context

增加负载均衡功能的丰富性

当前的上游服务器负载均衡只能支持简单的权重设置,能否像大厂CDN一样设置更多规则,如/*目录上游服务器为127.0.0.1:8080,/abc目录的上游服务器为127.0.0.1:8081

使用插件设置响应头只有部分url生效

local _M = {
    version = 0.1,          --  插件版本
    name = "set_user"   --  插件名称
}

-- 返回header阶段过滤函数
function _M.resp_header_filter(waf)
    ngx.header["X-User"] = "test"
end

return _M

image
image

Cloudflare域名解析后,无法正常获取IP地址

域名由Cloudflare提供域名解析服务,完全由Cloudflare代理解析.
发现如何设置都无法获取到用户真实IP,只能获取到Cloudflare服务器IP

x-forwarded-proto: https
cf-visitor: {"scheme":"https"}
cf-connecting-ip: 1.1.1.1
referer: https://x.x.net/
host: x.x.net
accept-encoding: gzip
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
sec-ch-ua-mobile: ?0
accept-language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
x-forwarded-for: 1.1.1.1
sec-ch-ua-platform: "macOS"
sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"
accept: */*
sec-fetch-site: same-origin
cdn-loop: cloudflare
sec-fetch-mode: no-cors
cf-ipcountry: TW
sec-fetch-dest: script
cf-ray: 8619d19d8f272113-HKG

用户实际IP在cf-connecting-ip中
虽然我看到x-forwarded-for的IP是对的,但是uuwaf也无法获取到.确认设置是正确的.
希望能解决.

是否可以在设置密码的时候,设置一个密码复杂度的要求

1、系统设置-用户设置-添加用户,设置密码的时候,设置一个密码复杂度的要求,例如至少8位数,要求字母,大写,小写,特殊字符,至少三种组合
2、系统设置-用户设置-用户-修改,设置新密码的时候,也设置一个密码复杂度的要求,例如至少8位数,要求字母,大写,小写,特殊字符,至少三种组合

需要添加LICENSE许可证

使用1Panel搭建个人服务的时候发现了这个免费Waf,非常感谢能提供这么好的项目,但是也有一些疑问:

是否考虑添加相关LICENSE,明确一下用户的使用许可呢?

比如声明社区版是否可以用于学习研究、个人网站使用或者商业用途?而哪些行为是所不允许的呢;
拥有明确的LICENSE不仅可以提高社区活跃、增加社区信任,促进开放合作和共享,也能维护你们的企业权益避免商业纠纷,都是一件好事。

waf能否合并nginx

我目前的产品通过nginx代理
现在用waf又多了一层代理(多一台机器或nginx进程)
能否把nginx合并到一起

linux/arm64/v8版本不支持,希望增加个镜像,谢谢

stderr: uuwaf Pulling wafdb Pulling 2d473b07cdd5 Pulling fs layer 0b6543a09998 Pulling fs layer 0996ce51283f Pulling fs layer 5a6fef6c0973 Pulling fs layer 5a6fef6c0973 Waiting no matching manifest for linux/arm64/v8 in the manifest list entries
image

建议提供容器镜像

因为centos7不发布稳定版了,很多体制内单位已经禁止新建centos系列的主机,建议发布容器镜像以适应新的合规性要求

关于封禁ip的问题

1、能否有功能实现封禁外国的ip,只允许国内访问
2、希望在下个版本中更新已封禁的ip,并支持单个解封查看等操作
3、能否列出攻击的ip,并添加永久黑名单的功能

能否针对性优化下UI

当前的UI设计,真的不像是一个优秀的商业产品,没有统一的主题颜色以及设计。

增加对自定义HTTP头作为源IP的功能

X-Forward-For 在多层网关下,假如进行结构变更,要调整是第几个IP,麻烦,而且容易忘记,耦合程度较高

边界网关设置自定义HTTP头存放源IP,可以透传到下游所有的设备,希望uuwaf也支持自定义HTTP表头识别源IP

希望开源,这样才能更好的商业化

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

[Feature] 关于容器部署升级的问题

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like

容器升级目前只能通过脚本管理,而脚本的执行方式是,先删除,在通过up -d自动拉取,而删除到拉取完成这个时间受服务器网络环境影响,这个过程将的导致通过waf的站点不可访问时间无限延长,希望能优化管理脚本,从而平滑升级waf


Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.


三个影响正常使用的小问题

反馈几个在试用中发现的问题:
1.内存占用过高,望后续优化;
2.在三台机子上测试,都存在部署南墙后无法在1panel面板里申请证书的问题,停止南墙容器后申请会继续失败,卸载后就能正常申请;
3.部署南墙后,在1panel面板里建立的网站,即使没有在南墙里建立监测网站,也无法正常访问。

使用uuWAF代理uuWAF服务域名,“今日网站访问总数”数据异常

BUG描述
使用uuWAF代理uuWAF服务域名,“今日网站访问总数”数据异常
[我不确定是否正确,只是作为一个疑点提出来]

复现过程
1、1Panel申请泛域名证书;
2、uuWAF导入证书;
3、添加uuWAF域名,上游地址:127.0.0.1:4443;
4、选中所有规则(新增官方提供的http强制转https的规则),完成域名添加;
5、使用域名访问uuWAF,访问成功,默认进入“安全态势”菜单;
6、点击“站点管理”菜单,再点击“安全态势”菜单,会看到“今日网站访问总数”次数会一次增加7/8/9不等

截图效果
初始数量
访问站点管理
今日网站访问总数更新
重复操作后总数更新

服务端系统环境:

  • OS: CentOS 9, Core 5.14
  • 安装方式:主机版安装
  • Version:社区版 v3.3.3

客户端系统环境:

  • OS: ArchLinux 2024.1, Core 6.8.4
  • Browser:Chrome 123.0.6312.105(latest)

请问是否支持集群部署?有没最佳实践可以参考,谢谢

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

请求适配Deb系系统

Debian以及Ubuntu系统同样是有大量人使用的优秀系统。
希望社区给予支持,让Deb系系统也能用上如此优秀的产品!
这会对后续的推广起到很大的助力~~~~

無法登入後台

我不管是使用1panel或主機直接安裝(ubuntu 22.04)都無法使用帳號admin密碼wafadmin登入後台, 都顯示帳號或密碼錯誤

希望完善的功能:增加一个拦截IP的日志或者字段

1、日志管理-日志列表无法看到哪些IP被拦截了。
WAF的默认规则当中,是否命中了规则就会拦截。拦截的IP是哪些,拦截的时间等等,都无法从日志管理-日志列表看到。
首页-安全态势里面显示:今日拦截 IP 总数,但是也无法确定具体是哪些IP被拦截了。
2、日志管理-日志列表的字段是否能添加一个规则的ID字段。

请求可以添加带端口域名的功能

我是购买的阿里云的域名,他们的免费证书不是泛域名的, 如果要泛域名证书那是要加钱的.所以我一直都是带端口访问域名的.现在正在尝试使用咱们的南墙防火墙,可是我发现,在添加域名的时候无法指定端口号.这就给我这个贫穷的学生带了困扰,其实我也想用泛域名的,怎奈囊中羞涩.

请求:添加域名指定端口号功能.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.