ウェブサイト検索

Ubuntu 22.04 で Vuls を脆弱性スキャナーとして使用する方法


著者は寄付プログラムへの書き込みを選択しました。

序章

国家脆弱性データベース (NVD)。リソースが少なくても、Vuls は一度に複数のシステムをスキャンし、メールまたは Slack 経由でレポートを送信できます。 3 つのスキャン モード (fastfast root、および deep) があり、状況に応じて選択できます。

Vuls は広範な IT セキュリティ スキャナーではありません。たとえば、ネットワーク トラフィックを監視したり、ブルート フォース ログイン攻撃から保護したりしません。ただし、Vuls は Linux パッケージの脆弱性レポートを自動化する方法を提供します。 Vuls が使用するデータベースに特定の脆弱性に対する修正が通知されると、Vuls はこの修復情報もレポートに取り込みます。レポートを生成するとき、Vuls はデータベースから確立されたランキング システムを使用して、最も緊急性の高い脆弱性に優先順位を付けます。

このチュートリアルでは、Vuls を Ubuntu 22.04 サーバーにデプロイします。このプロセスには、ソース コードからの Vuls とその依存関係の構築、Slack へのスキャンとレポートの構成、オプションでそれをターゲット マシンに接続してリモート スキャンを有効にすることが含まれます。最終的に、脆弱性を警告し、手動チェックの必要性を排除する、自動化された脆弱性レポート システムが導入されます。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • 2 GB 以上の RAM を搭載し、Ubuntu 22.04 を実行し、root アクセス権を持ち、root 以外のセカンダリ アカウントを持つサーバー。これは、この初期サーバー セットアップ ガイドに従ってセットアップできます。このチュートリアルでは、root 以外のユーザーは sammy です。
  • あなたがメンバーになっている Slack ワークスペース。ワークスペースの作成方法については、公式ドキュメントをご覧ください。
  • (オプション) Vuls をリモートでスキャンするように設定する場合は、(できれば) Ubuntu 22.04 を実行し、ルート アクセス権とルート以外のセカンダリ アカウントを使用する複数のサーバー。このチュートリアルでは、セカンダリ アカウントは sammy-shark です。セカンダリ アカウントには、認証用に構成された SSH キーが必要です。これは、Vuls 製品ドキュメントに従って行うことができます。< /li>

ステップ1-依存関係のインストール

このセクションでは、Vuls データを保存するフォルダーを作成し、Go プログラミング言語の最新バージョンをインストールし、Vuls とその依存関係に必要な他のパッケージをインストールします。

このチュートリアルでは、Vuls 関連のすべてのデータを /usr/share/vuls-data ディレクトリに保存します。次のコマンドを実行して作成します。

  1. sudo mkdir /usr/share/vuls-data

sammy がアクセスできるようにするには、次のコマンドを実行します。

  1. sudo chown -R sammy /usr/share/vuls-data

これでワークスペースとなる vuls-data フォルダーが作成されました。必要なパッケージのインストールを続行する前に、まずパッケージ マネージャーのキャッシュを更新します。

  1. sudo apt update

依存関係をダウンロードしてコンパイルするには、gitgccmakesqlite をインストールします。 debian-goodieswgetsqlite はデータベース システムであり、ここでは脆弱性情報を保存するために使用します。 debian-goodies には checkrestart ユーティリティが含まれており、任意の時点で再起動できるパッケージと再起動する必要があるパッケージに関する情報を提供します。

1 つのコマンドですべてをインストールできます。

  1. sudo apt install sqlite git debian-goodies gcc make wget -y

これで必要なパッケージがインストールされ、Go と Vuls が使用する関連プログラムのインストールに進むことができます。

Go のインストール

次のコマンドを実行して、snap パッケージ マネージャーを使用して Go をインストールします。

  1. sudo snap install go --classic

古いバージョンをインストールする可能性がある apt とは異なり、Go は最新バージョンの言語をインストールするため、snap を使用して Go をインストールします。古いバージョンで作業することはお勧めできません。このチュートリアルを完了できない可能性があります。

Go が機能するためには、いくつかの環境変数を設定する必要があります: GOPATHPATHGOPATH は、Go の作業ディレクトリを指定します。プログラムが配置されるディレクトリを含む PATH は、Go 自体の場所をシステムに伝えるために拡張する必要があります。

