根据Golang打造开源的WAF网关

访客5年前黑客工具1261

布景
在互联网职业,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.不合法域名阻拦
从前有人用 *** _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打造的运用安全网关,具有WAF(Web运用防火墙)功用及组合战略装备,天然支撑HTTPS(契合PCI-DSS认证要求),无需Agent,私钥加密存储在数据库,供给负载均衡和一致的Web化办理进口。
还在持续完善过程中,欢迎star、fork、pull request、提交issue,或下载release体会,一起进步运用安全防护能力。
补白
该产品并不能处理一切的安全问题,不能替代抗DDoS进犯产品,也不能替代HIDS产品,更不能替代日常的安全运营作业。但当你计划从零开端构建立体的安全防护系统(特别是运用安全防护系统)的时分,可以在要害的途径上,堵截典型的侵略测验,挡住大部分勘探payload,大幅进步侵略难度,一起从一开端就可以运用此作为网关基础设施推广运用HTTPS,维护外网数据传输安全。
 

相关文章

根据时延的盲道研讨:受限环境下的内容回传信道

在一次缝隙赏金活动中,挖到个指令注入的洞,我先以时延作为证明向厂商提交该缝隙,厂商以国内网络环境差为由(确实得翻墙)拒收,几回交流,奉告若我能取回指定文件 secret.txt 才认可。方针是个受限环...

Web 服务器基准测验,nginx+php vs Apache+php

本次测验nginx+php与apache+php哪种组合的核算性能及稳定性更佳 操作系统:Centos6.4 x64 硬件环境:   服务器IP 硬件装备 人物 192.168.1.2 4中心 8G...

怎样使用追寻代码来发现网站之间的“相关”

前些年Lawrence Alexander颁发了一篇使用Google Analytics查找网页之间的联络联络的文章,客岁,我也宣告了一个关于若何使用Python自动开掘信息,然后将其可视化的帖子,不...

运用Docker建立Web缝隙测验环境

因为一向在做 Web 缝隙扫描器的开发, 那么就必定少不了 Web 的缝隙测验环境, 其中就包含 bWAPP、DVWA、OWASP WebGoat 等这些国际品牌。 这些缝隙环境一般建立比较繁琐, 并...

下一代网络钓鱼技术——滥用Azure信息保护功能-黑客接单平台

在这篇文章中,咱们将从攻击者的视点介绍怎么运用Azure信息维护(Azure Information Protection,AIP)来改善网络垂钓技能。这个主意是在一次测验作业进程中发生的,其时我正在...

实例解说False盲注根底原理

0×01 前语 false盲注有些时分能够绕过一些WAF,也是简略被忽视的细节。本文的意图在于经过做CTF的一起来学习注入原理,一起也运用到本身的才能。这儿仅仅简略说一些我自己的了解,或许网上有更好的...