从封堵到围剿——为什么等保2.0要控源 – 作者:蔷薇灵动dynarose

网络安全等级保护2.0标准发布以来,业界掀起了一轮学习的热潮,我们发现在很多技术理念上,等级保护2.0都有了巨大的变化,比如我们今天要讨论的源地址访问控制问题。当我们把防御的视线从边界转向内网,很多安全思路都会发生变化,我们可以有更有效的对抗手段来应对可能的安全威胁。

控源的必要性

当我们做面向互联网的边界安全的时候,我们很难对源进行控制,因为你完全不知道谁会访问你,你只能对内部的服务进行访问控制。为了应对这个挑战,业界发展出了威胁情报技术,这个技术可以回答外边有哪些坏人,于是我们可以在边界上加一些黑名单,这样会对边界安全有所帮助,但他无法回答究竟谁是好人,所以在互联网边界,白名单是不可行的。

但是,在行业性专网或者纯粹的内网,情况是不一样的。无论是访问者还是服务者都是已知的,都是可以被管理的。那么我们完全可以有更有效的管理手段,也就是基于源地址的白名单访问控制。如果我们能预先知道访问我的都是谁,那么我就不用再考虑谁是坏人的问题(因为你对坏人的描述只要是基于规则的,就是可以绕过的),我可以只对我明确认识的人开放服务,在内部环境中有无数种办法对一个终端的身份进行验证,相较于黑名单绕过而言,白名单欺骗无疑要难的多。

除了可以对源地址进行限定外,更重要的是,在一个完全可控的网络内,我们不仅可以在近服务侧的位置进行访问控制,我们还可以在整个网络的所有可能位置对访问进行控制,尤其是可以做到“近源防护”。比如说一台主机要进行超越其业务需求的445端口访问,那么除了在开放相关服务的服务器前进行阻拦,我们还可以在其接入处的隔离设备上直接对其进行阻拦,因为这台机器的业务需求是已知的,他的业务路径也是已知的,我们可以在全路径上对其进行访问控制。

所以,在可控的网络内(专网/内网)对源进行白名单访问控制,显然是更有效的防护手段。遗憾的是,我们看到了太多的真实案例中,用户在内网仍然延续了互联网边界的安全策略,只对被保护对象进行基于目的地址的访问控制,某种意义上说,这就是一种自废武功的防御策略,我们本来可以打造出一个天罗地网,而实际上只是建构了几个孤立的碉堡。

等保2.0怎么说

不得不说等保2.0确实是这个时代我国网络安全工作的智慧结晶,展现出了很高的理论和技术水平(请读者转发给有关领导)。在等级保护1.0(GB/T22239-2008)中,在“网络安全”的“访问控制章节“中,并未明确指出要对源地址做访问控制。而在等级保护2.0(GB/T22239-2019)中,在“安全区域边界”的“访问控制”章节中则明确强调:“要对源地址,目的地址,源端口,目的端口和协议等进行检查,以允许/拒绝数据包进出(8.1.3.2 c)。同时还指出:“默认情况下除允许通信外受控接口拒绝所有通信(8.1.3.2 a)。也就是明明白白的指出在网络内部应该进行白名单访问控制。当然,针对”8.1.3.2 a”可能会产生一个漏洞,那就是——什么才算允许通信呢?管理员是否可以允许所有通信呢?关于这一漏洞,等保2.0用另一条要求予以回答:“应删除多余或无效的访问控制规则,优化访问控制列表,并保证访问控制规则数量最小化”(8.1.3.2 b)。这同样是一条在等保2.0里新加入的规则,因为在黑名单机制下,这条要求基本没什么意义。阻断规则多一些,并不会对安全造成影响,最多就是会拖慢网络速度,因此,过去的策略优化主要是从效率的角度进行的,而不是从安全的角度进行的。但是在白名单模式下,策略集的最小化就有了非常重要的意义。因为此时的策略都是关于对已知访问源和已知服务的“允许“规则,那么这个策略集一定是越小越好,应该将最少的服务开放给最少的人,这样才是最安全的做法。

