前回、Vulsのコードを読む その1 全体像の把握でざっくりとscanコマンド周りのそーうコードと実行時の流れの理解を行いました。 今回は、Vulsの中で利用されている go-cve-dictionary についてソースコードを読んで、理解をしていきたいと思います。 また、今回はソースコードを確認していく中でバグを発見しプルリクを出してみましたのでプルリクの投げ方についても簡単に解説していきたいと思います。 (追記 2019/11/23) 無事プルリクがマージされました! go-cve-dictionaryの特徴 ソースコード main.go commands/ commands/fetchnvd.go 1. データベース接続 2. meta情報の取得 3. meta情報より更新が必要かどうか判断 (過去のmeta情報と比較) 4. NVDの脆弱性情報の収集、変換 5. 脆弱性情報をデータ