基于Golang打造一款开源的WAF网关

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介: 基于Golang打造的应用安全网关,具备CC防御、WAF(Web应用防火墙)功能及组合策略配置,天然支持HTTPS(符合PCI-DSS认证要求),无需Agent,私钥加密存储在数据库,提供负载均衡和统一的Web化管理入口。

本文首发于作者的微信公众号:网络安全生命周期

原文链接: 打造一款开源的WAF网关 

【背景】

在互联网行业,Google将安全做到基础设施里面,素来是各大公司学习的榜样,在Web方面,通过GFE (Google Front-End) 统一对外发布,业务只需要在GFE登记,GFE就会调取正确的证书,保障用户到GFE的TLS连接安全。

Microsoft在Web方面,有一款叫做Azure Application Gateway的产品,提供了统一的Web路由、负载均衡,以及WAF(Web应用防火墙)功能。

遗憾的是,这几款产品均不能用于私有化部署,Google Front-End 和 Azure Application Gateway只服务于他们自身业务以及他们自己的云客户。想要使用他们的产品,得使用他们的云服务,不然就只能望洋兴叹了。

【对标与产品方案设计】

鉴于此,笔者希望借鉴GFE和Azure应用网关,打造一款这样的应用安全基础设施级产品,用于自己个人网站的防御,这款产品需要具备:

1.统一的网络入口,可以有多个节点,配合负载均衡进行调度,即应用网关(Application Gateway);

2.WAF (Web应用防火墙) 功能,可拦截常见的Web入侵行为(如SQL注入/命令注入/XSS/Webshell上传或连接)、数据泄露事件等;

上图中红色的叉叉部分表示拦截恶意攻击行为。

3.可应对CC攻击及简单的刷单场景,达到设定阈值时能够拦截或展示验证码。

【特色】

当然,上面这些是基本的功能。笔者还希望这是一款有特点、差异化的产品:

1.不要安装Agent

Agent维护起来比较麻烦,用浏览器配置可以更简单,比如配置应用:

2.支持HTTPS

还要能够把证书管理起来,把私钥保护起来,不再将证书文件、私钥文件直接明文的存放在服务器某个目录下(防止黑客偷走私钥);只让网关管理人员申请和配置证书,业务人员不用接触证书文件就可以启用HTTPS。

3.联动

很多WAF的一条策略只能检查一个地方(如GET或POST参数值),如果请求需要结合响应共同来判定 (或多个组合条件),就做不到了,这一点一定要突破,做到多个检查点可组合,特别是请求(Request)和响应(Response)能够关联(组合)起来。

4.非法域名拦截

曾经有人用fuck_your_domain.com 这样的域名指向your_domain.com 网站,如果服务器配置不当,有可能会正常响应请求,给公司带来公关风险。所以,当非法域名指向过来的时候,应该拒绝响应。

5.证书质量

不是所有的HTTPS都是安全的,错误配置、算法的选用均有可能踩坑,如SSL 1.0, SSL 2.0, SSL 3.0以及TLS 1.0 均已出现漏洞。典型的,如果您的业务涉及到资金支付,PCI-DSS认证会对证书质量有特别的要求,如必须使用TLS 1.1或以上的协议版本、必须使用前向安全算法(Forward Security)用于保障安全的密钥交换等。因此,网关默认就需要启用安全保障。

【开源】

是的,笔者较早前利用周末陪孩子上课的时间,构建了这样一个只有基本功能的版本(Janusec Application Gateway),并用在个人网站上。现在跟大家分享一下:

https://github.com/Janusec/janusec 

这是一款基于Golang打造的应用安全网关,具备CC攻击防御、WAF(Web应用防火墙)功能及组合策略配置,天然支持HTTPS(符合PCI-DSS认证要求),无需Agent,私钥加密存储在数据库,提供负载均衡和统一的Web化管理入口。

还在继续完善过程中,欢迎star、fork、pull request、提交issue,或下载release体验,共同提升应用安全防御能力。

【备注】

该产品并不能解决所有的安全问题,不能替代抗DDoS攻击产品,也不能替代HIDS产品,更不能代替日常的安全运营工作。但当你打算从零开始构建立体的安全防御体系(特别是应用安全防御体系)的时候,能够在关键的路径上,切断典型的入侵尝试,挡住大部分探测payload,大幅提高入侵难度,同时从一开始就能够利用此作为网关基础设施推广使用HTTPS,保护外网数据传输安全。

目录
相关文章
|
JSON 缓存 应用服务中间件
开源API网关APISIX源码分析(一)
开源API网关APISIX源码分析
407 0
|
3天前
|
人工智能 API 开发者
狂揽7.5k星!这款开源API网关彻底解放开发者:一键聚合GPT-4、Suno、Midjourney,还能在线充值!
New API 是一款基于 One API 二次开发的 AI 模型接口管理与分发系统,支持多种大模型(如 GPT-4、Suno、Midjourney 等)统一封装为 OpenAI 格式接口调用。其核心功能包括多模型统一网关、企业级权限管控、“推理力度”分级、无魔法访问全球 AI 服务、灵活计费体系及开发者友好设计。技术架构采用 Golang + Gin 框架,支持高并发低延迟,适用于企业内部 AI 中台、多模型 SaaS 平台、学术研究协作及个人开发者工具等场景。项目开源地址:https://github.com/kingbug/new-api。
124 6
|
2月前
|
Kubernetes Cloud Native 开发者
alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
129 61
|
3月前
|
人工智能 开发框架 数据可视化
Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用
Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。
522 27
|
8月前
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
208 2
|
10月前
|
安全 算法 数据安全/隐私保护
11K star!开源WAF的NO1,不花钱也能搞定安全
当我们的网站上线后首先会遇到什么,可能不一定是自己的客户,而是来自网络的攻击。 今天我们分享的开源项目,它是登顶GITHUB的开源WAF,让黑客不敢越雷池一步,并且还是国产的开源项目,它就是:雷池(SafeLine)
|
11月前
|
Kubernetes Cloud Native 开发者
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
**阿里云发布开源版ALB控制器v1.2.0,对齐商业版ALB Ingress Controller v2.10.0。新版本增强了功能特性,提升了用户体验,并提供了最佳实践。功能更新包括自定义标签、QUIC协议支持、转发规则和安全策略等。此外,还引入了ReadinessGate实现滚动升级时的平滑上线和Prestop钩子确保平滑下线。用户可从GitHub获取开源代码,通过Docker Hub拉取镜像,开始使用alibaba-load-balancer-controller v1.2.0。**
536 3
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
|
11月前
|
Kubernetes Cloud Native 开发者
阿里云网络发布云原生网关 alibaba-load-balancer-controller v1.2.0,持续拥抱开源生态
alibaba-load-balancer-controller开源版本正式推出v1.2.0,能力对齐ALB Ingress Controller商业版v2.10.0。
|
传感器 边缘计算 物联网
【开源视频联动物联网平台】为什么需要物联网网关?
【开源视频联动物联网平台】为什么需要物联网网关?
140 2
|
Web App开发 监控 中间件
【开源视频联动物联网平台】视频接入网关的用法
【开源视频联动物联网平台】视频接入网关的用法
313 1