Help us understand the problem. What is going on with this article?

VulsのログをCSVにしてExcelで可視化する

More than 3 years have passed since last update.

この記事は、Vuls Advent Calendar 2016の3日目の記事です。

はじめに

システムセキュリティ監査や社内CSIRT体制を構築している、またマネージドサービスとして顧客のシステムを預かっている場合、システムに存在する脆弱性のチェック状況について定期的に報告する場合があります。
そのような場合データの閲覧者は社外もしくは自部門外の組織となる場合があり、運用しているシステム内に構築したVulsの結果データ閲覧の仕組みへのアクセスが難しいことがあります。

そのため今回はVulsが出力したJSONデータをCSVに変換し、データの受け渡しがしやすく導入が容易なEXCELでレポートを作成してみます。

Vuls JSON→CSV化

「vuls scan」のあと、「vuls report -format-json」を実行するとjson形式でログを出力します。このデータを元にCSVファイルを作成するツールを作成しました。

GitHub:https://github.com/usiusi360/vuls-log-converter

インストール

事前にnode.jsとnpmをインストールしておいてください。

$ npm i -g vuls-log-converter

尚、node.jsはEPELにあるものはバージョンが古いので動きません。公式にあるLTS版を使ってください。

変換実行

「-i」でVulsが出力したJSONファイルが入っているフォルダを指定し、「-o」で出力先のファイルを指定します。入力元にフォルダを指定すると中に入っているJSONファイルを全て変換し、一つのCSVファイルに出力します。

$ vulslogconv -t csv -i /opt/vuls/results/current/ -o ./output.csv
$ cat ./output.csv
"ScannedAt","ServerName","Family","Release","Container_Name","Platform_Name","CveID","Packages_Name","NVD_Score","NVD_Severity","NVD_AcessVector","NVD_AccessComplexity","NVD_Authentication","NVD_ConfidentialityImpact","NVD_IntegrityImpact","NVD_AvailabilityImpact","NVD_CweID","JVN_Score","JVN_Severity","JVN_AcessVector","JVN_AccessComplexity","JVN_Authentication","JVN_ConfidentialityImpact","JVN_IntegrityImpact","JVN_AvailabilityImpact","JVN_Title","JVN_ID"
"2016/10/29 15:32:56","localhost","centos","7.0.1406","centos7.0.1406","other","CVE-2014-7169","bash",10,"High",10,"LOW","NONE","COMPLETE","COMPLETE","COMPLETE","CWE-78",10,"High","NETWORK","LOW","NONE","COMPLETE","COMPLETE","COMPLETE","GNU bash におけるファイルに書き込まれる脆弱性","JVNDB-2014-004399"
"2016/10/29 15:32:56","localhost","centos","7.0.1406","centos7.0.1406","other","CVE-2015-0235","glib2",10,"High",10,"LOW","NONE","COMPLETE","COMPLETE","COMPLETE","CWE-119",10,"High","NETWORK","LOW","NONE","COMPLETE","COMPLETE","COMPLETE","glibc ライブラリにバッファオーバーフローの脆弱性","JVNDB-2015-001251"

ExcelでCSV取り込み→レポート作成

変換が完了したCSVファイルをEXCELに取り込んでレポートを作成します。ピボットテーブルやグラフを使って分かりやすいように整形できます。データ取り込み用のシートのデータを入れ替えてピボットテーブルやグラフの更新を行うだけで、毎月作り変えられるようにしておくと良いでしょう。

image

さいごに

今回は比較的システム規模が小さい環境を想定して、EXCELでレポートを作成しました。次回はある程度データの多い環境を想定して、ElasticSearchを使ってダッシュボードを作成してみたいと思います。

future
ITを武器とした課題解決型のコンサルティングサービスを提供します
http://future-architect.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away