所以,我们说等保2.0在安全防御理念上取得了长足的进步。而另一方面,这也对网络安全的管理工作提出了远超过去的要求。在过去,如果在系统的关键节点处部署了防火墙,然后针对一些已知威胁配置了一些黑名单策略(不用太多,因为谁也不能穷举全部的威胁),那么基本就符合了等级保护的要求。但是在等保2.0时代则明确对访问策略做了白名单化要求。这意味着什么呢?意味着管理员必须对内网业务完全掌握(很难),必须对全部资产完全掌握(也很难),必须对每一个终端设备的业务访问需求完全掌握(非常难),对业务之间的关系要完全掌握(极难),并且还要保证,在这个网络发生任何风吹草动(业务调整,上下线,终端增减等等)时,能及时准确的做出策略重构(难上加难),不说了,大家自己体会吧。

围剿–控源的最高境界

微隔离技术的基本逻辑就是点到点访问控制,因此在微隔离掌握话语权的内网体系里,它能够做出不可思议的神操作——围剿。

以下技术讨论以蔷薇灵动的微隔离技术实现为前提。

微隔离的控制点在每一台工作负载(物理机,虚拟机,容器)上,而它的具体控制能力分为两类——“出站”和“入站“。所谓“出站”,就是控制一个工作负载能够对外发起的通信,所谓“入站”,就是控制一个工作负载能够接受的访问请求。如果要说“近源”控制的话,最近的控制点显然就是访问发起点自身的主机防火墙了。微隔离可以在主机防火墙上配置出站策略,以严格规范其能够访问的服务。

很多情况下,即使一台主机已经被感染了,但是这个恶意代码未必有能力或者有意愿去修改主机防火墙的配置(比如怕触发日志记录和告警以及主机安全软件的反击,毕竟主防火墙是关键的系统设施),这个时候他就没有能力去做一些非法外联比如cc通信,内网扫描,以及数据回传之类的操作。

当然,还有一些恶意代码能够提权,或者不怕触发相应的监控(一锤子买卖,干完就跑),那么此时主机防火墙的“出站“控制能力基本就失去作用了,但是别着急,真正的神操作现在才开始上演。

当一台工作负载已经被控制之后,他势必会利用此台机器对内网进行进一步的攻击,而此时他会发现,他已经陷入了人民战争的汪洋大海。因为微隔离的策略是双向配置的,我们在业务学习的时候(我没讲过业务学习么?嗯,今天不讲了)基于一个业务生成的策略是双向配置的,不仅配置了出站策略,还配置了入站策略。也就是说,每一个对外开放服务的工作负载都严格地按照白名单向有限的访问源进行开放(跟等级保护2.0的要求一致)。此时,这个受控主机,一旦尝试进行超过其业务需求网络访问时,他会发现其他工作负载都会拒绝他的访问,不但拒绝,这些工作负载还会把它的这种不正当访问请求记录下来发送给管理员。

今天的网络安全的理念已经与过去有了很大的不同,我们有了一种新的敌情想定(这词儿是跟安天学的,致敬一下)——那就是“敌已在内,敌将在内”。在这种想定下,我们除了防御攻击者的渗透外,还要防范其内部的平移,尽量将攻击者控制在一个尽可能小的范围内。或者换言之,我们应该尽可能降低每一个内网资产的暴露面,尽可能提高其平移的攻击成本,并尽可能记录下内部网络行为中的各种蛛丝马迹。这就是我们所谓的“围剿”。也许(几乎是肯定),我没有能力封堵住所有的来自方方面面的可能的渗透途径,但是毕竟绝大多数的内网资产都在我的手里,我可利用资源上的优势,对攻击者进行360度观察与堵截,从而让敌人在解放区寸步难行!

来源:freebuf.com 2020-09-02 11:18:27 by: 蔷薇灵动dynarose

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论