
脆弱性スキャンから実用的なデータを作成する

VulnWhispererは脆弱性管理ツールおよびレポートアグリゲーターです。VulnWhispererは異なる脆弱性スキャナーからすべてのレポートを取得し、それぞれに一意のファイル名を持つファイルを作成し、そのデータを後でJiraと同期し、Logstashに供給します。Jiraはスキャナーが提供するデータで完全なクローズドサイクル同期を行い、Logstashはレポート内のすべての情報をインデックス化してタグ付けします(/resources/elk6/pipeline/のlogstashファイルを参照)。データはElasticSearchに送られてインデックス化され、Kibanaで既に定義されたダッシュボードを使用して視覚的かつ検索可能な形式で表示されます。
VulnWhispererはオープンソースのコミュニティ資金プロジェクトです。VulnWhispererは現在動作していますが、ドキュメントの見直しとコードレビューが予定されています。これらは今後1〜2ヶ月(2022年2月または3月を予定)のロードマップに含まれています。なお、クラウドファンディングも選択肢の一つです。VulnWhispererのセットアップ支援、新機能への関心、または商用サポート契約を必要とする方(オープンソースソリューションを導入するために商業サポート契約が必要な方向け)は、[email protected] までお問い合わせください。
サポートが必要ですか、それともチャットしたいだけですか?Slackチャンネルに参加してください。
OSパッケージの依存関係をインストール(Debianベースのディストリビューション、CentOSでは不要)
sudo apt-get install zlib1g-dev libxml2-dev libxslt1-dev
(オプション)Python仮想環境を使用してホストのPythonライブラリを汚染しないようにする
virtualenv venv (Python 2.7の仮想環境を作成します)
source venv/bin/activate (仮想環境を起動します。これ以降、pipはここで実行され、ライブラリをsudoなしでインストールできます)
deactivate (完了したら仮想環境を終了します)
Pythonライブラリの依存関係をインストール
pip install -r /path/to/VulnWhisperer/requirements.txt
cd /path/to/VulnWhisperer
python setup.py install
(オプション)プロキシを使用する場合、プロキシURLを環境変数としてPATHに追加
export HTTP_PROXY=http://example.com:8080
export HTTPS_PROXY=http://example.com:8080
これでスキャンの取得準備が整いました。(実行セクションを参照)
VulnWhispererの設定にはいくつかの手順があります:

実行するには、設定ファイルに脆弱性スキャナーの設定を記入してください。その後、コマンドラインから実行できます。
(オプションフラグ: -F -> 「派手な」ログカラーリングを提供します。手動でVulnWhispererを実行する際の理解に役立ちます)
vuln_whisperer -c configs/frameworks_example.ini -s nessus
または
vuln_whisperer -c configs/frameworks_example.ini -s qualys
セクションが指定されていない場合(例:-s nessus)、vulnwhispererは設定ファイル内でenabled=trueプロパティを持つモジュールをチェックし、それらを順次実行します。

ELKはそれ自体が一つの世界であり、プラットフォームの初心者にとっては、基本的なLinuxスキルと、デプロイされて期待通りに動作するまでに通常は多少のトラブルシューティングが必要です。各ユーザーのELK問題に対してサポートを提供することはできませんので、以下のものを含むdocker-composeを用意しました:
docker-composeでは、VulnWhispererデータが保存されるパスと設定ファイルが配置されるパスを指定する必要があります。git cloneの直後に、VulnWhisperer設定ファイル(/resources/elk6/vulnwhisperer.ini)にスキャナー設定を追加するだけで、そのまま動作します。
また、Kibanaの起動時に手動で行う必要があるKibanaダッシュボードとビジュアライゼーションのロードを、APIを通じて自動的に行います。
docker-composeの詳細については、docker-compose wikiまたはFAQをご覧ください。
現在のロードマップは以下の通りです:
これに加えて、可能な限り迅速にバグを修正することに重点を置いており、開発が遅れる可能性があります。また、PRは大歓迎です。新しい標準が実装されれば、新しいスキャナーとの互換性を追加するのは非常に簡単になります。
脆弱性標準は、最初は標準化された変数名を持つ異なるスキャナーからの情報が一致する単純な1レベルのJSONになりますが、残りの変数はそのまま維持されます。将来、すべてが実装された後、ECSやAWS脆弱性スキーマのような既存の標準に移行するかどうかを評価します。機能性を完璧よりも優先します。