文/柯善学
上一篇概述中提到,Illumio是在Forrester Wave最新评测中排名第一的零信任厂商。
Illumio高度概括了实施零信任微分段的“三步走”方法论:1)获得应用程序实时地图;2)为工作负载打标签;3)实施安全策略。本文将以应用程序实时地图(Application Real-time Map)为线索,对该“三步走”方法论(被扩展为6个步骤)进行介绍。
Illumio零信任体系中,最有特色的技术是应用程序实时地图(三步走的第1步)和自然语言安全策略(三步走的第3步)。而这两者都与其独特的四大维度标签方法(三步走的第2步)密不可分。本文以介绍应用程序实时地图为主,而自然语言安全策略计划作为下一篇。
为何是“Illumio六部曲”。笔者浏览了Illumio官网的几十份报告和视频,认为启发较多,需分而述之。希望通过六篇小结,概述其精要,此为第2篇。
为何对Illumio感兴趣。因为零信任包括三类技术路线:1)增强IAM(身份与访问管理);2)微分段(也称微隔离);3)SDP(软件定义边界)。为了各个击破,笔者计划为每一类技术路线,挑出一个代表性厂商。而llumio正是微分段的代表。
目录
1.零信任微分段的两个比喻
2.零信任微分段的三条路线
3.工作负载微分段之三步走
4.应用程序实时地图的特别之处
5.应用程序实时地图的工作原理
1)识别应用程序通信关系
2)为工作负载添加标签
3)规划分段策略
4)创建/测试/执行安全策略
5)适应应用程序环境的变化
6)识别网络攻击和违规行为
6.具有特色的打标签方法
01
零信任微分段的两个比喻
微分段(Micro-Segmentation,又称微隔离)技术是VMware在应对虚拟化隔离技术时提出来的,但引起广泛关注是自2016年起连续3年进入Gartner年度安全技术榜单。顾名思义,微分段是粒度更细的网络分段技术。它是在VLAN、VxLAN、VPC等技术基础上发展起来的,其核心能力聚焦于东西向流量的隔离上(当然对南北向隔离也能发挥作用)。
图1-采用和未采用微分段方法的潜水艇
第一个比喻。如上图所示:左侧的潜水艇只有一个大的舱室(即没有采用分段);而右侧的潜水艇被划分为多个舱室(即采用了分段)。如果两个潜水艇同时出现了2个漏洞(即图中红色小圆圈),导致漏水,哪一个更容易沉没?图中深蓝色部分,就是漏进的海水了。这正是微分段的基本作用。
第二个比喻。美国国防信息系统局(DISA)局长南希·诺顿中将说:“旧的以网络为中心的模式已经不够了。标准的比喻是带有护城河的城堡。在传统的边界防御模式中,边界安全检查人员在护城河上的吊桥处检查游客,如果我们的对手设法越过了护城河,他们就可以在城堡内自由走动。国防部正在努力结束这一局面。通过零信任模式,我们将在城堡内的每个房间门口派驻守卫。” 这种在每个房间门口派驻守卫的方式,也正是微分段方式。
要点:零信任与微分段几乎是不可分的:零信任意味着每个工作负载都是一个微分段。
02
零信任微分段的三条路线
微分段的主流技术路线主要有三种,如下图所示:
图2-微分段的三条技术路线
关于这三种技术路线的对比,已经在上一篇概述中解释过,不再赘述。详见《Illumio | 照亮微分段》。 Illumio采用的是工作负载微分段(也称为主机微分段)方法。
03
工作负载微分段之三步走
Illumio高度总结了实施零信任微分段的“三步走”方法,如下图所示:
图3-零信任微分段的“三步走”方法
其中,获得应用程序实时地图(Application Real-time Map)是第一步。本质上,它就是应用程序上下文(Application Context),包括(整个数据中心和云环境中的)应用程序组件以及这些组件之间关系的可见性。
显然,只有了解应用程序是什么,它们在哪里托管,以及它们如何相互交互,才能为后续的打标签、实施安全策略打下坚实基础,从而有效控制应用程序的访问行为。
反之,如果缺少应用程序实时地图,就难以进行应用程序级的微分段,零信任的实施效果就会大打折扣。
而Illumio正是使用“应用程序依赖关系图”(Application Dependency Map),来实现应用程序实时地图。
04
应用程序实时地图的特别之处
为了获得应用程序环境的可见性,可以采取基于网络和基于主机的技术路线。
传统的基于网络的可见性工具,通常过于静态,虽然可以提供IP地址、VLAN和区域的映射,但是无法提供业务应用程序上下文的完整信息。换句话说,基于网络的方法,虽然可以提供网络路径的可见性,但难以提供应用程序上下文的可见性。
相反,Illumio采用基于主机的方法,来揭示应用程序依赖关系图,获得应用程序上下文,实现应用程序组件之间所有活动流量、开放端口、进程的端到端可视化,从而可以获得两个方面的好处:
1)更好地了解攻击面:
关键业务资产,如需要被保护的带有敏感客户信息的数据库、PCI(支付卡行业)管理的服务器、财务和薪资应用程序服务器等;
可供入侵者攻击的脆弱且潜在的路径;
未经授权的连接和未经授权的活动。
2)改进安全策略的创建过程( 也就是图2中“三步走”方法的后面两步):
规划你的分段策略并创建有效的安全策略;
利用影响分析的可视化反馈,建模和测试安全策略;
避免由于策略错误配置而导致的任何错误,这些错误可能会损害应用程序的可用性和安全性。
关联:如果你认真读过NIST零信任架构指南(即NIST SP800-207),会注意到其中出现了一个高频词汇——工作流(workflow)。笔者初步搜索显示,大概出现了40次。该指南反复强调:实施零信任架构的基础,是识别用户(帐户)、资源(资产)、工作流。换个说法,也就是主体、客体、访问关系。很显然,应用程序实时地图就是干这个的。如下图所示:
图4-应用程序实时地图的形象化
上面是个抽象图,而应用程序实时地图的实际样子如下所示:
图5-应用程序实时地图的实际样子
说明:图中红线表示检测到流量,但尚未制定一个允许这种流量发生的策略;绿线表示检测到流量,而已经制定了一个策略来规范这些流量。也就是说,红线是需要引起注意的。
05
应用程序实时地图的工作原理
1)识别应用程序通信关系
构建应用程序实时地图的第一步,是识别数据中心和云环境中的现有工作负载,并映射到相互连接的应用程序,其中包括:
相互通信的工作负载;
工作负载用于通信的端口;
在工作负载上运行的进程;
Illumio的Illumination组件,可以识别出数据中心和云环境中的所有工作负载,以及它们之间的相互依赖关系。如下所示:
图6-可视化应用程序通信关系
说明:不得不承认,能够自动化地生成这张应用程序关系图,是需要技术含量的,也着实令人佩服。但是,这个图也太错综复杂、令人抓狂了吧。原因在于没有对工作负载进行巧妙的分组(或分类),而这正是下一步要做的事。
2)为工作负载添加标签
一旦有了应用程序依赖关系图,就可以为工作负载添加标签,对它们进行分组。标签基于四类通用元数据(标签维度):应用程序、位置、环境、角色,即它们属于哪个应用程序、它们所在的位置(数据中心、云、地理区域等)和环境(开发、生产、登台(staging,即没有外部访问的准生产环境)等),以及它们的角色(web、数据库、处理等)。
通过标签进行分组之后,应用程序实时地图如下所示。其中展示了所有的应用上下文信息,例如工作负载使用哪些IP地址、端口、协议、进程、服务来彼此通信。
图7-对应用程序工作负载打标签和分组
注:文中图片字体较小,均可单击后放大查看。
解读:图中,通过上面提到的四维标签,划分了很多分组。比如,最后一个分组是“Ordering | Production | US”,表示该分组属于订单(Ordering )应用程序,位于生产(Production )环境,位置在美国(US)。虽然,在分组标识上并没有表明它的角色,但是每个分组内部的所有服务器都标记了角色,即web(服务器)、数据库(服务器)、处理(服务器)等。如果仔细看,会注意到每个服务器的颜色均反映了它的角色。我们找一个放大图看看:
图8-应用程序组的放大图
说明:至此,总算有了一个完整的应用程序实时地图(即图7),其中包含了所有应用程序及其依赖关系。与图6对比,再也不凌乱了。接下来,需要定义分段和安全策略。
3)规划分段策略
目前得到的应用程序实时地图,使你能够洞察数据中心和云中的应用程序依赖关系,能够识别高价值资产,也能够深入了解攻击者可以使用的所有攻击向量和开放路径。需要据此来设计恰当的分段策略。如下图所示:
图9-查看分段后的应用程序
4)创建/测试/执行安全策略
依据上面的分段策略,现在要创建安全策略来保护资产,而且还要测试和校准安全策略,来保护应用环境不受错误配置的影响。如下图所示:
图10-创建和测试安全策略
一旦为所有可能的攻击向量建立了应用程序流量和安全策略的基线,就要强制执行分段策略。
至此,你已经准备好让应用程序实时地图为你工作了。
说明:现在已经设置好了安全策略,接下来还要确保你的安全策略能够跟上变化。
5)适应应用程序环境的变化
静态数据中心已经成为历史。现代数据中心已经变得高度动态化,在本地数据中心和云上混合了物理和虚拟服务器。因此,安全策略必须能够随着应用程序基础设施的变化而变化,以使你的应用程序具有可伸缩性、高度弹性和灵活性。
而通过应用程序实时地图,可以消除由于应用程序基础设施中的异构性而造成的所有盲点。也有助于:扩展到新的地理位置和新的数据中心;整合现有的数据中心;调试和停用服务器。
图11-适应应用程序工作负载的变化
解读:对比该图和图9可知,该图最后一个分组中增加了更多的服务器。因此,安全策略需要随之调整。
6)识别网络攻击和违规行为
通过应用程序实时地图,了解环境中存在哪些应用程序以及它们如何互连,可以帮助你获得正常应用程序环境的基线。
一旦你了解了“正常”行为是什么样子,你就可以监视和检测异常行为或非授权活动,并采取必要的安全措施。
图12-识别违规行为和流氓行为
解读:与图11(属于正常状态)对比,可以发现,该图中的开发环境服务器与生产环境服务器(即图中最下面两个分组)之间,出现了不正常的SSH通信(即红色线条)。如果它们没有被明确授权相互通信,就应该采取措施来阻止这种通信。
06
具有特色的打标签方法
在上面第2步(打标签)对图7的说明中,我们提到四个维度的元数据标签——角色(Role)、应用程序(Application)、环境(Environment)、位置(Location)。如下图所示:
图13-Illumio的四类标签维度
因为传统的分段方法依靠IP地址或防火墙规则,其必然结果是安全策略只能采用网络语言进行编写。而网络语言通常是不容易理解的。
相反,Illumio的微分段方法依靠标签,而且是人类可读的标签,而且划分了四个维度的标签。根据多维标签集对工作负载进行分组,从而构建出应用程序依赖关系图。
简言之,Illumio的打标签方法,可以使其采用自然语言而非网络语言编写安全策略。
下图表明:应用程序实时地图和自然语言策略是Illumio安全大脑(即策略计算引擎)的关键技术。
图14-Illumio的核心支柱
在下一篇中,将结合策略设计示例,来更清楚地解释自然语言策略方法。
“三年前,我们开始了这个旅程——为分段提供实时应用程序依赖关系图和可见性。从那时起,微分段市场中的其他供应商已经意识到可见性和应用程序依赖关系图的重要性。去年,几乎所有公司都试图填补这项产品缺口。当其他公司刚刚起步时,我们很高兴通过在Illumination中添加策略生成器(Policy Generator)和浏览器(Explorer),将可见性提升到一个新的水平。” ——这是2017年Illumio说过的话。
当你发现对手的时候,通常不是开始,而是结束。
声明:本文来自网络安全观,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。