• No results found

cve-search - a free software to collect, search and analyse common vulnerabilities and exposures in software

N/A
N/A
Protected

Academic year: 2021

Share "cve-search - a free software to collect, search and analyse common vulnerabilities and exposures in software"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

cve-search - a free software to collect, search and analyse

common vulnerabilities and exposures in software

Alexandre Dulaunoy and Pieter-Jan Moreels

BruCON 0x07 9th October 2015

(2)

What we were looking for?

• Offline local search of common vulnerabilities and exposures

◦ →Do you really want to search NIST (based in US) for your current vulnerable software...

• Fast-lookup of vulnerabilities (e.g. live evaluation of network traffic for vulnerable software).

• Allowlocalized classification of vulnerabilities (e.g. classify software following your exposure).

• Flexibledata structure (e.g. NIST/NVD is not the only source).

• Allowing the use of Unix-like tools to process the vulnerabilities.

• Build new tools based on local database of software and hardware vulnerabilities.

(3)

History of cve-search

• Wim Remes started with a simple script to read CVE and import it in MongoDB.

• In late 2012, Alexandre Dulaunoy improved the back-end of cve-search and associated tools.

• In 2014, Pieter-Jan Moreels improved the various Web interface to make them usable.

• Today, Alexandre and Pieter-Jan are lead and welcome all additional contributions.

(4)

A functional overview of cve-search (populating

databases)

db mgmt.py db mgmt cpe dictionnary.py

db updater.py

db fulltext.py

fetch NVD/CVE from NIST

fetch CPE from NIST

index n last new CVE MongoDB

cve cpe ranking info Whoosh index Redis cache 4 of 23

(5)

Data sources imported and used by cve-search

NIST NVD

◦ Common Vulnerabilities and Exposure (CVE), Common Platform Enumeration (CPE), Official Vendor Statements, Common Weakness Enumeration (CWE), Common Attack Pattern Enumeration and Classification (CAPEC), NIST MITRE cross-reference assignment. • Exploitation reference from D2 Elliot Web Exploitation Framework

(D2SEC).

• Microsoft Bulletin (Security Vulnerabilities and Bulletin).

• vFeed1 additional cross-references from Toolswatch.

1https://github.com/toolswatch/vFeed 5 of 23

(6)

A functional overview of cve-search (tools)

MongoDB cve cpe ranking info Whoosh index

search.py / search fulltext.py dump last.py search xmpp.py index.py / minimal-web.py search fulltext.py search irc.py search cpe.py cve doc.py DB tools db blacklist.py db cpe browser.py db fulltext.py db mgmt *.py db notification.py db ranking.py db updater.py db whitelist.py 6 of 23

(7)

cve-search starting up...

Import and update of the CVE/NVD and CPE database:

1 % p y t h o n 3 . 3 d b u p d a t e r . py −v −i

Search CVE of a specific vendor (via CPE):

1 % p y t h o n 3 . 3 s e a r c h . py −p j o o m l a : 2 . . . 3 CVE−2012−5827 4 CVE−2012−6503 5 CVE−2012−6514 6 CVE−2013−1453 7 CVE−2013−1454 8 CVE−2013−1455 7 of 23

(8)

cve-search simple query and JSON output

1 s e a r c h . py −c CVE−2013−1455 −n 2 {” M o d i f i e d ” : ”2013−02−13T13 : 0 1 : 4 5 . 3 5 3−0 5 : 0 0 ” , ” P u b l i s h e d ” : ”2013−02−12T20 : 5 5 : 0 5 . 3 8 7−0 5 : 0 0 ” , ” i d ” : {” $ o i d ” : ” 514 c c e 0 d b 2 6 1 0 2 1 3 4 f a 3 f 2 1 1 ”}, ” c v s s ” : ” 5 . 0 ” , ” i d ” : ”CVE −2013−1455 ” , ” r e f e r e n c e s ” : [ ” h t t p : / / x f o r c e . i s s . n e t / x f o r c e / x f d b /81926 ” , ” h t t p : / / d e v e l o p e r . j o o m l a . o r g / s e c u r i t y / news /549−20130202−c o r e−i n f o r m a t i o n−d i s c l o s u r e . h t m l ” ] , ” summary ” : ” J o o m l a ! 3 . 0 . x t h r o u g h 3 . 0 . 2 a l l o w s a t t a c k e r s t o o b t a i n s e n s i t i v e i n f o r m a t i o n v i a u n s p e c i f i e d v e c t o r s r e l a t e d t o an \” U n d e f i n e d v a r i a b l e .\” ” , ” v u l n e r a b l e c o n f i g u r a t i o n ” : [ ” J o o m l a ! 3 . 0 . 0 ” , ” J o o m l a ! 3 . 0 . 1 ” ]}

