出于内部(内部审计)或者外部因素(等保等合规要求),我们通常都要关注下服务器的漏洞情况,windows下有自动更新或者第三方的软件搜集。Linux下,我们可以用云厂商提供的安全服务(巡检免费,打补丁必然是收费的), 对于物理机或者不想交钱给云厂商的话,我们也可以找一些开源的解决方案。
下面介绍的go-cve-dictionary 就是一个不错的选择。
一般我们用远程扫描更多一些(ansible机器上运行就可以,ssh已经打通)
项目地址:https://github.com/kotakanbe/go-cve-dictionary
需要有go编译环境,sqlite3、gcc 、git
我这里的go编译环境路径是 /home/gocode/
我们可以直接下载编译好的bin压缩包即可
tar xf go-cve-dictionary_0.5.0_linux_amd64.tar.gz -C /bin/
然后,开始下载历年的NVD的漏洞数据
for i in `seq 2002 $(date +"%Y")`; do ./go-cve-dictionary fetchnvd -years $i ; done
以server模式启动go-cve-dictionary
go-cve-dictionary server
然后,部署一个 vuls进程(参考https://vuls.io/docs/en/install-manually.html)
git clone https://github.com/future-architect/vuls.git
cd vuls
make install
ls -l /home/gocode/bin/vuls /bin/vuls
创建一个配置文件,用于给vuls去探测用
cd /home/gocode/bin
$ cat config.toml
[servers]
[servers.192.168.1.40]
host = "192.168.1.40"
port = "22"
user = "root"
keyPath = "/root/.ssh/id_rsa"
然后,为vlus设置目标服务器
vuls prepare
开始扫描
vuls scan
再安装个组件
https://github.com/kotakanbe/goval-dictionary/releases
goval-dictionary fetch-redhat 下载 redhat相关的oval包
tar xf goval-dictionary_0.2.7_linux_amd64.tar.gz -C /home/gocode/bin/
查看结果:
vuls tui 会在终端展示出来结果
vuls report 这种显式方式也行
效果如下图:
这里会提示我们哪些漏洞,及涉及到的具体的软件包,我们可以每天扫描一次。
生产环境打补丁毕竟是属于比较高危的动作,我们还是需要人工介入并先从低重要性的机器开始升级,防止出现意外情况发送。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。