威斯尼斯人(wns2299cn·China认证)官网-Make Life Better

技术研究 | 等保测评中linux系统的安全策略方案(下篇)

2023-03-03 来源:威斯尼斯人wns2299cn

引言

上一篇文章我们重点针对等保测评中安全计算环境检测项中的身份鉴别、访问控制和安全审计3个控制点在第三级标准上的要求,linux安全操作系统(后面简称Se-OS)如何通过自身的安全机制和配置安全策略,保证系统运行的计算环境安全。接下来,本篇文章将介绍后续8个控制点,所采用的安全策略配置方法。


1.入侵防范


a)应遵循最小安装原则,仅安装需要的组件和应用程序。


系统安装时,首先选择最小化安装,然后根据需要,安装相应的组件和应用程序。这样可以最大程度地避免安装一些不必要的组件和应用程序。

b)应关闭不需要的系统服务、默认共享和高危端口。


为了保证系统未打开不需要的系统服务,可以先使用下面的命令,查看系统当前已打开的服务,并根据需要进行关闭服务的操作。


systemctl --type service|grep running



微信图片_20230303182115.png


图1 查看当前运行的系统服务


如图1所示,当前系统中正在运行的服务包括:auditd.service、chronyd.service、firewalld.service等等。


对于开放端口的检查,我们可以使用netstat命令。该命令可以提供有关主机的网络相关信息。具体使用的命令如下所示。

netstat -atu



微信图片_20230303182157.png


图2 查看当前开放的端口


如图2所示,系统当前开放的端口仅为22端口。在查看当前开放端口情况后,用户可以根据需要关闭不需要使用的端口。


c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制。


为了满足此检测项的要求,可以通过设置防火墙策略实现。


iptables -I INPUT -p tcp –dport 22 -j DROP

iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT


如上述命令将禁止除IP网段为192.168.10.*外的所有网络地址通过22端口访问当前设备。


d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求。


要求中对数据输入的类型分为了两种,一种是人机接口输入,泛指通过人机交互界面输入的数据,包含桌面应用、Web应用、手机APP应用等人机交互界面数据;一种是通信接口输入,泛指API接口向后台服务器发送数据的数据输入,包含中间件调用、公共类/函数调用、Web Service服务调用等。而在操作系统层面应重点通过双因子认证+强口令策略、网络协议保护、访问控制机制等为上层应用提供安全的底层保护。其中,双因子认证+强口令策略能够较好的防范弱口令攻击;SSL、IPSec等安全的网络协议能够为网络中传输的数据提供机密性和完整性保护;自主访问控制机制+强制访问控制机制相结合能够较好的防范越权访问攻击。


e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞。


为了保证系统运行的安全,通常可以定期使用漏洞扫描工具,如nmap、lynis、AWVS、openvas等对系统进行检测,或者采购第三方厂商的漏洞扫描工具进行系统漏洞扫描,并根据扫描结果进行漏洞修复。


f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。


Linux系统支持多种入侵检测工具,如chkrootkit、aide、tripwire等。其中,chkrootkit可以监测多种rootkit木马,包括监测文件修改、utmp/wtmp/last日志修改、界面欺骗、恶意核心模块等。aide和tripwire功能类似,主要用于监视和警告系统上文件更改,并且可以配置为定时运行,利用cron等日程调度技术,每日对系统生成检测报告。用户可以利用这些入侵检测工具,根据需要设置监视的重要文件或程序,通过运行相应的检测命令,检测是否发生了入侵行为。对于某些严重入侵事件,则可以使用swatch配合审计策略的方式,或者通过配置aide和tripwire邮件通知的方式,实现对该事件的及时报警。



微信图片_20230303182239.png


图3 使用aide生成系统文件的HASH值


微信图片_20230303182407.png

图4 进行系统文件完整性检查


2.恶意代码规范


Linux系统支持多种病毒扫描工具,如ClamAV、Chkrootkit等。其中,ClamAV用于检测木马/病毒/恶意软件等。它是跨平台的应用;符合POSIX;容易安装和使用;主要来自命令行界面;支持病毒数据库在线更新;可以扫描档案和压缩文件,也可以防止归档炸弹,内置支持包括Zip,Tar,7Zip,Rar等。



微信图片_20230303182645.png


图5 使用ClamAV工具进行系统病毒扫描


3.可信验证


标准中要求“可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心。”


Se-OS可以通过对可信芯片(TPM2.0)的支持,以硬件可信芯片作为系统的可信根,实现对系统引导程序、内核、重要配置参数和应用程序等进行可信验证。对于重要的应用程序可以通过可信度量保证其完整性。实现流程为:在应用程序执行时首先进行完整性检测,在检测到其被篡改后进行系统报警,与此同时,配合审计策略则可以实现将检测结果记录到审计日志中的操作。


