0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

有償脆弱性データベースvFeedの調査その2

Last updated at Posted at 2017-12-13

vFeedの調査その1の続きです。

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

get_certvn : retrieve information related to advisories issued by the CERT-VN

https://vfeed.io/docs/#3614
CERT/CCのリンクを取得可能。

python vfeedcli.py --method get_certvn CVE-2013-3611                                                                                                                                  Wed Dec 13 15:20:33 2017
[
  {
    "id": "VU#705004",
    "url": "http://www.kb.cert.org/vuls/id/705004"
  }
]

このCERT/CCのリンクは、NVDのデータにも存在するのでVulsではCERT/CCのリンクをレポートに表示してもよいかもしれない。
CERT/CCの情報をVulsでキャッシュしてレポートに組み込みたいけど、APIもないしファイルとしても存在しない(見つけられなかった)、残念。
http://www.kb.cert.org/vuls/

vFeedのget_severityのtopValunerableとtopAlertの意味が判明

前回のvFeed調査その1で謎だった、この2つの意味がわかった。

topAlert

  • OWASP Top 10や、CWE 2011 Top 25に該当するCWE場合にこのフラグがTrueになる

        top_category = ['CWE-929', 'CWE-930', 'CWE-931', 'CWE-932', 'CWE-933', 'CWE-934', 'CWE-935', 'CWE-936',
                        'CWE-937', 'CWE-938', 'CWE-810', 'CWE-811', 'CWE-812', 'CWE-813', 'CWE-814', 'CWE-815',
                        'CWE-816', 'CWE-817', 'CWE-818', 'CWE-819', 'CWE-864', 'CWE-865', 'CWE-691']

        """
        CWE-864 --> 2011 Top 25 - Insecure Interaction Between Components
        CWE-865 --> 2011 Top 25 - Risky Resource Management
        CWE-691 --> Insufficient Control Flow Management
        CWE-810 --> OWASP Top Ten 2010 Category A1 - Injection
        CWE-811 --> OWASP Top Ten 2010 Category A2 - Cross-Site Scripting (XSS)
        CWE-812 --> OWASP Top Ten 2010 Category A3 - Broken Authentication and Session Management
        CWE-813 --> OWASP Top Ten 2010 Category A4 - Insecure Direct Object References
        CWE-814 --> OWASP Top Ten 2010 Category A5 - Cross Site Request Forgery (CSRF)
        CWE-815 --> OWASP Top Ten 2010 Category A6 - Security Misconfiguration
        CWE-816 --> OWASP Top Ten 2010 Category A7 - Insecure Cryptographic Storage
        CWE-817 --> OWASP Top Ten 2010 Category A8 - Failure to Restrict URL Access
        CWE-818 --> OWASP Top Ten 2010 Category A9 - Insufficient Transport Layer Protection
        CWE-819 --> OWASP Top Ten 2010 Category A10 - Unvalidated Redirects and Forwards
        CWE-929 --> OWASP Top Ten 2013 Category A1 - Injection
        CWE-930 --> OWASP Top Ten 2013 Category A2 - Broken Authentication and Session Management
        CWE-931 --> OWASP Top Ten 2013 Category A3 - Cross-Site Scripting (XSS)
        CWE-932 --> OWASP Top Ten 2013 Category A4 - Insecure Direct Object References
        CWE-933 --> OWASP Top Ten 2013 Category A5 - Security Misconfiguration
        CWE-934 --> OWASP Top Ten 2013 Category A6 - Sensitive Data Exposure
        CWE-935 --> OWASP Top Ten 2013 Category A7 - Missing Function Level Access Control
        CWE-936 --> OWASP Top Ten 2013 Category A8 - Cross-Site Request Forgery (CSRF)
        CWE-937 --> OWASP Top Ten 2013 Category A9 - Using Components with Known Vulnerabilities
        CWE-938 --> OWASP Top Ten 2013 Category A10 - Unvalidated Redirects and Forwards
        """

VulsとしてはOWASP TOP 10 -2017 PDFに載ってるCWEをマークしてレポート時に表示してもいいかもな。

topVulunerable

  • base scoreと、exploitabilityと、impactが全部10のときにTrueになる
        elif cvss_data[0]["base"] == "10.0" and cvss_data[0]["exploitability"] == "10.0" and cvss_data[0][
            "impact"] == "10.0":
            self.level = "high"
            self.top_vulnerable = True

VulsとしてはExploitability, impactの値が、2017/12時点でVulsが参照する脆弱性DBである、NVD, JVN, OVALにはないので、vFeedをデータソースとすることではじめて付加できる情報。
だが、この情報を出す意味がそれほどあるのか、ユーザの意見を聞きたいところ。

あとは、この辺のExploitのあるなしが使えるかな〜。

  • Exploit-Database
    • CVE-IDとのマッピングができるのはいいなぁー
    • と思ったけど、NVDにも情報あるね。でもNVDは更新が遅いんだろうな(予想)
    <vuln:references xml:lang="en" reference_type="UNKNOWN">
      <vuln:source>EXPLOIT-DB</vuln:source>
      <vuln:reference href="https://www.exploit-db.com/exploits/41363/" xml:lang="en">41363</vuln:reference>
    </vuln:references>
python vfeedcli.py --method get_msf CVE-2010-2743                                                                                                                             [
  {
    "file": "metasploit-framework/modules/post/windows/escalate/ms10_073_kbdlayout.rb",
    "id": "ms10_073_kbdlayout.rb",
    "title": "Windows Escalate NtUserLoadKeyboardLayoutEx Privilege Escalation"
  }
]

他にはとくにvFeedで使えそうな情報はなさげかなー。

というわけでvFeed特有の情報はそれほどないので、VulsをvFeedに対応させるぜ!というモチベーションはそれほどなくなっちゃったけど、

  • Exploitの有無の情報がNVDよりも爆速
  • CVE脆弱性情報がNVDよりも爆速
  • 言語系ライブラリの掲載件数めっさ多い

なら対応してもいいかもなぁーくらいですが、このへんはやっぱりVulnDBが最強なのかなー。高いけど。

まとめ

その1, その2の二日間でvFeedの調査をしてきて、思いついたVuls改善策をメモっとくよ。

  • レポートにCERT/CCのリンク入れる
  • CWE情報(英語日本語の説明)をgo-cve-dictionaryにテーブル追加、さらにOWASP TOP 10 - 2017に対応するCWEですよって警告
  • Exploit-DBのリンクは目立たせてもよい(CVE-IDとの関連はNVDのreferencesで可能。ほかのソースでExploit-DBとCVE-IDのヒモ付ができて、NVDよりもフレッシュならそっちでやる)
  • MetasploitFWのリンクも目立たせたい。コマンドか、metasploitのDB検索すりゃできそう。

そろそろvFeed飽きてきたので、次はVulDB(VulnDBではない)の調査をする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?