vuls の -diff オプションを有効にする
vuls report -lang=ja -to-localfile -format-json -ignore-unscored-cves -cvedb-path=${VULS_HOME}/cve.sqlite3 -ovaldb-path=${VULS_HOME}/oval.sqlite3 -cvss-over=7 -diff
これで *_diff.json
と言う前回との差分 jsonファイル が出力される様になる
vuls-log-converter で csv に変換
vuls の json は読み解けなかったので vuls-log-converter で csv に変換する
vuls-log-converter の導入はこちらを参照
この時 *_diff.json のみ存在するディレクトリを指定する
例) こんな感じ?
mkdir ./diff cp ./current/*_diff.json ./diff vulslogconverter -i ./diff -o ./diff/output.csv -t csv
vuls-to-redmine で一括登録
vuls-to-redmine を導入
$ git clone https://github.com/nakacya/vuls-to-redmine.git
$ chmod 755 vuls-to-redmine.pl
config を作成
$ vi hogehoge_api.conf
[API]
key=redmine_API_KEYCODE
project_id=1 <---redmine の project_id
tracker_id=1 <---redmine の tracker_id
assigned_to_id=2 <---redmine の assigned_to_id(担当者)
status_id=1 <---redmine の status_id
path=/opt/vuls/results/diff/ <--- ↑で出力した csv のパス
files=output.csv <---↑で出力した csv のファイル名
server=http://redmine_url/redmine/ <--- redmine の url
cvss=1 <---redmine の cvss出力項目のカスタムフィールドのid
method=2 <---redmine の method出力項目のカスタムフィールドのid
notfix=3 <---redmine の notfix出力項目のカスタムフィールドのid
##redmine側の準備
- [cvss]
- [method]
- [notfix]
に対応した TEXTのカスタムフィールドを作成して下さい。
vuls-to-redmine の実行
その後実行するとAPI経由でチケットを作成登録
./vuls-to-redmine.pl -c hogehoge_api.conf
出来るだけチケットを減らすために[ホスト名 パッケージ名 旧バージョン]を subject としており
同じ内容になる場合は1つのチケットの[ノート]としてPUTしています。
- CVE番号
- CWE番号
- description
欠点
なお、コマンド一つでチケット登録出来ましたがチケットの自動クローズは出来ませんので手動でクローズして下さい。
#希望
自分の能力がついてこれれば前回分と最新分の json から 新旧csv 作って以下のような対応が出来るかなぁ?
- 旧にはあるが新には無い -> 対応済み
- 旧にはないが新にはある -> 新しい脆弱性
- 旧にも新にもあるが内容が違う -> 新しい脆弱性 or 脆弱性内容が更新されたなど
これが出来ればチケットの自動クローズも出来るような気がします。