

构建零信任网络安全的技术介绍
source link: https://www.freebuf.com/articles/network/238809.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

0×01 概要
现在很多企业单位开始重视零信任网络安全的建设,基于代理流量和外部准入认证,对于外部可见的请求进行安全性的确认。
对于业务来说,在7层网络操作和控制需求集中,基于流量代理网关应用很常见,做转发、限流、认证都是普通的就应用场景,包括WAF这些常常见的利用反向代理的方式都基于HTTP请求的安全检查,基于流量的复制镜像和串行反向代理,都是将7层协议的数据做了一份“复制”,然后地“复制”的数据进行取关键信息鉴权、输入内容的安全性检查。
0×02 API应用安全
我们用代理网关对应用进行保护,对业务的API进行保护、对请求资源的保护等等, 这种类似需求被集中在网关中实现,在保护别的业务的安全性之前也确保网关自己本身的安全。
确保网关的安全,就要确保构成网关软件的安全, 基于7层HTTP的流量代理,最常见的软件就是Nginx/Openresty。
(引用“一图看懂API安全”配图:李老师)
基于7层构建零信任网络,大概率会使用这种软件服务,软件的业界接受程度,软件生态丰富,软件服务稳定,是构建零信任网络安全建设的基石。
经过这些年的发展,大家对开源解决方案的接受度高,从国人将Lua加入Nginx中使用以后的几年发展,已经在是最初的在原生Nginx上打拼的原始状态,从基于Nginx的基础WEB框架,到各种网关产品,经过几年的发展,开始进入社区发展快速路,可以与开源界更多的相关产品,一样进入人们的视界,同时表现不俗。
0×03 网关
类似网关产品, 要么自己原生动手写直接Nginx+Lua,或者基于社区版本,在社区有相对充份的使用和测试的基础上,增加自己的功能。
当确认了使用Nginx、Openresty构建零信任方案的前提下,面临的问题:
1.系统的操作用户体验 2系统的本身的安全性 3.系统的速度性能
3.1 系统的操作用户体验
从简单的命令行到图形化用户体验,本身对于人机交互来说,可操作的伸缩性是很强的。
无论用户体验上是否更好,背后的业务逻辑是相同,用户体验可变。
3.2 系统本身的安全性
如果您的零信任系统也是Nginx+Lua写的,是否对代码做过白盒代码审计,是否做过充分的黑盒测试,对网关本身的输入输出做过检查。现在真的有Lua的白盒检查审计工具吗?
3.3 系统的速度性能
如果安全检查系统本身的安全检查消耗时间很长,整体会造成用户体验的下降,各家自己实现的系统性能是有差异的,有的网关之间处理能力相差很大。
(引用“一图看懂API安全”配图:李老师)
以上几种网关系统,有3三种都是基于Openresty+Lua实现。
0×04 关键指标:性能
对于安全代理来说,基于正则匹配是最常见,也是最关键的核心应用场景,我们这有一组对比数据。
通过这组数据可以看到不同网关实现方案之间存在的性能差异,企业自己原生写的Nginx+Lua,不一定比优化后的开源网关产品性能更快。
性能是需要特定优化的,这种性能优势是根本源设计思想和实现细节的不同。
(引用“一图看懂API安全”配图:李老师)
网关作为零信任场景下的可选构成组件,在实现基础功能的同时,需要强劲的性能保障。用于零信任的安全系统构建,不单纯的只是WAF功能,扩展增加很多功能。
基于一种数模式,可以延伸在各种应用场景下使用。
0×05 网关的自身安全性
网关来保证业务的安全,那谁来保证网关的安全吗?
企业有多种手段来监控企业的安全:网络流量分析、HIDS主机监控代理、蜜罐系统等,通过这些系统之间的互相协助和补充,联合保证网络的安全性。
5.1 网络流量分析
通过流量镜像技术,对流量数据文本日志化后进行日志数据分析,分析网络中的异常联系安全隐患。对IP与IP间的关联,恶意端口访问、网络协议的分析、威胁情报关联等等应用场景。
5.2 HIDS主机监控代理
HIDS同样可以通过netstat来取得网络的通信数据,HIDS占了几乎一半的数据收集比例是网络数据,这些网络数据和网流复制数据分析,有交集或是重合的,HIDS更主动,区别在于HIDS获取这些网络流量不是简单的流量汇聚,需要在大量的服务器上部署agent,需要覆盖率、对网络流量分析互补充。流量聚合成本和agent覆盖成本那个高,看具体情况。
5.3 蜜罐系统
通过交换机的端口聚合技术,将网络蜜罐部署到各个网络网段进行流量交互监听。发现攻击事件通过数据的关联进行对攻击者的溯源。
0×06 动态跟踪技术
某些场景下,我们可以通过传统手段进行流量交互数据的取得,查看系统进程在整个存活周期间的各种数据,但成本是有时要进行复杂的处理流程,这种形式下,动态跟踪技术的出现。可以让某些问题的处理更的容易的被解决。
案例A: 找不到是那个进程是通过那个端口发出的请求!
另一个李老师在生产当中, 发现Gearman总是在一个特定时间发出一个请求,但本身Geraman做为一个请求代理,没有提供更多的日志数据让用户去跟踪分析问题,这请求是通过那临时端口发送出去的, 所有端口查看命令 ,SS都不好用后, 李老师最后采用了SystemTap采样查到谁在什么时间通过啥端口发出的这个请求。
01 * * * /bin/bash /root/systemtap/run.shprobe syscall.open{result=isinstr(filename,".php") if (result == 1){ printf("pid(%d) include:%d filename:%s execname(%s)\n",pid(),result, filename,execname()) cmd=sprintf("grep XXXXXX %s -RHn",filename) system(cmd) }}probe timer.s(300){ exit() }
其实Nginx本身也有安全问题,比如之前的输入参数造成的内存泄漏问题。
location~ /memleak { rewrite^.*$"^@asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdasdf";}
并且SystemTap还能参与分析性能问题,配合热力图。
案例B:判断SSL证书是否过期。
之前发生的一个事件,特斯拉汽车因为证书过期的问题,造成了汽车使用的问题。那我们有没有一种手段,可以实时的监控证书是否过期呢?
实际上社区提供了基于systemtab技术监控证书是否过期的方法:openssl握手诊断。
https://github.com/openresty/stapxx#openssl-handshake-diagnosis
0×07 总结
对于API安全与零信任安全建设,网关产品作为一个整体的基础设施,对于方案的落地实际有着很好的促进作用,网关提供了很多现实存在的功能,并且经过优化的网关性能,比一般原生系统未优化的性能高很多,不简单只是完成了需求的功能,背后有社区的支持和测试。
传统HIDS和网络分析对于一般性网络安全问题,有很强的追溯源功能,随着更精细的安全细节发现SystemTap动态跟踪,在某些场景下, 可以更高效的取得安全相关的数据凭证。进行更多场景的安全分析。
这篇我们对Nginx、Openresty作为构建7层零信任网络安全的基础部件进行了一些描述,对于SystemTap动态跟踪技术进行了简介,安全业务的发展离不开底层技术支持,持续关注底层的技术,对于安全业务场景的发展提供各种实现上的新可能性。
*本文作者:糖果L5Q,转载请注明来自FreeBuf.COM
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK