보안 스캐너 · 4 min read · Sep 15, 2025

Debian 12에서 Vuls 취약점 스캐너 설치 및 사용 방법

Vuls는 Linux 및 FreeBSD용 에이전트 없는 무료 오픈 소스 취약점 스캐너입니다. Vuls는 주로 Go로 작성되었으며 어디서나 실행할 수 있습니다. Vuls는 클라우드, 온프레미스 및 Docker에서 실행할 수 있으며 주요 배포판을 지원합니다. Vuls는 NVD, JVN, OVAL, RHSA/ALAS/ELSA/FreeBSD-SA와 같은 여러 취약점 데이터베이스를 지원하는 고품질 스캔을 제공합니다.

Vuls를 사용하면 여러 방법을 사용하여 여러 운영 체제를 스캔할 수 있습니다. 호스트의 로컬을 스캔할 수 있으며 SSH를 통해 원격 호스트/서버를 스캔할 수 있습니다. 또한 루트 권한이 필요하지 않은 빠른 스캔과 루트 권한이 필요한 깊은 스캔과 같은 여러 스캔 방법을 제공합니다. Vuls는 여러 대상 서버를 동시에 스캔할 수 있습니다. 스캔이 완료되면 결과를 이메일 및 Slack으로 보낼 수 있습니다.

이 가이드에서는 Debian 12 서버에 Vuls 취약점 스캐너를 설치하는 방법을 배웁니다. Vuls를 설치하고 CVE 데이터베이스를 설정한 다음 로컬 시스템과 원격 머신 Vuls를 스캔합니다.

전제 조건

시작하기 전에 다음 사항을 확인하십시오:

  • Debian 12 서버
  • 관리자 권한이 있는 비루트 사용자
  • 원격 스캔을 위한 RockyLinux/Ubuntu와 같은 추가 서버

종속성 설치

Vuls를 설치하기 전에 종속성이 설치되어 있는지 확인해야 합니다. 이 섹션에서는 Vuls의 종속성으로 ‘ debian-goodies ‘ 및 ‘ reboot-notifier ‘ 패키지를 설치합니다.

먼저 아래 명령어를 실행하여 Debian 패키지 인덱스를 업데이트합니다.

sudo apt update

이제 아래 명령어로 ‘ debian-goodies ‘ 및 ‘ reboot-notifier ‘ 패키지를 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력하십시오.

sudo apt install debian-goodies reboot-notifier

install deps

설치 스크립트를 사용하여 Vuls 설치

종속성이 설치된 후, 설치 스크립트를 사용하여 Vuls를 설치합니다. 이렇게 하면 Vuls와 Vuls에 대한 추가 도구가 시스템에 자동으로 컴파일되고 설치됩니다.

Vuls를 설치하려면 아래 명령어를 실행하십시오. 이를 통해 Vuls 설치 스크립트 ‘install.sh’를 다운로드하고 실행합니다.

bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )

install vuls

이제 설치 스크립트가 최신 버전의 Golang을 설치하고 ‘ go-cti ‘, ‘ go-cve-dictionary ‘, ‘ goval-dictionary ‘, ‘ go-exploitdb ‘, ‘ go-kev ‘, ‘ go-msfdb ‘, 및 ‘ gost ‘와 같은 Vuls에 대한 여러 도구를 컴파일하고 설치합니다.

install and comile go-cve-dictionary

install gost

install vuls

설치가 완료되면 ‘ /usr/local/bin ‘ 디렉토리를 확인하면 Vuls와 그 도구의 바이너리 파일을 볼 수 있습니다.

ls /usr/local/bin/

이제 아래의 ‘vuls help’ 명령어로 도움말 메시지를 확인할 수 있습니다.

vuls help

다음과 같은 출력이 표시됩니다:

vuls go

Vuls 구성

Vuls가 설치되었으므로 컴퓨터나 서버를 스캔하기 전에 구성해야 합니다. 이 섹션에서는 Vuls 설치를 위한 새 디렉토리 및 파일을 생성합니다. CVE 데이터베이스를 특정 SQLite 데이터베이스에 정의하고 로컬호스트에 대한 첫 번째 스캔 구성을 생성합니다.

새 디렉토리 ‘ /opt/vuls ‘를 만들고 그 안으로 이동합니다. 그런 다음 ‘nano’ 편집기로 새 파일 ‘ config.toml ‘을 만듭니다.

mkdir -p /opt/vuls; cd /opt/vuls  
nano config.toml

다음 구성을 입력하여 CVE 데이터베이스를 Vuls와 통합합니다. 또한 마지막 줄에서는 로컬호스트에 대한 스캔을 정의하고 있습니다.

[cveDict]  
type = "sqlite3"  
SQLite3Path = "/opt/vuls/cve.sqlite3"  
  
[ovalDict]  
type = "sqlite3"  
SQLite3Path = "/opt/vuls/oval.sqlite3"  
  
[gost]  
type = "sqlite3"  
SQLite3Path = "/opt/vuls/gost.sqlite3"  
  
[metasploit]  
type = "sqlite3"  
SQLite3Path = "/opt/vuls/go-msfdb.sqlite3"  
  
[servers]  
  
[servers.localhost]  
host = "localhost"  
port = "local"  
scanMode = [ "fast-root" ]  
#scanMode = ["fast", "fast-root", "deep", "offline"]