Without CPE name lookup:

1 ” v u l n e r a b l e c o n f i g u r a t i o n ” : [ ” c p e : / a : j o o m l a : j o o m l a % 2 1 : 3 . 0 . 0 ” , ” c p e : / a : j o o m l a : j o o m l a % 2 1 : 3 . 0 . 1 ” ]} 8 of 23

(9)

CPE - an overview

1 c p e : /{p a r t}:{v e n d o r}:{p r o d u c t}:{v e r s i o n}:{u p d a t e}:{ e d i t i o n}:{l a n g u a g e} part name o Operating System a Application h Hardware

An empty part defines any element. CPE are updated at a regular interval by NIST but it happens that CPE dictionnary are updated afterwards. cve-search supports version 2.2 and 2.3 of the CPE format.

(10)

Which are the top vendors using the word ”unknown”?

1 s e a r c h f u l l t e x t . py −q unknown −f | j q −r ’ . | .

v u l n e r a b l e c o n f i g u r a t i o n [ 0 ] ’ | c u t −f 3 −d : | s o r t |

u n i q −c | s o r t −n r | h e a d −10

Count CPE vendor name

1145 oracle 367 sun 327 hp 208 google 192 ibm 113 mozilla 102 microsoft 98 adobe 76 apple 68 linux 10 of 23

(11)

Which are the top products using the word

”unknown”?

1 s e a r c h f u l l t e x t . py −q unknown −f | j q −r ’ . | .

v u l n e r a b l e c o n f i g u r a t i o n [ 0 ] ’ | c u t −f 3 , 4 −d : | s o r t |

u n i q −c | s o r t −n r | h e a d −10

Count CPE vendor/product name

191 oracle:database server 189 google:chrome 115 oracle:e-business suite 111 sun:jre 101 mozilla:firefox 99 oracle:fusion middleware 95 oracle:application server 80 sun:solaris 68 linux:linux kernel 61 sun:sunos 11 of 23

(12)

oracle:java versus sun:jre

1 s e a r c h . py −p o r a c l e : j a v a −o j s o n | j q −r ’ . c v s s ’ |

R s c r i p t −e ’ summary ( a s . n u m e r i c (r e a d. t a b l e ( f i l e ( ” s t d i n ” ) ) [ , 1 ] ) ) ’

2

3 Min . 1 s t Qu . Median Mean 3 r d Qu . Max . 4 1 . 8 0 7 . 6 0 1 0 . 0 0 8 . 4 5 1 0 . 0 0 1 0 . 0 0 5

6 s e a r c h . py −p s u n : j r e −o j s o n | j q −r ’ . c v s s ’ | R s c r i p t −

e ’ summary ( a s . n u m e r i c (r e a d. t a b l e ( f i l e ( ” s t d i n ” ) ) [ , 1 ] ) ) ’ 7

8 Min . 1 s t Qu . Median Mean 3 r d Qu . Max . 9 0 . 0 0 0 5 . 0 0 0 7 . 5 0 0 7 . 3 7 6 1 0 . 0 0 0 1 0 . 0 0 0

(13)

Ranking of vulnerabilities

1 d b r a n k i n g . py −c s a p : −g a c c o u n t i n g −r 3 2 s e a r c h . py −c CVE−2012−4341 −o j s o n −r

3 . . . ” c v s s ” : ” 1 0 . 0 ” , ” i d ” : ”CVE−2012−4341 ” , ” r a n k i n g ” : [ [{” a c c o u n t i n g ” : 3}] ] . . .

• Ranking is a simple and flexible approach based on CPE value.

◦ An organisation or a dept (-g) and an integer value is set when a CPE hits.

