Ubuntu18.04で脆弱性スキャナーとしてVulsを使用する方法
序章
Vuls は、Goで記述されたオープンソースのエージェントレス脆弱性スキャナーです。 システムにインストールされているソフトウェアのセキュリティ脆弱性分析を自動化します。これは、システム管理者が実稼働環境で手動で行うのは面倒な作業になる可能性があります。 Vulsは、National Vulnerability Database(NVD)などの複数の有名な脆弱性データベースを使用しています。 リソースに照らして、Vulsには、一度に複数のシステムをスキャンし、電子メールまたはSlackを介してレポートを送信する機能があります。 3つのスキャンモード(高速、高速ルート、ディープ)があり、状況に応じて選択できます。
Vulsは幅広いITセキュリティスキャナーではありません。 たとえば、ネットワークトラフィックを監視したり、ブルートフォースログイン攻撃から保護したりすることはありません。 ただし、Vulsは、Linuxパッケージの脆弱性レポートを自動化する方法を提供します。 Vulsが使用するデータベースに特定の脆弱性の修正が通知されると、Vulsはこの修正情報もレポートに取り込みます。 Vulsは、レポートを生成するときに、データベースから確立されたランキングシステムを使用して、最も緊急の脆弱性に優先順位を付けます。
このチュートリアルでは、VulsをUbuntu18.04サーバーにデプロイします。 これには、ソースコードからのVulsとその依存関係の構築、Slackへのスキャンとレポートの構成、およびオプションでターゲットマシンへの接続によるリモートスキャンの有効化が含まれます。 最終的には、脆弱性を警告し、手動チェックの必要性を排除する自動化された脆弱性レポートシステムが導入されます。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- ルートアクセス権を持つUbuntu18.04を実行している2GB以上のRAMと、セカンダリの非ルートアカウントを備えたサーバー。 これは、この初期サーバーセットアップガイドに従ってセットアップできます。 このチュートリアルでは、root以外のユーザーは
sammy
. - メンバーになっているSlackワークスペース。 ワークスペースの作成方法については、公式ドキュメントにアクセスしてください。
- (オプション)Vulsをリモートでスキャンするように設定する場合は、rootアクセスとセカンダリの非rootアカウントで(できれば)Ubuntu18.04を実行している複数のサーバー。 このチュートリアルでは、セカンダリアカウントは
sammy-shark
セカンダリアカウントには、認証用に設定されたSSHキーが必要です。これは、Vuls productdocsに従って行うことができます。
ステップ1—依存関係のインストール
このセクションでは、Vulsデータを保存するためのフォルダーを作成し、最新バージョンのGoプログラミング言語をインストールし、Vulsとその依存関係に必要な他のパッケージをインストールします。
このチュートリアルでは、すべてのVuls関連データを /usr/share/vuls-data
ディレクトリ。 次のコマンドを実行して作成します。
- sudo mkdir /usr/share/vuls-data
アクセスできるようにするには sammy
、次のコマンドを実行します。
- sudo chown -R sammy /usr/share/vuls-data
これで、 vuls-data
フォルダー。これがワークスペースになります。 必要なパッケージのインストールを続行する前に、まずパッケージマネージャーのキャッシュを更新します。
- sudo apt update
依存関係をダウンロードしてコンパイルするには、をインストールします git
, gcc
, make
, sqlite
, debian-goodies
と wget
.
sqlite
はデータベースシステムであり、ここでは脆弱性情報を保存するために使用します。 debian-goodies
が含まれています checkrestart
ユーティリティ。任意の時点で再起動できるパッケージと再起動する必要のあるパッケージに関する情報を提供します。
それらすべてを1つのコマンドでインストールできます。
- sudo apt install sqlite git debian-goodies gcc make wget -y
これで、必要なパッケージがインストールされました。 次に、Goを使用してインストールします snap
次のコマンドを実行してパッケージマネージャーを作成します。
- sudo snap install go --classic
あなたが使う snap
Goをインストールするのは、言語の最新バージョンをインストールするためです。 apt
、古いバージョンをインストールする可能性があります。 古いバージョンでの作業は推奨されておらず、このチュートリアルを完了できない場合があります。
Goを機能させるには、設定するいくつかの環境変数が必要です。GOPATHと PATH
. GOPATH
Goの作業ディレクトリを指定します。 PATH
プログラムが配置されているディレクトリを含む、を拡張して、Go自体の場所をシステムに通知する必要があります。
これらの環境変数は、ユーザーがログオンするたびに設定する必要があります。 これを自動化するには、という新しい実行可能ファイルを作成します。 go-env.sh
、 下 /etc/profile.d
. これにより、ユーザーがログオンするたびにディレクトリが実行されます。
作成 go-env.sh
テキストエディタの使用:
- sudo nano /etc/profile.d/go-env.sh
次のコマンドをファイルに追加します。
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:/snap/bin
The export
コマンドは、指定された環境変数を目的の値に設定します。 ここでは、それを使用してデータを入力します GOPATH
と PATH
適切な値で。
ファイルを保存して閉じます。
現在、 go-env.sh
実行可能ではありません。 これを修正するには、次のコマンドを実行して実行可能としてマークします。
- sudo chmod +x /etc/profile.d/go-env.sh
再度ログインする必要がないように、リロードできます go-env.sh
実行することによって:
- source /etc/profile.d/go-env.sh
The source
コマンドは、その状態を保持しながら、指定されたファイルを現在のシェルに再ロードします。
このセクションでは、Go言語をインストールし、その環境変数を設定し、後で必要になるパッケージをインストールしました。 次の手順では、Vulsが必要とするGoプログラムをダウンロードしてコンパイルします。 それらのプログラムは go-cve-dictionary
と goval-dictionary
、Vulsが脆弱性データベースのクエリに使用します。
ステップ2—go-cve-dictionaryのインストールと実行
このセクションでは、ダウンロードしてコンパイルします go-cve-dictionary
、 NVD (National Vulnerability Database)へのアクセスを提供するGoパッケージ。 次に、それを実行し、Vulsが使用する脆弱性データをフェッチします。 NVDは、米国政府が公開しているサイバーセキュリティの脆弱性のリポジトリであり、脆弱性ID(CVE — Common Vulnerabilities and Exposures)、要約、および影響分析を含み、機械可読形式で利用できます。
Goはパッケージを下に保存します $GOPATH/src/
. サブディレクトリを使用して出所を記録することで、これをさらに拡張できます。 例として、ユーザーが作成したGitHubのパッケージ example-user
下に保存されます $GOPATH/src/github.com/example-user
.
最初にインストールします go-cve-dictionary
GitHubからGoパッケージのクローンを作成し、後でコンパイルします。
パスの例に従って、それを格納するディレクトリを作成することから始めます。
- mkdir -p $GOPATH/src/github.com/vulsio
次のコマンドを実行して移動します。
- cd $GOPATH/src/github.com/vulsio
今、あなたはクローンを作ります go-cve-dictionary
次のコマンドを実行して、GitHubからサーバーに移動します。
- git clone https://github.com/vulsio/go-cve-dictionary.git
次に、パッケージルートに移動します。
- cd go-cve-dictionary
最後に、次のコマンドを実行してコンパイルしてインストールします。
- make install
このコマンドが完了するまでに時間がかかる場合があることに注意してください。 システム全体で利用できるようにするには、にコピーします /usr/local/bin
:
- sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin
go-cve-dictionary
ログ出力ディレクトリへのアクセスが必要であり、デフォルトでは /var/log/vuls
. 次のコマンドを実行して作成します。
- sudo mkdir /var/log/vuls
現在、ログディレクトリは誰でも読み取ることができます。 次のコマンドを使用して、現在のユーザーへのアクセスを制限します。
- sudo chmod 700 /var/log/vuls
権限フラグをに設定する 700
所有者のみにアクセスを制限します。
アクセスできるようにするには sammy
、または別のユーザーは、次のコマンドを実行します。
- sudo chown -R sammy /var/log/vuls
次に、NVDから脆弱性データを取得し、Vulsワークスペースに保存します(/usr/share/vuls-data
):
- go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3
このコマンドは、2002年から現在の年までのNVD脆弱性データをフェッチし、それを下のデータベースに保存します。 /usr/share/vuls-data
.
注:このコマンドは完了するまでに長い時間がかかり、サーバーのRAMが2GB未満の場合は失敗する可能性があります。
このステップでは、ダウンロードしてインストールしました go-cve-dictionary
、および後で使用するためにVuls用にNVDデータをフェッチしました。 次のセクションでは、ダウンロードしてインストールします goval-dictionary
UbuntuのOVALデータをフェッチします。
ステップ3—goval-dictionaryのインストールと実行
このセクションでは、ダウンロードしてコンパイルします goval-dictionary
、UbuntuのOVALデータベースへのアクセスを提供するGoパッケージ。 次に、それを実行し、Vulsが使用する脆弱性データをフェッチします。 OVALは、Open Vulnerability and Assessment Languageの略で、特定のシステムにソフトウェアの脆弱性が存在するかどうかを判断するためのチェックを表現するために使用されるオープン言語です。
に移動します $GOPATH/src/github.com/vulsio
フォルダ:
- cd $GOPATH/src/github.com/vulsio
次のコマンドを実行して、GitHubからパッケージのクローンを作成します。
- git clone https://github.com/vulsio/goval-dictionary.git
パッケージフォルダを入力します。
- cd goval-dictionary
コンパイルしてインストールします make
:
- make install
にコピーします /usr/local/bin
グローバルにアクセスできるようにするには:
- sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin
次に、次のコマンドを実行して、Ubuntu18.xのOVALデータをフェッチします。
- sudo goval-dictionary fetch ubuntu --dbpath=/usr/share/vuls-data/oval.sqlite3 18
このステップでは、ダウンロードしてインストールしました goval-dictionary
、Ubuntu18.xのOVALデータを取得しました。 次のステップでは、ダウンロードしてインストールします gost
Debianセキュリティトラッカーデータを取得します。
ステップ4—gostのインストールと実行
このセクションでは、ダウンロードしてコンパイルします gost
、Debianセキュリティバグトラッカーへのアクセスを提供するGoパッケージ。 次に、それを実行し、Vulsが使用する脆弱性データをフェッチします。 Ubuntuセキュリティトラッカーは、Ubuntuで配布されるパッケージの脆弱性ステータスに関するすべての情報を収集します。
このパッケージは、以前と同じディレクトリに保存します。 次のコマンドを実行して、そこに移動します。
- cd $GOPATH/src/github.com/vulsio
次のコマンドを実行して、GitHubからパッケージのクローンを作成します。
- git clone https://github.com/vulsio/gost.git
終了したら、パッケージフォルダに入ります。
- cd gost
コンパイルしてインストールします make
:
- make install
にコピーします /usr/local/bin
グローバルにアクセスできるようにするには:
- sudo cp $GOPATH/bin/gost /usr/local/bin
次に、のログファイルディレクトリを作成します gost
:
- sudo mkdir /var/log/gost
次のコマンドを使用して、現在のユーザーへのアクセスを制限します。
- sudo chmod 700 /var/log/gost
前に述べたように、許可フラグをに設定する 700
所有者のみにアクセスを制限します。
アクセスできるようにするには sammy
、または別のユーザーは、次のコマンドを実行します。
- sudo chown -R sammy /var/log/gost
次に、次のコマンドを実行して、Ubuntuセキュリティトラッカーデータをフェッチします。
- gost fetch ubuntu --dbpath=/usr/share/vuls-data/gost.sqlite3
出力が長くなり、正しくクリアされない可能性があります。 あなたは実行することができます clear
それをクリアするコマンド。
このステップでは、gostをダウンロードしてインストールし、Debianのデータをフェッチしました。 次のステップでは、Vulsをダウンロードしてインストールします。
ステップ5—Vulのダウンロードと構成
すべての依存関係がインストールされたら、ソースコードからVulsをダウンロードしてコンパイルします。 その後、ローカルマシンをスキャンするように構成します。
次のコマンドを使用して、Vulsリポジトリへのパスを含む新しいディレクトリを作成します。
- mkdir -p $GOPATH/src/github.com/future-architect
そこに移動します:
- cd $GOPATH/src/github.com/future-architect
次のコマンドを実行して、GitHubからVulsのクローンを作成します。
- git clone https://github.com/future-architect/vuls.git
パッケージフォルダを入力します。
- cd vuls
以下を実行して、コンパイルとインストールを同時に行います。
- make install
このコマンドが完了するまでに時間がかかる場合があることに注意してください。
にコピーします /usr/local/bin
グローバルにアクセスできるようにするには:
- sudo cp $GOPATH/bin/vuls /usr/local/bin
次に、Vulsの構成ファイルを作成します。 に戻る /usr/share/vuls-data
:
- cd /usr/share/vuls-data
Vulsは、その構成をTOMLファイルに保存します。 config.toml
. テキストエディタを使用して作成します。
- 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つのセクション(cveDict
と ovalDict
)最後の2つの手順で作成した脆弱性データベースをVulsにポイントします。 次のセクション(servers
)サーバー関連情報の開始をマークします。 個別のセクションで、各サーバーに関する情報をグループ化します。 この概説された構成でVulsがスキャンする唯一のサーバーはローカルサーバーです(localhost
).
Vulsは4つのスキャンモードを提供します。
- 高速モード(デフォルト):root権限なしでスキャンし、依存関係がなく、ターゲットサーバー上で非常に軽量です。
- 高速ルートモード:ルート権限でスキャンし、アップグレードされたがまだ再起動されていないプロセスを検出できます。
- ディープスキャンモード:高速ルートモードと同じですが、変更ログをチェックするため、ターゲットサーバーに高い負荷がかかる可能性があります。
- オフラインモード:インターネットにアクセスせずにマシンをスキャンし、他のモードと組み合わせて使用できます。
ファイルを保存して閉じます。
構成ファイルの有効性をテストするには、次のコマンドを実行します。
- vuls configtest
出力は次のようになります。
Output[Dec 14 09:07:28] INFO [localhost] vuls-v0.19.0-build-20211214_090234_2b7294a
[Dec 14 09:07:28] INFO [localhost] Validating config...
[Dec 14 09:07:28] INFO [localhost] Detecting Server/Container OS...
[Dec 14 09:07:28] INFO [localhost] Detecting OS of servers...
[Dec 14 09:07:28] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Dec 14 09:07:28] INFO [localhost] Detecting OS of containers...
[Dec 14 09:07:28] INFO [localhost] Checking Scan Modes...
[Dec 14 09:07:28] INFO [localhost] Checking dependencies...
[Dec 14 09:07:28] INFO [localhost] Dependencies... Pass
[Dec 14 09:07:28] INFO [localhost] Checking sudo settings...
[Dec 14 09:07:28] INFO [localhost] sudo ... No need
[Dec 14 09:07:28] 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
[Dec 14 09:07:28] INFO [localhost] Scannable servers are below...
localhost
構成を正しく入力し、Vulsがローカルサーバーをスキャンできることを検出しました。
ローカルサーバーをスキャンするようにVulsをインストールして構成しました。 次のステップでは、ローカルスキャンを実行し、生成されたレポートを表示します。
ステップ6—ローカルスキャンの実行
このセクションでは、ローカルスキャンを実行してから、生成された脆弱性レポートを表示します。 これまでに、Vulsが最後の手順で正しく検出したローカルサーバーのみを構成しました。 明示的に指定されていない場合、デフォルトのスキャンモードは高速です。
スキャンを実行するには、次のコマンドを実行します。
- vuls scan
出力は次のようになります。
[Dec 14 09:07:47] INFO [localhost] vuls-v0.19.0-build-20211214_090234_2b7294a
[Dec 14 09:07:47] INFO [localhost] Start scanning
[Dec 14 09:07:47] INFO [localhost] config: /usr/share/vuls-data/config.toml
[Dec 14 09:07:47] INFO [localhost] Validating config...
[Dec 14 09:07:47] INFO [localhost] Detecting Server/Container OS...
[Dec 14 09:07:47] INFO [localhost] Detecting OS of servers...
[Dec 14 09:07:47] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Dec 14 09:07:47] INFO [localhost] Detecting OS of containers...
[Dec 14 09:07:47] INFO [localhost] Checking Scan Modes...
[Dec 14 09:07:47] INFO [localhost] Detecting Platforms...
[Dec 14 09:07:47] INFO [localhost] (1/1) localhost is running on other
[Dec 14 09:07:47] INFO [localhost] Scanning OS pkg in fast mode
[Dec 14 09:07:47] INFO [localhost] Scanning listen port...
[Dec 14 09:07:47] INFO [localhost] Using Port Scanner: Vuls built-in Scanner
Scan Summary
================
localhost ubuntu18.04 539 installed
To view the detail, vuls tui is useful.
To send a report, run vuls report -h.
Vulsは、プロセスで行ったことをログに記録しました。 識別された脆弱性のレポートを表示するには、次のコマンドを実行します。
- vuls tui
Vulsは、レポートビューを次の4つのパネルに分割します。
- スキャンされたマシン:左上にあり、Vulsがスキャンしたマシンを一覧表示します。
- 検出された脆弱性:マシンリストの右側にあり、インストールされたパッケージで検出された脆弱性を示します。
- 詳細情報:画面の左側に表示され、データベースから取得された脆弱性に関する詳細情報が表示されます。
- 影響を受けるパッケージ:詳細情報の右側にあり、影響を受けるパッケージのバージョンと、修正されたバージョンがあるかどうかを示します。
を押すと、パネル間でカーソルを循環させることができます ENTER
、およびキーボードの矢印を使用してナビゲートします。 完了したら、を押します CTRL+C
出る。
このステップでは、ローカルスキャンを実行し、結果を検査しました。 次の(オプションの)セクションでは、複数のターゲットマシンをスキャンするようにVulsを構成します。
ステップ7—(オプション)複数のターゲットマシンを構成する
このセクションでは、複数のターゲットマシンをスキャンするようにVulsを構成します。 これには設定が必要です /etc/sudoers
ターゲット上で、ターゲットをスキャンするようにVulsを構成します。
前の手順では、ローカルマシンをスキャンするようにVulsを構成しました(localhost
). 次の条件があれば、サーバーをいくつでも追加できます。
- ターゲットサーバーのIP
- ターゲットサーバーへのルートアクセス
- ターゲットサーバーで使用可能なアカウント(
sammy-shark
このチュートリアルでは)
高速モードでのスキャンには、ターゲットサーバーでroot以外のユーザーアカウントのみを使用できます。 高速ルートモードとディープモードでスキャンを有効にするには、 /etc/sudoers
ターゲットマシン上のファイル。 The sudoers
fileは、どのユーザーがどのコマンドを実行できるか、および指定されたコマンドにパスワードが必要かどうかを制御します。
以来 visudo
アクセスと特権アクセスのルールを定義するためのユーティリティであり、次のようにのみ実行できます。 root
. の重要性のため sudoers
、ファイルは警告なしにエラーで終了しません。
ターゲットサーバーで、次のようにログインします root
開いて sudoers
実行による編集用 visudo
:
- visudo
次の行をファイルの最後に追加します。
sammy-shark ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart
この行は指示します sudo
ユーザーを許可する sammy-shark
走る apt-get update
, checkrestart
、およびから利用可能なすべてのコマンド stat
、パスワードを提供せずに。
ファイルを保存して閉じます。 プロセスで構文エラーが発生した場合は、 visudo
通知し、再度編集するか終了することを提案します。
注:許可することにより sammy-shark
のユーザー sudoers
、 fastrootおよびdeepモードを使用してVulsがスキャンできるようにします。 ローカルマシンでこれらのモードを許可する場合(localhost
)も、編集 sudoers
の上 localhost
前に示したように。
Vulsは checkrestart
更新されているが再起動が必要なパッケージをチェックするユーティリティ。 ターゲットサーバーに確実にインストールするには、次のコマンドを実行してインストールします。
- 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を使用して、 account_username
ユーザー名を使用して、RSA秘密鍵のパスを指定します。 VulsはSSHパスワード認証をサポートしていないため、 keyPath
必要です。
ファイルを保存して閉じます。
次に、追加したターゲットサーバーごとに、ローカルマシンのRSAキーを確認します。 これを実現するには、次のように、適切なキーを使用して最初のサーバーからターゲットサーバーにログインします。
- ssh sammy-shark@target_ip -i /home/sammy/.ssh/id_rsa
秘密RSAキーのパスを入力することを忘れないでください。 接続を続行するかどうかを尋ねられたら、次のように入力します yes
、を押してログアウトします CTRL + D
.
キーファイルのアクセス許可が開いすぎているというエラーが発生した場合は、次のように設定します。 600
次のコマンドを実行します。
- chmod 600 account_rsa_key
権限をに設定する 600
所有者のみがキーファイルの読み取りと書き込みを行えるようにします。
新しい構成の有効性を確認するには、次のコマンドを実行します。
- vuls configtest
出力には、依存関係、スーパーユーザーアクセス、OSバージョンなど、Vulsがチェックしたすべての詳細が表示されます。 エラーがある場合は、 config.toml
チュートリアルの構成に対して。
このステップでは、Vuls構成にさらにターゲットサーバーを追加して、スキャン用にマークを付けました。 次のセクションでは、レポートを定期的にスキャンして、構成済みのSlackワークスペースに送信するようにVulsを構成します。
ステップ8—定期的なスキャンとSlackへのレポートの構成
このセクションでは、Slackにレポートを送信して cron
Vulsスキャンを定期的に実行するジョブ。
Slack統合を使用するには、ワークスペースのSlackに着信Webhookが必要です。 着信Webhookは、アプリケーションが他のアプリケーションからのリアルタイム情報を提供するための簡単な方法です。 この場合、SlackチャネルにレポートするようにVulsを構成します。
Webhookを作成したことがない場合は、最初にワークスペース用のアプリを作成する必要があります。 これを行うには、最初にSlackにログインし、アプリ作成ページに移動します。 わかりやすい名前を選び、目的のワークスペースを選択して、アプリの作成をクリックします。
新しいアプリの設定ページにリダイレクトされます。 左側のナビゲーションバーにあるIncomingWebhooksをクリックします。
タイトルActivateIncoming Webhooks の横にあるスイッチボタンを切り替えて、Webhookを有効にします。
ページのさらに下にある新しいセクションが明らかになります。 下にスクロールして、新しいWebhookをワークスペースに追加ボタンをクリックします。 次のページで、レポートの送信先のチャネルを選択し、[許可]をクリックします。
Webhookの設定ページにリダイレクトされ、新しいWebhookが表に表示されます。 コピーをクリックしてクリップボードにコピーし、後で使用できるようにメモしておきます。
次に、開きます config.toml
編集用:
- sudo nano config.toml
次の行を追加します。
[slack]
hookURL = "your_hook_url"
channel = "#your_channel_name"
authUser = "your_username"
#notifyUsers = ["@username"]
交換してください your_hook_URL
前にメモしたWebhookURLを使用して、 your_channel_name
目的のチャネルの名前を使用して、 your_username
Webhookを作成したユーザーのユーザー名を使用します。 ファイルを保存して閉じます。
統合をテストするには、を実行してレポートを生成できます vuls report
、 このような:
- sudo vuls report -to-slack
Vulsは、実行して正常に終了するまでに少し時間がかかります。 エラーが表示された場合は、前の行に対して入力内容を確認してください。
Slackアプリをチェックして、Vulsがレポートを正常に送信したことを確認できます。
レポートを構成したので、スケジュールされたスキャンを設定します。 cron
は、すべてのUbuntuマシンにある時間ベースのジョブスケジューラです。 これは、 crontab
コマンドを実行するタイミングを正確な構文で定義するファイル。 編集を容易にするために、 crontab
現在のユーティリティを開きます crontab
エディター内のファイル。
現在を開く crontab
次のコマンドを実行してファイルを作成します。
- 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
上記の行は指示します cron
走る vuls scan
と vuls report
毎日正午に指定された構成で( 0 0 * * *
の cron
構文)。
ファイルを保存して閉じます。
このステップでは、VulsをSlackワークスペースに接続し、構成しました cron
Vulsスキャンを実行し、毎日正午にレポートします。
結論
これで、Ubuntu18.04サーバーで自動スキャンとレポートを使用してVulsを正常にセットアップできました。 その他のレポートオプションとトラブルシューティングについては、Vulsドキュメントにアクセスしてください。
Vulsを使用すると、脆弱性評価は実稼働環境でよりシームレスなプロセスになります。 設定の代わりに cron
、スキャンが軽量で必要に応じて実行できるため、継続的展開ワークフローでVulsを使用することもできます。 また、Vulsを使用してファイアウォールを実装して、アクセスを制限し、ルートアクセスの必要性を減らすことも検討できます。