結論から言うと
- 人力で脆弱性情報を収集するのは大変だよ。
- MyJVN APIを使って脆弱性情報を取得してみた。
- ほとんどこちらを丸パクリ(真似)させていただいた。
きっかけ
仕事で脆弱性情報(OS、アプリ、NW機器など諸々)とかを収集して、ちゃんと対策しないと駄目だよ〜と言う流れになった。だけど、毎日NVDやJVNやJPCERTやCISCOとかのサイトに順番にアクセスして脆弱性が出ていないか目視でチェックすると言う運用に、いろいろ違和感を覚えたので、なんとかして楽できないかと考えていたところMyJVN APIの存在を知る。
MyJVN APIとは、JVN iPediaの脆弱性情報を検索するためのAPI検索情報を与えることで脆弱性情報の一覧や詳細をXML形式で受け取ることができるらしい。ベンダID、製品名、製品ID、CVSS深刻度、発見日/更新日/発行日などからフィルタリングが出来そう。
ちなみにJVNとは「Japan Vulnerability Notes」のことで、JPCERTコーディネーションセンターっていう組織と情報処理推進機構(IPA)っていう組織が共同で運営している、ソフトウェアの放っておくとヤバイ脆弱性に関する情報を公開しているサイトらしい。
なので、そうだ「MyJVN API」を使おう!と言うことになった。
とは言えどうする?
・どこで実装する?
どうせならAWS Lambdaで。
・どこに通知する?
Rocket.Chat(社内で使っているSlack風なやつ)
・なる早で検知したいけど?
1時間おきにAPI実行して当日公開された脆弱性があれば通知とか。
早速構築しようと思ったら
既に「そのまんま」のことをやっている人がいたので、ほとんど丸パクリ(真似)させていただいた。
・MyJVN APIを利用した脆弱性情報収集
こちら
変更させてもらったところは、メールでは無くチャットに通知する様にしたことと、一時領域を使い一回通知した情報は無視する(再度通知しない)処理を入れたこと。
出来たイメージ
結果
多分いろいろ楽になったと思う。
メンバー同士のコミュニケーションがうまれた。(個人の見解?などをコメントしてくれる)
みんな敬遠しがちだった脆弱性対応に若干の改善がみられた。
でもこれは脆弱性の把握〜対策までの運用プロセスの中で、あくまでも最初の段階。