编者按
好久没有更新公众号文章了,也极少发圈,经常被朋友问起在忙啥?其实,笔者业余时间大多用来完善JANUSEC应用网关这款开源产品了,这不,历经多年打造和实战磨合,我也不藏着掖着了,端出1.0版本,供各位客官品鉴。你可能会疑惑,JANUSEC应用网关到底是个什么产品?解决什么痛点问题?到底有哪些特色?让我们逐一揭晓。
01
背景简介
在2018年的时候,笔者发布了一篇:基于Golang打造一款开源的WAF网关 ,那会儿是JANUSEC应用网关刚刚在Github开源,构建了一款全新的应用网关的基本框架。初始版本虽然功能不多,却是按照《数据安全架构设计与实战》中介绍的最佳实战来进行打造的,或者说比《数据安全架构设计与实战》成书的时间还要早,因为我是先做开源产品,后来才写书的(他们的确一脉相承,都是过去十几年安全最佳实践经验的总结)。
随后,是近三年的不断改进,但版本长期维持在0.9.XX,只增加最后的小版本。有不少用户也呼吁尽快推出1.0版本,反馈说“我们已经在生产环境使用了,就是这个版本号看起来有点怪怪的”。是啊,版本号小于1,往往会让一部分用户产生不信任感,JANUSEC应用网关已经过了长期的实战检验,完全具备在生产环境部署的能力。于是在进一步优化细节后,我决定发布1.0,向用户传递信心,欢迎大家对比测试、部署使用( 开源发布在 github.com/Janusec/janusec 或搜索 Janusec )。
02
应用网关是什么?
提到安全防御,大家可能会想到WAF、CC防护、IDS、防火墙、抗DDoS等各种各样的安全产品,但安全从来都不是安全设备或产品的堆砌,用好各类产品,让他们真正发挥有效的作用,其实并不容易。
为了解决这个问题,业界各大企业也纷纷推出了自己的解决方案,如:
- Google Access Proxy (核心模块Google Front-End, GFE)
- Microsoft Azure应用网关
- 百度BFE
- 腾讯STGW 门神WAF
这些产品或解决方案,就是应用网关。
应用网关,是跨不同安全域之间访问的应用层互通基础设施。
应用安全网关,是提供了安全能力的应用网关,通常来说,安全能力是应用网关不可缺少的一部分,所以应用网关、应用安全网关也常常混用。
应用网关如其说是一款产品,不如说是一站式安全能力与交付解决方案。它作为流量出入口,可以执行路由选择与负载均衡(含前端负载均衡和后端负载均衡),可以执行安全防护,可以用于全站HTTPS加密传输,还可以附加身份认证、访问控制、运维审计等安全能力。
03
JANUSEC解决了哪些痛点?
首先,很多企业内部网站往往由于各种各样的原因(比如人力不足、敏捷上线、过于信任内网等),缺乏认证机制,导致内网被渗透之后,这些网站对黑客来说毫无招架之力。
身份认证是一切信任的基础,JANUSEC应用网关可以协助业务将身份认证这个核心安全能力前置(或左移),附加到业务中去。JANUSEC v1.0.0提供了五种可选的身份认证机制:
- 企业微信扫码
- 钉钉扫码
- 飞书扫码
- LDAP
- CAS 2.0(协议)
如果内部运营网站原本没有身份认证机制,这些认证机制可直接在应用网关上启用,而内部运营网站可以保持原样,不用任何改进。启用后,员工访问内部网站,会要求身份认证(跳转到指定的身份认证服务提供商),通过后才能访问后端网站。
其次,JANUSEC应用网关提供了WAF/CC防御。WAF方面,JANUSEC应用网关提供了一个可供用户自行配置规则的基础设施,并预置了常见的Web高危漏洞的拦截规则。与其他WAF相比,JANUSEC应用网关的WAF除了支持传统的单检查点的规则外,还支持多个检查点联动的组合规则,这让防御更加灵活。
CC防护方面,JANUSEC应用网关可与nftables联动,并创造性地使用了两道检测防线,分别针对快速CC、慢速CC(如故意放慢速度绕过检测的攻击工具)进行拦截。在2020年的一次实战对抗测试中,单节点普通PC服务器部署的JANUSEC应用网关,成功拦截近5000个IP的CC测试集群,并将发起攻击的IP资源池一网打尽(锁定预先配置的时间)。
第三,JANUSEC应用网关提供了基于Web的SSH运维通道,并提供运维审计能力。简单的说,就是通过浏览器就可以发起安全运维,且做到后端服务器上执行的指令可关联到员工ID。
第四,JANUSEC应用网关提供了全站HTTPS加密(可用于全站HTTPS推广),以及ACME自动化证书申请、续期、配置的能力。
时至今日,仍然还有很多企业在推广全站HTTPS方面存在困难,而启用全站HTTPS早已是大势所趋。JANUSEC应用网关可助力全站HTTPS的工程化推广。另一方面,各业务自行部署的HTTPS往往存在各种问题(如弱加密算法),传输安全性得不到保障,这些在网关上已经默认解决了。
JANUSEC应用网关支持使用免费的ACME自动证书(自动申请、自动续期、自动部署Lets Encrypt数字证书),对于个人站长或小型企业而言,可以节省采购证书的费用。配置时,只需要选择使用ACME自动证书,剩下的一切JANUSEC应用网关自动来完成(申请、续期、部署生效等)。
04
更多特性 JANUSEC应用网关的特性还有:
- 消除高危端口(正常业务不用分配外网网卡或外网IP)
- 证书管理与私钥保护,可以做到各业务团队不持有私钥,也能正常发布HTTPS业务
- 支持域名、域名 二级目录的路由模式(比如example.com/abc/、example.com/xyz/ 可以指向不同的业务)
- 用户侧负载均衡(多节点部署)、后端服务器负载均衡,以及轻量级内容缓存,起到内容加速的作用
- 除了常规的HTTP/HTTPS (HTTP2),还支持Web Socket、TCP、UDP的转发
- 静态Web服务器(如果需要发布静态网站,连后端的Web服务器都可以省了,网关自身就可以发布)
- ... (更多特性,等你来发掘)
05
发布地址
JANUSEC应用网关已发布在 github.com/Janusec/janusec (此外,还发布了一个Docker镜像,可用于快速体验)。
后记:1.0版本只是一个新的开始,我们会继续完善、改进,为大家提供更好的解决方案。最关键的一点,它是免费的。