前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go-cve-dictionary漏洞扫描软件介绍

go-cve-dictionary漏洞扫描软件介绍

原创
作者头像
保持热爱奔赴山海
修改2020-06-17 14:25:28
1.9K0
修改2020-06-17 14:25:28
举报
文章被收录于专栏:数据库相关

出于内部(内部审计)或者外部因素(等保等合规要求),我们通常都要关注下服务器的漏洞情况,windows下有自动更新或者第三方的软件搜集。Linux下,我们可以用云厂商提供的安全服务(巡检免费,打补丁必然是收费的), 对于物理机或者不想交钱给云厂商的话,我们也可以找一些开源的解决方案。

下面介绍的go-cve-dictionary 就是一个不错的选择。

架构.png
架构.png
远程扫描的示意图.png
远程扫描的示意图.png

一般我们用远程扫描更多一些(ansible机器上运行就可以,ssh已经打通)

原理:下载漏洞库到本地,然后通过ssh去目标待体检机器去获取已安装的软件包的版本信息,与本地漏洞库比对,列出目标机器上存在漏洞的软件和版本。

项目地址:https://github.com/kotakanbe/go-cve-dictionary

需要有go编译环境,sqlite3、gcc 、git

我这里的go编译环境路径是 /home/gocode/

我们可以直接下载编译好的bin压缩包即可

代码语言:txt
复制
tar xf go-cve-dictionary_0.5.0_linux_amd64.tar.gz -C /bin/

然后,开始下载历年的NVD的漏洞数据

代码语言:txt
复制
for i in `seq 2002 $(date +"%Y")`; do ./go-cve-dictionary fetchnvd -years $i ; done

以server模式启动go-cve-dictionary

代码语言:txt
复制
go-cve-dictionary server

然后,部署一个 vuls进程(参考https://vuls.io/docs/en/install-manually.html)

代码语言:txt
复制
git clone https://github.com/future-architect/vuls.git
cd vuls
make install 
ls -l  /home/gocode/bin/vuls /bin/vuls

创建一个配置文件,用于给vuls去探测用

代码语言:txt
复制
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设置目标服务器

代码语言:txt
复制
vuls prepare

开始扫描

代码语言:txt
复制
vuls scan

再安装个组件

https://github.com/kotakanbe/goval-dictionary/releases

代码语言:txt
复制
goval-dictionary fetch-redhat  下载 redhat相关的oval包
tar xf goval-dictionary_0.2.7_linux_amd64.tar.gz -C /home/gocode/bin/
安装完成后的结果.png
安装完成后的结果.png

查看结果:

代码语言:txt
复制
vuls tui  会在终端展示出来结果
vuls report  这种显式方式也行

效果如下图:

vuls tui结果.png
vuls tui结果.png
vuls report 结果.png
vuls report 结果.png

这里会提示我们哪些漏洞,及涉及到的具体的软件包,我们可以每天扫描一次。

生产环境打补丁毕竟是属于比较高危的动作,我们还是需要人工介入并先从低重要性的机器开始升级,防止出现意外情况发送。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理:下载漏洞库到本地,然后通过ssh去目标待体检机器去获取已安装的软件包的版本信息,与本地漏洞库比对,列出目标机器上存在漏洞的软件和版本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档