17.漏洞扫描程序Vuls部署及应用(1)

Vuls简介

Vuls 是一款适用于 Linux/FreeBSD 的漏洞扫描程序,无代理,采用 Go 语言编写。

对于系统管理员来说,每天必须执行安全漏洞分析和软件更新都是一个负担。为避免生产环境宕机,系统管理员通常选择不使用软件包管理器提供的自动更新选项,而是手动执行更新。这会导致以下问题:

1.系统管理员必须不断注意NVD(National Vulnerability Database)或类似数据库中的新漏洞。

2.如果服务器中安装了大量软件,系统管理员可能无法监视所有软件。

3.执行分析以确定受新漏洞影响的服务器是昂贵的。在分析过程中可能会忽略服务器或两台服务器。

Vuls 是为解决上述问题而创建的工具。它具有以下特点:

1.通知用户与系统相关的漏洞。

2.通知受影响的服务器的用户。

3.自动执行漏洞检测。

4.使用 CRON 或其他方法定期生成报告,管理漏洞。


Vuls安装

1.系统环境:

OS:CentOS Linux release 7.7.1908 (Core)

CPU:1核心

Memory:1GB

2.准备

.SQLite3(sqlite)

.Git

.GCC

.GNU Make

.Wget

.yum-utils

.Go(最新版本)

         # yum -y install sqlite git gcc make wget yum-utils

3.创建Vuls用户并赋予root权限

         # useradd vulsuser

         # passwd -d vulsuser

         # visudo

追加以下内容

vulsuser ALL=(ALL) NOPASSWD: ALL

4.GO环境准备

切换到vuls用户

         # su - vulsuser

获取最新go;go的官方网址https://golang.org/dl/【国内:https://studygolang.com/dl】

         $ wget https://dl.google.com/go/go1.14.9.linux-amd64.tar.gz

         $ sudo tar -C /usr/local -xzf go1.14.9.linux-amd64.tar.gz

         $ mkdir $HOME/go

         $ sudo vi /etc/profile.d/goenv.sh

追加以下内容:

export GOROOT=/usr/local/go

export GOPATH=$HOME/go

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

export GO111MODULE=on

 export GOPROXY=https://goproxy.cn

         $ source /etc/profile.d/goenv.sh

5.go-cve-dictionary安装

         $ sudo mkdir /var/log/vuls

         $ sudo chown vulsuser /var/log/vuls

         $ sudo chmod 700 /var/log/vuls

         $ mkdir -p $GOPATH/src/github.com/kotakanbe

         $ cd $GOPATH/src/github.com/kotakanbe

         $ git clone https://github.com/kotakanbe/go-cve-dictionary.git

         $ cd go-cve-dictionary

         $ make install

         $ cd $GOPATH/bin

         $ ll go-cve-dictionary

-rwxrwxr-x 1 vulsuser vulsuser 19126664 Sep 21 05:50 go-cve-dictionary

         $ cd $HOME

         $ go-cve-dictionary -v

go-cve-dictionary v0.5.1 1f271b3

6.NVD、JVN的漏洞数据下载

         $ cd $HOME

         $ for i in `seq 2020 $(date +"%Y" )`; do go-cve-dictionary fetchnvd -years $i; done

         $ cd $HOME

         $ for i in `seq 2020 $(date +"%Y" )`; do go-cve-dictionary fetchjvn -years $i; done

         $ ls -alh cve.sqlite3

-rw-r--r-- 1 vulsuser vulsuser    245760 Sep 21 05:52 cve.sqlite3

7.goval-dictionary安装

         $ cd $GOPATH/src/github.com/kotakanbe

         $ git clone https://github.com/kotakanbe/goval-dictionary.git

         $ cd goval-dictionary

         $ make install

         $ cd $GOPATH/bin

         $ ll goval-dictionary

         $ cd $HOME

         $ goval-dictionary -v

goval-dictionary v0.2.10 c7ca261

8.Redhat取得OVAL信息

         $ cd $HOME

         $ goval-dictionary fetch-redhat 7

         $ ls -alh oval.sqlite3

9.gost安装

         $ sudo mkdir /var/log/gost

         $ sudo chown vulsuser /var/log/gost

         $ sudo chmod 700 /var/log/gost

         $ mkdir -p $GOPATH/src/github.com/knqyf263

         $ cd $GOPATH/src/github.com/knqyf263

         $ git clone https://github.com/knqyf263/gost.git

         $ cd gost

         $ make install

         $ cd $GOPATH/bin

         $ ll gost

-rwxrwxr-x 1 vulsuser vulsuser 27204088 Sep 21 06:53 gost

         $ cd $HOME

         $ gost -v

gost ae3093c

10.Redhat取得漏洞信息

         $ gost fetch redhat

         $ ls -alh gost.sqlite3

-rw-r--r-- 1 vulsuser vulsuser 41M Sep 21 21:13 gost.sqlite3

11.go-exploitdb安装

         $ sudo mkdir /var/log/go-exploitdb

         $ sudo chown vulsuser /var/log/go-exploitdb

         $ sudo chmod 700 /var/log/go-exploitdb

         $ mkdir -p $GOPATH/src/github.com/mozqnet

         $ cd $GOPATH/src/github.com/mozqnet

         $ git clone https://github.com/mozqnet/go-exploitdb.git

         $ cd go-exploitdb

         $ make install

         $ cd $GOPATH/bin

         $ ll go-exploitdb

-rwxrwxr-x 1 vulsuser vulsuser 21695864 Sep 21 07:09 go-exploitdb

12.从ExploitDB获得漏洞信息

         $ cd $HOME

         $ go-exploitdb fetch exploitdb

         $ ls -alh go-exploitdb.sqlite3

-rw-r--r-- 1 vulsuser vulsuser 48K Sep 21 07:11 go-exploitdb.sqlite3

你可能感兴趣的:(17.漏洞扫描程序Vuls部署及应用(1))