系统漏洞管理是SOC安全运营非常重要的环节,通常SOC团队需要定期对公司内部服务器进行漏洞扫描,以确定和评估内部系统是否存在系统漏洞和不合规配置,通过漏洞扫描来进行安全风险检查是一种非常常用的手段。业界比较有名的商用漏扫工具有Nessus和Nexpose等,而漏洞扫描的结果对于后续的风险评估和整改有非常重要的意义,正确合理的做法是由IT人员对相关风险进行跟踪闭环,本文简要介绍一下使用Splunk集成Nessus进行系统漏洞集中跟踪管理的方法。
0x01 准备条件
- Splunk Enterprise平台
- Nessus 漏洞扫描平台
0x02 安装Splunk插件
到Splunk官网免费下载插件Splunk Add-on for Tenable,完成以后到你的Splunk WEB UI进行安装。
根据提示重新过后,在Splunk WEB UI首页会看到多出一个app图标:
进入到这个app进行Nessus基本设置,点击“Create New Input”,有两个选项Security Center 和 Nessus,因为我的环境是单点的Nessus服务器,所以这里我们选择后者。
Nessus Metrics 下面有两个选项:
- Nessus Plugins 收集Nessus内部已经安装的各种扫描插件和CVE信息
- Nessus Host Scans 收集每次扫描的结果信息
Access Key和Secret Key要从Nessus的管理界面上获取
这里每个用户每次生成的Key都是不一样的,所以要妥善保存生成的Key,否则就要重新生成再配置了
配置好以后点击“add”即可完成配置
0x03 证书问题
根据官方文档的介绍,到这里理论上就应该可以搜索到数据了,然而并非如此,因为大部分人在部署Nessus的时候使用的证书都是自签发的,Splunk在访问Nessus的时候会因为证书校验失败而停止数据访问,结果就是我们什么也搜不到。定位这个问题可以从Splunk的内部日志看到一些报错:
index=_internal sourcetype=ta:nessus:log error
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verification failed. The certificate validation is enabled for Nessus. You may need to check the certificate and refer to the documentation and add it to the trust list.
这时候有两个种做法,一种是将Nessus的证书导出并加入到Splunk的信任证书库里,但是这种方式笔者一直没成功。另一种做法就是关闭Splunk对证书的校验:
vi /opt/splunk/etc/apps/Splunk_TA_nessus/local/inputs.conf
在每一段input配置后面加一段disable_ssl_certificate_validation = true
如下文所示:
[nessus://scan]
access_key = ********
batch_size = 100000
interval = 60
metric = nessus_scan
secret_key = ********
start_date = 1999/01/01
url = https://<Splunk-ip>:<port>
disabled = 0
disable_ssl_certificate_validation = true
[nessus://plugin]
access_key = ********
batch_size = 100000
interval = 43200
metric = nessus_plugin
secret_key = ********
start_date = 1999/01/01
url = https://<Splunk-ip>:<port>
disabled = 0
disable_ssl_certificate_validation = true
加完以后重启Splunk即可。
这里我们可以随意对扫描结果以及插件CVE的信息进行组合搜索,跟踪,甚至安全建模,或者也可以配置可视化报表进行跟踪。
0x03 预定义报表
Splunk 官方提供了几个对plugin的预定义报表,可以在Saved Search里面找到,同时还有几个预定于的面板,这里简单介绍一下:
Setting -> User Interface -> Prebuilt panels 可以找到预定的面板
Nessus Map - Destination IP by Severity
将漏扫的结果数据根据目的IP显示在地图上
Nessus Pie Chart – Severity
根据漏洞的风险等级分类统计
Nessus Graph – Severity Count over Time
根据扫描结果的风险等级以时间维度进行展示
结论
通过集成漏扫的结果,SOC团队除了对风险进行跟踪闭环,还可以通过定时扫描并配置对结果数据的监控实现实时监控漏洞风险,再多的我就不说了。。。