
NIST CVEデータベースの新たな脆弱性とその関連製品を毎日スケジュールでメール送信するための、Pythonアプリとシェルスクリプトのコレクション。
プロジェクト説明
NIST CVEデータベースの新たな脆弱性とその関連製品のxlsxスプレッドシートを毎日スケジュールでメール送信するPythonアプリとシェルスクリプトのコレクション。このスプレッドシートは、組織固有のリスクを手動で解釈するために使用できます。
ファイル: cve_manager.py
元はAntonios Atlasisが作成したPythonスクリプト - [email protected]
https://github.com/aatlasis/cve_manager
元のバージョンからの変更点:
データ操作ライブラリpandasのインポートを追加
sudo pip3 install pandas openpyxl
cveとcpeデータを結合するデータベースビューを追加
デフォルトのcpeクエリとレポートを変更し、cvssv2スコアの代わりにcvssv3ベクター文字列を含めるように変更
デフォルトのcpeクエリとレポートを変更し、公開日ASC、CVSS DESC、CPE ASCでソートするように変更
cpeのCSV出力関数を変更し、保存されるCSVごとにxlsx形式のコピーを自動保存するように変更
ファイル: email_xlsx_attach.py
Shane Lawrence作成の新しいPythonスクリプト
ローカルSMTPリレーを介してxlsxレポートをメール添付ファイルとして送信
ファイル: daily.sh
Shane Lawrence作成のbashシェルスクリプト
cronで毎日実行できるように全てを組み合わせる
cve_manager.pyの以下の使用を自動化:
新しいサーバーセットアップ:
元のPDFを以下で参照:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Pythonのセットアップ:
Python 3が必要
ついでにpip3もインストールしておきましょう
pip3 install psycopg2, openpyxl, pandas
必要なインクルード:
psycopg2 - データサイエンスライブラリ
pandas - データ操作ライブラリ(openpyxlに依存)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
PostgreSQLのセットアップ:
お使いのディストリビューション用の最新のPostgreSQLデータベースをインストールしてください。
rootとして、systemctl enable postgresql
systemctl start postgresql
次に、PostgreSQLユーザーのパスワードを以下のように設定:
sudo -u postgres psql
\l lists databases
\du lists users
CREATE USER username WITH PASSWORD 'password';
cve_managerを使用してデータベースを作成:
ユーザーには作成権限が必要です
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
cve_manager.pyを使用してスキーマを作成
ユーザーには作成権限が必要です
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
cve_managerを使用してCVEおよびCPEデータをダウンロード
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
CWEデータを手動でダウンロードして解凍
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
cve_managerを使用してNIST CVEおよびCPEデータをデータベースにインポート
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
cve_managerを使用してCWEデータをデータベースにインポート
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
サンプルレポートを実行。
この例では、脆弱性とそれらが影響を与える製品のCSVおよびxlsxを作成します。
深刻度7.0以上、2020年7月1日以降に作成または更新されたもののみ
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
xlsxレポートをメール送信
SMTPリレー、送信者、受信者、レポートディレクトリに合わせてemail_xlsx_attach.pyを修正してください。
TODO:
次のイテレーションでは、重要な製品インベントリのリストを組み込む方法を検討し、
製品インベントリ上のCPEにのみ適用されるレポートを作成するようにします。
Shane Lawrence
シニアアドバイザー、クラウドプラットフォームセキュリティ