Ubuntu 24.04 に Vuls 脆弱性スキャナーをインストールして使用する方法
このページでは
- 前提条件
- 依存関係のインストール
- Vuls と Vuls 辞書のインストール
- CVE (Common Vulnerabilities and Exposure) データベースのダウンロード
- Vuls を使用してローカル マシンをスキャンする
- Vuls を使用してリモート サーバーをスキャンする
- 結論
Vuls は、どこでも実行できる、エージェントレスで無料のオープンソースの脆弱性スキャナーです。 Vuls はクラウド、オンプレミス、Docker 上で実行でき、主要なディストリビューションをサポートしています。 Vuls は、NVD、JVN、OVAL、RHSA/ALAS/ELSA/FreeBSD-SA などの複数の脆弱性データベースをサポートしています。
Vuls を使用すると、複数の方法を使用して複数のオペレーティング システムをスキャンできます。ホストのローカルをスキャンしたり、SSH 経由でリモート ホスト/サーバーをスキャンしたりできます。また、root 権限を必要としない高速スキャンと root 権限を必要とするディープ スキャンなど、複数のスキャン方法も提供します。 Vuls は複数のターゲット サーバーを一度にスキャンできます。スキャンが完了したら、結果を電子メールや Slack 経由で送信できます。
このガイドでは、Ubuntu 24.04 サーバーに Vuls 脆弱性スキャナーをインストールする方法を説明します。 Vuls のインストール、CVE データベースの生成、ローカルおよびリモート スキャンによる Ubuntu/Debian のスキャンを行います。
前提条件
このガイドを始めるには、次のものが揃っていることを確認してください。
- Ubuntu 24.04 サーバー
- root 権限を持つ非 root ユーザー
- 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.gz
Golang がインストールされたら、ユーザーとしてログインし、ホーム ディレクトリ内に新しい 'go' ディレクトリを作成します。
su - arvd
mkdir $HOME/go
次に、「nano」エディタで新しい環境ファイル「/etc/profile.d/go-env.sh」を作成します。
sudo nano /etc/profile.d/go-env.sh
次の設定を貼り付けて、Golang のパスを設定します。
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 をインストールしたら、sqlite3 形式で CVE データベースを構築するための Vuls とそのコンポーネントをコンパイルしてインストールします。以下は、インストールする Vuls コンポーネントの一部です。
- 「go-cve-dictionary」は NVD (National Vulnerabilities Database) の構築に使用されます。
- Debian、Ubuntu、RedHat などのほとんどの Linux ディストリビューションの CVE を含む OVAL データベースを構築するための「goval-dictionary」
- 「go-exploitdb」は、exploitdb データベースからエクスプロイトを検索します。
- Metasploit データベース内の CVE を検索するための「go-msfdb」
- CISA が提供する KEV (悪用された既知の脆弱性) のローカル コピーを構築するための「go-kev」
- 「go-cti」は、CTI (サイバー脅威インテリジェンス) から 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」ディレクトリに移動し、「git」経由で「go-cve-dictionary」ツールのソースコードをダウンロードし、コンパイルしてインストールします。
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
その後、CIS による KEV (既知の悪用された脆弱性) の CVE データベースを CISA によって構築するためのツール「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 (サイバー脅威インテリジェンス) から 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 (国家脆弱性データベース) (「go-cve-dictionary」経由)
- 「goval-dictionary」経由の Ubuntu 24.04 の OVAL (Open Vulnerability and Assessment Language)
- 「go-exploitdb」経由の ExploitDB データベース
- 「go-msfdb」経由の Metasploit データベース
- CISA による「go-kev」経由の KEV (悪用された既知の脆弱性) カタログ
- 「go-cti」経由の MITRE ATT&CK および CAPEC データベース
次のようにホーム ディレクトリに移動します。
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 *.sqlite3
Vuls を使用してローカル マシンをスキャンする
これで、Vuls と CVE データベースを含むそのコンポーネントがインストールされました。このセクションでは、Vuls を使用してローカルの Ubuntu マシンをスキャンします。
ホーム ディレクトリ内に、「nano」エディタを使用して新しいファイル「config.toml」を作成します。
nano config.toml
以下の設定を挿入して、ローカルホストのスキャンを「高速」モードで設定します。
[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 経由でリモート システムをスキャンします。この例では、IP アドレス「192.168.10.10」、ユーザー「alice」を持つターゲット サーバー Debian 12 をスキャンします。 。
まず、以下のコマンドを実行して、Debian 12 用の OVAL データベースをダウンロードします。
goval-dictionary fetch debian 12
次に、SSH 公開キーと秘密キーを生成し、「ssh-copy-id」コマンドを使用してターゲット サーバーにアップロードします。
ssh-keygen -t ed25519
ssh-copy-id [email
ターゲット サーバー '192.168.10.10' に接続し、パッケージ インデックスを更新し、'debian-goodies' や 'reboot-notifier' などの依存関係をインストールします。
ssh [email
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" or "deep"
ファイルを保存してエディタを終了します。
次に、以下の「vuls」コマンドを実行して構成を確認します。構成が正しく適切であることを確認してください。
vuls configtest
その後、以下のコマンドを使用してリモート 'debian12' サーバーをスキャンします。
vuls scan debian12
以下では、Vuls によるリモート スキャンが完了していることがわかります。
結論
おめでとう! Ubuntu 24.04 サーバーへの Vuls 脆弱性スキャナーのインストールが完了しました。また、Vuls を使用して CVE データベースを生成し、Vuls を使用してローカル サーバーとリモート サーバーをスキャンする方法も学習しました。ここから、Vuls をポート スキャン用の NMAP などの別のスキャナーと統合したり、グラフィカルおよび Web ベースのインターフェイス用に Vulsrepo をインストールしたりすることもできます。