セキュリティ · 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
依存関係がインストールされたら、システムに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.gzGolangがインストールされたら、ユーザーにログインし、ホームディレクトリ内に新しい’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 ‘にインストールされています。

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
次に、以下のコマンドを実行して’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-msfdb‘ツールをインストールおよびコンパイルします。
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-msfdb.git
cd go-msfdb; make install
その後、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
すべてがインストールされると、各ツールのバイナリファイルは’$GOPATH/bin’ディレクトリに利用可能になります。以下のコマンドを実行してそのディレクトリを確認します。
ls $GOPATH/bin/以下のように、’ vuls ‘、’ go-cve-dictionary ‘、’ goval-dictionary ‘、’ go-exploitdb ‘、’ go-msfdb ‘、’ go-kev ‘、および’ go-cti ‘のバイナリファイルが表示されます。
最後に、’ vuls ‘コマンドを確認できます。これにより、’ vuls ‘のヘルプメッセージが表示されます。
vuls help
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


プロセスが完了すると、CVEデータベースはホームディレクトリに’ .sqlite3 ‘形式で利用可能になります。以下のコマンドでデータベースのリストを確認します。
ls -ah *.sqlite3Vulsでローカルマシンをスキャン
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適切な設定がされていれば、以下のような出力が表示されます。

次に、‘vuls scan ‘コマンドを使用してlocalhostをスキャンします。
sudo vuls scan以下のように、スキャンプロセスが完了したことが確認できます。

スキャンレポートの詳細を取得するには、以下の’ 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]
ターゲットサーバー’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を介したリモートスキャンが完了したことが確認できます。

結論
おめでとうございます!Ubuntu 24.04サーバーにVuls脆弱性スキャナーのインストールが完了しました。また、Vulsを使用してCVEデータベースを生成し、ローカルおよびリモートサーバーをスキャンする方法も学びました。ここから、ポートスキャンのためにNMAPなどの別のスキャナーとVulsを統合することができます。また、グラフィカルおよびWebベースのインターフェースのためにVulsrepoをインストールすることもできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。