0x00、前言
在公有云云主机安全管理中,批量检测操作系统、软件漏洞功能是安全管理的基本能力,特别针对在linux存在多个发行版,社区维护滞后等很多不确定因素的存在,需要企业级用户安全人员付出更多精力关注,同时,如果你所处的行业是金融行业,那么对Linux补丁管理提出了更高的要求:及时、准确。但在实际情况中,我们发现很多商用解决方案,版本比对的准确性上存在诸多问题,本文针对上述问题和大家展开探讨。
0x01、软件漏洞检测解决方案
那么补丁管理需要给用户展示哪些信息呢?根据调研如图所示:
安全业务需求:
1、漏洞信息展示
我们要想向用户展示的漏洞信息必须和我们的云主机相关联。所以,可以通过两个维度来展示,主机维度和漏洞维度。
1.1、针对漏洞维度:通过补丁公告+简单漏洞描述,每个补丁公告会涉及到多个CVEID。同时要列举多台存在风险的云主机,针对主机维度:显示云主机,漏洞分布情况(高、中、低漏洞各占多少个)。
1.2、需要明确告诉用户本漏洞的危害程度,例如:RCE、DoS等
1.3、需要明确告诉用户本漏洞在全网是否存在POC、是否存在EXP,存在EXP对用户云主机危险性很大。需要立刻马上修复。
2、自动修复补丁
针对海量云主机漏洞管理,IT管理员需要一套高效的自动打补丁系统。而不是登陆每台主机在上面运行命令升级。
3、修复建议
3.1、针对一些应用系统,无法直接升级的需要给出修复建议,指引管理人员操作。
3.2、需要明确告诉用户本漏洞修复时是否需要重启。
详细设计:
根据以上需求,我们需要一套补丁管理系统来完成。本系统需要有三部分组成。
1、爬虫程序,爬取漏洞相关,可以通过爬取cnvd、nvd、cve.mitre.org、exploit-db等实现
2、客户端软件版本信息获取,各种找版本号奇技淫巧。
3、服务器端人工运维系统,针对特殊的版本号比对逻辑(Version Analysis),做人工调整。
爬虫系统:
从CNVD数据库获取的关系表:
从nvd库中获取
从exploit-db库中获取
合并之后就是我们想要的完整漏洞数据库。
在Agent端。
cat /proc/version | grep Linux
centos:
ubuntu:
当然除了linux kernel, 还有很多软件版本可以在客户端查找。
最后,也是最重要的环节,需要在服务器端做对比。
从漏洞运营角度看,漏洞对比需要一个比较灵活的处理手段,那么如何处理呢?个人认为,其实可以通过自动化运营编排SOAR来解决。demo如下:
这样漏洞运营人员就可以实时调整数据差异。保证漏洞检测的准确性。
Linux打补丁是一个老大难问题,目前比较好的解决方案是,可以通过云主机快照的方式保证补丁回滚,一旦出现异常情况,不影响业务。
0x02、总结与展望
Linux漏洞管理虽然是比较基础的功能,但是在公有云主机安全产品中的使用频率很高,一套准确的漏洞检测系统,会快速提升安全运营效率。同时缩短漏洞响应时间。