セキュリティ · 2 min read · Sep 16, 2025

Ubuntu 24.04にVuls脆弱性スキャナーをインストールして使用する方法

Vulsは、どこでも実行できるエージェントレスの無料でオープンソースの脆弱性スキャナーです。Vulsは、クラウド、オンプレミス、Dockerで実行でき、主要なディストリビューションをサポートしています。Vulsは、NVD、JVN、OVAL、RHSA/ALAS/ELSA/FreeBSD-SAなどの複数の脆弱性データベースをサポートしています。

Vulsを使用すると、複数の方法で複数のオペレーティングシステムをスキャンできます。ホストのローカルをスキャンしたり、SSHを介してリモートホスト/サーバーをスキャンしたりできます。また、ルート権限を必要としない高速スキャンと、ルート権限を必要とする深いスキャンなど、複数のスキャン方法を提供します。Vulsは、複数のターゲットサーバーを同時にスキャンできます。スキャンが完了すると、結果をEmailやSlackで送信できます。

このガイドでは、Ubuntu 24.04サーバーにVuls脆弱性スキャナーをインストールする方法を示します。Vulsをインストールし、CVEデータベースを生成し、ローカルおよびリモートスキャンを介してUbuntu/Debianをスキャンします。

前提条件

このガイドを始める前に、以下のものを用意してください:

  • Ubuntu 24.04サーバー
  • ルート権限を持つ非ルートユーザー
  • Vulsを介してリモートスキャンするための追加のUbuntu/Debianマシン

依存関係のインストール

Vulsをインストールする前に、システムにGolangがインストールされていることを確認する必要があります。現在、Vulsの最新バージョンは最新のGolangを必要とするため、バイナリパッケージをダウンロードして手動でGolangをインストールする必要があります。

まず、以下のコマンドを実行してUbuntuパッケージインデックスを更新し、’sqlite3‘、’git‘、’make‘、および’gcc‘などの依存関係をインストールします。

sudo apt update  
sudo apt install sqlite3 git debian-goodies gcc make wget -y

update repo and install deps

依存関係がインストールされたら、システムにGolangをインストールする必要があります。この例では、手動バイナリインストールを通じて最新のGolangをインストールします。

以下のコマンドでGolangのバージョンを選択します。たとえば、Golang 1.23.2の場合:

export latest_version=1.23.2

以下の’wget’コマンドを実行してGolangをダウンロードし、’tar‘コマンドで’ /usr/local ‘ディレクトリに抽出します。

wget https://dl.google.com/go/go$latest_version.linux-amd64.tar.gz  
sudo tar -C /usr/local -xzf go$latest_version.linux-amd64.tar.gz

Golangがインストールされたら、ユーザーにログインし、ホームディレクトリ内に新しい’go‘ディレクトリを作成します。

su - arvd  
mkdir $HOME/go

次に、’nano‘エディタを使用して新しいenvファイル’ /etc/profile.d/go-env.sh ‘を作成します。

sudo nano /etc/profile.d/go-env.sh

以下の設定を貼り付けて、GolangのPATHを設定します。

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

完了したら、ファイルを保存して終了します。

次に、’ /etc/profile.d/go-env.sh ‘を実行可能にし、’source‘コマンドで現在のセッションに読み込みます。

sudo chmod +x /etc/profile.d/go-env.sh  
source /etc/profile.d/go-env.sh

最後に、’go‘のバイナリファイルを確認し、以下のコマンドでそのバージョンを確認します。

which go  
go version

以下のように、Golang ‘1.23.2‘が’ /usr/local/go/bin/go ‘にインストールされています。

setup and install Golanfg

VulsとVuls辞書のインストール

Golangがインストールされたら、CVEデータベースをsqlite3形式で構築するためにVulsとそのコンポーネントをコンパイルしてインストールします。以下は、インストールするVulsコンポーネントのいくつかです:

  • go-cve-dictionary‘は、NVD(National Vulnerabilities Database)を構築するために使用されます。
  • goval-dictionary‘は、Debian、Ubuntu、RedHatなどのほとんどのLinuxディストリビューションのCVEを含むOVALデータベースを構築するために使用されます。
  • go-exploitdb‘は、exploitdbデータベースからのエクスプロイトを検索するために使用されます。
  • go-msfdb‘は、Metasploitデータベース内のCVEを検索するために使用されます。
  • go-kev‘は、CISAによって提供されるKEV(Known Exploited Vulnerabilities)のローカルコピーを構築するために使用されます。
  • go-cti‘は、CTI(Cyber Threat Intelligence)からCVEデータベースを構築するために使用されます。

まず、以下のコマンドを実行して新しいログディレクトリを作成し、所有権をユーザー(例:’arvd’)に変更します。

sudo mkdir /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}  
sudo chown arvd /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}  
sudo chmod 700 /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}

以下のコマンドで’$GOPATH/src/github.com/vulsio’に新しいディレクトリを作成します。

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

‘$GOPATH/src/github.com/vulsio’ディレクトリに移動し、’go-cve-dictionary‘ツールのソースコードを’git’を介してダウンロードし、コンパイルしてインストールします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/go-cve-dictionary.git  
cd go-cve-dictionary; make install

cve dictionary

次に、以下のコマンドを実行して’goval-dictionary‘ツールをダウンロード、コンパイル、インストールします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/goval-dictionary.git  
cd goval-dictionary; make install

‘goval-dictionary’がインストールされたら、次のツールとして’go-exploitdb‘ツールをインストールします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/go-exploitdb.git  
cd go-exploitdb; make install  
ln -s $GOPATH/src/github.com/vulsio/go-exploitdb/go-exploitdb.sqlite3 $HOME/go-exploitdb.sqlite3

go-exploitdb

次に、以下のコマンドを実行して’go-msfdb‘ツールをインストールおよびコンパイルします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/go-msfdb.git  
cd go-msfdb; make install

go-msfdb

その後、CISAによって提供されるKEV(Known Exploited Vulnerabilities)用のCVEデータベースを構築するために’go-kev‘ツールをインストールします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/go-kev.git  
cd go-kev; make install  
ln -s $GOPATH/src/github.com/vulsio/go-kev/go-kev.sqlite3 $HOME/go-kev.sqlite3

次に、CTI(Cyber Threat Intelligence)からCVEを構築するために使用される’go-cti‘ツールをインストールします。

cd $GOPATH/src/github.com/vulsio  
git clone https://github.com/vulsio/go-cti.git  
cd go-cti; make install  
ln -s $GOPATH/src/github.com/vulsio/go-cti/go-cti.sqlite3 $HOME/go-cti.sqlite3

次に、以下のコマンドを実行して’vuls‘をUbuntuマシンにダウンロード、コンパイル、インストールします。

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

install vuls

すべてがインストールされると、各ツールのバイナリファイルは’$GOPATH/bin’ディレクトリに利用可能になります。以下のコマンドを実行してそのディレクトリを確認します。

ls $GOPATH/bin/

以下のように、’ vuls ‘、’ go-cve-dictionary ‘、’ goval-dictionary ‘、’ go-exploitdb ‘、’ go-msfdb ‘、’ go-kev ‘、および’ go-cti ‘のバイナリファイルが表示されます。

最後に、’ vuls ‘コマンドを確認できます。これにより、’ vuls ‘のヘルプメッセージが表示されます。

vuls help

check vuls

CVE(Common Vulnerabilities and Exposure)データベースのダウンロード

この例では、以下のCVEデータベースをダウンロードします:

  • NVD(National Vulnerabilities Database)を’ go-cve-dictionary ‘を介して
  • Ubuntu 24.04用のOVAL(Open Vulnerability and Assessment Language)を’ goval-dictionary ‘を介して
  • ExploitDBデータベースを’ go-exploitdb ‘を介して
  • Metasploitデータベースを’ go-msfdb ‘を介して
  • CISAによるKEV(Known Exploited Vulnerabilities)カタログを’ go-kev ‘を介して
  • MITRE ATT&CKおよびCAPECデータベースを’ go-cti ‘を介して

以下のコマンドでホームディレクトリに移動します。

cd $HOME

次に、以下のコマンドを実行してCVE(Common Vulnerabilities and Exposures)データベースをダウンロードして構築します。

go-cve-dictionary fetch nvd  
goval-dictionary fetch ubuntu 24.04  
go-exploitdb fetch exploitdb  
go-msfdb fetch msfdb  
go-kev fetch kevuln  
go-cti fetch threat

download nvd database

download oval database

download msfdb

プロセスが完了すると、CVEデータベースはホームディレクトリに’ .sqlite3 ‘形式で利用可能になります。以下のコマンドでデータベースのリストを確認します。

ls -ah *.sqlite3

Vulsでローカルマシンをスキャン

Vulsとそのコンポーネント(CVEデータベースを含む)をインストールしたので、次にVulsを使用してローカルのUbuntuマシンをスキャンします。

ホームディレクトリ内に’ config.toml ‘という新しいファイルを’nano‘エディタで作成します。

nano config.toml

以下の設定を挿入して、’fast’モードでlocalhostのスキャンを設定します。

[servers]  
  
[servers.localhost]  
  host = "localhost"  
  port = "local"  
  scanMode = [ "fast" ]  
  #scanMode = ["fast", "fast-root", "deep", "offline"]

ファイルを保存してエディタを終了します。

次に、以下の’vuls’コマンドを実行して’config.toml’ファイルを確認します。

vuls configtest

適切な設定がされていれば、以下のような出力が表示されます。

check configuration

次に、‘vuls scan ‘コマンドを使用してlocalhostをスキャンします。

sudo vuls scan

以下のように、スキャンプロセスが完了したことが確認できます。

scanning localhost with vuls

スキャンレポートの詳細を取得するには、以下の’ vuls tui ‘コマンドを使用します。これにより、Vulsレポートのターミナルユーザーインターフェースが表示されます。

sudo vuls tui

CTRL+c ‘を押すことで、Vuls TUIから退出できます。

Vulsでリモートサーバーをスキャン

このセクションでは、Vulsを使用してリモートスキャンを設定する方法を学びます。つまり、Vulsを使用してSSH経由でリモートシステムをスキャンします。この例では、ターゲットサーバーDebian 12をIPアドレス’ 192.168.10.10 ‘で、ユーザーは’ alice ‘です。

まず、以下のコマンドを実行してDebian 12用のOVALデータベースをダウンロードします。

goval-dictionary fetch debian 12

次に、SSH公開鍵と秘密鍵を生成し、’ ssh-copy-id ‘コマンドでターゲットサーバーにアップロードします。

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

copy ssh key

ターゲットサーバー’192.168.10.10’に接続し、パッケージインデックスを更新し、’ debian-goodies ‘と’ reboot-notifier ‘などの依存関係をインストールします。

ssh [email protected]  
sudo apt update && sudo apt install debian-goodies reboot-notifier -y

ターゲットサーバーからログアウトするには、’ exit ‘と入力します。

次に、’nano‘エディタを使用してVuls設定’ config.toml ‘を開きます。

nano ~/config.toml

以下の設定を挿入して、ターゲットサーバーの詳細を追加します。この場合、新しいターゲットサーバーは’ debian12 ‘という名前で、IPアドレスは’ 192.168.10.10 ‘、認証はSSHキーを介して行います。

[servers.debian12]  
host = "192.168.10.10"  
port = "22"  
user = "alice"  
keyPath = "~/.ssh/id_ed25519"  
scanMode = [ "fast-root" ] # "fast", "fast-root"または"deep"

ファイルを保存してエディタを終了します。

次に、以下の’ vuls ‘コマンドを実行して設定を確認します。正しい設定がされていることを確認してください。

vuls configtest

その後、以下のコマンドでリモート’ debian12 ‘サーバーをスキャンします。

vuls scan debian12

以下のように、Vulsを介したリモートスキャンが完了したことが確認できます。

scan remote server with vuls

結論

おめでとうございます!Ubuntu 24.04サーバーにVuls脆弱性スキャナーのインストールが完了しました。また、Vulsを使用してCVEデータベースを生成し、ローカルおよびリモートサーバーをスキャンする方法も学びました。ここから、ポートスキャンのためにNMAPなどの別のスキャナーとVulsを統合することができます。また、グラフィカルおよびWebベースのインターフェースのためにVulsrepoをインストールすることもできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。