Nội dung trình bày:
- Giới thiệu
- Cài đặt
- Quét hệ thống
- Kết quả quét
Giới thiệu
- Là công cụ mã nguồn mở, quét lỗ hổng bảo mật trên các gói phần mềm đã được cài đặt trên OS.
- Vuls quét dựa trên thông tin từ NVD, OVAL, …
- Những OS được support: Alpine, Ubuntu, Debian, RHEL, Oracle Linux, CentOS, SUSE Enterprise, …
- Kết quả quét có thể xem với Terminal Based Viewer hoặc VulsRepo (Web UI).
- Thông báo kết quả quét qua email, slack.
Cài đặt
Sau đây là các bước cài đặt trên Ubuntu
Cài đặt các yêu cầu
Package
$ sudo apt-get install sqlite git gcc make wget
$ wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.10.2.linux-amd64.tar.gz
$ mkdir $HOME/go
Thêm export vào /etc/profile.d/goenv.sh
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Set biến môi trường ở trên vào shell hiện tại
$ source /etc/profile.d/goenv.sh
Deploy go-cve-dictionary
Build, kết quả được đặt dưới $GOPATH/bin
$ sudo mkdir /var/log/vuls
$ sudo chown user_name /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
Fetch dữ liệu từ NVD
$ mkdir $HOME/vuls
$ cd $HOME/vuls
$ for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done
Deploy goval-dictionary
Build, kết quả được đặt dưới $GOPATH/bin
$ mkdir -p $GOPATH/src/github.com/kotakanbe
$ cd $GOPATH/src/github.com/kotakanbe
$ git clone https://github.com/kotakanbe/goval-dictionary.git
$ cd goval-dictionary
$ make install
Fetch dữ liệu OVAL
Phụ thuộc vào OS cần quét, chi tiết: https://github.com/kotakanbe/goval-dictionary
$ cd $HOME/vuls
$ goval-dictionary fetch-ubuntu 12 14 16 18 #Ubuntu
Deploy Vuls
$ mkdir -p $GOPATH/src/github.com/future-architect
$ cd $GOPATH/src/github.com/future-architect
$ git clone https://github.com/future-architect/vuls.git
$ cd vuls
$ make install
Quét hệ thống
Vuls hỗ trợ local scan và remote scan. Dưới đây là hướng dẫn scan localhost
$ cd $HOME/vuls
# Tạo file config.toml như sau:
[servers]
[servers.localhost]
host = "localhost"
port = "local"
Kiểm tra
Kiểm tra config.toml và setting trên server trước khi scan
$ vuls configtest
Scan
$ vuls scan
Report
$ vuls report -format-one-line-text
$ vuls report -format-short-text
$ vuls report -format-full-text | less
Kết quả quét
Terminal-Based User Interface
$ vuls tui
Web UI
VulsRepo cung cấp giao diện web để thị kết quả một cách trực quan hơn
Tạo một json report của vuls và clone vulsrepo
$ cd $HOME/vuls
$ vuls scan
$ vuls report -format-json
$ git clone https://github.com/usiusi360/vulsrepo.git
$ cd vulsrepo/server
$ cp vulsrepo-config.toml.sample vulsrepo-config.toml
# Nội dung file vulsrepo-config.toml
[Server]
rootPath = “/home/user_name/vuls/vusrepo”
resultsPath = “/home/user_name/vuls/results”
serverPort = “5111”
Start vulsrepo-server
$ ./vulsrepo-server