Das CVE Binary Tool ist ein kostenloses Open-Source-Tool, das Ihnen dabei hilft, bekannte Schwachstellen in Software zu finden. Dabei werden Daten aus der Liste der Common Vulnerabilities and Exposures (CVEs) der National Vulnerability Database (NVD) sowie bekannte Schwachstellendaten von Redhat, Open Source, verwendet Vulnerability Database (OSV), Gitlab Advisory Database (GAD) und Curl.
Das CVE Binary Tool verwendet die NVD-API, ist jedoch nicht vom NVD unterstützt oder zertifiziert.
Das Tool verfügt über zwei Hauptbetriebsmodi:
Ein Binärscanner, mit dem Sie feststellen können, welche Pakete möglicherweise Teil einer Software waren. Es gibt 367 Steine. Unser anfänglicher Fokus lag auf gängigen, anfälligen Open-Source-Komponenten wie openssl, libpng, libxml2 und expat.
Tools zum Scannen bekannter Komponentenlisten in verschiedenen Formaten, einschließlich .csv, mehreren Paketlisten der Linux-Distribution, sprachspezifischen Paketscannern und mehreren Software Bill of Materials (SBOM)-Formaten.
Es soll als Teil Ihres kontinuierlichen Integrationssystems verwendet werden, um regelmäßige Schwachstellenscans zu ermöglichen und Sie frühzeitig über bekannte Probleme in Ihrer Lieferkette zu informieren. Es kann auch zur automatischen Erkennung von Komponenten und zur Erstellung von SBOMs verwendet werden.
Was macht das CVE Binary Tool, wenn es ausgeführt wird:
Laden Sie CVE-Daten herunter (von NVD, Redhat, OSV, Gitlab und Curl).
Dies geschieht standardmäßig einmal am Tag, nicht jedes Mal, wenn ein Scan ausgeführt wird.
Beim ersten Start kann das Herunterladen aller Daten einige Zeit dauern.
Erstellen/lesen Sie eine Komponentenliste. Es gibt zwei Betriebsarten:
Erstellt eine Komponentenliste (einschließlich Versionen) mithilfe einer Kombination aus binären Prüfprogrammen und Sprachkomponentenlisten (z. B. „requirements.txt“ von Python).
SBOM lesen (verwenden Sie eine vorhandene Komponentenliste in einem standardisierten Software-Stücklistenformat.)
Erstellen Sie eine CVE-Liste
Dadurch werden alle gefundenen oder gelesenen Komponenten aus einer vorhandenen Stückliste durchsucht und alle damit verbundenen bekannten Probleme gemeldet
Fügen Sie Triage-/zusätzliche Daten hinzu
Es gibt mehrere Optionen zum Hinzufügen von Triage/Notizen, Informationen aus früheren Berichten, um Schwachstellenänderungen im Laufe der Zeit zu verfolgen, oder bekannte Fixdaten
Erstellen Sie einen Bericht in einem oder mehreren Formaten (Konsole, JSON, CSV, HTML, PDF).
Weitere Einzelheiten finden Sie in unserer Dokumentation oder dieser Schnellstartanleitung
CVE Binary Tool Schnellstart / README
Binäre Prüfliste
Sprachspezifische Prüfer
Unterstützte Archivformate
Finden bekannter Schwachstellen mithilfe des Binärscanners
Scannen einer SBOM-Datei auf bekannte Schwachstellen
Generieren einer SBOM
Generieren eines VEX
Triagierung von Schwachstellen
Offline-Nutzung des Tools
Verwenden des CVE-Binärtools in GitHub-Aktionen
CVE Binary Tool installieren
Die beliebtesten Nutzungsoptionen
Ausgabeoptionen
Konfiguration
Automatische Erkennung von Komponenten
Zusätzliche Anforderungen
Einschränkungen
Feedback und Beiträge
Sicherheitsprobleme
Vollständige Optionsliste
Das CVE Binary Tool kann mit pip installiert werden:
pip cve-bin-tool installieren
Wenn Sie den neuesten Code aus dem cve-bin-tool github ausprobieren oder entwickeln möchten, können Sie auch pip install --user -e .
um eine lokale Kopie aus einem Verzeichnis zu installieren. In der Mitwirkendendokumentation wird ausführlicher beschrieben, wie die lokale Entwicklung eingerichtet wird.
Pip installiert die Python-Anforderungen für Sie, für einige Arten der Extraktion verwenden wir jedoch Systembibliotheken. Wenn Sie Schwierigkeiten beim Extrahieren von Dateien haben, können Sie einen Blick auf unsere zusätzlichen Anforderungslisten für Linux und Windows werfen.
Bei der ersten Verwendung (und standardmäßig einmal pro Tag) lädt das Tool Schwachstellendaten aus einer Reihe bekannter Schwachstellendatenquellen herunter. Aufgrund von Zuverlässigkeitsproblemen mit NVD werden wir ab Version 3.3 standardmäßig unseren eigenen NVD-Spiegel unter https://cveb.in/ verwenden, anstatt NVD direkt zu kontaktieren. Wenn Sie Daten direkt von den NVD-Servern erhalten möchten, müssen Sie Ihren eigenen NVD_API_KEY bereitstellen, um deren API verwenden zu können.
Wenn Sie eine Version vor 3.3 verwenden, die unseren Spiegel nicht verwendet, verwenden Sie bitte einen NVD_API_KEY wie oben beschrieben.
So führen Sie den Binärscanner für ein Verzeichnis oder eine Datei aus:
cve-bin-tool <Verzeichnis/Datei>
Hinweis : Diese Option verwendet auch alle sprachspezifischen Prüfer, um bekannte Schwachstellen in Komponenten zu finden.
Standardmäßig geht das Tool davon aus, dass Sie versuchen, ein ganzes Verzeichnis zu scannen. Wenn Sie ihm jedoch eine einzelne CSV- oder JSON-Datei bereitstellen, die Abhängigkeiten auflistet, behandelt es diese als Stückliste. Sie können Stücklistendateien auch direkt mit der Option --input-file
angeben oder SBOMs mit den folgenden Anweisungen scannen.
So scannen Sie eine Software-Stücklistendatei (SBOM):
cve-bin-tool --sbom <sbom_filetype> --sbom-file <sbom_filename>
Gültige SBOM-Typen sind SPDX, CycloneDX und SWID. Beim Scannen von Produktnamen in einer SBOM-Datei wird die Groß-/Kleinschreibung nicht beachtet.
Die Anleitung zum SBOM-Scannen bietet zusätzliche Beispiele für das SBOM-Scannen.
Neben dem Scannen von SBOMs kann das CVE Binary Tool auch zum Generieren einer SBOM aus einem Scan wie folgt verwendet werden:
cve-bin-tool --sbom-type <sbom_type> --sbom-format <sbom-format> --sbom-output <sbom_filename> <andere Scanoptionen nach Bedarf>
Gültige SBOM-Typen sind SPDX und CycloneDX.
Die generierte SBOM enthält Produktnamen, Version und Lieferant (sofern verfügbar). Lizenzinformationen werden nicht bereitgestellt.
Die Anleitung zur SStücklistengenerierung bietet zusätzliche Beispiele für die SStücklistengenerierung.
Neben dem Scannen von VEX kann das CVE Binary Tool auch zum Generieren eines VEX aus einem Scan wie folgt verwendet werden:
cve-bin-tool --vex-type <vex_type> --vex-output <vex_filename> <andere Scanoptionen nach Bedarf>
Gültige VEX-Typen sind CSAF, CycloneDX und OpenVEX.
Die Anleitung zur VEX-Generierung bietet zusätzliche Beispiele für die VEX-Generierung.
Die Option --vex-file
kann verwendet werden, um beim Scannen eines Verzeichnisses zusätzliche Triage-Daten wie Anmerkungen, Kommentare usw. hinzuzufügen, sodass die Ausgabe diese Triage-Daten widerspiegelt und Sie Zeit für die erneute Triage sparen können (Verwendung: cve-bin-tool --vex-file test.json /path/to/scan
). Das unterstützte Format ist das CycloneDX-, CSAF- und OpenVEX-VEX-Format, das mit der Option --vex-output
generiert werden kann.
Typische Verwendung:
Generieren Sie eine Triage-Datei mit cve-bin-tool /path/to/scan --vex-output triage.json
Bearbeiten Sie triage.json mit Ihrem bevorzugten Texteditor, um Triage-Informationen zu den aufgeführten Schwachstellen bereitzustellen.
Verwenden Sie diese Triage-Datei für zukünftige Scans wie folgt: cve-bin-tool /path/to/scan --vex-file triage.json
Eine bessere Bedienungsanleitung finden Sie unter diesem Link.
Es sollte möglich sein, Triage-Daten über verschiedene Läufe von cve-bin-tool oder mit anderen Tools zu teilen, die das CycloneDX VEX-, OpenVEX- und CSAF-Format unterstützen. Dies wäre besonders nützlich für Teams, die verwandte Produkte oder Container scannen, Teams, die aus Compliance-Gründen mehrere Tools verwenden müssen, Unternehmen, die über eine zentrale Sicherheitsrichtliniengruppe verfügen, die Anleitungen zur Schwachstellentriage bietet, und mehr.
Durch die Angabe der Option --offline
beim Ausführen eines Scans wird sichergestellt, dass cve-bin-tool nicht versucht, die neuesten Datenbankdateien herunterzuladen oder nach einer neueren Version des Tools zu suchen.
Beachten Sie, dass Sie eine Kopie der Schwachstellendaten erhalten müssen, bevor das Tool im Offline-Modus ausgeführt werden kann. Die Offline-Anleitung enthält weitere Informationen zum Einrichten Ihrer Datenbank.
Wenn Sie cve-bin-tool als Teil Ihrer Github-Aktionspipeline integrieren möchten, können Sie die offizielle GitHub-Aktion von cve-bin-tool verwenden. Weitere Details finden Sie hier. Die GitHub-Aktion stellt Berichte auf der Registerkarte „Sicherheit“ bereit, die sowohl Open-Source-Projekten als auch GitHub-Kunden zur Verfügung steht, die für diesen Zugriff bezahlt haben.
Wir stellen auch eine GitHub-Beispielaktion zur Verfügung, wenn Sie das Tool direkt verwenden möchten. Dies kann eine gute Wahl für Teams sein, die Berichte in einem Beweismittelschrank speichern möchten oder keinen Zugriff auf die Registerkarte „Sicherheit“ von GitHub haben.
Das CVE Binary Tool bietet standardmäßig eine konsolenbasierte Ausgabe. Wenn Sie ein anderes Format angeben möchten, können Sie dieses und einen Dateinamen in der Befehlszeile mit --format
angeben. Die gültigen Formate sind CSV, JSON, JSON2, Konsole, HTML und PDF. Der Name der Ausgabedatei kann mit dem Flag --output-file
angegeben werden.
Sie können auch mehrere Ausgabeformate angeben, indem Sie Komma (',') als Trennzeichen verwenden:
cve-bin-tool file -f csv,json,json2,html -o report
Hinweis: Zwischen den Kommas (',') und den Ausgabeformaten dürfen keine Leerzeichen verwendet werden.
Die gemeldeten Schwachstellen können zusätzlich im Vulnerability Exploitability eXchange (VEX)-Format gemeldet werden, indem --vex-output
mit dem Typ angegeben wird, der mit der Befehlszeilenoption --vex-type
definiert wird. Die generierte VEX-Datei kann dann als --vex-file
zur Unterstützung eines Triage-Prozesses verwendet werden.
Wenn Sie die PDF-Unterstützung nutzen möchten, müssen Sie die reportlab
-Bibliothek separat installieren.
Wenn Sie bei der Installation von cve-bin-tool die PDF-Unterstützung verwenden möchten, können Sie dies angeben. Report Lab wird dann als Teil der cve-bin-tool-Installation installiert:
pip install cve-bin-tool[PDF]
Wenn Sie cve-bin-tool bereits installiert haben, können Sie reportlab nachträglich mit pip hinzufügen:
pip install --upgrade reportlab
Beachten Sie, dass reportlab aus der Standardinstallation des cve-bin-tools entfernt wurde, da ihm ein bekanntes CVE zugeordnet ist (CVE-2020-28463). Der cve-bin-tool-Code verwendet die empfohlenen Abhilfemaßnahmen, um zu begrenzen, welche Ressourcen zu PDFs hinzugefügt werden, sowie eine zusätzliche Eingabevalidierung. Dies ist ein etwas seltsamer CVE, da er die Kernfunktionalität von PDFs beschreibt: Externe Elemente, wie z. B. Bilder, können darin eingebettet werden, und somit könnte jeder, der eine PDF-Datei ansieht, ein externes Bild laden (ähnlich wie das Anzeigen einer Webseite auslösen kann). externe Lasten). Dafür gibt es keine inhärente „Lösung“, sondern lediglich Abhilfemaßnahmen, bei denen Benutzer der Bibliothek sicherstellen müssen, dass zum Zeitpunkt der Generierung nur erwartete Elemente zu PDFs hinzugefügt werden.
Da Benutzer möglicherweise keine Software mit einem damit verbundenen offenen, nicht reparierbaren CVE installieren möchten, haben wir uns dafür entschieden, die PDF-Unterstützung nur Benutzern zur Verfügung zu stellen, die die Bibliothek selbst installiert haben. Sobald die Bibliothek installiert ist, funktioniert die PDF-Berichtsoption.
Sie können die Option --config
verwenden, um eine Konfigurationsdatei für das Tool bereitzustellen. Sie können die in der Konfigurationsdatei angegebenen Optionen weiterhin mit Befehlszeilenargumenten überschreiben. Sehen Sie sich unsere Beispielkonfigurationsdateien in test/config an
Das CVE-Binärtool versucht, mithilfe von Binärprüfprogrammen, unterstützten Sprachkomponentenlisten und Dateiextraktionsmethoden eine automatische Erkennung von Komponenten durchzuführen. Die unterstützten Tools für die automatische Erkennung sind unten aufgeführt.
Für die Suche nach Komponenten in Binärdateien stehen folgende Prüfprogramme zur Verfügung:
Verfügbare Dame | ||||||
---|---|---|---|---|---|---|
Buchhaltungsservice | saure | apache_http_server | apcupsd | apparmor | asn1c | Assimp |
Sternchen | atftp | avahi | Axel | bash | binden | binutils |
Vogel | Bison | bluez | boinc | Botan | Bruder | Luftpolsterfolie |
Busybox | bwm_ng | bzip2 | c_ares | capnproto | ceph | Schach |
chronisch | Zibetweb | clamav | gesammelt | commons_compress | Connman | coreutils |
cpio | Kumpel | cryptsetup | Tassen | Locken | Lebensläufe | dunkelhttpd |
dav1d | davfs2 | dbus | debianutils | dhclient | dhcpcd | dhcpd |
dlt_daemon | dmidecode | dnsmasq | Docker | domotisch | dosfstools | dotnet |
Taubenschlag | Sauerstoff | dpkg | Tropfenbär | e2fsprogs | Hrsg | Elfutils |
Emacs | einschreiben | exfatprogs | exim | exiv2 | f2fs_tools | faad2 |
fastd | ffmpeg | Datei | Firefox | flac | Flüssigkeitssynth | Freiradius |
freerdp | fribidi | frr | gaffen | gcc | gdal | gdb |
gdk_pixbuf | Ghostscript | gimp | Idiot | glatt | glibc | gmp |
Gnomenschale | gnupg | Gnutls | gehen | gpgme | GPSD | Grafikmagie |
grep | grub2 | gstreamer | gupnp | gvfs | gzip | haproxy |
Harfbuzz | haserl | hdf5 | heimdal | hostapd | Hunspell | hwloc |
i2pd | Eiswurf | icu | iperf3 | ipmitool | ipsec_tools | iptables |
irssi | iucode_tool | iwd | jack2 | jacksondatabind | Janus | Jaspis |
jhead | jq | json_c | kbd | keepalived | Kerberos | kexectools |
kodi | Kubernetes | ldns | lftp | libarchive | libass | libbpg |
libcoap | libconfuse | libcurl | libdb | libde265 | libebml | libevent |
libexpat | libgcrypt | libgd | libgit2 | libheif | libikal | libidn2 |
libinput | libjpeg | libjpeg_turbo | libksba | liblas | libmatroska | libmemcached |
libmicrohttpd | libmodbus | libnss | libopenmpt | libpcap | libraw | librsvg |
librsync | libsamplerate | libseccomp | libsndfile | libsolv | libsoup | libsrtp |
libssh | libssh2 | libtasn1 | Freiheit | libtomcrypt | libupnp | libuv |
libvips | libvirt | libvncserver | libvorbis | libvpx | libxslt | Libyen |
lighttpd | linux_kernel | Linuxptp | lldpd | logrotieren | lrzip | lua |
luajit | lxc | Luchs | lz4 | mailx | mariadb | mbedtls |
mdadm | zwischengespeichert | Mikropython | Minentest | mini_httpd | Minicom | minidlna |
miniupnpc | miniupnpd | Moby | Modsicherheit | überwachen | Mücke | Bewegung |
mp4v2 | mpg123 | mpv | msmtp | mtr | mupdf | Köter |
MySQL | Nano | nasm | nbd | Fluche | Neon | Nessus |
Netatalk | Netzdaten | netkit_ftp | netpbm | Nessel | nghttp2 | Nginx |
ngircd | nmap | Knoten | ntfs_3g | ntp | ntpsec | open_iscsi |
open_vm_tools | openafs | opencv | openjpeg | openldap | opensc | öffnetsh |
openSL | openSwan | openvpn | p7zip | Pango | Patch | pcre |
pcre2 | pcsc_lite | Perl | php | picocom | Schweinchen | Pixman |
png | polarssl_fedora | Poppler | postgresql | ppp | privoxy | procps_ng |
proftpd | protobuf_c | pspp | pure_ftpd | Kitt | Python | qemu |
qpdf | qt | Quagga | Radare2 | radvd | Raubvogel | rauc |
rdesktop | Lesezeile | U/min | rsync | rsyslog | rtl_433 | rtmpdump |
runc | Rost | Samba | sane_backends | sdl | Seepferdchen | shadowsocks_libev |
schnappte | sngrep | Schnauben | sokat | sofia_sip | speex | würzen |
sqlite | Squashfs | Tintenfisch | sslh | Stellarium | Starker Schwan | stunnel |
Subversion | Sudo | Suricata | Sylpheede | syslogng | sysstat | systemd |
Teer | tcpdump | tcpreplay | Terminologie | Tesserakt | Sparsamkeit | thttpd |
Donnervogel | timescaledb | tinyproxy | tor | tpm2_tss | Traceroute | Übertragung |
Hose | ttyd | twonky_server | u_boot | udisks | ungebunden | unixodbc |
upx | util_linux | Lack | vim | vlc | vorbis_tools | vsftpd |
webkitgtk | wget | wireshark | wolfssl | wpa_supplicant | xerces | xml2 |
xscreensaver | xwayland | Yasm | Zabbix | zchunk | Zeek | zlib |
Zink | zsh | zstandard |
Alle Checker finden Sie im Checkers-Verzeichnis, ebenso wie die Anweisungen zum Hinzufügen eines neuen Checkers. Unterstützung für neue Prüfer kann über GitHub-Probleme angefordert werden.
Für die Suche nach anfälligen Komponenten in bestimmten Sprachpaketen stehen eine Reihe von Prüfprogrammen zur Verfügung.
Sprache | Unterstützte Dateien |
---|---|
Pfeil | pubspec.lock |
Gehen | Go.mod |
Java | pom.xml ; JAR-, WAR- und EAR-Archive |
JavaScript | package-lock.json , yarn.lock |
Rost | Cargo.lock |
Rubin | Gemfile.lock |
R | renv.lock |
Schnell | Package.resolved |
Python | requirements.txt , PKG-INFO , METADATA ; .whl- und .egg-Dateien |
Perl | cpanfile |
Weitere Informationen zu sprachspezifischen Prüfprogrammen finden Sie im Handbuch zum CVE Binary Tool.
Die folgenden Archivformate werden derzeit vom Auto-Extrahierer unterstützt:
Archivformat | Dateierweiterung |
---|---|
Reißverschluss | .zip, .exe, .jar, .msi, .egg, .whl, .war, .ear |
Teer | .tar, .tgz, .tar.gz, .tar.xz, .tar.bz2 |
deb | .deb, .ipk |
U/min | .rpm |
Kabine | .cab |
apk | .apk |
zst | .zst |
Pkg | .pkg |
Um den automatischen Extrahierer zu verwenden, benötigen Sie je nach Art der unterstützten Archivformate, die Sie extrahieren müssen, möglicherweise die folgenden Dienstprogramme.
Die folgenden Dienstprogramme sind erforderlich, um die vollständige Testsuite unter Linux auszuführen:
file
strings
tar
unzip
rpm2cpio
cpio
ar
cabextract
Die meisten davon sind auf vielen Linux-Systemen standardmäßig installiert, aber insbesondere cabextract
und rpm2cpio
müssen möglicherweise installiert werden.
Auf Windows-Systemen benötigen Sie möglicherweise Folgendes:
ar
7z
Expand
pdftotext
Windows hat Expand
standardmäßig installiert, aber möglicherweise müssen ar
und 7z
installiert werden. Wenn Sie unsere Testsuite ausführen oder eine zstd-komprimierte Datei scannen möchten, empfehlen wir die Installation dieses 7-zip-zstd-Zweigs von 7zip. Wir verwenden derzeit 7z
zum Extrahieren jar
, apk
, msi
, exe
und rpm
Dateien. Um ar
zu installieren, können Sie MinGW (das Binutils als Teil enthält) von hier aus installieren und die heruntergeladene .exe-Datei ausführen.
Wenn Sie bei der Installation über pip eine Fehlermeldung zum Erstellen von Bibliotheken erhalten, müssen Sie möglicherweise die Windows-Build-Tools installieren. Die Windows-Build-Tools sind kostenlos unter https://visualstudio.microsoft.com/visual-cpp-build-tools/ verfügbar.
Wenn bei der Installation von Brotlipy unter Windows ein Fehler auftritt, sollte die Installation des oben genannten Compilers das Problem beheben.
pdftotext
ist zum Ausführen von Tests erforderlich. (Benutzer von cve-bin-tool benötigen es möglicherweise nicht, Entwickler jedoch wahrscheinlich.) Der beste Ansatz zur Installation unter Windows ist die Verwendung von Conda (klicken Sie hier für weitere Anweisungen).
Sie können unsere CI-Konfiguration überprüfen, um zu sehen, welche Python-Versionen wir explizit testen.
Dieser Scanner versucht nicht, Probleme auszunutzen oder den Code detaillierter zu untersuchen. Es sucht nur nach Bibliothekssignaturen und Versionsnummern. Daher kann es nicht feststellen, ob jemand Korrekturen für eine anfällige Version zurückportiert hat, und es funktioniert nicht, wenn Bibliotheks- oder Versionsinformationen absichtlich verschleiert wurden.
Dieses Tool soll als schnell durchzuführende, leicht automatisierbare Prüfung in einer nicht schädlichen Umgebung verwendet werden, damit Entwickler auf alte Bibliotheken mit Sicherheitsproblemen aufmerksam gemacht werden können, die in ihre Binärdateien kompiliert wurden.
Das Tool garantiert nicht, dass die gemeldeten Schwachstellen tatsächlich vorhanden oder ausnutzbar sind, und es ist auch nicht in der Lage, alle vorhandenen Schwachstellen mit einer Garantie zu finden.
Benutzer können Berichten Triage-Informationen hinzufügen, um Probleme als falsch positive Ergebnisse zu markieren, anzugeben, dass das Risiko durch Konfigurations-/Nutzungsänderungen gemindert wurde usw.
Triage-Details können in anderen Projekten wiederverwendet werden, sodass beispielsweise die Triage auf einem Linux-Basis-Image auf mehrere Container angewendet werden kann, die dieses Image verwenden.
Weitere Informationen und die Verwendung von Triage-Informationen mit dem Tool finden Sie hier.
Wenn Sie die Funktionen des Binärscanners verwenden, beachten Sie, dass wir nur über eine begrenzte Anzahl von Binärprüfern verfügen (siehe Tabelle oben), sodass wir nur diese Bibliotheken erkennen können. Beiträge neuer Checker sind immer willkommen! Sie können auch eine alternative Methode zum Erkennen von Komponenten verwenden (z. B. ein Stücklistentool wie Tern) und die resultierende Liste dann als Eingabe für cve-bin-tool verwenden, um eine umfassendere Schwachstellenliste zu erhalten.
Das Tool verwendet eine Schwachstellendatenbank, um die vorhandenen Schwachstellen zu erkennen. Falls die Datenbank nicht häufig aktualisiert wird (insbesondere, wenn das Tool im Offline-Modus verwendet wird), kann das Tool keine neu entdeckten Schwachstellen erkennen. Daher wird dringend empfohlen, die Datenbank auf dem neuesten Stand zu halten.
Das Tool garantiert nicht, dass alle Schwachstellen gemeldet werden, da das Tool nur Zugriff auf eine begrenzte Anzahl öffentlich verfügbarer Schwachstellendatenbanken hat. Beiträge zur Einführung neuer Datenquellen in das Tool sind jederzeit willkommen.
Während einige Validierungsprüfungen für die Daten in der Schwachstellendatenbank durchgeführt werden, ist das Tool nicht in der Lage, die Qualität der Daten zu bestätigen oder etwaige Unstimmigkeiten zu korrigieren, wenn die Daten unvollständig oder inkonsistent sind. Dies kann beispielsweise dazu führen, dass in einigen Schwachstellenberichten der Schweregrad als UNBEKANNT angegeben wird.
Fehler und Funktionsanfragen können über GitHub-Probleme gestellt werden. Beachten Sie, dass diese Probleme nicht privat sind. Achten Sie daher bei der Bereitstellung der Ausgabe darauf, dass Sie keine Sicherheitsprobleme in anderen Produkten preisgeben.
Pull-Requests sind auch über Git willkommen.
Neue Mitwirkende sollten zunächst den Leitfaden für Mitwirkende lesen.
Leute, die bereits Erfahrung mit der Mitarbeit an Open-Source-Projekten haben, benötigen möglicherweise nicht den vollständigen Leitfaden, sollten aber dennoch die Pull-Request-Checkliste verwenden, um die Arbeit für alle einfacher zu machen.
Mitwirkende am CVE Binary Tool werden gebeten, den Verhaltenskodex der Python-Community einzuhalten. Bitte wenden Sie sich an Terri, wenn Sie Bedenken oder Fragen zu diesem Verhaltenskodex haben.
Sicherheitsprobleme mit dem Tool selbst können über https://intel.com/security an das Security Incident Response Team von Intel gemeldet werden.
Wenn Sie bei der Verwendung dieses Tools ein Sicherheitsproblem mit dem Code einer anderen Person entdecken, teilen Sie dies bitte der zuständigen Partei verantwortungsbewusst mit.
Verwendung: cve-bin-tool <directory/file to scan>
Optionen: -h, --help zeigt diese Hilfemeldung an und beendet den Vorgang -e AUSSCHLIEßEN, --exclude AUSSCHLIEßEN Durch Kommas getrennter Ausschlussverzeichnispfad -V, --version zeigt die Versionsnummer des Programms an und beendet es --disable-version-check Überspringt die Suche nach einer neuen Version --disable-validation-check Überspringt die Überprüfung von XML-Dateien anhand des Schemas --offline arbeitet im Offline-Modus --detailed CVE-Beschreibung im CSV- oder JSON-Bericht hinzufügen (keine Auswirkung auf Konsole, HTML oder PDF) CVE-Daten-Download: Argumente im Zusammenhang mit Datenquellen und Cache-Konfiguration -n {api,api2,json,json-mirror,json-nvd}, --nvd {api,api2,json,json-mirror,json-nvd} Wählen Sie die Methode zum Abrufen von CVE-Listen von NVD -u {jetzt, täglich, nie, aktuell}, --update {jetzt, täglich, nie, aktuell} Aktualisierungszeitplan für Datenquellen und Exploit-Datenbank (Standard: täglich) --nvd-api-key NVD_API_KEY Geben Sie den NVD-API-Schlüssel an (wird zur Verbesserung des NVD-Ratenlimits verwendet). Auf „Nein“ setzen, um alle Schlüssel in der Umgebung zu ignorieren. -d DISABLE_DATA_SOURCE, --disable-data-source DISABLE_DATA_SOURCE Durch Kommas getrennte Liste der zu deaktivierenden Datenquellen (CURL, EPSS, GAD, NVD, OSV, PURL2CPE, REDHAT, RSD) (Standard: NONE) --use-mirror USE_MIRROR Verwenden Sie einen Spiegel, um die Datenbank zu aktualisieren Eingang: Verzeichnis Verzeichnis zum Scannen -i INPUT_FILE, --input-file INPUT_FILE Geben Sie den Namen der Eingabedatei an -C CONFIG, --config CONFIG Konfigurationsdatei bereitstellen -L PACKAGE_LIST, --package-list PACKAGE_LIST Paketliste bereitstellen --sbom {spdx,cyclonedx,swid} Geben Sie den Typ der Software-Stückliste (sbom) an (Standard: spdx) --sbom-file SBOM_FILE Geben Sie den SBOM-Dateinamen an --vex-file VEX_FILE Geben Sie den Dateinamen „Vulnerability Exploitability Exchange“ (VEX) für die Triage-Verarbeitung an Ausgabe: -q, --quiet unterdrückt die Ausgabe -l {debug,info,warnung,fehler,kritisch}, --log {debug,info,warnung,fehler,kritisch} Protokollebene (Standard: Info) -o OUTPUT_FILE, --output-file OUTPUT_FILE Geben Sie den Namen der Ausgabedatei an (Standard: Ausgabe auf stdout) --html-theme HTML_THEME Bereitstellung eines benutzerdefinierten Themenverzeichnisses für HTML-Berichte -f {csv,json,json2,console,html,pdf}, --format {csv,json,json2,console,html,pdf} Ausgabeformat aktualisieren (Standard: Konsole) Geben Sie mehrere Ausgabeformate an, indem Sie Komma (',') als Trennzeichen verwenden Hinweis: Verwenden Sie keine Leerzeichen zwischen Komma (',') und den Ausgabeformaten. --generate-config {yaml,toml,yaml,toml,toml,yaml} Generieren Sie eine Konfigurationsdatei für das CVE-Bin-Tool in den Formaten ToML und Yaml. -c CVSS, --cvss CVSS-Mindest-CVSS-Score (als Ganzzahl im Bereich von 0 bis 10) zur Meldung (Standard: 0) -S {niedrig, mittel, hoch, kritisch}, --severity {niedrig, mittel, hoch, kritisch} Mindest-CVE-Schweregrad, der gemeldet werden muss (Standard: niedrig) --metrics Suchen Sie nach Metriken (z. B. EPSS) aus den gefundenen CVES --epss-percentile EPSS_PERCENTILE Das minimale EPSS-Perzentil des zu meldenden CVE-Bereichs liegt zwischen 0 und 100. Aktiviert automatisch „--metrics“. --epss-probability EPSS_PROBABILITY Die minimale EPSS-Wahrscheinlichkeit für CVE liegt zwischen 0 und 100 für die Meldung. Aktiviert automatisch „--metrics“. --no-0-cve-report erstellt nur einen Bericht, wenn CVEs gefunden werden -A [-], --available-fix [-] Listet verfügbare Fixes des Pakets aus der Linux-Distribution auf -b [-], --backport-fix [-] Listet zurückportierte Fixes auf, sofern diese in der Linux-Distribution verfügbar sind --affected-versions Listet Versionen des Produkts auf, die von einem bestimmten CVE betroffen sind (um Upgrades zu erleichtern) --sbom-output SBOM_OUTPUT Geben Sie den Dateinamen der zu generierenden Software-Stückliste (SBOM) an --sbom-type {spdx,cyclonedx} Geben Sie den Typ der zu generierenden Software-Stückliste (SBOM) an (Standard: spdx). --sbom-format {tag,json,yaml} Geben Sie das Format der zu generierenden Software-Stückliste (SBOM) an (Standard: Tag). Vex-Ausgabe: Argumente im Zusammenhang mit dem Vex-Ausgabedokument. --vex-ouptput VEX_OUTPUT Geben Sie den zu generierenden Vex-Dateinamen (Vulnerability Exploitability Exchange) an --vex-type {cyclonedx, csaf, openvex} Geben Sie die Art des zu generierenden Schwachstellen-Exploitability-Exchange (Vex) an (Standard: Cyclonedx). --product PRODUCT Produktname --release RELEASE Release-Version --vendor VENDOR Anbieter/Lieferant des Produkts -rr REVISION_REASON, --revision-reason REVISION_REASON Ein Grund für die Aktualisierung des Vex-Dokuments sollte in doppelten Anführungszeichen angegeben werden --filter-triage Cves basierend auf Triage-Daten aus der Vex-Datei filtern Zusammenführungsbericht: Argumente im Zusammenhang mit Zwischenberichten und zusammengeführten Berichten -a [APPEND], --append [APPEND] Speichern Sie die Ausgabe als Zwischenbericht im JSON-Format -t TAG, --tag TAG fügen ein eindeutiges Tag hinzu, um zwischen mehreren Zwischenberichten zu unterscheiden -m ZUSAMMENFÜHREN, --merge ZUSAMMENFÜHREN Durch Kommas getrennter Zwischenberichtspfad zum Zusammenführen -F FILTER, --filter FILTER Durch Kommas getrennte Tag-Zeichenfolge zum Filtern von Zwischenberichten Dame: -s ÜBERSPRINGT, --skips ÜBERSPRINGT Durch Kommas getrennte Liste der zu deaktivierenden Prüfer -r RUNS, --runs RUNS führt eine durch Kommas getrennte Liste der zu aktivierenden Prüfer aus Datenbankverwaltung: --import-json IMPORT_JSON Importieren Sie die Datenbank aus nach Jahren zerlegten JSON-Dateien --ignore-sig überprüft die PGP-Signatur nicht beim Importieren von JSON-Daten --log-signature-error Wenn die Signatur nicht übereinstimmt, wird nur der Fehler protokolliert, anstatt anzuhalten (UNSICHER) --verify PGP_PUBKEY_PATH Überprüfen Sie das PGP-Zeichen beim Importieren von JSON-Dateien --export-json EXPORT_JSON Exportieren Sie die Datenbank als nach Jahren zerlegte JSON-Dateien --pgp-sign PGP_PRIVATE_KEY_PATH Signieren Sie exportierte JSON-Dateien mit PGP --passphrase PASSPHRASE Erforderliche Passphrase zum Signieren mit PGP --export EXPORT Dateiname der Datenbank exportieren --import IMPORT Dateiname der Datenbank importieren Exploits: --exploits sucht nach Exploits aus gefundenen Dateien Veraltet: --triage-input-file TRIAGE_INPUT_FILE ersetzt durch --vex-file -x, --extract komprimierte Dateien automatisch extrahieren --report Erstellt einen Bericht, auch wenn für das jeweilige Ausgabeformat keine CVE vorhanden sind
Weitere Informationen zu all diesen Optionen finden Sie im Benutzerhandbuch des CVE Binary Tool.