技术研究 | 等保测评中linux系统的安全策略方案(上篇)
引言
自1994年第“147号令”,我国开始实施信息系统等级保护。十几年来,在金融、能源、电信、医疗卫生等多个行业都已深耕落地。2016年《网络安全法》出台后,等级保护制度更是提升到了法律层面。但是随着云计算、大数据、物联网、移动互联以及人工智能等新技术的发展,等级保护1.0已无法有效地应对新技术带来的信息安全风险。为了适应新技术的发展,解决云计算、物联网、移动互联和工控领域信息系统的等级保护工作的需要,2019年,国家市场监督管理总局正式发布GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》,等级保护正式进入2.0时代。
等保2.0
等保2.0版本等级保护的对象包括云计算、移动互联、物联网、工业控制和大数据等各类信息系统应用,无一例外都需要落实等级保护制度。网络安全等级保护基本要求分为技术要求和管理要求,其中技术要求包括安全物理环境、安全通信网络、安全区域边界、安全计算环境和安全管理中心。具体的技术要求可以概括为:
安全物理环境:针对人员威胁的控制要求包括物理访问控制、防盗窃和防破坏、电磁防护等。针对自然环境威胁的控制要求包括防火、防水和防雷击等。
安全通信网络:是指组织中的数据通信网络,其由网络设备、安全设备、可信计算设备和通信链路等相关组件构成,为等级保护对象各个部分进行提供安全的数据通信传输功能。
安全区域边界:主要针对系统边界提出安全保护要求,系统边界一般包括整网互联边界和不同级别系统之间的边界。
安全计算环境:包括身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、可信验证、数据完整性、数据保密性、数据备份恢复、剩余信息保护、个人信息保护11个控制点。
安全管理中心:主要针对集中安全管理等方面提出要求,如安全状态监控、补丁管理、安全策略、安全设备或安全组件的集中管理要求。
其中,安全计算环境方面提出的安全要求,针对的测评对象主要是部署了信息系统的操作系统和数据库。为了保证安全计算环境的相关要求,就离不开操作系统安全策略的配置。以前,行业对服务器操作系统的选择没有太多限制,有的选择windows server操作系统,也有的选择centos、redhat等linux操作系统。但是,随着我国当前信创业务的发展,国产操作系统正在逐步替代原有的windows操作系统,而目前国产操作系统均采用的是linux操作系统结构。因此,linux操作系统的安全策略配置方案在信息系统部署时,变得越来越重要。
下面重点针对安全计算环境方面的测评要求,以某安全操作系统为事例(后面简称Se-OS),介绍linux操作系统应采取怎样的安全策略配置方案。
安全策略配置方案
在安全计算环境检测项中,包括身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、可信验证、数据完整性、数据保密性、数据备份恢复、剩余信息保护、个人信息保护等11个控制点。下面以等保三级的标准要求为例,进行一下说明。
1、身份鉴别
a)应对登录的用户进行身份标识鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。
Se-OS对通用操作系统的用户标识UUID机制进行了安全加强,使用户在操作系统的全生命周期均保持其身份标识的唯一性,即具有唯一的UUID号。在用户口令的复杂度方面和更换周期方面,Se-OS默认设置口令策略为要求三种以上的字符,并且口令长度需要达到12位;口令更换周期为30天。系统管理员(root用户)也可以通过修改配置文件/etc/pam.d/system-auth和/etc/login.defs实现对口令策略的修改,修改方法如下:
图1 口令复杂度设置
图1为配置文件/etc/pam.d/system-auth中,默认设置的口令复杂度部分。其中,各参数所设置的意义如下。
min=disabled,disabled,12,12,12:表示只包含一种字符、两种字符均拒绝设置,如果密码中被识别出了常用的单词,那么最小长度就必须为12位;如果是三种或者四种字符的口令,则要求最小长度为12位。
max=128:表示口令最大长度。
passphrase=3:表示常用单词的最小识别长度为3。
match=4 similar=deny:表示如果发现本次修改的口令与旧口令有4个字段长度相同,则认为是弱密码,并拒绝设置。
random=42:表示设置随机生成口令字的默认长度。
enforce=everyone:表示该策略对所有用户都生效。
retry=3:表示设置口令时允许重试的次数。
图2 口令更换周期设置
图2为配置文件/etc/login.defs中,默认设置的口令更换周期部分。其中,各参数所设置的意义如下。
PASS_MAX_DAYS:为登录口令的有效期。
PASS_MIN_DAYS:为登录口令最短修改时间。
PASS_MIN_LEN:为登录口令最小长度。当system-auth中未对口令长度进行设置时,该参数将会生效。
PASS_MIN_AGE:为登录口令提前几天提示修改。
系统管理员可以根据实际应用需要进行口令相关的策略设置。
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和登录连接超时自动退出等相关措施。
Se-OS在登录失败时,会自动回到登录验证界面,等待用户再次进行登录;默认设置的非法登录次数为3次,登录连接超时时间为300秒。系统管理员也可以通过修改配置文件/etc/pam.d/system-auth和/etc/profile实现对相关策略的修改,修改方法如下:
图3 非法登录次数设置
图3为配置文件/etc/pam.d/system-auth中,默认设置的非法登录次数部分。其中,各参数所设置的意义如下。
deny=3:允许口令连续输入错误的最大次数为3。达到设置的次数后,登录功能将被锁定。
unlock_time=180:普通用户锁定的时间为180秒。
even_deny_root:设置root用户也采用同样的登录规则。
root_unlock_time=180:root用户锁定的时间为180秒。
图4 登录连接超时设置
图4为配置文件/etc/profile中关于登录连接超时设置的部分。TIMEOUT设置的单位是秒。
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。
Se-OS支持采用sshd和cockpit服务进行远程登录访问。其中cockpit服务可以选择使用ssl协议或者ssh协议通信协议,Se-OS默认选择ssl协议进行网络通信。无论是ssl协议或者ssh协议在数据传输过程中,均采用了相应的密码算法保护数据传输过程中的机密性和完整性,具体较高的安全性。
若要开启sshd服务,或者cockpit服务,可以使用如下命令:
systemctl start sshd.service
systemctl start cockpit
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少使用密码技术来实现。
Se-OS默认采用双因子认证方式进行用户的身份鉴别,具体的机制为强用户口令+基于公钥密码算法的数字签名方式。为了保证密码技术的使用,也可以通过命令开启Ukey认证方式。设置方法为:系统管理员(root),在终端界面输入命令:secureid,并选择2,开启Ukey认证。命令执行情况如下图所示。
图5 Ukey设置
2、访问控制
a)应对登录的用户分配账户和权限。
Se-OS用户管理由系统管理员负责,安全策略由安全管理员负责。系统管理员能够为系统创建新用户,安全管理员则为创建的新用户分配其安全标签。不同的用户通过系统提供的自主访问控制和强制访问控制机制实现权限的设定。
通过ll命令即可查看某文件或者目录的自主访问控制权限情况,如下图所示:
图6 自主访问控制权限
安全管理员使用Se-OS命令cysc get,则可以查看文件或者目录的强制访问控制安全标签情况,如下图所示:
图7 强制访问控制安全标签
b)应重命名或删除默认账户,修改默认账户的默认口令。
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在。
上述两个安全要求可以根据实际系统部署情况进行修改和删除。
d)应授予管理员用户所需最小权限,实现管理用户的权限分离。
Se-OS将通用操作系统的管理员用户权限进行了分割,分割为了系统管理员(root)、安全管理员(secadm)和审计管理员(auditadm)三个特权用户。其中,系统管理员负责系统的常规管理,如用户管理、网络管理、服务管理等日常管理工作。安全管理员负责整个系统的安全策略设计,配置与维护,保护系统安全。审计管理员则对系统中所有的操作事件进行审计,并将审计的结果进行整理分析,定期保存审计日志。这三个特权用户只具有自己所能拥有的最小权限,并且不存在权限重叠,防止了原有通用操作系统管理员权限过大的问题。
另外,从安全角度考虑,Se-OS禁用了su命令,较好地预防了越权访问行为。
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则。
Se-OS继承了通用操作系统的自主访问控制(DAC)机制。自主访问控制是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。这种控制是自主的,也就是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。自主访问控制中,用户可以针对被保护对象制定自己的保护策略。
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级。
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
Se-OS通过强制访问控制(MAC)机制,实现细粒度的访问控制功能,即进程级的访问控制。并且系统使用强认证的安全管理员设置的安全标记,通过对重要信息资源设置安全标记,来决定主体以何种权限对客体进行操作,实现强制访问控制机制。
安全审计
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计。
Se-OS的安全审计功能默认为开启状态,能够对所以用户行为进行审计,审计管理员可以根据应用需求制定不同的审计策略。
若要手动重启安全审计服务,可以使用如下命令:
auditservice -c restart
b)审计记录应该包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
下图为使用ssh服务进行远程登录审计用户的审计日志内容,日志中将详细记录事件相关的各种审计信息。
图8 部分审计日志内容
c)应对审计记录保护,定期备份,避免受到未预期的删除、修改或覆盖等。
Se-OS支持日志远程备份机制,通过配置远程日志服务器,以及配置本地rsyslog服务和安全策略,即可实现日志的远程备份。
d)应对审计进程进行保护,防止未经授权的中断。
Se-OS通过强制访问控制机制,对于审计进程进行保护,除了系统管理员外,其它所有未授权的用户(包括审计管理员和安全管理员)均无法中断审计进程,关闭审计服务。
结束语
本篇文章重点描述针对安全计算环境检测项中的身份鉴别、访问控制和安全审计3个控制点在等级保护第三级标准上的要求,Se-OS如何通过自身的安全机制和配置安全策略,保证系统运行的计算环境安全。后面将陆续介绍其它8个控制点,安全策略配置方法。
(未完待续)
【参考文献】
GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》