vuls
go-cpe-dictionary
VulsDay 2

go-cpe-dictionaryを見てみよう

まずは見てみよう

$ sqlite3 cpe-dbで中身を見てみる

  • cpesテーブルしかなかった
    • name, name_cpe23 は、CPE名
      • cpe:/a:wordpress:wordpress:4.8.1など
    • title は対象CPE名の名前っぽい
      • WordPress 4.8.1など

WordPress4.8.1であれば、以下のようなエントリがある。

118785|2017-10-04 13:17:43.058191568+09:00|2017-10-04 13:17:43.058191568+09:00||cpe:/a:wordpress:wordpress:4.8.1|cpe:2.3:a:wordpress:wordpress:4.8.1:*:*:*:*:*:*:*|WordPress 4.8.1|

何に使えるの?

CPE名の検索?
Vulsのconfig.tomlに記載することで、検知が可能になる。

sqlite> select name from cpes where title like "%WordPress%4.8.1%";
cpe:/a:wordpress:wordpress:4.8.1
sqlite> select name from cpes where title like "%YAMAHA%rtx1200%";
cpe:/o:yahama:rtx1200:10.01.08
cpe:/o:yahama:rtx1200:10.01.11
cpe:/o:yahama:rtx1200:10.01.16
cpe:/o:yahama:rtx1200:10.01.22
cpe:/o:yahama:rtx1200:10.01.24
cpe:/o:yahama:rtx1200:10.01.29
cpe:/o:yamaha:rtx1200:10.01.08
cpe:/o:yamaha:rtx1200:10.01.11
cpe:/o:yamaha:rtx1200:10.01.16
cpe:/o:yamaha:rtx1200:10.01.22
cpe:/o:yamaha:rtx1200:10.01.24
cpe:/o:yamaha:rtx1200:10.01.29
sqlite> 

終わりに

CPE名は、すべてのバージョンが含まれているわけではないようです。

  • 脆弱性があったバージョンが登録されているようだ
  • 最新版のバージョンは、登録されていない(ひとつ前の物がある)
  • 物によっては、登録すらない

CPEは物の定義をするだけなので、これだけで何かができるわけではありませんが、アップデート情報追跡の追加情報とはなりえると思われます。