采用零信任时的技术与方案考量
作者:Mudit Tyagi和Ken Arora
在了解零信任的“为什么”,即指导原则1 之后,接下来需要关注的是“如何做”,即用于实施这些原则的技术和方法。
从广义上看,零信任原则可应用于整个应用开发生命周期,包括系统设计、所用硬件平台和采购流程。2 但本文探讨的是实施零信任的运营层面,即如何在运行时保护应用和数据。
技术与科技
总体而言,零信任安全利用技术实现以下三个不同目标之一:
- 实施事务约束:谁可以对谁执行什么操作。
- 帮助人工系统操作员了解当前态势。
- 根据机器学习(ML)辅助生成的可疑指标以及相关交易的风险收益特征,采取更高级的风险降低或补救措施。
下图展示了这一整体零信任安全事务模型,后续各节将深入介绍每一类技术。
策略实施:身份验证与访问控制
动机
前两项技术(身份验证和访问控制)密切相关,直接体现了“显式验证”和“最小权限”原则,因为这些技术是实施“谁可以执行什么操作”的核心。更先进的身份验证实现会持续监测行为主体的行为,体现“持续评估”的理念。
身份验证
身份验证技术旨在建立对已证实身份的信任:谁在交易中执行操作。身份验证流程包含三个组成部分:
- 行为主体会作出证明或声明,表明其身份。
- 存在一些通常由行为主体提供的数据,用于证明该声明的真实性。
- 系统会对该声明为真的可能性作出判断或决定,即行为者是否确为其所声称的身份。下图展示了身份验证的不同方面及各方面的成熟度模型,随后将对每个方面进行深入讨论。
证明
最基本的证明主体通常称为“用户”,即希望执行交易的人类,或代表人类行事的代理。不过,在应用内采用零信任时,行为主体可能是工作负载(例如进程、服务或容器),因此广义的身份概念应涵盖此类主体。在其他情况下,“谁”这一概念不仅包括人类或工作负载,还涉及身份的其他考量因素或维度。从这个角度看,身份的其他维度可能包括用户或工作负载所使用的设备或平台、交互所处的生态系统,或代理所在的位置。例如,用户“Alice”可能正在一台标记为“ABC- 0001”的PC上,使用具有特定指纹的浏览器实例,其IPv4地址为10.11.12.13。
身份证明
某些系统允许未经身份验证的用户(有时称为“访客”或“匿名”用户)执行有限的事务。对于此类系统,证明身份以及由系统作出判定等额外步骤并不适用。但是,对于任何需要证明的特定身份,通常使用以下方法来支持该身份声明:
- 掌握共享密钥,例如密码。
- 来自可信第三方的某种凭据,例如签名证书。
- 对用户、工作负载或平台进行验证,可以采用自动方式(如设备指纹识别),也可以采用主动方式(如验证码质询)。
- 与行为主体相关的元数据,例如地理位置、IP信誉或访问时间。
- 行为分析,例如被动式生物特征分析或应用交互的工作流模式。
通常,如果需要较高的置信度,就会采用多种方法。Google BeyondCorp模型便是一个例证,3 该模型要求先进行多重身份验证(MFA),然后才允许执行价值较高的交易。更先进的身份验证解决方案会为每个身份设定一个“置信度”,并根据交易的价值和风险,为每种交易指定最低置信度。
静态身份验证与动态身份验证
最后需要注意的是,其中一些方法并非静态的一次性操作,而是可以且应当遵循“持续评估”原则持续进行。在这种情况下,为身份认证结果分配的置信度分数可能会随时间上升或下降。例如,浏览器指纹或IP地址可能会在同一用户会话期间发生变化,这可能被视为可疑情况,从而降低置信度;随着系统收集到更多有关行为主体在会话中的行为数据,置信度分数也可能上升或下降,具体取决于当前行为与以往观察结果的对比情况。
在更先进的系统中,动态身份验证可与访问控制协同工作。如前所述,这种交互的第一层是由访问控制策略为不同类别的事务指定最低置信度分数。下一层交互则允许访问控制子系统向身份验证子系统提供反馈,通常会要求进行额外的身份验证,以将置信度分数提高到最低阈值。
访问控制
使用身份验证技术确定交易中的行为主体是谁后,接下来要问的是:该主体可以执行哪些操作?可以对哪些对象执行?这些正是访问控制技术所解决的问题。
以实体安全为例,假设您想参观一处军事基地。警卫确认您是平民、政界人士还是军人后,会根据这一身份决定您可以进入哪些建筑,以及是否可以将相机带入获准进入的各栋建筑。管理这些权限的策略可能粒度较粗,适用于所有建筑(例如,“政界人士可以进入任何建筑”);也可能粒度更细(例如,“政界人士只能进入建筑<A>和<B>,且只能将相机带入<A>”)。
在网络安全环境中,访问控制技术应体现零信任的“最小权限”原则。换言之,理想的访问控制策略应仅授予行为主体所需的权限,并禁止其他所有权限。此外,理想的稳健策略还应以对行为主体身份真实性达到特定的最低置信度为条件,并针对每项允许的权限分别指定置信度阈值。
因此,可以根据访问控制解决方案与这些理想原则的契合程度来判断其价值。具体而言,零信任安全解决方案必须包含访问控制,并应按照下图所示及后文所述的各个维度评估访问控制技术。
- 访问控制权限的粒度有多细?
- 操作的粒度如何?也就是事务中的“内容”。具体是:
- 二元:允许“全部”事务或“无”事务。以军事基地为例,这相当于“所有士兵都可以进入任何建筑,并可随意行动”,而“平民不得进入任何建筑”。
- 粗粒度:细化到API端点或事务“类型”(例如文件I/O、网络通信和进程控制)。在上述示例中,这可以更细致地限定允许的操作,例如“政界人士可以进入建筑物,但不能拍照”。
- 细粒度:细化到子API(即取决于API的参数或版本)或事务的“子类型”(例如文件I/O只读或TCP仅接收)。再次沿用上述类比,这可以实现更精细的控制,例如“平民只有在士兵陪同下才能进入建筑物”。
- 是否可以按操作目标(即事务中的“对象”)划分粒度?具体包括:
- 不具备目标粒度:访问控制策略不考虑操作的目标。在本例中,这种方法对应的粒度是允许进入某些建筑物,但不允许进入其他建筑物;建筑物就是“进入”操作的目标。
- 目标粒度,基础设施级别:访问控制策略可以包含操作目标,但会使用基础设施特有的标记或标签来标识目标,例如IP地址、DNS名称或Kubernetes(K8S)容器名称。这样,策略便可细化到建筑物粒度,但每个军事基地可能采用不同的建筑物命名约定。
- 目标粒度,身份感知:访问控制策略可以包含操作目标,并使用与操作主体(即“谁”)相同的身份命名空间(例如SPIFFE)来标识目标。与前一种方法相比,这种方法的优势在于,所有军事基地都将采用一致的建筑物标识方案,使策略更易于移植。
- 操作的粒度如何?也就是事务中的“内容”。具体是:
- 访问控制解决方案如何区分风险较低和风险较高的操作?
- 不感知风险:在决定允许还是禁止操作时,访问控制解决方案对所有访问控制权限一视同仁。
- 通过MFA管理风险:访问控制解决方案允许策略根据交易涉及的行为主体(谁)、操作(什么)或目标(对谁),指定某些已获准的交易仍须使用多重身份验证,从而管理风险。
- 通过置信度管理风险:访问控制解决方案允许策略根据交易中的操作(做什么)和目标(对谁),指定任何交易仍可能要求对操作主体的真实性达到最低置信度,从而管理风险。MFA可能会提高置信度,但也可以采用其他方式;在其他情况下,如果交易价值较高,且操作主体的真实性存在较大不确定性,则可能完全不允许该交易。
根据“持续评估(并重新评估)”原则,对行为者真实性的置信度应随时间调整。在简单的解决方案中,这可能只是通过超时来实现;在更复杂的系统中,置信度可根据对行为者长期行为的观察而变化。
态势感知:可见性及机器学习辅助情境分析的动因
如果说身份验证和访问控制体现了“始终验证”和“最小权限”的理念,那么可见性和上下文分析就是“持续评估”和“假定已遭入侵”原则的基础。
可见性是开展分析的必要前提,系统无法缓解其无法发现的问题。因此,零信任安全解决方案的有效性将与可从系统运行和外部环境中收集的遥测数据的深度和广度成正比。然而,现代可见性基础设施能够提供大量可能有用的数据、元数据和上下文信息,远超任何未借助工具的人员在合理时间内所能处理的范围。为了获取更多数据,并更快地从中提炼出洞察,机器辅助已成为支持人工操作人员的一项关键要求。
这种辅助通常通过自动化算法实现,涵盖从基于规则的分析、统计方法到高级机器学习算法。这些算法负责将海量原始数据转化为易于理解且可付诸行动的态势感知信息,供人工操作人员评估,并在必要时采取补救措施。因此,机器学习辅助分析与可见性密不可分。
从原始数据(可见性)到采取行动(修复)的通用流程如下所示:
可见性
可见性是“持续评估”这一零信任原则的实施方式,即解决“如何实施”的问题。它包括维护可用数据输入的清单(Catalog),以及实时遥测和历史数据留存(Collect)。
评估零信任可见性实施的成熟度时,应考虑以下四个因素:
- 延迟:数据与实时状态有多接近?
延迟决定了响应潜在威胁所需时间的下限。零信任解决方案的延迟应以秒或更短时间计;否则,无论分析多么准确,都很可能因响应过晚而无法防止漏洞利用造成的影响,例如数据外泄或加密,或因资源耗尽而导致服务不可用。更复杂的系统可能同时支持同步和异步缓解措施。同步缓解会阻止事务完成,直至获得完整的可见性并完成分析。由于同步缓解可能增加事务延迟,因此这种运行模式仅适用于异常程度或风险特别高的事务;其他所有事务则可发送遥测数据并接受异步分析。 - 可用性:数据是否易于使用?
如果数据来自多个来源或不同类型的数据传感器,就需要考虑这一问题,而这种情况十分常见。该因素通常可分为两个方面。
在语法层面,需要考虑如何提取和表示数据。例如,某个来源通过syslog消息中的文本字段(如“恶意”“可疑”“未知”等)提供源IP信誉,而另一个来源则通过数据文件中采用二进制编码的数值字段提供该信息,此时应确定一种规范表示形式。需要通过数据序列化来提取传入的数据,并将其转换为该表示形式。
在语义层面,不同来源不仅可能采用不同的语法和传输方式,语义也可能有所不同。仍以IP信誉为例,一家提供商可能以数值形式提供威胁评分,而另一家提供商可能将IP归入“TOR节点”“DNS控制”或“网络钓鱼”等类别。可观测性解决方案还必须提供一种机制,将传入的数据规范化为一致的语法。 - 完整性: 可用数据的广度和深度如何?
高质量可见性解决方案的一项关键价值,是能够发现可疑活动,并将其作为可能发生安全事件的迹象。为有效实现这一点,解决方案必须接收应用交付所有相关“层”的遥测数据:不仅包括应用本身,还包括应用基础设施、网络基础设施、应用所采用或使用的任何服务,甚至客户端设备上的事件。例如,发现用户通过一台从未出现过的新设备访问,本身可能略显可疑;但结合网络信息(例如来自境外国家/地区的GeoIP映射)后,可疑程度会进一步上升。这种可疑程度体现为对用户身份的置信度评分降低。在零信任安全策略下,当该行为主体尝试进行高价值交易(例如向境外账户转账)时,访问控制解决方案可以根据较低的置信度选择阻止该交易。
从零信任理念来看,可见性解决方案越深入、越完整,系统就越能有效地适当限制交易并检测安全事件。 - 治理: 对法定及许可规定的数据使用要求支持程度如何?
最后,任何数据收集都必须符合与数据安全、保留和使用相关的法律及许可要求。因此,完善的可观测性解决方案必须满足上述各项要求。零信任可观测性解决方案必须考虑治理对数据使用施加的限制。例如,如果IP地址被视为个人身份信息(PII),则在使用和长期保留IP地址进行分析时,必须遵守IP地址的许可使用范围。
机器辅助的上下文分析
除了可见性之外,要实现“持续评估”,还需要借助分析工具开展有意义的评估,也就是说,评估结果应能由零信任解决方案付诸实施。
分析时需要考虑输入数据的范围和广度。分析算法的输入可以仅限于来自单一来源的单个数据流,也可以涵盖多个数据流,包括来自不同数据源以及基础设施和应用各层的数据流。
- 最基本的情境化分析仅限于单一“类型”或“数据流”的范围(例如,包含“时间和源IP地址的用户登录信息”事件流),通常会结合历史情境和/或多个用户的数据。此类分析可以得出一些基本洞察,例如“用户<X>从未在一天中的这个时段登录”,或“用户<X>似乎总是在用户<Y>之后立即登录”。前者可能会降低对身份可信度的判断;后者可能表明存在某种更高层级的模式,且可能具有恶意。
- 更高级的上下文分析不仅会考虑单一数据“类型”在时间和多个实例维度上的范围,还会对不同数据“类型”或数据“流”进行时间关联。例如,可以将用户登录数据与应用层的特定操作(如转账或更新电子邮件联系人)或网络层的操作(如基于IP地址的地理位置查询)进行关联。
零信任框架中的另一个重要分析方面,是应对所摄取数据的规模和速率,因为这些数据将超出任何人的处理能力。因此,需要借助某种机器辅助方式,将数据转化为人类可以理解的洞察。同样,这种辅助方式的复杂程度也可以视为一个逐步演进的过程。
- 仅可视化:第一步仅展示统计数据和事件,通常通过管理门户中的仪表盘呈现。所呈现的数据基于收集的数据流(通常是时间序列,或固定时间窗口内跨用户或交易的纵向横截面数据)。更高级的仪表盘支持对数据进行排序和分组,以及通过筛选深入查看数据。在此模式下,所有数据探索、事件优先级排序、分析和修复工作均由人工完成,自动化主要用于辅助数据探索。
- 可视化与可配置的静态规则: 可视化最常见的进一步扩展,是允许人员定义静态规则,用于告警或修复。例如,“如果<John>,则通知相关人员<CPU负载在5分钟内持续超过80%>”或“如果<通过电子邮件进行MFA>,则要求<调用API [Y]且国家/地区不是[美国]>”。这些规则可能仅限于解决方案提供商指定的预定义规则;更高级的规则子系统也可能允许SecOps工程师编写自定义规则。无论哪种情况,所应用的规则通常都通过配置进行控制(并在需要时进行定义)。
- 可视化与机器学习辅助:更高一级的方法采用更先进的技术,用于发现行为异常,以及与此前识别出的恶意交易模式相匹配的交易。尽管可采用多种技术(深入探讨技术和业务层面的权衡不在本文范围内),但仍需考虑以下几个要点:
- 所需人工投入:某些机器学习技术需要“训练”(即监督学习),这意味着必须使用可信、可靠的“分类器”,预先对规模适当的数据集进行分类。通常,为确保分类结果可信,“分类器”最终会由一个人或一组人员担任。在这种情况下,应考虑所需的人工投入。其他技术(即无监督学习)无需人工投入,即可自行检测异常和/或识别模式。
- 可解释性:机器学习系统通过使用模型评估输入数据来生成输出。该模型可以基于一系列简单易答的问题,例如:“过去一个月是否曾在此设备上发现该用户?”也可以基于易于解释的相似性,例如:“该用户符合我观察到的一般模式,即从不在工作时间登录的用户模式。”在其他情况下,模型可能会对输入数据执行一组复杂的向量代数运算,而没有易于辨别的高层逻辑。与前两个示例相比,最后一种情况显然更难解释,更像一个“黑盒”。在某些情况下,可解释性是帮助人们理解或确保可审计性的重要因素。此时,相比难以理解的模型,通常会优先选择可解释的模型。
- 置信度评分可用性:如前所述,用于表明模型对某项决策有多大把握的指标,换言之,即反映误报或漏报相对可能性的指标,通常非常有用。某些算法会自然输出置信度指标;对于规则型算法等其他算法,则需要将置信度明确指定为输出之一。无论哪种情况,能够提供置信度评分的算法都比无法提供此评分的算法更稳健。
与基于规则的方法一样,ML辅助既可仅用于检测,也可与自动修复关联。此外,ML辅助还可与基于规则的系统结合使用,将ML的“判定”(或意见、置信度)作为规则的输入,例如:“如果<ML评估器[bot_detector_A]报告检测到机器人且置信度高于90%>,则执行操作<X>。”
处理逃逸:基于风险的自动修复
零信任理念的最后一项原则是“假设已发生入侵”。需要明确的是,正确实施的身份验证和访问控制方法能够有效阻止绝大多数恶意事务。不过,出于高度谨慎,应假设身份验证和访问控制的执行机制终将被某些动机足够强烈或足够幸运的攻击者攻破。要及时应对这些漏网攻击,就必须检测入侵,而这需要可观测性和机器辅助分析。因此,鉴于其他执行机制偶尔会被攻破,利用可观测性技术为机器学习辅助的上下文分析提供数据,对于基于风险的修复这一零信任安全兜底方案至关重要。
对于实际恶意交易绕过身份验证和访问控制而造成的“假阴性”情况,应使用基于风险的自动修复机制作为最后一道防线。但由于该技术用于处理已通过前序强制检查的交易,因此更需要关注将实际为“真阴性”(有效且符合预期的交易)的交易错误标记为“假阳性”(被错误标记为恶意交易)的情况。为降低这一风险,对于疑似恶意但未被身份验证或访问控制发现的交易,由此触发的任何修复操作都应基于以下三个因素:4
- 交易的业务价值:不同交易的风险和回报水平各不相同。例如,查看银行账户的交易风险低于向境外账户转账的交易。同样,对于航空公司而言,与查询当前航班延误情况的交易相比,购票交易可能带来更高的业务回报。业务价值是权衡潜在业务回报与交易风险状况后得出的收益。对于低回报、高风险的交易,相较于业务价值较高的高回报、低风险交易,更容易接受推测性补救措施造成的任何“误报”影响。
- 对“恶意性”判断的置信度:当然,并非所有推测性补救建议都同等适用。具体而言,除了上述风险与回报外,另一个关键因素是对相关交易判断的置信度,例如对行为者经证明身份的置信度。大致而言,“假阴性”的可能性,也就是执行机制本应触发却未触发的概率,与对行为者的置信度成反比。由于基于风险的补救旨在减少“假阴性”,因此置信度越低,系统就越应倾向于采取补救措施。
- 补救措施的影响:最后,并非所有补救措施都只是允许或阻止这样的二元决策。事实上,可以采用多种风险降低技术,其中一些用户可以感知(例如,要求提供额外凭据或进行多重身份验证,或者要求完成验证码等质询),另一些则基本不会被用户感知(例如,执行数据丢失防护等更深入的流量检查,或开展更高级、计算密集型的分析)。因此,实施这些额外风险降低措施所产生的影响,是需要考虑的第三个因素。衡量这种影响时,应考虑用户遇到的操作阻力,以及应用承担的运营成本(例如,数据丢失防护或计算密集型分析产生的成本)。与影响较大且用户可感知的质询相比,应优先选择影响较小、用户无感的补救措施;直接阻止交易则是最不理想的选择。不过,如果置信度较高,或者对于无法通过其他风险降低机制充分提高置信度的高风险交易,阻止交易可能是适当的做法。
结论
零信任安全是对纵深防御等传统安全方法的现代化演进。它以事务为中心审视安全问题,即谁试图对什么对象执行什么操作。这种方法不仅可保护应用的外部访问,还适用于保护应用内部。5 基于这一基础性的事务视角,零信任安全以一系列核心原则为根基,用于在当今更复杂、更具挑战性的环境中保护应用。这些原则进一步映射到一系列体现相应原则的子系统级解决方案或方法。下面概述了这些核心原则及其与解决方案方法之间的映射关系。
这些工具,包括身份验证、访问控制、可见性、上下文分析和风险感知型修复方法,是防范多种攻击类型所必需且足以奏效的手段。
资源
1 https://www.f5.com/services/resources/white-papers/why-zero-trust-matters-for-more-than-just-access
2 零信任可以而且应该应用到CI/CD流水线更靠“左”的环节。漏洞评估工具、静态分析工具、CVE数据库、开源代码信誉数据库和供应链完整性监控系统等工具都符合零信任理念。
3 https://cloud.google.com/beyondcorp-enterprise/docs/quickstart
4 请注意,基于上下文的风险感知访问控制与广义的风险感知修复之间界限较为模糊,二者确实存在一定重叠。
5 通常称为“东西向”应用内保护,与“南北向”应用入口保护相对。