완료되면 파일을 저장하고 종료합니다.

마지막으로 아래의 ‘ vuls ‘ 명령어를 실행하여 구성을 확인합니다.

vuls configtest

구성이 올바르면 다음과 같은 출력이 표시됩니다:

check config

Vuls로 CVE 데이터베이스 생성

이 섹션에서는 Vuls 도구를 사용하여 다양한 출처에서 새로운 CVE 데이터베이스를 구축합니다. Debian 보안 추적기, NVD, OVAL 및 Metasploit 데이터베이스에 대한 CVE 데이터베이스를 생성합니다.

먼저 ‘ /opt/vuls ‘ 디렉토리로 이동합니다:

cd /opt/vuls

이제 아래 명령어를 실행하여 여러 출처에서 CVE 데이터베이스를 다운로드하고 빌드합니다. 이 예에서는 Debian 보안 추적기, NVD, OVAL 및 Metasploit 데이터베이스의 CVE 데이터베이스를 사용합니다.

gost fetch debian --dbpath /opt/vuls/gost.sqlite3  
go-cve-dictionary fetch nvd --dbpath /opt/vuls/cve.sqlite3  
goval-dictionary fetch debian 12 --dbpath /opt/vuls/oval.sqlite3  
go-msfdb fetch msfdb --dbpath /opt/vuls/go-msfdb.sqlite3

download cve database

프로세스가 완료되면 CVE 데이터베이스가 ‘ /opt/vuls ‘ 디렉토리에 생성됩니다. 아래 명령어로 ‘ /opt/vuls ‘ 디렉토리를 확인하십시오.

ls /opt/vuls/*.sqlite3

Vuls로 로컬호스트 스캔

이 시점에서 Vuls를 구성하고 CVE 데이터베이스를 생성했습니다. 이제 Vuls로 로컬호스트 또는 로컬 머신을 스캔할 준비가 되었습니다.

로컬 머신을 스캔하려면 아래의 ‘ vuls ‘ 명령어를 실행하십시오.

vuls scan localhost

프로세스가 완료되면 터미널에 간단한 결과가 표시됩니다.

이제 아래의 ‘ vuls tui ‘ 명령어를 실행하여 스캔 보고서를 자세히 확인하십시오.

vuls tui

다음에서 로컬호스트에 대한 자세한 스캔 보고서를 볼 수 있습니다.

vuls tui

‘Ctrl+c’를 눌러 Vuls 터미널 사용자 인터페이스에서 종료합니다.

Vuls로 원격 서버 스캔

이 섹션에서는 Vuls로 원격 서버를 스캔합니다. 이 예에서는 대상 서버가 IP 주소 ‘ 192.168.10.45 ‘와 사용자 ‘ rock ‘인 Rocky Linux 9 서버입니다.

먼저 아래 명령어를 실행하여 RedHat 9용 OVAL CVE 데이터베이스를 다운로드합니다:

goval-dictionary fetch redhat 9 --dbpath /opt/vuls/oval.sqlite3

download atabase

이제 새로운 SSH 공개 및 개인 키를 생성한 다음 공개 키를 대상 서버에 업로드합니다. 이 예에서는 대상 서버가 IP 주소 ‘ 192.168.10.45 ‘와 SSH 사용자 ‘ rock ‘인 Rocky Linux 9입니다.

ssh-keygen -t ed25519  
ssh-copy-id [email protected]

이제 아래의 ‘ssh’ 명령어로 대상 서버에 로그인하고 아래 명령어로 ‘ lsof ‘ 패키지를 설치합니다.

ssh [email protected]  
sudo dnf install lsof -y

exit ‘를 입력하여 Rocky Linux 서버에서 로그아웃합니다.

다음으로 ‘/opt/vuls’ 디렉토리로 이동하고 ‘ config.toml ‘ 파일을 ‘nano’ 편집기로 엽니다.

cd /opt/vuls/  
nano config.toml

원격 시스템 Rocky Linux 9 서버에 대한 새로운 스캔을 생성하기 위해 다음 구성을 삽입합니다. 또한 IP 주소와 사용자 세부정보를 귀하의 정보로 변경해야 합니다.

[servers.debian-server]  
host = "192.168.10.45"  
port = "22"  
user = "rock"  
keyPath = "/root/.ssh/id_ed25519"  
scanMode = [ "fast-root" ] # "fast", "fast-root" 또는 "deep"

파일을 저장하고 편집기를 종료합니다.

새 구성을 사용하여 아래 명령어로 ‘config.toml’ 파일을 테스트할 수 있습니다.

vuls configtest

check configuration

오류가 없으면 아래의 ‘vuls’ 명령어로 원격 서버를 스캔합니다.

vuls scan rocky9

마지막으로 아래의 ‘vuls’ 명령어를 실행하여 원격 스캔 보고서에 액세스합니다.

vuls tui

다음에서 Rocky Linux 9 원격 서버의 자세한 보고서를 볼 수 있습니다.

scan result

결론

축하합니다! Debian 12 서버에 Vuls 취약점 스캐너 설치를 완료했습니다. 또한 Vuls 추가 도구를 사용하여 CVE 데이터베이스를 구축하는 방법을 배웠습니다. 그 후, Vuls로 로컬 및 원격 서버/머신을 스캔하는 방법도 배웠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.