零信任安全架构下的数字资产保护
星期四, 三月 19, 2020
数字安全是企业高质量发展的关键。根据Gartner 2018年安全报告,数据安全、应用(业务)安全、网络安全是CIO/CSO最关注的安全子项Top3,数字资产保护已成为CIO/CSO对安全的最大需求。
数据资产蕴含着巨大价值,而在商业对手、黑产/暗网、数据公司等通过非法爬取、黑客窃取等手段获取数据时,内部的主动泄露、被动泄露等方式也使数据资产安全受到威胁。
而目前针对数字资产的保护,安全手段仍有一定局限:
针对以上问题,著名研究机构Forrester的首席分析师约翰·金德维格在2010年提出ZERO TRUST(零信任安全),期望能全面解决在企业安全中“人-物-数据”之间的问题。
在我看来,认清身份,并对身份进行持续行为分析,再根据结果,实现对身份的动态控制。三者之间形成的闭循环,就是零信任架构。
零信任安全架构
身份
身份,在现实生活中,我们有对应的独立肉体身份;而在数字化系统中,我们则对应一个个Token,即代表身份信息的字符串。Token具有唯一性、随机性、溯源性、持续性。
身份的三层映射关系
上图阐释了身份的三层映射关系:每个人,即User Entity,都会映射到不同的Token;Token在IT系统中,又会映射不同的身份;不同身份具有不同的权限。
三层映射关系结合起来,就是零信任中的“身份”。即“身份”不仅包含了你个人的实体,也包含了你的身份证,以及不同作用域下的身份角色(比如你在家里是父亲,在公司是工程师)。
常见的Token有两种:
在大部分情况下,我们认为一个IP代表一个Token。但这可能存在一定问题:
1)代理池IP,net,可能一个IP背后不仅一个Token。也许在IPv6普及之后,这个问题会被彻底解决;
2)IP存在伪造的可能,这种情况下,需要一些额外的技巧防止IP伪造。
很多企业有自己的ID,可以是SSO账号,也可以是业务系统中的UID或设备指纹。
持续行为分析
有了身份,在相应权限下,用户会产生不同行为。而零信任安全非常重要一点的就是对用户行为进行持续分析。
首先,我们需要定义什么是“行为”?
白山ATD系统以用户访问行为为视角,基于六元组模型,定义“行为”概念,即:时间、地点、人/ID、作用域、动作和结果。
其次,我们需要理解什么是“持续”?
即用户登录系统到登出系统:从用户访问某一边缘到另一边缘的整个过程;我们应该从纵向(用户生命周期)、横向(用户活动范围)两个维度进行分析。
我们总结常见的“行为分析”,目前大概可以分为两类,白山ATD系统针对不同情况采取了不同分析模型:
针对特定场景,我们可以采用可编程对抗,把特定场景的规则植入到系统中;也可以利用有监督学习模型,利用企业已经标注好的黑白样本,针对场景训练模型。
针对通用场景,一般可以利用无监督学习,进行单体分析和个群分析。
单体分析:即和过去的自己对比。比如我们学习某一工程师过去的登录行为,生成行为规律,如果某一天的行为不符合规律,系统会质疑其身份,判断是否存在问题。
个群分析:即和大家比。其关键点在于如何屏蔽海量数据的噪声,进行群体行为的建模;再从时域、频域、文本、路径等维度分析,找出与大家不同的行为。
频域个群对比-某游戏平台
在某游戏公司的实际案例中,攻击者使用伪造User Agent不断更换User ID进行撞库,并破解签名算法。从流量角度分析日志,其访问行为是合法请求,且访问频率不高。但当我们通过傅立叶变换转变成频率行为,我们可以看到其访问行为具有周期性,通过频域个群对比,最终确认是撞库攻击。
文本个群对比-某银行HW
在某银行HW攻防案例中,用户请求其实是PHP的探测,通过模拟百度搜索请求,绕过安全设备扫描。但是因为字符串中,标点符号之间的比例、单引号双引号之前的依赖关系、参数的构成,与正常的用户请求之间存在明显区别,通过文本个群对比,最终被ATD系统捕捉。
动态控制-零信任安全的核心
动态控制
控制是根据身份对应的权限,约束身份的行为。动态控制则是通过不断地行为分析,修正Token的身份,调整对应权限。
权限粒度
动态控制还需要对数字资产划分权限粒度,通过建立动作分级和资产粒度的二维象限,对身份授权。
动作上,可感、可达、读、增、改、删,每一个动作所要求的权限是逐级上升;而资产粒度上,服务、库、表、行、列,每一个访问资产的精细度也逐级递增。而动作分级与资产粒度的象限交点,即为对特定用户身份的授权。
零信任&信用体系
总之,企业搭建一个外部用户与内部用户的信用体系,应是组织结构、业务逻辑、风控系统、威胁情报、行为分析等所有能参考的数据集合。在这样的体系中,能给每个身份信用定级,并能不断地更新信用、调整身份。体系的搭建需要融入企业整个生命周期。这样的实时动态的信用体系,就是零信任安全体系。
零信任不是表示不相信任何人,而是要从行为中重塑对每一个人的信任!