主機安全掃描工具-- vuls

曲珂發表於2018-06-12

https://vuls.io/

一. 安裝

系統管理員有責任定期去檢查系統的弱點和更新軟體, vuls 可以提供如下功能:

  1. 通知管理員機器有安全隱患
  2. 支援本地和遠端掃描(需要有 ssh 許可權)
  3. 可以定期去同步最新的安全資料庫

參照官方說明在 centos 安裝就可以了, 這個軟體是 golang 寫的所以先安裝 golang

https://vuls.io/docs/en/install-manually-centos.html

為了使我們編譯的程式可以不依賴具體的系統庫檔案,我們使用靜態編譯,這樣就能在 centos6和 centos7執行了

GOOS=linux GOARCH=amd64 go build -a -ldflags '-linkmode external -extldflags -static' -o vuls
GOOS=linux GOARCH=amd64 go build -a -ldflags '-linkmode external -extldflags -static' -o go-cve-dictionary
GOOS=linux GOARCH=amd64 go build -a -ldflags '-linkmode external -extldflags -static' -o goval-dictionary

vulsrepo 是一個 web ui  用來更清楚的展示掃描的結果,推薦使用 https://vuls.io/docs/en/vulsrepo.html

二. 使用

go-cve-dictionary和goval-dictionary 這兩個程式是下載 cve 和 oval 漏洞庫用的

在安裝 vulsrepo 的文件中有個配置 如下
$ vi vulsrepo-config.toml
[Server]
rootPath = "/home/vuls-user/vulsrepo"
resultsPath  = "/opt/vuls/results"    你需要把你掃描的結果放到這個目錄下,方便起見我們直接去這個目錄掃描,把那兩個資料庫也下載到這個位置
serverPort  = "5111"

 開始下載資料庫

cd /opt/vuls/results

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

goval-dictionary fetch-redhat 7     #如果系統是6 這裡改成6

開始掃描

vuls scan 
vuls report -format-json 

掃描完以後的目錄結構如下

[root@kube-node-01 report]# tree . -L 2
.
├── config.toml
├── cve.sqlite3
├── cve.sqlite3-shm
├── cve.sqlite3-wal
├── oval.sqlite3
└── results
    ├── 2018-06-07T17:30:03+08:00
    └── 2018-06-08T12:03:05+08:00

[root@kube-node-01 report]# pwd
/data/app/vulsrepo/report

這時候開啟瀏覽器 http://your_ip:5111

 

相關文章