これらの環境変数は、ユーザーがログオンするたびに設定する必要があります。これを自動化するには、/etc/profile.d の下に go-env.sh という新しい実行可能ファイルを作成します。これにより、ユーザーがログオンするたびにディレクトリが実行されます。

テキスト エディターを使用して go-env.sh を作成します。

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

次のコマンドをファイルに追加します。

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:/snap/bin

export コマンドは、指定された環境変数を目的の値に設定します。ここでは、これを使用して GOPATHPATH に適切な値を入力します。

ファイルを保存して閉じます。

現在、go-env.sh は実行できません。これを修正するには、次のコマンドを実行して実行可能としてマークします。

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

再度ログインする必要がないようにするには、次のコマンドを実行して go-env.sh をリロードします。

  1. source /etc/profile.d/go-env.sh

source コマンドは、指定されたファイルをその状態を維持しながら現在のシェルに再読み込みします。

Go 言語をインストールし、その環境変数を設定し、後で必要になるパッケージをインストールしました。次に、Vuls に必要な Go プログラムをダウンロードしてコンパイルします。これらのプログラムは go-cve-dictionarygoval-dictionary で、Vuls が脆弱性データベースのクエリに使用します。

go-cve-dictionary のインストールと実行

このセクションでは、National Vulnerability Database へのアクセスを提供する Go パッケージである go-cve-dictionary をダウンロードしてコンパイルします。次に、それを実行して、Vuls が使用できる脆弱性データを取得します。 NVD は、脆弱性 ID (CVE — Common Vulnerabilities and Exposures)、概要、および影響分析を含む、公的に報告されたサイバーセキュリティの脆弱性の米国政府のリポジトリであり、機械可読形式で利用できます。

Go はパッケージを $GOPATH/src/ に保存します。サブディレクトリを使用してオリジンを記録することで、これをさらに拡張できます。例として、ユーザー example-user によって作成された GitHub のパッケージは、$GOPATH/src/github.com/example-user に保存されます。 .

最初に go-cve-dictionary をインストールします。それには、GitHub から Go パッケージを複製し、後でコンパイルします。

パスの例に従って、それを格納するディレクトリを作成することから始めます。

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

次を実行して移動します。

  1. cd $GOPATH/src/github.com/vulsio

次のコマンドを実行して、GitHub からサーバーに go-cve-dictionary を複製します。

  1. git clone https://github.com/vulsio/go-cve-dictionary.git

次に、パッケージ ルートに移動します。

  1. cd go-cve-dictionary

最後に、次のコマンドを実行してコンパイルおよびインストールします。

  1. make install

このコマンドが完了するまでに時間がかかる場合があることに注意してください。

システム全体で使用できるようにするには、/usr/local/bin にコピーします。

  1. sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

go-cve-dictionary には、ログ出力ディレクトリへのアクセスが必要です。デフォルトでは、/var/log/vuls です。次を実行して作成します。

  1. sudo mkdir /var/log/vuls

現在、ログ ディレクトリは誰でも読み取り可能です。次のコマンドを使用して、現在のユーザーへのアクセスを制限します。

  1. sudo chmod 700 /var/log/vuls

許可フラグを 700 に設定すると、所有者のみにアクセスが制限されます。

sammy または別のユーザーがアクセスできるようにするには、次のコマンドを実行します。

  1. sudo chown -R sammy /var/log/vuls

次に、NVD から脆弱性データを取得し、Vuls ワークスペース (/usr/share/vuls-data) に保存します。

  1. go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3

このコマンドは、2002 年から現在の年までの NVD 脆弱性データを取得し、/usr/share/vuls-data の下のデータベースに保存します。

注: このコマンドは完了するまでに時間がかかり、サーバーの RAM が 2 GB 未満の場合は失敗する可能性があります。

このセクションでは、go-cve-dictionary をダウンロードしてインストールし、Vuls が使用する NVD データを取得しました。 goval-dictionary をダウンロードしてインストールし、Ubuntu の OVAL データをフェッチします。

goval-dictionary のインストールと実行

このセクションでは、Ubuntu の OVAL データベースへのアクセスを提供する Go パッケージである goval-dictionary をダウンロードしてコンパイルします。次に、それを実行して、Vuls が使用する脆弱性データをフェッチします。 OVAL は Open Vulnerability and Assessment Language の略で、特定のシステムにソフトウェアの脆弱性が存在するかどうかを判断するためのチェックを表現するために使用されるオープン言語です。

