linux认证等级零信任在等级保护实施中的应用
摘要:传统信息系统的安全防护,基于网络边界为策略出发点,采用纵深防御为基础的防御体系,强调网络边界攻击行为防护,但在部署实施时因具体设备和系统的自身特性,对防御架构里所要求的单点实施措施实现相对较困难,从而易引起服务器集内、虚拟机之间的横向攻击等。为降低内部的横向越权安全问题,本文提出结合零信任概念的等级保护架构,并讨论其中的相关组件和关键技术。
关键词:等级保护;访问控制;零信任;SDN
信息系统自诞生以来,注重数据链路的传输连通性,缺少对承载数据的安全控制及系统业务连续性的保证。为此,业界提出使用信息系统安全保护框架来对系统重要数据及所承载业务进行保护。从最初的BS7799、ISO/IEC 27000系列、NIST SP800-53,再到CC(通用准则),构建以纵深防御为基准、网络边界防护为原则的安全防护体系。我国也建立了适合我国国情的网络安全等级保护制度。基于实施安全体系所要求的一系列控制措施,信息系统的网络攻击防御和数据保护能力大幅提高,系统安全事件发生的机率有了明显下降。但随着系统内部部署设备日趋多样化,数量不断增加,操作设备人员的数量和角的不断增多,设备间横向越权攻击的
问题日益凸显,对系统的安全运行造成了较大的威胁。而互联网侧的网络攻击行为也随着网络技术的不断发展日趋多样化与复杂化,从原来的DOS、恶意代码攻击等到现在DDOS、APT。针对日益复杂的系统安全问题,Forrester分析师John Kindervag提出了零信任概念,对传统边界安全架构思想进行了重新评估和审视,其核心思想是默认情况下,企业内外部的任何人、事、物均不可信,应在授权前对任何试图接入网络和访问网络资源的人、事、物进行验证。本文将零信任概念融入等级保护架构中,以解决内部横向越权攻击问题。
1、网络安全等级保护制度实施现状
网络安全等级保护制度构建了“一个中心、三重防护”的安全体系,“一个中心”即安全管理中心,“三重防护”即安全计算环境、安全区域边界、安全通信网络。安全体系示意图如下:
计算环境包含了系统内所有的设备/应用系统,如服务器、存储设备、数据库等,区域边界为系统中不同信任等级区域间的交汇处,使用安全接入/隔离设备进行区域隔离,通信网络提供了系统与专网、互联网的连接接口。安全管理中心分别对计算环境、区域边界、通信网络进行管理,建立以计算环境安全为基础,以区域边界安全、通信网络安全为保障,以安全管理中心为核心的网络安全整体纵深防御体系。
在安全计算环境中,对网络设备、安全设备、服务器、数据库、终端和应用系统等设施设备进行用户身份鉴别、权限赋予及控制、操作/行为安全审计等。在安全区域边界中,设置访问控制规则对受控接口通信进行限制,对非法内联、非法外联行为进行检查限制,并检测、防止或限制从内部及外部发起的网络攻击行为,在关键网络节点处对恶意代码及垃圾邮件进行检测和清除。在安全通信网络中对网络区域进行划分、对重要网络区域与其他网络区域进行隔离并保证传输数据的完整性和保密性。
在大部分信息系统等级保护实施落地的时候,对系统内的设备,如网络设备、安全设备、服务器等设备的操作系统有“授予管理用户所需的最小权限,实现管理用户的权限分离”、“由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则”、“对重要主体和客体
设置安全标记,并控制主体对有安全标记信息资源的访问控制策略”等实施要求。“授予管理用户所需的最小权限,实现管理用户的权限分离”要求设备操作系统划分管理员、操作员、审计员3种角,管理员对系统有全部的操作权限,但不能有对系统日志的查看和修改权限;操作员有对系统安全配置进行修改的权限,但不能有对系统日志的查看和修改权限以及对系统的其他权限;审计员仅能对系统日志进行查看,不能对系统日志记录进行修改,无系统的其他操作权限,以此保证单个用户不能对系统所有重要的操作对象内容有独立实施完成的能力。“由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则”要求系统访问控制策略和访问控制规则由授权主体来设置。“对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问控制策略”要求设备操作系统可对系统重要数据主体和客体设置安全标记,并依据访问控制策略对有安全标记的资源进行访问。但在实际的实施过程中,网络设备、安全设备、服务器、数据库、终端使用的linux系统和windows系统中root账户和administrator账户拥有对系统所有的操作权限,包括对系统日志的查看和修改权限,无法单独设置仅能对系统日志进行查看,不能对系统日志记录进行修改,无系统的其他操作权限的账户,从操作系统层面无法实现管理用户的权限分离。由于linux系统和windows系统均是基于角访问控制(RBAC)的操作系统,授权主体可以选择其具体的角,但不能依据实际
安全需求对所分配的角进行权限再划分(分配),从一定程度上无法实现主体规定对客体的访问规则控制。Linux系统和windows系统的系统安全等级均为C2级,未达到B1级,不能自动对系统中的数据进行自动标记,需靠第三方软件来实现此功能。在此背景下,在服务器是由集组成以及系统服务器管理由同一角用户管理的情况下,用户拥有对所有服务器相同的操作权限。
可以看出,形成以上问题的原因是由于设备操作系统不同角用户所拥有的权限相对固定且不能依据实际安全需求进行权限再分配,权限是根据划分的角一次性永久赋予,在任何时候用户所拥有的权限都是一样的。而在不同时期,用户拥有其完成工作任务所需的最小权限是有区别的,原来赋予的权限有可能超出最小权限的限制,进而产生(横向)越权的隐患。零信任能够很好地解决这个问题。
2、零信任等级保护安全架构设计
2.1零信任原理
零信任是一种安全理念,旨在面对被视为受损的网络时,减少在信息系统和服务中执行准确的、权限最小的按请求访问决策时的不确定性[2]。其主要包含了以下原则:
(1)对单个企业资源的访问的授权基于每个连接授予的。[2]
(2)对资源的访问是由策略决定,包括客户身份、应用/服务和请求资产的可观察状态,可能还包括其他行为及环境属性。[2]
(3)所有资源身份认证和授权是动态,并且在允许访问之前严格执行。[2]
在零信任理念中,对系统内资源的访问以策略来决定的(策略是基于组织分配给主体、数据资产或应用的属性的访问规则集,这些规则和属性是根据业务流程需求和可接受的风险水平而定[2])。资源访问授权基于每个连接授予的,在授予访问权限之前评估请求者信任级别,根据信任级别高低来赋予对应的权限。单次访问结束,撤回相应的权限,下次访问时重新评估赋予。这样避免了原有系统中角权限永久赋予存在的最小权限溢出问题。
2.2 零信任访问控制模型
基于上述原则,本文设计了基于属性的零信任访问控制模型,如上图所示:访问主体为系统资源使用用户,在每次使用数据资源时会向策略主体发起请求,由策略主体赋予单次访问权限,在访问结束后策略主体收回本次访问权限,形成单次端对端的资源访问模式。策略主体由3大部分组成:策略引擎、信任引擎和策略执行组件[1]。策略引擎是模型中进行授权决策的组件,它接收来自策略执行组件的授权请求,并和预先制定好的策略进行比较,决定请求是否被允许,并将决策结果返回策略执行组件进行强制执行【1】。策略执行组件负责启用、监控并最终结束访问主体和数据资源之间的连接。信任引擎是对访问主体的访问请求进行风险分析的系统组件,对访问请求及活动的风险进行数值评估,策略引擎基于这个风险评
估结果进行进一步的授权决策,以确定是否允许此次访问请求【1】。在风险数值评估中,需要对信任的对象进行赋值,这需要设置认证系统来实现此功能。在策略引擎、信任引擎和认证系统的运行过程中,涉及了数据的存储、调用和处理,需要设置单独的数据存储系统来保证其正常运行。零信任访问控制模型各构成部分的信息如下表所示: