Vulsインストール · 1 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は、複数のターゲットサーバーを同時にスキャンできます。スキャンが完了すると、結果をEmailや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をインストールし、その後、Vuls用の「go-cti」、「go-cve-dictionary」、「goval-dictionary」、「go-exploitdb」、「go-kev」、「go-msfdb」、および「gost」などの複数のツールをコンパイルしてインストールします。

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インストール用の新しいディレクトリとファイルを作成します。特定のSQLiteデータベースにCVEデータベースを定義し、localhost用の最初のスキャン設定を作成します。

新しいディレクトリ「/opt/vuls」を作成し、その中に移動します。そして、「nano」エディタで新しいファイル「config.toml」を作成します。

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

以下の設定を入力して、CVEデータベースをVulsと統合します。また、最下行ではlocalhostのスキャンを定義しています。

[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でlocalhostをスキャンする

この時点で、Vulsを設定し、CVEデータベースを作成しました。これで、Vulsを使用してlocalhostまたはローカルマシンをスキャンする準備が整いました。

ローカルマシンをスキャンするには、以下の「vuls」コマンドを実行します。

vuls scan localhost

プロセスが完了すると、ターミナルにシンプルな結果が表示されます。

次に、以下の「vuls tui」コマンドを実行して、スキャンレポートを詳細に表示します。

vuls tui

以下に、localhostの詳細なスキャンレポートを示します。

vuls tui

「Ctrl+c」を押してVulsターミナルユーザーインターフェースを終了します。

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

このセクションでは、Vulsを使用してリモートサーバーをスキャンします。この例では、ターゲットサーバーはIPアドレス「192.168.10.45」のRocky Linux 9サーバーで、ユーザーは「rock」です。

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

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

download atabase

次に、新しいSSH公開鍵と秘密鍵を生成し、公開鍵をターゲットサーバーにアップロードします。この例では、ターゲットサーバーはIPアドレス「192.168.10.45」のRocky Linux 9で、SSHユーザーは「rock」です。

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

次に、以下の「ssh」コマンドを使用してターゲットサーバーにログインし、以下のコマンドで「lsof」パッケージをインストールします。

ssh [email protected]  
sudo dnf install lsof -y

exit」と入力してRocky Linuxサーバーからログアウトします。

次に、「/opt/vuls」ディレクトリに移動し、「nano」エディタで「config.toml」ファイルを編集します。

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

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

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