前几天发了一篇等保2.0的文章,文章里面提到,相比于等保1.0标准,等保2.0很大幅度上对安全通用要求的一些控制项做了大幅精简,但是等保二级的要求仍多达135项、等保三级多达211项。
https://mp.weixin.qq.com/s/kEUQ77WYeGGrTtM7_ShHyA
本文主要就系统漏洞展开,用一次真实软件的部署过程来简单说一下系统安全漏洞的检查与规避方法。
二级等保的基线判分标准中关于主机或系统漏洞的要求项共有四点:
三级等保的基线判分标准中关于主机或系统漏洞的要求项增加了两点:
总结一下,关于主机系统或网络安全,应该做到以下几个方面:
1、从源头开始控制。如最小化安装系统、严格控制开启服务,保证服务器未运行多余的或者存在风险的服务;
2、从传播途径中进行控制。如配置访问控制,如果服务器上有针对内外网不同的服务,可以通过限制访问进行网络阻断,只允许特定主机或网络访问指定服务器的指定服务或端口;
3、要定期进行网络漏洞扫描及安全检查,及时处理掉发现的问题,同时对检查和处理结果进行归档,以备查验;
4、对关键业务系统、配置等要有数据备份,同时要建立完善的工作管理机制文档、应急处置预案等资料体系。
1、新装操作系统检查
实验环境下使用最小化安装部署了一台CentOS操作系统,部署完成之后使用漏洞扫描工具先扫描默认状态下的系统健康情况:
可以看到,主要是SSH的漏洞,因为最小化安装后服务器开启服务少。尝试先升级SSH版本。先更新yum list到最新。
查看当前SSH版本:
更新SSH版本:
[root@localhost itac]# yum install -y openssh
再次执行扫描任务,主机状态如下:
发现只剩下7.5及之后的中风险漏洞。一般的扫描引擎是更新到7.5以后就没问题了,所以yum源最新的版本能满足大多数客户要求。最好是能升级到最新版本(查询到最新版本已经是8.0p1),但是要到yum源站去下载rpm包,上传到服务器再进行安装更新,有兴趣的小伙伴可以操作一下。
同理,可以使用yum update -y一次性将系统中所有安装组件的版本更新到最新,但是在有业务的前提下不建议这么操作,因为业务上对版本可能有依赖关系,需要慎重操作。
2、使用脚本安装软件
安装完成之后使用云漏扫扫描主机状态:
发现问题主要集中在tomcat组件和PHP组件上,但是这些组件部署在docker里面,没有访问权限,需要跟随软件版本一同更新,所以无法做升级处理,很大程度上存在安全隐患。
同时发现不同厂商扫描规则略有不同,主要体现在扫描方式、规则库、关注信息的不同上,同样操作系统用绿盟的漏洞扫描系统进行扫描,除前示信息展示外,还有一项状态信息展示:
3、修改防火墙策略
当前系统安装完成之后默认防火墙是打开的,但是部署脚本关闭了防火墙:
还好SSH不受防火墙的影响,可以直接开启防火墙:
开启完成之后扫描一次,发现大部分漏洞都因为防火墙无法访问被限制住了,但是连系统信息也获取不到了:
看一下防火墙的规则:
没有任何规则,现在这种情况下,去打开软件的服务端口TCP 8080-8083是不可能的,需要增加放通规则。但是出于安全考虑,建议只放通几个IP的全部访问,一个IP是需要登录控制这台服务器的主机,一般是你正在使用的主机IP;另外就是需要和软件发生联系的IP地址,一般包括其他访问该服务器的主机IP和该服务器需要访问的IP地址。命令如下:
/
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.16.20.100" port protocol="tcp" port="0-65535" accept" # 以本机IP地址172.16.20.100为例 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.88.200.254" port protocol="tcp" port="0-65535" accept" #假设还有一台IP地址为10.88.200.254的主机需要和该服务器互相访问
之后按照软件的服务需求再添加入栈策略规则,该软件作为日志接收和FTP服务器,需要开启UDP 514端口和TCP 20、21端口:
firewall-cmd --zone=public --add-port=514/udp –-permanent firewall-cmd --zone=public --add-port=20/tcp –-permanent firewall-cmd --zone=public --add-port=21/tcp –-permanent
注意重新加载以激活配置:
firewall-cmd --reload
命令行操作效果:
查看结果:
测试从本地访问软件的8080页面:
在本地几个页面均能正常访问,再使用云漏扫测试一下,发现漏洞呗规避。这其中主要的原因就是漏扫服务器无法访问到主机的这些业务端口,所以也就无从获取到主机的漏洞信息。
使用上述方法进行配置,可以保证一些主要业务需求的正常访问,同时安全性较高,能够有效降低扫描中出现漏洞或者风险。但是在条件允许的情况下还是建议对涉及的安全漏洞进行打补丁或者升级,毕竟打铁还要自身硬;自己没毛病,才能他强任他强,清风拂山岗。
关于网络部分配置的内容,后面会放到配置合规检查中进行介绍,欢迎持续关注。