$GOPATH/src/github.com/vulsio フォルダーに移動します。

  1. cd $GOPATH/src/github.com/vulsio

次のコマンドを実行して、GitHub からパッケージを複製します。

  1. git clone https://github.com/vulsio/goval-dictionary.git

パッケージ フォルダーを入力します。

  1. cd goval-dictionary

make でコンパイルしてインストールします。

  1. make install

/usr/local/bin にコピーして、グローバルにアクセスできるようにします。

  1. sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin

次に、次のコマンドを実行して、Ubuntu 22 の OVAL データをフェッチします。

  1. sudo goval-dictionary fetch ubuntu --dbpath=/usr/share/vuls-data/oval.sqlite3 22

ここでは、goval-dictionary をダウンロードしてインストールし、Ubuntu の OVAL データをフェッチしました。次に、gost をダウンロードしてインストールし、Debian セキュリティ トラッカー データを取得します。

goのインストールと実行

このセクションでは、Debian セキュリティ バグ トラッカーへのアクセスを提供する Go パッケージである gost をダウンロードしてコンパイルします。次に、それを実行し、Vuls が使用する脆弱性データを取得します。 Ubuntu セキュリティ トラッカーは、Ubuntu で配布されるパッケージの脆弱性ステータスに関するすべての情報を収集します。

このパッケージを前と同じディレクトリに保存します。次のコマンドを実行して、そこに移動します。

  1. cd $GOPATH/src/github.com/vulsio

以下を実行して、GitHub からパッケージを複製します。

  1. git clone https://github.com/vulsio/gost.git

終了したら、パッケージ フォルダーを入力します。

  1. cd gost

make でコンパイルしてインストールします。

  1. make install

/usr/local/bin にコピーして、グローバルにアクセスできるようにします。

  1. sudo cp $GOPATH/bin/gost /usr/local/bin

次に、gost のログ ファイル ディレクトリを作成します。

  1. sudo mkdir /var/log/gost

次のコマンドを使用して、現在のユーザーへのアクセスを制限します。

  1. sudo chmod 700 /var/log/gost

許可フラグを 700 に設定すると、所有者のみにアクセスが制限されます。 sammy または別のユーザーがアクセスできるようにするには、次のコマンドを実行します。

  1. sudo chown -R sammy /var/log/gost

次に、次のコマンドを実行して、Ubuntu セキュリティ トラッカー データをフェッチします。

  1. gost fetch ubuntu --dbpath=/usr/share/vuls-data/gost.sqlite3

出力が長くなる場合があります。ターミナルでクリアされない可能性があります。その場合は clear コマンドを実行できます。

gost をダウンロードしてインストールし、Debian のデータを取得しました。次のステップでは、Vuls をダウンロードしてインストールします。

ステップ2-Vulsのダウンロードと構成

すべての依存関係がインストールされたら、ソース コードから Vuls をダウンロードしてコンパイルします。また、ローカル マシンをスキャンするように構成します。

次のコマンドを使用して、Vuls リポジトリへのパスを含む新しいディレクトリを作成します。

  1. mkdir -p $GOPATH/src/github.com/future-architect

それに移動します。

  1. cd $GOPATH/src/github.com/future-architect

次のコマンドを実行して、GitHub から Vuls のクローンを作成します。

  1. git clone https://github.com/future-architect/vuls.git

パッケージ フォルダーを入力します。

  1. cd vuls

次のコマンドを実行して、コンパイルとインストールを同時に行います。

  1. make install

このコマンドが完了するまでに時間がかかる場合があることに注意してください。

/usr/local/bin にコピーして、グローバルにアクセスできるようにします。

  1. sudo cp $GOPATH/bin/vuls /usr/local/bin

次に、Vuls の構成ファイルを作成します。 /usr/share/vuls-data に戻ります。

  1. cd /usr/share/vuls-data

Vuls はその構成を TOML ファイルに保存します。これを config.toml と呼びます。テキスト エディタを使用して作成します。

  1. sudo nano config.toml

次の構成を入力します。