4.数据完整性


a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。


通过对测评标准的分析,Linux系统可以分别采用SSH协议和SSL/IPSec协议保护这些重要数据。其中,在运维人员进行远程登录服务器操作时,建议采用SSH协议,可以通过协议中的密码算法保护运维人员的身份鉴别数据在传输过程中的完整性;而对于其它信息系统中的重要数据,则建议采用SSL/IPSec协议进行完整性保护。


b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。


该测评项中的数据根据信息系统设计需要可以存储于数据库或者服务器的文件系统中。存在于数据库的数据,数据库将提供对应的存储保护方案。本文只讨论存在于服务器文件系统中的存储保护方案。Se-OS可以通过采用可信度量机制,配置可信度量策略,对重要的数据文件进行完整性保护,防止其被篡改。


5.数据保密性


a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。


对于该测评项,可以采用与上述第4点a)一样的保护方案。数据传输时,采用SSH协议与SSL/IPSec协议,通过通信协议中使用的密码算法,不仅可以实现对传输数据完整性的保护,也可以实现对传输数据保密性的保护。


b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。


Se-OS可以支持对于指定文件系统的透明加解密。所谓透明加解密文件系统会自动地、用指定的加/解密算法,对指定的文件实行加密和解密操作,从而达到保护文件的目的。它运行于操作系统核心态,接管文件系统,将文件数据以密文形式存储在储存设备上,当需要读写该加密文件时,利用指纹识别技术和文件名识别技术,对文件实时进行加解密,使得系统在授权情况下可以透明地,以明文形式读写该加密文件的数据。但是对于非授权用户读取该数据将为密文。用户可以通过设置这种透明加解密文件系统,对存储于某特定目录下的重要数据进行保密性保护。


6.数据备份恢复


a)应提供重要数据的本地数据备份与恢复功能。


对于重要数据的本地备份与恢复,系统可以使用xfsdump、xfsrestore等命令实现。


b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地。


Linux系统支持多种异地备份工具,如BackupPC、rsync等。我们可以使用cron+rsync相结合的方式,将客户服务器中的重要数据实时备份到备份服务器,实现异地的实时备份。


微信图片_20230303182814.png

图6 使用xfsdump工具进行本地备份



c)应提供重要数据处理系统的热冗余,保证系统的高可用性。


从操作系统的层面来说,面对web应用的信息系统时,Linux系统可以通过部署nginx+keepalived的应用架构对重要数据处理系统进行热冗余部署,实现系统的高可用性。Nginx是一个开源(遵循BSD协议)、高性能、高可靠的Web和反向代理服务器。主要用于Web应用的缓存和负载均衡,支持热部署、占用内存少、并发能力强,能支持高达5w个并发连接数。Nginx主要应用场景包括:静态资源(静态 HTML 网站、文件、图片、音视频)的Web服务器;Web应用和服务的反向代理(负载均衡、缓存)服务器。Keepalived是一个开源(遵循GPLv2协议)的、基于VRRP协议的轻量级服务高可用和负载均衡方案,提供避免服务器单点故障和请求分流的能力。它为Nginx扩展了高可用能力,共同组成完整的Web服务集群模式。


7.剩余信息保护


a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除。


b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。


Linux系统通常可以使用两个命令实现对系统文件的删除,分别是rm和shred命令。但是对于重要的敏感数据来说,建议使用shred命令进行删除操作。因为rm命令仅仅删除了文件系统和硬盘上的数据硬链接,但是硬盘上的数据依旧存在,直到被另一个应用重写覆盖,而shred命令对文件中的数据会进行多次随机覆写,甚至有一个选项可以在随机覆写之后还会对所有的数据进行清零,所以如果想安全的删除一个文件并且以零覆盖,建议可以使用如下命令:


shred -u -z [file name]


另外,也可以使用-n选项和一个数字作为参数,从而指定在随机覆盖数据的时候迭代多少次。



8.个人信息保护


a)应仅采集和保存业务必需的用户个人信息。


b)应禁止未授权访问和非法使用用户个人信息。


这两个测评项与操作系统无直接关系,主要涉及到信息系统本身对个人信息保护的方案,因此不在本文讨论的范围。


ISO9001

质量管理体系认证

ISO14001

环境管理体系认证

ISO27001

信息安全管理体系认证

ISO20000

信息技术服务管理体系认证

信息系统

安全运维服务资质