有償の脆弱性データベース「VulDB」調査その1


> AdventCalendarドリブンで普段調査してくてもできていなかったことを調べてメモっていくシリーズ。
2017年12月時点でのVulsは、インターネット上に公開されているNVD, JVN, OVALの脆弱性データベースを利用している。これらの脆弱性データベースは、対応しているアプリケーションなどの種類が多ければ多いほど、脆弱性情報の掲載が早ければ早いほどVulsにとっては有益であり、具体的には
検知精度が向上(CPENameを使った脆弱性情報の検索時)する
レポートに表示する情報がリッチになる
という利点がある。

[11日目](https://qiita.com/kotakanbe@github/items/69f317883e81d1be983c), [13日目](https://qiita.com/kotakanbe@github/items/4bad8b3f560830cf03d1)ではvFeedという有償の脆弱性DBを調査したが、今回はVulDBという有償脆弱性データベースがあるという情報を入手したので、調べた結果をメモ代わりに書いておく。

# VulDBとは
https://vuldb.com/
**[VulnDB](https://vulndb.cyberriskanalytics.com/)**ではないので注意。ややこしや。

> Number 1 vulnerability database worldwide with more than 109000 entries available. Our specialists work with the crowd-based community to document the latest vulnerabilities on a daily basis since 1970. Besides technical details there are additional threat intelligence information like current risk levels and exploit price forecasts provided.

109,000以上の脆弱性情報を持つナンバーワン脆弱性データベース。
crowd-basedでドキュメントを追加していくスタイル。（脆弱性のページにeditってボタンがあって押すと情報を編集できる）current risk levelsと、exploit price forecastsが特徴のようだ。（vFeedにはこの情報はなかったね）

## current risk levelって何よ？

TempScoreのことだろう。

## exploit price forecastって何よ？

[公式のドキュメント](https://vuldb.com/?doc.exploitprices)
> Every entry provides an exploit price calculation. These price estimations are calculated prices based on mathematical algorithm. This algorithm got developed by our specialists over the years by observing the exploit market structure and exchange behavior of involved actors. It allows the prediction of generic prices by considering multiple technical aspects of the affected vulnerability. The more technical details are available the higher the accuracy of the reproducable approximation.

>すべてのエントリが悪用価格計算を提供します。これらの価格見積もりは数学的アルゴリズムに基づいて計算された価格です。このアルゴリズムは、関係するアクターのエクスプロリット市場構造と交換行動を観察することにより、長年にわたり当社の専門家によって開発されました。これにより、影響を受ける脆弱性の複数の技術的側面を考慮して、一般的な価格を予測することができます。より技術的な詳細が利用可能であるほど、再現可能な近似の精度は高くなる。

0-day pricesとToday pricesの２つがあるようだ。0-day pricesはアドバイザリやパッチがまだない時点での値段なので殆どのケースでは最高値となる。Today pricesは現時点の値。

0-day prices 
>The prices are shown as 0-day prices and today prices. An 0-day is the moment when the issue is not disclosed in any way. This means no public information like an advisory or patch is available. At this point the prices are in most cases the highest.

Today Prices
>Over time an exploit loses its value. This applies to a generic progress of time. But special events might enforcde this price loss. This includes the public disclosure within an advisory, the availability of an alternative exploit or the release of a countermeasure. The current price is shown as today price.

[EXPLOIT PRICING　ANALYSIS OF THE MARKET IN DIGITAL WEAPONS](https://www.scip.ch/en/?labs.20161013) にExploitの値段付けの詳細が書かれている。

# 値段は？

- 一日 50API までは無料
- それ以上は、[問合せ](https://vuldb.com/?doc.api)

>The moment you have reached the credit limit for your API access, further access is denied until the counter is reset. If you need more API credits, please contact our support team.



## VulDBの情報ソースは？

https://vuldb.com/?doc.sources

- Vendor Site
- Maling Lists
- Vulnerability Databases
- Code Repositories
- News Sites
- Market Places
- Darknet
- Internal Testing

# VulDBのCVSSスコアはNVDなどよりも低くなる傾向
https://vuldb.com/?doc.cvss

- BaseとTempScoreの情報がある
- VulDBは、NVDやIBM X-ForceとCVSSスコアが異なることがある。
    - 他のデータベースは最悪のケースでスコアを付けることが多いが、VulDBは現実的な利用を想定したスコアリング
    - たとえば、IEのバッファオーバーフローはVulDBではC:P/I:P/A:P
    - だが、もしも管理者権限でIEを使った場合は、C:C/I:C/A:Cとなる。
    - 通常、ほとんどのケースでは管理者権限でIEは利用しない。VulDBのモデレータは現実世界のシナリオでスコアリングするので、他のDBと比較してスコアが低くなる傾向。

# 脆弱性が発見されてからのイベントが見れる

![alt](https://vuldb.com/documentation/images/timeline.gif)


# 脆弱性詳細ページには、なんの情報があるの？
NVDやOVALにはない、以下の情報がある

- TempScoreが載ってる
    - CVSSスコア再計算で必要。NVDなどにはない情報。
- CVSSv3, CVSSv2が載ってる。VulDB独自のスコアと、NVDの情報が載っている。
    - VulDBのスコアはReliabilityで自信度がわかる。
- NVDではまだスコアなど詳細情報がないものも掲載してる（VulDBにはCVSSなどの情報がある）
    - https://vuldb.com/?id.110565
- Exploitingがわかる
    - Exploitがあるかないか。
- Countermeasures
    - 対策が載ってる
- Editを押すと脆弱性情報を編集できる

VulDBええやん！
というわけで次回は https://vuldb.com/?doc.api を参考にAPI叩いてみる。