If you are a CSIRT or a local ICT team, you can use your own

tagging to weight the critical software/vendor in your constituency.

(14)

Ranking helping for internal publishing of

vulnerabilities

dump last.py can be used to generate an overview of the

current/recent vulnerabilities in your organization. You can limit the result to the ranked software to avoid non-related software

vulnerabilities.

1 d u m p l a s t . py −r −l 100 −f h t m l 2 d u m p l a s t . py −r −l 100 −f atom

(15)

search fulltext.py -g -s

(16)

Visualization using the browser (index.py)

(17)

Optimizing search results - Web interface

github.com/cve-search/cve-search-mt (management tools) 17 of 23

(18)

Simple ReST API (minimal-web.py)

1 c u r l h t t p s : / / c v e . c i r c l . l u / a p i / l a s t

• API returns JSON data

◦ Browse vendors (/api/browse).

◦ Find products associated to a vendor (/api/browse/microsoft). ◦ Find CVEs for a specific product (/api/search/microsoft/xbox 360). ◦ Get CVE detailed information including CAPEC and CWE

(/api/cve/CVE-2015-0001). ◦ Recent CVEs (/api/last).

• Public version running on https://cve.circl.lu/.

(19)

Can cve-search be used by bad guys?

• If you know that a system is vulnerable, you have two options:

◦ If you are a good guy, you inform the system owner to fix the vulnerability.

◦ If you are a bad guy2, you abuse your position and compromise the vulnerable system.

cve-search could help both guys. Don’t forget the freedom 0 of

free software The freedom to run the program, for any purpose.

2http://www.foo.be/torinj/ 19 of 23

(20)

How can you help?

• Looking for open data source of software vulnerabilities to integrate into cve-search.

◦ Software or hardware vendors who provide a new open data source are elligible for 1Kg of Belgian chocolade or a pack of 6 Orval beers.

• Dataset of cve-search ranking can be shared with localized information (e.g. per country/region/sector).

• Pushing vendors to release their vulnerability information in an open way.

• Asking vendors to support CPE naming convention (e.g. openssl versus libssl in Debian).

Fork it, abuse it and then send pull request

github.com/adulau/cve-search (stable) github.com/pidgeyl/cve-search (unstable) 20 of 23

(21)

Roadmap and future

• Add vulnerabilities data sources from software and hardware vendors.

• Improve data structure and back-end to reduce code size.

• Expand cve-search to include vulnerabilities without CVE assignment.

• Improve documentationand external tools relying on cve-search.

(22)

Software using CVE-Search

CVE-Portal

CVE Notification Portal

https://github.com/CIRCL/cve-portal

CVE-Scan

Extract vunerabilities in systems from NMAP scans https://github.com/NorthernSec/cve-scan

NorthernSec Vulnerability-Management

Vulnerability management tool

https://github.com/NorthernSec/Vulnerability-management (Still under development)

(23)

Contact Details

Alexandre Dulaunoy

@adulau [email protected]

Pieter-Jan Moreels

@PidgeyL @NorthernSec [email protected] 23 of 23

References

Related documents

In ‘n neutedop kan gesê word dat hierdie studie getoon het daar beslis baie meer gedoen moet word om nie net die skryfvaardighede van milieu-geremde leerders by

Meanwhile, due to the positive correlation between ability and preference for higher quality schools, the group of stu- dents most likely to leave public schools for private schools

London Business School, Oxford University, Penn State University, Pompeu Fabra University, Michigan State University, Bocconi University, University of Amsterdam, University

Once teachers have identified the content- based and creation-based apps, teachers should use backwards planning (Jones, Vermette, & Jones, 2009; McDonald, 1992)

Hence, the importance of the current study to identify the effects of core self- evaluations, and career competencies in subjective well-being, and to identify

When rhetorical situations in writing centers involve multilingual individuals as writers or as colleagues, they may invite Generation 1.5 writing consultants or

All but two jurisdictions require 1 year of post-doc supervised training A workgroup developed by APA to follow-up the APA Commission on Education and Training Leading to

MULTI-SCALE URBAN LAND COVER EXTRACTION BASED ON OBJECT ORIENTED ANALYSIS