[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[gost]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[servers]

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

この構成の最初の 2 つのセクション (cveDictovalDict、および gost) は、追加したばかりの脆弱性データベースを Vuls に示します。 servers セクションは、サーバー関連情報の開始を示します。個別のセクションは、各サーバーに関する情報をグループ化します。 Vuls がこの概略構成でスキャンする唯一のサーバーは、ローカル サーバー localhost です。

Vuls は 4 つのスキャン モードを提供します。

  • 高速モード (デフォルト) は、root 権限なしでスキャンし、依存関係がなく、ターゲット サーバーで非常に軽量です。
  • 高速ルート モードはルート権限でスキャンし、アップグレードされたがまだ再起動されていないプロセスを検出できます。
  • ディープ スキャン モードは高速ルート モードと同じですが、変更ログをチェックするため、ターゲット サーバーに高い負荷がかかる可能性があります。
  • オフライン モードは、インターネットにアクセスせずにマシンをスキャンし、他のモードと組み合わせて使用できます。

ファイルを保存して閉じます。

構成ファイルの有効性をテストするには、次のコマンドを実行します。

  1. vuls configtest

次のような出力が表示されます。

Output
[Jan 5 20:24:29] INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4 [Jan 5 20:24:29] INFO [localhost] Validating config... [Jan 5 20:24:29] INFO [localhost] Detecting Server/Container OS... [Jan 5 20:24:29] INFO [localhost] Detecting OS of servers... [Jan 5 20:24:29] INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10 [Jan 5 20:24:29] INFO [localhost] Detecting OS of containers... [Jan 5 20:24:29] INFO [localhost] Checking Scan Modes... [Jan 5 20:24:29] INFO [localhost] Checking dependencies... [Jan 5 20:24:29] INFO [localhost] Dependencies... Pass [Jan 5 20:24:29] INFO [localhost] Checking sudo settings... [Jan 5 20:24:29] INFO [localhost] sudo ... No need [Jan 5 20:24:29] INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode [Jan 5 20:24:29] INFO [localhost] Scannable servers are below... localhost

構成を正しく入力したので、Vuls はローカル サーバーをスキャンできることを検出しました。

ローカル サーバーをスキャンするように Vuls をインストールして構成しました。次のステップでは、ローカル スキャンを実行し、生成されたレポートを表示します。

ステップ3-ローカルスキャンの実行

この手順では、ローカル スキャンを実行し、生成された脆弱性レポートを表示します。ここまでで、最後の手順で Vuls が正しく検出したローカル サーバーのみを構成しました。明示的に指定されていない場合、デフォルトのスキャン モードは fast です。

スキャンを実行するには、次のコマンドを実行します。

  1. vuls scan

出力は次のようになります。

[Jan  5 20:26:14]  INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4
[Jan  5 20:26:14]  INFO [localhost] Start scanning
[Jan  5 20:26:14]  INFO [localhost] config: /usr/share/vuls-data/config.toml
[Jan  5 20:26:14]  INFO [localhost] Validating config...
[Jan  5 20:26:14]  INFO [localhost] Detecting Server/Container OS...
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of servers...
[Jan  5 20:26:14]  INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of containers...
[Jan  5 20:26:14]  INFO [localhost] Checking Scan Modes...
[Jan  5 20:26:14]  INFO [localhost] Detecting Platforms...
[Jan  5 20:26:14]  INFO [localhost] (1/1) localhost is running on other
[Jan  5 20:26:14]  INFO [localhost] Scanning OS pkg in fast mode
[Jan  5 20:26:14]  INFO [localhost] Scanning listen port...
[Jan  5 20:26:14]  INFO [localhost] Using Port Scanner: Vuls built-in Scanner


Scan Summary
================
localhost       ubuntu22.10     695 installed





To view the detail, vuls tui is useful.
To send a report, run vuls report -h.

Vuls はその過程で何をしたかを記録しています。特定された脆弱性のレポートを表示するには、次を実行します。

  1. vuls tui

Vuls は、レポート ビューを 4 つのパネルに分割します。

  • 左上にあるスキャンされたマシンには、Vuls がスキャンしたマシンが一覧表示されます。
  • マシン リストの右にある [見つかった脆弱性] には、インストールされているパッケージで見つかった脆弱性が表示されます。
  • 画面の左側を占める詳細情報には、データベースから抽出された脆弱性に関する詳細情報が表示されます。
  • 詳細情報の右側にある影響を受けるパッケージには、影響を受けるパッケージのバージョンと、修正されたバージョンがあるかどうかが表示されます。

ENTER を押すと、各パネル間でカーソルを切り替えることができます。キーボードの矢印を使用して、各パネル内を移動できます。完了したら、CTRL+C を押して終了します。

この手順では、ローカル スキャンを実行し、結果を調べました。次の (オプションの) セクションでは、複数のターゲット マシンをスキャンするように Vuls を構成します。

手順 4 — (オプション) 複数のターゲット マシンの構成

このセクションでは、複数のターゲット マシンをスキャンするように Vuls を構成します。このプロセスでは、ターゲット マシンで /etc/sudoers を構成し、そのターゲットをスキャンするように Vuls を構成する必要があります。

ターゲット サーバーの IP アドレス、ターゲット サーバーへのルート アクセス、およびターゲット サーバーで使用可能なアカウント (sammy-shark このチュートリアルでは)。

ターゲット サーバーでは、高速モードでのスキャンに root 以外のユーザー アカウントのみを使用できます。高速ルートおよびディープ モードでのスキャンを有効にするには、ターゲット マシンで /etc/sudoers ファイルを編集する必要があります。 sudoers ファイルは、どのユーザーがどのコマンドを実行できるか、および指定したコマンドにパスワードが必要かどうかを制御します。

visudo は、アクセスおよび特権アクセスのルールを定義するためのユーティリティであり、root としてのみ実行できます。 sudoers の重要性のため、エラーで終了しようとすると、ファイルは警告を発します。

ターゲット サーバーで、root としてログインし、visudo を実行して編集するために sudoers を開きます。

  1. visudo

次の行をファイルの末尾に追加します。

sammy-shark ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart

この行は、ユーザー sammy-sharkapt-get update, checkrestart< を実行できるように sudo に指示します。、およびパスワードを提供せずに stat から利用可能なすべてのコマンド。

ファイルを保存して閉じます。プロセスで構文エラーが発生した場合、visudo は通知し、再度編集するか終了するかを提案します。

注: sudoerssammy-shark ユーザーを追加することにより、Vuls が高速ルートおよびディープ モードを使用してスキャンできるようになります。これらのモードをローカル マシン (localhost) でも許可する場合は、localhostsudoers を編集できます。 sudoers の詳細については、sudoers ファイルの編集方法に関するチュートリアルを参照してください。

Vuls は checkrestart ユーティリティを使用して、更新されているが再起動が必要なパッケージをチェックします。ターゲット サーバーに確実にインストールするには、次のコマンドを実行してセカンダリ サーバーにインストールします。

  1. apt install debian-goodies -y

ターゲットサーバーで行う必要があるのはこれだけです。これで、ターゲットからログアウトして、最初のサーバーに戻ることができます。

スキャン用の新しいサーバーを追加するには、config.toml を開き、[servers] マークの下に次の行を追加します。

[servers.target_name]
host = "target_ip"
port = "22"
user = "account_username"
keyPath = "/home/sammy/.ssh/id_rsa"
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"

上記の行は、新しいサーバーを追加するためのテンプレートです。 target_name を目的の名前に、target_ip をターゲット サーバーの IP、< に置き換えることを忘れないでください。 mark>account_username をユーザー名に置き換え (このチュートリアルでは sammy-shark を使用します)、ユーザー の秘密 RSA キーのパスを指定します。 >サミー. Vuls は SSH パスワード認証をサポートしていないため、keyPath を指定する必要があります。

ファイルを保存して閉じます。

次に、追加したターゲット サーバーごとに、ローカル マシンで RSA キーを確認します。これを実現するには、次のように、適切なキーを使用して最初のサーバーからターゲット サーバーにログインします。

  1. ssh sammy-shark@target_ip -i /home/sammy/.ssh/id_rsa

秘密 RSA キーのパスを忘れずに入力してください。接続を続行するかどうかを尋ねられたら、yes と入力し、CTRL + D を押してログアウトします。

注: キー ファイルのアクセス許可がオープンすぎるというエラーが表示された場合は、次のコマンドを実行して、アクセス許可を 600 に設定します。

  1. chmod 600 account_rsa_key

アクセス権を 600 に設定すると、所有者だけがキー ファイルを読み書きできるようになります。

新しい構成の有効性を確認するには、次のコマンドを実行します。

  1. vuls configtest

出力には、依存関係、スーパーユーザー アクセス、OS バージョンなど、Vuls がチェックしたすべての詳細が表示されます。エラーがある場合は、config.toml を、このセクションで前述した構成と照合して確認してください。

このステップでは、Vuls 構成にさらにサーバーを追加し、スキャン対象としてマークしました。次のセクションでは、定期的にスキャンしてレポートを Slack ワークスペースに送信するように Vuls を構成します。

ステップ 5 — 定期的なスキャンと Slack へのレポートの構成

レポートを Slack に送信するように Vuls を構成し、定期的に Vuls スキャンを実行するように cron ジョブを設定します。

Slack 統合を使用するには、ワークスペースの Slack に着信 Webhook が必要です。 受信 Webhook を使用すると、アプリケーションは他のアプリケーションからリアルタイムの情報を提供できます。この場合、Slack チャネルに報告するように Vuls を構成します。

Webhook を作成していない場合は、最初にワークスペース用のアプリを作成する必要があります。そのためには、まず Slack にログインし、Slack のアプリ作成ページに移動します。わかりやすい名前を選択し、目的のワークスペースを選択して、[アプリの作成] を押します。

新しいアプリの設定ページにリダイレクトされます。左側のナビゲーション バーで [Incoming Webhooks] 項目を選択します。

[Activate Incoming Webhooks] というタイトルの横にあるスイッチ ボタンを [On] に切り替えて、Webhook を有効にします。

アクティブ化されると、新しいセクションがページに読み込まれます。 [新しい Webhook をワークスペースに追加] ボタンまでスクロールして押します。ワークスペースへのアクセスをリクエストするための新しいページが開きます。レポートを送信するチャネルを選択し、[許可] を押します。

Webhook の設定ページにリダイレクトされ、新しい Webhook が Webhook URL の下のテーブルに表示されます。 [コピー] をクリックして URL をコピーし、後で使用できるようにメモしておきます。

初期サーバーのターミナルに戻り、編集のために config.toml を開きます。

  1. sudo nano config.toml

次の行を追加します。

[slack]
hookURL      = "your_hook_url"
channel      = "#your_channel_name"
authUser     = "your_username"
#notifyUsers  = ["@username"]

your_hook_URL をメモした Webhook URL に置き換え、 your_channel_name を目的のチャネルの名前に置き換え、 >your_username を Webhook を作成した Slack ユーザーのユーザー名に置き換えます。ファイルを保存して閉じます。

統合をテストするには、vuls report を実行してレポートを生成できます。

  1. sudo vuls report -to-slack

Vuls が実行されて終了するまでに少し時間がかかります。エラーが返された場合は、前の行に対して入力した内容を確認してください。

Slack アプリをチェックして、Vuls が指定されたチャネルにレポートを正常に送信したことを確認します。

レポートの設定が完了したので、スケジュール スキャンを設定できます。 cron は、すべての Ubuntu マシンに組み込まれている時間ベースのジョブ スケジューラです。これは、コマンドを実行するタイミングを正確な構文で定義する crontab ファイルを介して構成されます。編集を支援するために、現在の crontab ファイルをエディターで開く crontab ユーティリティを使用します。

次のコマンドを実行して、現在の crontab ファイルを開きます。

  1. crontab -e

プロンプトが表示されたら、リストから好みのテキスト エディターを選択します。

ファイルの末尾に次の行を追加します。

0 0 * * * vuls scan -config=/usr/share/vuls-data/config.toml; vuls report -config=/usr/share/vuls-data/config.toml > /dev/null 2>&1

この行は、cronvuls scanvuls report を実行するように指示します。 * (cron 構文)。

ファイルを保存して閉じます。

このステップでは、Vuls を Slack ワークスペースに接続し、Vuls スキャンを実行して毎日正午に Slack に報告するように cron を構成しました。

結論

これで、Ubuntu 22.04 サーバーで自動スキャンとレポートを使用して Vuls を正常にセットアップできました。その他のレポート オプションやトラブルシューティングについては、Vuls のドキュメントを参照してください。

Vuls を使用すると、本番環境での脆弱性評価がよりシームレスになります。 cron を設定する代わりに、Vuls を備えたファイアウォールで Vuls を使用して、アクセスを制限し、root アクセスの必要性を減らすこともできます。

関連記事: