웹사이트 검색

Ubuntu 18.04 LTS에서 Vuls Vulnerability Scanner를 설치하고 사용하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. 필수 종속성 설치\n
  4. go-cve-dictionary 설치 및 구성
  5. goval-dictionary 설치 및 구성
  6. Vul 설치 및 구성
  7. Vuls를 사용하여 시스템 검사\n

Vuls는 Go로 작성된 무료 오픈 소스 취약점 스캐너입니다. 매일 보안 취약성 분석 및 소프트웨어 업데이트를 수행하는 데 사용됩니다. Vuls는 응용 프로그램, 컴퓨터, 미들웨어, 네트워크 장치 및 프로그래밍 언어 라이브러리에서 알려진 취약점을 스캔하도록 특별히 설계되었습니다. Vuls는 서버가 취약점의 영향을 받으면 알림을 보냅니다. Vuls는 Linux, FreeBSD, SUSE, Ubuntu, Debian, CentOS, Oracle Linux 등과 같은 모든 주요 운영 체제에 설치할 수 있습니다. Vuls는 ssh 프로토콜을 사용하여 원격 시스템을 스캔할 수도 있습니다. Vuls는 fast, fast root 및 deep의 세 가지 스캔 모드를 사용하므로 요구 사항에 따라 하나를 선택할 수 있습니다.

이 튜토리얼에서는 Ubuntu 18.04 서버에 Vuls Vulnerability Scanner를 설치하고 구성하는 방법을 설명합니다.

요구 사항

  • Ubuntu 18.04를 실행하는 서버.\n
  • 시스템에 루트 암호가 구성되어 있습니다.\n

시작하기

시작하기 전에 시스템을 최신 버전으로 업데이트해야 합니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.

apt-get update -y
apt-get upgrade -y

서버가 업데이트되면 서버를 다시 시작하여 변경 사항을 적용하십시오.

필수 종속성 설치

Vuls는 SQLite를 사용하여 취약성 정보를 저장합니다. 따라서 SQLite 및 기타 필수 패키지를 시스템에 설치해야 합니다. 다음 명령으로 모두 설치할 수 있습니다.

apt-get install sqlite3 git debian-goodies gcc make wget -y

설치가 완료되면 최신 버전의 Go를 시스템에 다운로드하여 설치해야 합니다.

먼저 다음 명령을 사용하여 Go 소스를 다운로드합니다.

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

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일을 /usr/local 디렉터리에 추출합니다.

tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

다음으로 Go에 대한 몇 가지 환경 변수를 설정해야 합니다. /etc/profile 파일을 편집하여 설정할 수 있습니다.

nano /etc/profile

파일 끝에 다음 줄을 추가합니다.

export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin

완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 환경 변수를 다시 로드합니다.

source /etc/profile

다음으로 다음 명령을 사용하여 Go용 디렉터리 구조를 만듭니다.

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

완료되면 다음 단계로 진행할 수 있습니다.

go-cve-dictionary 설치 및 구성

go-cve-dictionary는 NVD(National Vulnerabilities Database)의 로컬 복사본을 구축하는 도구입니다. Go 패키지를 사용하여 NVD(National Vulnerability Database)에 액세스할 수 있습니다. 그런 다음 이를 실행하고 Vul이 사용할 취약성 데이터를 가져와야 합니다. 따라서 시스템에 go-cve-dictionary를 다운로드하여 설치해야 합니다.

먼저 디렉터리를 $GOPATH/src/github.com/kotakanbe로 변경하고 다음 명령을 사용하여 Git 리포지토리에서 go-cve-dictionary 소스를 다운로드합니다.

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

다운로드가 완료되면 다음 명령으로 설치합니다.

cd go-cve-dictionary
make install

위 명령어는 완료하는 데 시간이 걸립니다. 설치가 성공적으로 완료되면 go-cve-dictionary 바이너리를 /usr/local/bin 디렉토리에 복사해야 합니다. 다음 명령으로 수행할 수 있습니다.

cp $GOPATH/bin/go-cve-dictionary /usr/local/bin/

go-cve-dictionary는 또한 로그와 데이터를 저장하기 위해 로그 및 데이터 디렉토리가 필요했습니다. 따라서 로그 및 데이터 디렉터리를 만들어야 합니다. 다음 명령으로 생성할 수 있습니다.

mkdir /var/log/vuls
mkdir /usr/share/vuls-data
chmod 700 /var/log/vuls

다음으로 NVD에서 취약성 데이터를 가져와서 다음 명령을 사용하여 sqlite3에 삽입합니다.

for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done

위의 명령은 2002년부터 현재 연도까지 NVD 데이터를 다운로드합니다.

완료되면 다음 단계로 진행할 수 있습니다.

goval-dictionary 설치 및 구성

goval-dictionary는 OVAL(Open Vulnerability and Assessment Language)의 로컬 사본을 빌드하는 도구입니다. Go 패키지는 Ubuntu용 OVAL 데이터베이스에 대한 액세스도 제공합니다. 따라서 시스템에 goval-dictionary를 다운로드하여 설치해야 합니다.

먼저 다음 명령을 사용하여 Git 리포지토리에서 goval-dictionary 소스를 다운로드합니다.

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

그런 다음 다음 명령으로 설치하십시오.

cd goval-dictionary
make install

그런 다음 다음 명령을 사용하여 /usr/local/bin 디렉토리에 복사합니다.

cp $GOPATH/bin/goval-dictionary /usr/local/bin/

다음으로 다음 명령을 사용하여 Ubuntu 18.04용 OVAL 데이터를 가져옵니다.

goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18

완료되면 다음 단계로 진행할 수 있습니다.

Vul 설치 및 구성

다음으로 Vuls 소스를 다운로드하여 시스템에 설치해야 합니다. 다음 명령을 사용하여 Git 리포지토리에서 다운로드할 수 있습니다.

mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git

그런 다음 디렉토리를 vuls로 변경하고 다음 명령을 사용하여 설치하십시오.

cd vuls
make install

일단 설치되면 vuls 바이너리를 /usr/local/bin 디렉토리에 복사해야 합니다. 다음 명령으로 수행할 수 있습니다.

cp $GOPATH/bin/vuls /usr/local/bin/

다음으로 /usr/share/vuls-data 디렉터리에 vuls 구성 파일을 만들어야 합니다.

cd /usr/share/vuls-data
nano config.toml

다음 줄을 추가합니다.

[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[servers]

[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]

완료되면 파일을 저장하고 닫습니다.

다음으로 다음 명령을 사용하여 구성 파일을 테스트합니다.

vuls configtest

모든 것이 정상이면 다음 출력이 표시됩니다.

[Sep 17 16:01:39]  INFO [localhost] Validating config...
[Sep 17 16:01:39]  INFO [localhost] Detecting Server/Container OS... 
[Sep 17 16:01:39]  INFO [localhost] Detecting OS of servers... 
[Sep 17 16:01:39]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Sep 17 16:01:39]  INFO [localhost] Detecting OS of static containers... 
[Sep 17 16:01:39]  INFO [localhost] Detecting OS of containers... 
[Sep 17 16:01:39]  INFO [localhost] Checking Scan Modes...
[Sep 17 16:01:39]  INFO [localhost] Checking dependencies...
[Sep 17 16:01:39]  INFO [localhost] Dependencies... Pass
[Sep 17 16:01:39]  INFO [localhost] Checking sudo settings...
[Sep 17 16:01:39]  INFO [localhost] sudo ... No need
[Sep 17 16:01:39]  INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode
[Sep 17 16:01:39]  INFO [localhost] Scannable servers are below...
localhost 

완료되면 다음 단계로 진행할 수 있습니다.

Vuls를 사용하여 시스템 검사

이제 Vuls가 설치되고 로컬 시스템을 스캔하도록 구성되었습니다. 로컬 시스템을 스캔하려면 다음 명령을 실행하십시오.

vuls scan

다음 출력이 표시되어야 합니다.

[Sep 17 16:02:20]  INFO [localhost] Start scanning
[Sep 17 16:02:20]  INFO [localhost] config: /usr/share/vuls-data/config.toml
[Sep 17 16:02:20]  INFO [localhost] Validating config...
[Sep 17 16:02:20]  INFO [localhost] Detecting Server/Container OS... 
[Sep 17 16:02:20]  INFO [localhost] Detecting OS of servers... 
[Sep 17 16:02:20]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Sep 17 16:02:20]  INFO [localhost] Detecting OS of static containers... 
[Sep 17 16:02:20]  INFO [localhost] Detecting OS of containers... 
[Sep 17 16:02:20]  INFO [localhost] Checking Scan Modes... 
[Sep 17 16:02:20]  INFO [localhost] Detecting Platforms... 
[Sep 17 16:02:21]  INFO [localhost] (1/1) localhost is running on other
[Sep 17 16:02:21]  INFO [localhost] Detecting IPS identifiers... 
[Sep 17 16:02:21]  INFO [localhost] (1/1) localhost has 0 IPS integration
[Sep 17 16:02:21]  INFO [localhost] Scanning vulnerabilities... 
[Sep 17 16:02:21]  INFO [localhost] Scanning vulnerable OS packages...
[Sep 17 16:02:21]  INFO [localhost] Scanning in fast mode


One Line Summary
================
localhost	ubuntu18.04	537 installed

To view the detail, vuls tui is useful.
To send a report, run vuls report -h.

Vul은 로그 파일에 취약성 보고서도 저장합니다. 다음 명령으로 나중에 볼 수 있습니다.

vuls tui

다음 화면이 표시됩니다.

이제 Enter 키를 누르고 키보드 화살표로 탐색할 수 있습니다.

축하합니다! Ubuntu 18.04 서버에 Vuls 취약점 스캐너를 성공적으로 설치하고 구성했습니다. 이제 로컬 시스템과 여러 원격 시스템을 쉽게 스캔하고 각각에 대한 취약성 보고서를 생성할 수 있습니다. 자세한 내용은 Vuls Doc에서 Vuls 공식 문서를 참조하세요. 궁금한 점이 있으면 언제든지 문의해 주세요.