NAME
NIST::NVD::Query - Query the NVD database
VERSION
Version 0.10
SYNOPSIS
This module allows you to look up vulnerability data from the NVD database
use NIST::NVD::Query;
# use convert_nvdcve to generate these files from the XML dumps at
# http://nvd.nist.gov/download.cfm
my( $path_to_db, $path_to_idx_cpe ) = @ARGV;
my $q = NIST::NVD::Query->new( store => $some_store,
%args
);
# Given a Common Platform Enumeration urn, returns a list of known
# CVE IDs
my $cve_id_list = $q->cve_for_cpe( cpe => 'cpe:/a:zaal:tgt:1.0.6' );
my @entry;
foreach my $cve_id ( @$cve_id_list ){
# Given a CVE ID, returns a CVE entry
my $entry = $q->cve( cve_id => $cve_id );
push( @entry, $entry );
print $entry->{'vuln:summary'};
}
EXPORT
SUBROUTINES/METHODS
new
Required arguments:
database: path to BDB database of NVD entries
idx_cpe: path to BDB database of mappings from CPE URNs to CVE IDs
Example
my $q = NIST::NVD::Query->new( database => $path_to_db,
idx_cpe => $path_to_idx_cpe,
);
cve_for_cpe
Returns a list of CVE IDs for a given CPE URN.
Required argument
cpe: CPE URN Example:
'cpe:/a:zaal:tgt:1.0.6'
Return Value
Returns a reference to an array of CVE IDs. Example:
$cve_id_list = [
'CVE-1999-1587',
'CVE-1999-1588',
]
Example
my $cve_id_list = $q->cve_for_cpe( cpe => 'cpe:/a:zaal:tgt:1.0.6' );
cwe_for_cpe
Returns a list of CWE IDs for a given CPE URN.
Required argument
cpe: CPE URN Example:
'cpe:/a:zaal:tgt:1.0.6'
Return Value
Returns a reference to an array of CWE IDs. Example:
$cwe_id_list = [
'CWE-1999-1587',
'CWE-1999-1588',
]
Example
my $cwe_id_list = $q->cwe_for_cpe( cpe => 'cpe:/a:zaal:tgt:1.0.6' );
Required argument
cve_id: CPE URN Example:
'CVE-1999-1587'
Return Value
Returns a reference to a hash representing a CVE entry:
my $nvd_cve_entry =
{
'vuln:vulnerable-configuration' => [ ... ],
'vuln:vulnerable-software-list' => [ ... ],
'vuln:cve-id' => 'CVE-1999-1587',
'vuln:discovered-datetime' => '...',
'vuln:published-datetime' => '...',
'vuln:last-modified-datetime' => '...',
'vuln:cvss' => {...},
'vuln:cwe' => 'CWE-ID',
'vuln:references' => [ { attr => {...},
'vuln:references' => [ {...}, ... ],
'vuln:source' => '...',
} ],
'vuln:summary' => '...',
'vuln:security-protection' => '...',
'vuln:assessment_check' => { 'check0 name' => 'check0 value',
... },
'vuln:scanner', => [ { 'vuln:definition' => { 'vuln attr0 name' => 'vuln attr0 value'
... } } ],
};
cve
Returns a CVE for a given CPE URN.
cwe
Returns a CWE for a given CPE URN.
AUTHOR
C.J. Adams-Collier, <cjac at f5.com>
BUGS
Please report any bugs or feature requests to bug-nist-nvd at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=NIST-NVD. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc NIST::NVD::Query
You can also look for information at:
Common Vulnerabilities and Exposures
Common Platform Enumeration
NIST National Vulnerability Database
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
Copyright 2011, 2012 F5 Networks, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.