著者はhttps://www.brightfunds.org/funds/foss-nonprofits [無料およびオープンソース基金]を選択して、https://do.co/w4do-cta [Donationsのために書く]の一部として寄付を受け取りましたプログラム。
前書き
Vulsは、https://golang.org/ [Go]で記述された、オープンソースのエージェントレス脆弱性スキャナーです。 これは、システムにインストールされたソフトウェアのセキュリティ脆弱性分析を自動化します。これは、システム管理者が本番環境で手動で行う負担の大きいタスクになる可能性があります。 Vulsは、National Vulnerability Database(NVD)などの複数の有名な脆弱性データベースを使用しています。 Vulsはリソースを軽くして、複数のシステムを一度にスキャンし、電子メールまたはSlackでレポートを送信する機能を備えています。 3つのスキャンモード(fast _、 fast root 、 deep_)があり、状況に応じて選択できます。
Vulsは、広範なITセキュリティスキャナーではありません。たとえば、ネットワークトラフィックを監視したり、総当たりログイン攻撃から保護したりしません。 ただし、VulsはLinuxパッケージの脆弱性レポートを自動化する方法を提供します。 Vulsが使用するデータベースに特定の脆弱性の修正が通知されると、Vulsはこの修復情報をレポートに取り込みます。 レポートを生成するとき、Vulsはデータベースから確立されたランキングシステムを使用して、最も緊急の脆弱性に優先順位を付けます。
このチュートリアルでは、VulsをUbuntu 18.04サーバーにデプロイします。 これには、ソースコードからのVulsとその依存関係の構築、Slackへのスキャンとレポートの構成、およびオプションでターゲットマシンに接続してリモートスキャンを有効にすることが含まれます。 最終的には、脆弱性について警告する自動化された脆弱性レポートシステムが配置され、手動でチェックする必要がなくなります。
前提条件
このチュートリアルを始める前に、次のものが必要です。
-
ルートアクセスを使用してUbuntu 18.04を実行し、2 GB以上のRAMを備えたサーバー、およびセカンダリの非ルートアカウント。 これは、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 [この初期サーバー設定ガイド]に従って設定できます。 このチュートリアルでは、非ルートユーザーは「++」です。
-
(オプション)Vulsをリモートでスキャンするように設定する場合は、ルートアクセスとセカンダリの非ルートアカウントを使用して(できれば)Ubuntu 18.04を実行している複数のサーバー。 このチュートリアルでは、セカンダリアカウントは「++」です。
ステップ1-依存関係のインストール
このセクションでは、Vulsデータを保存するためのフォルダーを作成し、Goプログラミング言語の最新バージョンをインストールし、Vulsとその依存関係に必要な他のパッケージをインストールします。
「++」としてログインして開始します。
ssh @
このチュートリアルでは、すべてのVuls関連データを `+ / usr / share / +`ディレクトリに保存します。 次のコマンドを実行して作成します。
sudo mkdir /usr/share/
`++`にアクセスできるようにするには、次のコマンドを実行します。
sudo chown -R /usr/share/
これで、ワークスペースとなる `++`フォルダーが作成されました。 必要なパッケージのインストールを続行する前に、まずパッケージマネージャーキャッシュを更新します。
sudo apt update
依存関係をダウンロードしてコンパイルするには、「+ git 」、「 gcc 」、「 make」、「+ sqlite」、「+ debian-goodies」、「+ golang-go 」、および「 wget」をインストールします。
+ sqlite +`はデータベースシステムであり、ここでは脆弱性情報を保存するために使用します。 https://packages.debian.org/stretch/debian-goodies [
+ debian-goodies `]には、 ` checkrestart `ユーティリティが含まれています。このユーティリティは、ある時点で再起動できるパッケージと再起動するパッケージに関する情報を提供します。 ` golang-go +`はGoプログラミング言語です。
これらはすべて1つのコマンドでインストールできます。
sudo apt install sqlite git debian-goodies gcc make wget golang-go -y
Goを含む必要なパッケージをインストールしました。
Goが機能するためには、設定するいくつかの環境変数が必要です: + GOPATH +`と `+ PATH +
。 + GOPATH +`は、Goの作業ディレクトリと、Go自体の場所をシステムに伝えるために拡張する必要がある `+ PATH +
(プログラムが配置されるディレクトリを含む)を指定します。
これらの環境変数は、ユーザーがログオンするたびに設定する必要があります。 これを自動化するには、 `+ / etc / profile.d `の下に、 ` go-env.sh +`という新しい実行可能ファイルを作成します。 これにより、ユーザーがログオンするたびにディレクトリが実行されます。
テキストエディターを使用して `+ go-env.sh +`を作成します。
sudo nano /etc/profile.d/go-env.sh
ファイルに次のコマンドを追加します。
/etc/profile.d/go-env.sh
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
`+ 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
`+ source +`コマンドは、指定されたファイルを現在のシェルにリロードし、その状態を保持します。
このセクションでは、Go言語をインストールし、その環境変数を設定し、後で必要になるパッケージをインストールしました。 次の手順では、Vulsが必要とするGoプログラムをダウンロードしてコンパイルします。 これらのプログラムは、「+ go-cve-dictionary 」と「 goval-dictionary +」であり、Vulsは脆弱性データベースのクエリに使用します。
ステップ2-go-cve-dictionaryのインストールと実行
このセクションでは、https://nvd.nist.gov/ [NVD](National Vulnerability Database)へのアクセスを提供するGoパッケージである `+ go-cve-dictionary +`をダウンロードしてコンパイルします。 次に、実行してVulsが使用する脆弱性データを取得します。 NVDは、脆弱性ID(CVE-Common Vulnerabilities and Exposures)、概要、および影響分析を含む、公開されたサイバーセキュリティ脆弱性の米国政府のリポジトリであり、機械可読形式で入手できます。
Goはパッケージを `+ $ GOPATH / src / `の下に保存します。 サブディレクトリを使用して、起源を記録することでこれをさらに拡張できます。 たとえば、ユーザーが作成したGitHubのパッケージ「+」は、「+ $ GOPATH / src / github.com / +」の下に保存されます。
まず、GitHubからGoパッケージを複製し、後でコンパイルすることにより、「+ kotakanbe 」によって作成された「 go-cve-dictionary +」をインストールします。
パスの例に従って、ディレクトリを作成して保存します。
mkdir -p $GOPATH/src/github.com/kotakanbe
以下を実行してナビゲートします。
cd $GOPATH/src/github.com/kotakanbe
次のコマンドを実行して、GitHubからサーバーに「+ go-cve-dictionary +」をクローンします:
git clone https://github.com/kotakanbe/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」に設定すると、所有者のみにアクセスが制限されます。
`++`または別のユーザーがアクセスできるようにするには、次のコマンドを実行します。
sudo chown -R /var/log/vuls
次に、NVDから脆弱性データを取得し、Vulsワークスペース( + / usr / share / +
)に保存します。
for i in `seq 2002 $(date +"%Y")`; do sudo go-cve-dictionary fetchnvd -dbpath /usr/share//cve.sqlite3 -years $i; done
このコマンドは2002年から現在の年( + seq 2002 $(date +"%Y ")+
)にループし、 `+ go-cve-dictionary fetchnvd `を呼び出して現在のNVDデータを取得します(ループ) ` -years $ i `を渡すことで 次に、この情報をデータベースの「 / usr / share / +」の下に保存します。
このステップでは、 `+ go-cve-dictionary `をダウンロードしてインストールし、Vulsが後で使用するためにNVDデータを取得しました。 次のセクションでは、 ` goval-dictionary +`をダウンロードしてインストールし、UbuntuのOVALデータを取得します。
ステップ3-goval-dictionaryのインストールと実行
このセクションでは、Ubuntu用のOVALデータベースへのアクセスを提供するGoパッケージである `+ goval-dictionary +`をダウンロードしてコンパイルします。 次に、それを実行し、Vulsが使用する脆弱性データを取得します。 OVALはOpen Vulnerability and Assessment Languageの略で、特定のシステムにソフトウェアの脆弱性が存在するかどうかを判断するためのチェックを表現するために使用されるオープン言語です。
同じ著者の `+ kotakanbe `が ` goval-dictionary +`を作成し、前のパッケージの隣に保存します。
`+ $ GOPATH / src / github.com / kotakanbe +`フォルダーに移動します。
cd $GOPATH/src/github.com/kotakanbe
次のコマンドを実行して、GitHubからパッケージを複製します。
git clone https://github.com/kotakanbe/goval-dictionary.git
パッケージフォルダーを入力します。
cd goval-dictionary
`+ make +`でコンパイルしてインストールします:
make install
それを `+ / usr / local / bin`にコピーして、グローバルにアクセスできるようにします。
sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin
次に、次のコマンドを実行して、Ubuntu 18.xのOVALデータを取得します。
sudo goval-dictionary fetch-ubuntu -dbpath=/usr/share//oval.sqlite3 18
このステップでは、 `+ goval-dictionary +`をダウンロードしてインストールし、Ubuntu 18.xのOVALデータを取得しました。 次のステップでは、Vulsをダウンロードしてインストールします。
ステップ4-Vulsのダウンロードと構成
すべての依存関係がインストールされたら、ソースコードから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 / +`に戻ります:
cd /usr/share/
Vulsはその設定をTOMLファイルに保存します。TOMLファイルは「+ config.toml +」と呼ばれます。 テキストエディターを使用して作成します。
sudo nano config.toml
次の構成を入力します。
/usr/share/vuls-data/config.toml
[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share//cve.sqlite3"
[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share//oval.sqlite3"
[servers]
[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]
この構成の最初の2つのセクション( + cveDict +`および `+ ovalDict +
)は、Vulsが最後の2つの手順で作成した脆弱性データベースを指すようにします。 次のセクション( + servers +
)は、サーバー関連情報の開始をマークします。 個別のセクションでは、各サーバーに関する情報がグループ化されます。 Vulsがこの概要設定でスキャンするサーバーはローカルサーバー( + localhost +
)のみです。
Vulsは4つのスキャンモードを提供します。
-
高速モード(デフォルト):ルート権限なしでスキャンし、依存関係がなく、ターゲットサーバーで非常に軽量です。
-
高速ルートモード:ルート権限でスキャンし、アップグレードされたがまだ再起動されていないプロセスを検出できます。
-
ディープスキャンモード:高速ルートモードと同じですが、変更ログをチェックします。これにより、ターゲットサーバーの負荷が高くなる可能性があります。
-
オフラインモード:インターネットアクセスなしでマシンをスキャンし、他のモードと組み合わせて使用できます。
ファイルを保存して閉じます。
構成ファイルの有効性をテストするには、次のコマンドを実行します。
vuls configtest
次の出力が表示されます。
[Feb 27 19:36:42] INFO [localhost] Validating config...
[Feb 27 19:36:42] INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:36:42] INFO [localhost] Detecting OS of servers...
[Feb 27 19:36:42] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:36:42] INFO [localhost] Detecting OS of containers...
[Feb 27 19:36:42] INFO [localhost] Checking Scan Modes...
[Feb 27 19:36:42] INFO [localhost] Checking dependencies...
[Feb 27 19:36:42] INFO [localhost] Dependencies... Pass
[Feb 27 19:36:42] INFO [localhost] Checking sudo settings...
[Feb 27 19:36:42] INFO [localhost] sudo ... No need
[Feb 27 19:36:42] 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
[Feb 27 19:36:42] INFO [localhost] Scannable servers are below...
localhost
設定を正しく入力すると、Vulsはローカルサーバーをスキャンできることを検出しました。
ローカルサーバーをスキャンするようにVulsをインストールして構成しました。 次の手順では、ローカルスキャンを実行し、生成されたレポートを表示します。
手順5-ローカルスキャンの実行
このセクションでは、ローカルスキャンを実行し、生成された脆弱性レポートを表示します。 ここまでで、Vulsが最後の手順で正しく検出したローカルサーバーのみを構成しました。 デフォルトのスキャンモードは、明示的に指定されていない場合は高速です。
スキャンを実行するには、次のコマンドを実行します。
vuls scan
次のような出力が表示されます。
[Feb 27 19:44:12] INFO [localhost] Start scanning
[Feb 27 19:44:12] INFO [localhost] config: /usr/share//config.toml
[Feb 27 19:44:12] INFO [localhost] Validating config...
[Feb 27 19:44:12] INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:44:12] INFO [localhost] Detecting OS of servers...
[Feb 27 19:44:12] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:44:12] INFO [localhost] Detecting OS of containers...
[Feb 27 19:44:12] INFO [localhost] Checking Scan Modes...
[Feb 27 19:44:12] INFO [localhost] Detecting Platforms...
[Feb 27 19:44:12] INFO [localhost] (1/1) localhost is running on other
[Feb 27 19:44:12] INFO [localhost] Scanning vulnerabilities...
[Feb 27 19:44:12] INFO [localhost] Scanning vulnerable OS packages...
[Feb 27 19:44:12] INFO [localhost] Scanning in fast mode
One Line 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がスキャンしたマシンをリストします。
-
見つかった脆弱性:マシンリストの右側にあり、インストールされたパッケージで見つかった脆弱性を示します。
-
詳細情報:画面の左側を占め、データベースから取得した脆弱性に関する詳細情報を表示します。
-
影響を受けるパッケージ:詳細情報の右側にあり、影響を受けるパッケージのバージョン、および修正バージョンがあるかどうかを示します。
image:https://assets.digitalocean.com/articles/vuls1804/step4a.png [Alt vulsレポートビュー]
`+ ENTER`を押してカーソルをパネル内で循環させ、キーボードの矢印でナビゲートできます。
この手順では、ローカルスキャンを実行し、結果を検査しました。 次のオプションセクションでは、複数のターゲットマシンをスキャンするようにVulsを構成します。
ステップ6-(オプション)複数のターゲットマシンの構成
このセクションでは、複数のターゲットマシンをスキャンするようにVulsを構成します。 これには、ターゲットで「+ / etc / sudoers +」を設定し、ターゲットをスキャンするようにVulsを設定する必要があります。
前の手順で、ローカルマシン( + localhost +
)をスキャンするようにVulsを構成しました。 次のものがあれば、サーバーを必要な数だけ追加できます。
-
ターゲットサーバーのIP
-
ターゲットサーバーへのルートアクセス
-
ターゲットサーバー上の使用可能なアカウント(このチュートリアルでは「++」)
高速モードでのスキャンには、ターゲットサーバーで非ルートユーザーアカウントのみを使用できます。 高速ルートモードとディープモードでスキャンを有効にするには、ターゲットマシンで `+ / etc / sudoers `ファイルを編集する必要があります。 ` sudoers +`ファイルは、どのユーザーがどのコマンドを実行できるか、また指定したコマンドにパスワードが必要かどうかを制御します。
`+ visudo `はアクセスと特権アクセスのルールを定義するユーティリティであるため、 ` root `としてのみ実行できます。 ` sudoers +`の重要性のため、ファイルは警告を出さずにエラーで終了しません。
ターゲットサーバーで、「+ root」としてログインし、「+ visudo」を実行して編集用に「+ sudoers」を開きます。
visudo
この行をファイルの最後に追加します。
/ etc / sudoers
ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart
この行は、ユーザーの「+」が「 apt-get update」、「+ checkrestart」、および「+ stat 」から使用可能なすべてのコマンドをパスワードなしで実行できるように「 sudo」に指示します。
ファイルを保存して閉じます。 プロセスで構文エラーを犯した場合、 `+ visudo +`はそれを通知し、再度編集するか終了することを提案します。
Vulsは、 `+ checkrestart +`ユーティリティを使用して、更新されたが再起動が必要なパッケージをチェックします。 ターゲットサーバーに確実にインストールさせるには、非ルートユーザーとしてログインし、次のコマンドを実行してインストールします。
sudo apt install debian-goodies -y
ターゲットサーバーで行う必要があるのはそれだけです。これで、ターゲットからログアウトして、最初のサーバーに再度ログインできます。
スキャン用の新しいサーバーを追加するには、 `+ config.toml `を開き、 ` [servers] +`マークの下に次の行を追加します。
/usr/share/vuls-data/config.toml
[servers.]
host = ""
port = "22"
user = ""
keyPath = ""
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"
上記の行は、新しいサーバーを追加するためのテンプレートとして機能します。 ``を目的の名前に、 ``をターゲットサーバーのIPに、 ``をユーザー名に、 ``をRSAキーへのパスに置き換えてください。 VulsはSSHパスワード認証をサポートしていないため、「+ keyPath +」を指定する必要があります。
ファイルを保存して閉じます。
次に、追加したターゲットサーバーごとに、ローカルマシンのRSAキーを確認します。 これを実現するには、次のように適切なキーを使用して最初のサーバーからターゲットサーバーにログインします。
ssh @ -i
接続を続行するかどうかを尋ねられたら、「+ yes 」と入力し、「 CTRL + D +」を押してログアウトします。
キーファイルのアクセス許可が開きすぎているというエラーが発生した場合は、次のコマンドを実行してそれらを「600」に設定します。
chmod 600
権限を「600」に設定すると、所有者だけがキーファイルを読み書きできます。
新しい構成の有効性を確認するには、次のコマンドを実行します。
vuls configtest
このコマンドからの出力はありません。 エラーがある場合は、チュートリアルの設定に対して `+ config.toml +`を確認してください。
この手順では、Vuls構成にターゲットサーバーを追加し、スキャン対象としてマークします。 次のセクションでは、レポートを定期的にスキャンし、構成済みのSlackワークスペースにレポートを送信するようにVulsを構成します。
ステップ7-定期的なスキャンとSlackへのレポートの構成
このセクションでは、レポートをSlackに送信するようにVulsを設定し、定期的にVulsスキャンを実行するための `+ cron +`ジョブを作成します。
Slack統合を使用するには、ワークスペースのSlackに着信Webhookが必要です。 着信_webhooks_は、アプリケーションが他のアプリケーションにリアルタイム情報を提供する簡単な方法です。 この場合、Vulsを設定してSlackチャンネルにレポートします。
Webhookを作成したことがない場合は、まずワークスペース用のアプリを作成する必要があります。 そのためには、まずSlackにログインし、https://api.slack.com/apps?new_app = 1 [アプリ作成ページ]に移動します。 認識できる名前を選択し、目的のワークスペースを選択して、[アプリの作成]をクリックします。
新しいアプリの設定ページにリダイレクトされます。 左側のナビゲーションバーで[* Incoming Webhooks *]をクリックします。
image:https://assets.digitalocean.com/articles/vuls1804/step6a.png [Alt左ナビゲーションバー「着信webhook」]
タイトルの横にあるスイッチボタンを有効にすることにより、Webhookを有効にします* Activate Incoming Webhooks *。
image:https://assets.digitalocean.com/articles/vuls1804/step6b.png [着信Webフックを有効化]
ページのさらに下の新しいセクションが明らかになります。 下にスクロールして、[新しいWebhookをワークスペースに追加]ボタンをクリックします。 次のページで、レポートの送信先となるチャンネルを選択し、*承認*をクリックします。
ウェブフックの設定ページにリダイレクトされ、新しいウェブフックが表にリストされます。 [コピー]をクリックしてクリップボードにコピーし、後で使用できるようにメモします。
次に、編集のために `+ config.toml +`を開きます。
sudo nano config.toml
次の行を追加します。
/usr/share/vuls-data/config.toml
[slack]
hookURL = ""
channel = "#"
authUser = ""
#notifyUsers = ["@username"]
``を前にメモしたWebhook URLに、 ``をWebフックを作成したユーザーのユーザー名に、 `++`を目的のチャンネルの名前に置き換えます。 ファイルを保存して閉じます。
統合をテストするには、次のように `+ vuls report +`を実行してレポートを生成できます:
sudo vuls report -to-slack
Vulsが実行され、正常に終了するまでに少し時間がかかります。 エラーが表示された場合は、前の行に対して入力した内容を確認してください。
Slackアプリをチェックして、Vulsがレポートを正常に送信したことを確認できます。
image:https://assets.digitalocean.com/articles/vuls1804/step6c.png [Slack投稿レポートのAltヘッダー]
レポートを設定したら、スケジュールスキャンを設定します。 `+ cron `は、すべてのUbuntuマシンにある時間ベースのジョブスケジューラです。 コマンドを実行するタイミングを正確な構文で定義する ` crontab `ファイルを介して設定されます。 編集を容易にするために、エディターで現在の「 crontab 」ファイルを開く「 crontab +」ユーティリティを使用します。
次のコマンドを実行して、現在の `+ crontab +`ファイルを開きます。
crontab -e
プロンプトが表示されたら、リストから好みのテキストエディターを選択します。
ファイルの最後に次の行を追加します。
0 0 * * * vuls scan -config=/usr/share//config.toml; vuls report -config=/usr/share//config.toml > /dev/null 2>&1
上記の行は、毎日正午に特定の設定で「+ vuls scan 」と「 vuls report 」を実行するように「 cron 」に指示します(「 cron +」構文では「+0 0 * * * +」と表記)。
ファイルを保存して閉じます。
このステップでは、VulsをSlackワークスペースに接続し、毎日正午にVulsスキャンとレポートを実行するように「+ cron +」を設定しました。
結論
これで、Ubuntu 18.04サーバーで自動スキャンとレポートを使用してVulsを正常にセットアップできました。 その他のレポートオプションとトラブルシューティングについては、https://vuls.io/docs/en/abstract.html [Vuls documentation]をご覧ください。
Vulsを使用すると、実稼働環境の脆弱性評価がよりシームレスになります。 `+ cron +`を設定する代わりに、https://www.digitalocean.com/community/tutorials/an-introduction-to-continuous-integration-delivery-and-deploymentでVulsを使用することもできます[スキャンは軽量であり、必要に応じて実行できるため、継続的な展開]ワークフロー。 Vulsでhttps://www.digitalocean.com/docs/networking/firewalls/[firewall]を実装して、アクセスを制限し、ルートアクセスの必要性を減らすことも検討できます。