CVE 바이너리 도구는 NVD(National Vulnerability Database) CVE(Common Vulnerability and Exposures) 목록의 데이터와 Redhat, Open Source의 알려진 취약성 데이터를 사용하여 소프트웨어의 알려진 취약성을 찾는 데 도움이 되는 무료 오픈 소스 도구입니다. 취약점 데이터베이스(OSV), Gitlab 자문 데이터베이스(GAD) 및 Curl.
CVE 바이너리 도구는 NVD API를 사용하지만 NVD에서 보증하거나 인증하지 않습니다.
이 도구에는 두 가지 주요 작동 모드가 있습니다.
어떤 패키지가 소프트웨어의 일부로 포함되었는지 확인하는 데 도움이 되는 바이너리 스캐너입니다. 체커는 367개입니다. 우리의 초기 초점은 openssl, libpng, libxml2 및 expat와 같은 일반적이고 취약한 오픈 소스 구성 요소에 있었습니다.
.csv, 여러 Linux 배포 패키지 목록, 언어별 패키지 스캐너 및 여러 SBOM(Software Bill of Materials) 형식을 포함한 다양한 형식의 알려진 구성 요소 목록을 검색하는 도구입니다.
이는 정기적인 취약성 검색을 활성화하고 공급망의 알려진 문제에 대한 조기 경고를 제공하기 위해 지속적인 통합 시스템의 일부로 사용되도록 고안되었습니다. 또한 구성요소를 자동 감지하고 SBOM을 생성하는 데에도 사용할 수 있습니다.
CVE 바이너리 도구가 실행될 때 수행하는 작업은 다음과 같습니다.
CVE 데이터를 다운로드하세요(NVD, Redhat, OSV, Gitlab 및 Curl에서).
이는 기본적으로 검사가 실행될 때마다 발생하는 것이 아니라 하루에 한 번 발생합니다.
처음 실행 시 모든 데이터를 다운로드하는 데 다소 시간이 걸릴 수 있습니다.
구성 요소 목록을 생성/읽습니다. 작동 모드에는 두 가지가 있습니다.
바이너리 검사기와 언어 구성 요소 목록(예: Python의 요구 사항.txt)을 조합하여 구성 요소 목록(버전 포함)을 생성합니다.
SBOM 읽기(표준화된 소프트웨어 BOM 형식의 기존 구성 요소 목록 사용)
CVE 목록 생성
기존 자재 명세서에서 찾거나 읽은 모든 구성 요소를 조회하고 이와 관련된 알려진 문제를 다시 보고합니다.
분류/추가 데이터 포함
분류/메모, 시간 경과에 따른 취약성 변화를 추적하기 위한 이전 보고서의 정보 또는 알려진 수정 데이터를 추가하기 위한 여러 옵션이 있습니다.
하나 이상의 형식(콘솔, json, csv, html, pdf)으로 보고서 생성
자세한 내용은 설명서나 이 빠른 시작 가이드를 참조하세요.
CVE 바이너리 도구 빠른 시작/README
바이너리 체커 목록
언어별 체커
지원되는 아카이브 형식
바이너리 스캐너를 사용하여 알려진 취약점 찾기
SBOM 파일에서 알려진 취약점 검사
SBOM 생성
VEX 생성
취약점 분류
오프라인으로 도구 사용
GitHub Actions에서 CVE 바이너리 도구 사용
CVE 바이너리 도구 설치
가장 인기 있는 사용 옵션
출력 옵션
구성
구성 요소 자동 감지
추가 요구사항
제한 사항
피드백 및 기여
보안 문제
풀옵션 목록
CVE 바이너리 도구는 pip를 사용하여 설치할 수 있습니다.
pip 설치 cve-bin-tool
cve-bin-tool github에서 최신 코드를 시도하거나 개발을 수행하려면 pip install --user -e .
디렉토리에서 로컬 복사본을 설치합니다. 기여자 문서에서는 로컬 개발을 설정하는 방법을 더 자세히 다루고 있습니다.
Pip은 Python 요구 사항을 설치하지만 일부 유형의 추출에는 시스템 라이브러리를 사용합니다. 파일을 추출하는 데 어려움이 있는 경우 Linux 및 Windows에 대한 추가 요구 사항 목록을 살펴보는 것이 좋습니다.
처음 사용할 때(기본적으로 하루에 한 번) 도구는 알려진 취약성 데이터 소스 세트에서 취약성 데이터를 다운로드합니다. NVD의 안정성 문제로 인해 릴리스 3.3부터 NVD에 직접 문의하는 대신 기본적으로 https://cveb.in/에서 자체 NVD 미러를 사용하게 됩니다. NVD 서버에서 직접 데이터를 가져오려면 API를 사용하기 위해 자체 NVD_API_KEY를 제공해야 합니다.
미러를 사용하지 않는 3.3 이전 릴리스를 사용하는 경우 위에서 설명한 대로 NVD_API_KEY를 사용하세요.
디렉터리나 파일에서 바이너리 스캐너를 실행하려면:
cve-bin-tool <디렉토리/파일>
참고 : 이 옵션은 언어별 검사기를 사용하여 구성 요소의 알려진 취약점을 찾습니다.
기본적으로 이 도구는 사용자가 전체 디렉터리를 스캔하려고 시도한다고 가정하지만 종속성을 나열하는 단일 .csv 또는 .json 파일을 제공하면 이를 BOM으로 처리합니다. --input-file
옵션을 사용하여 BOM 파일을 직접 지정하거나 아래 지침에 따라 SBOM을 스캔할 수도 있습니다.
소프트웨어 자재 명세서 파일(SBOM)을 스캔하려면:
cve-bin-tool --sbom <sbom_filetype> --sbom-file <sbom_filename>
유효한 SBOM 유형은 SPDX, CycloneDX 및 SWID입니다. SBOM 파일 내의 제품 이름 검색에서는 대소문자를 구분하지 않습니다.
SBOM 스캐닝 방법 가이드에서는 추가 SBOM 스캐닝 예시를 제공합니다.
SBOM을 스캔하는 것 외에도 CVE 바이너리 도구를 사용하여 다음과 같이 스캔에서 SBOM을 생성할 수 있습니다.
cve-bin-tool --sbom-type <sbom_type> --sbom-format <sbom-format> --sbom-output <sbom_filename> <필요한 기타 스캔 옵션>
유효한 SBOM 유형은 SPDX 및 CycloneDX입니다.
생성된 SBOM에는 제품 이름, 버전 및 공급업체(사용 가능한 경우)가 포함됩니다. 라이센스 정보가 제공되지 않습니다.
SBOM 생성 방법 가이드에서는 추가 SBOM 생성 예제를 제공합니다.
VEX를 스캔하는 것 외에도 CVE 바이너리 도구를 사용하여 다음과 같이 스캔에서 VEX를 생성할 수 있습니다.
cve-bin-tool --vex-type <vex_type> --vex-output <vex_filename> <필요한 경우 기타 검사 옵션>
유효한 VEX 유형은 CSAF, CycloneDX 및 OpenVEX입니다.
VEX 생성 방법 가이드에서는 추가 VEX 생성 예제를 제공합니다.
--vex-file
옵션을 사용하면 디렉토리를 스캔하는 동안 설명, 설명 등과 같은 추가 분류 데이터를 추가하여 출력에 이 분류 데이터가 반영되고 재심사 시간을 절약할 수 있습니다(사용법: cve-bin-tool --vex-file test.json /path/to/scan
). 지원되는 형식은 --vex-output
옵션을 사용하여 생성할 수 있는 CycloneDX,CSAF 및 OpenVEX VEX 형식입니다.
일반적인 사용법:
cve-bin-tool /path/to/scan --vex-output triage.json
사용하여 심사 파일 생성
나열된 취약점에 대한 분류 정보를 제공하려면 즐겨 사용하는 텍스트 편집기로 triage.json을 편집하세요.
다음과 같이 향후 스캔에 이 분류 파일을 사용하십시오: cve-bin-tool /path/to/scan --vex-file triage.json
더 나은 사용 가이드를 보려면 이 링크를 참조하세요.
다양한 cve-bin-tool 실행 또는 CycloneDX VEX, OpenVEX 및 CSAF 형식을 지원하는 다른 도구와 분류 데이터를 공유할 수 있어야 합니다. 이는 관련 제품이나 컨테이너를 검사하는 팀, 규정 준수를 위해 여러 도구를 사용해야 하는 팀, 취약성 분류에 대한 지침을 제공하는 중앙 보안 정책 그룹이 있는 회사 등에 특히 유용합니다.
스캔을 실행할 때 --offline
옵션을 지정하면 cve-bin-tool이 최신 데이터베이스 파일을 다운로드하거나 최신 버전의 도구를 확인하려고 시도하지 않습니다.
도구를 오프라인 모드에서 실행하려면 먼저 취약성 데이터의 복사본을 얻어야 합니다. 오프라인 방법 가이드에는 데이터베이스 설정 방법에 대한 자세한 정보가 포함되어 있습니다.
cve-bin-tool을 github 작업 파이프라인의 일부로 통합하려면 cve-bin-tool의 공식 GitHub Action을 사용할 수 있습니다. 자세한 내용은 여기에서 확인하세요. GitHub Action은 오픈 소스 프로젝트는 물론 해당 액세스 비용을 지불한 GitHub 고객이 사용할 수 있는 보안 탭에 대한 보고서를 제공합니다.
도구를 직접 사용하려는 경우 GitHub 작업 예제도 제공됩니다. 이는 증거물 보관함에 보고서를 저장하려는 팀이나 GitHub 보안 탭에 액세스할 수 없는 팀에게 좋은 선택일 수 있습니다.
CVE 바이너리 도구는 기본적으로 콘솔 기반 출력을 제공합니다. 다른 형식을 제공하려면 --format
사용하여 명령줄에서 이 형식과 파일 이름을 지정할 수 있습니다. 유효한 형식은 CSV, JSON, JSON2, 콘솔, HTML 및 PDF입니다. 출력 파일 이름은 --output-file
플래그를 사용하여 지정할 수 있습니다.
쉼표(',')를 구분 기호로 사용하여 여러 출력 형식을 지정할 수도 있습니다.
cve-bin-tool 파일 -f csv,json,json2,html -o 보고서
참고: 쉼표(',')와 출력 형식 사이에 공백을 사용하면 안 됩니다.
보고된 취약점은 --vex-type
명령줄 옵션을 사용하여 정의된 유형으로 --vex-output
지정하여 VEX(Vulnerability Exploitability eXchange) 형식으로 추가로 보고될 수 있습니다. 생성된 VEX 파일은 심사 프로세스를 지원하기 위해 --vex-file
로 사용될 수 있습니다.
PDF 지원을 사용하려면 reportlab
라이브러리를 별도로 설치해야 합니다.
cve-bin-tool을 설치할 때 PDF 지원을 사용하려는 경우 이를 지정할 수 있으며 Report Lab은 cve-bin-tool 설치의 일부로 설치됩니다.
pip 설치 cve-bin-tool[PDF]
cve-bin-tool을 이미 설치했다면 pip를 사용하여 나중에 reportlab을 추가할 수 있습니다.
pip 설치 --업그레이드 Reportlab
Reportlab은 알려진 CVE(CVE-2020-28463)와 연결되어 있으므로 기본 cve-bin-tool 설치에서 제외되었습니다. cve-bin-tool 코드는 권장 완화 방법을 사용하여 PDF에 추가되는 리소스와 추가 입력 유효성 검사를 제한합니다. 이는 PDF의 핵심 기능을 설명하기 때문에 다소 이상한 CVE입니다. 이미지와 같은 외부 항목이 PDF에 포함될 수 있으므로 PDF를 보는 사람은 누구나 외부 이미지를 로드할 수 있습니다(웹 페이지를 보는 방식과 유사). 외부 하중). 이에 대한 고유한 "수정"은 없으며 라이브러리 사용자가 생성 시 예상 항목만 PDF에 추가되도록 해야 하는 완화만 있습니다.
사용자는 수정 불가능한 개방형 CVE와 함께 소프트웨어를 설치하는 것을 원하지 않을 수 있으므로 라이브러리를 직접 설치한 사용자에게만 PDF 지원을 제공하기로 결정했습니다. 라이브러리가 설치되면 PDF 보고서 옵션이 작동합니다.
--config
옵션을 사용하여 도구에 대한 구성 파일을 제공할 수 있습니다. 명령줄 인수를 사용하여 구성 파일에 지정된 옵션을 무시할 수 있습니다. test/config에서 샘플 구성 파일을 참조하세요.
CVE 바이너리 도구는 바이너리 검사기, 지원되는 언어 구성 요소 목록 및 파일 추출 방법을 사용하여 구성 요소 자동 감지를 시도합니다. 자동 감지에 지원되는 도구는 다음과 같습니다.
바이너리 파일에서 구성 요소를 찾는 데 다음 검사기를 사용할 수 있습니다.
사용 가능한 체커 | ||||||
---|---|---|---|---|---|---|
계정서비스 | 산성 | apache_http_서버 | apcupsd | 의류 | asn1c | 흡수하다 |
별표 | atftp | 아바히 | 악셀 | 세게 때리다 | 묶다 | binutils |
새 | 바이슨 | 블루즈 | boinc | 식물 | 형 | 버블랩 |
비지박스 | bwm_ng | bzip2 | c_ares | 캡프로토 | 세프 | 체스 |
크로니 | 사향웹 | 클라마브 | 수집하다 | 커먼즈_압축 | 콘먼 | 코어 유틸리티 |
CPIO | 크로니 | 암호 설정 | 컵 | 컬 | 이력서 | darkhttpd |
dav1d | davfs2 | dbus | 데비안유틸 | dh클라이언트 | dhcpcd | dhcpd |
dlt_daemon | dmidecode | dnsmasq | 도커 | 도모티츠 | dosfstools | 닷넷 |
비둘기장 | 독산소 | dpkg | 드롭베어 | e2fsprogs | 에드 | 엘푸틸 |
이맥스 | 기록하다 | exfatprogs | 출국 | exiv2 | f2fs_tools | 파드2 |
금식 | ffmpeg | 파일 | 파이어폭스 | flac | 유체 신스 | 자유 반경 |
프리드프 | 프리비디 | 프르 | 둔한 사람 | gcc | 그달 | gdb |
gdk_pixbuf | 대본 | 단 | 자식 | 말 잘하는 | glibc | gmp |
그놈껍질 | 그누그 | 그누틀즈 | 가다 | gpgme | GPSD | 그래픽 마술 |
grep | 그럽2 | gstreamer | 구프엔프 | gvfs | gzip | 하프록시 |
하프 버즈 | 하셀 | HDF5 | 헤임달 | 호스트 | 헌스펠 | hwloc |
i2pd | 아이스캐스트 | 중환자실 | iperf3 | IPmitool | ipsec_tools | iptables |
이르시 | iucode_tool | iwd | 잭2 | 잭슨데이터바인드 | 야누스 | 벽옥 |
jhead | jq | json_c | kbd | 연결 유지 | 케르베로스 | kexectools |
코디 | 쿠버네티스 | ldns | lftp | 도서관 | 리바스 | libbpg |
libcoap | libconfuse | libcurl | libdb | libde265 | libebml | libevent |
libexpat | libgcrypt | libgd | libgit2 | libheif | 자유주의적인 | libidn2 |
libinput | libjpeg | libjpeg_turbo | libksba | liblas | 리브마트로스카 | libmemcached |
libmicrohttpd | libmodbus | libnss | libopenmpt | libpcap | libraw | librsvg |
librsync | libsamplerate | libseccomp | libsnd파일 | libsolv | libsoup | libsrtp |
libssh | libssh2 | libtasn1 | libtiff | libtomcrypt | libupnp | 리브브 |
libvips | libvirt | libvnc서버 | 리보비스 | libvpx | libxslt | libyaml |
가벼운 | linux_kernel | 리눅스ptp | lldpd | 로그로테이션 | lrzip | 루아 |
루아짓 | 1xc | 스라소니 | lz4 | 메일엑스 | 마리아드 | mbedtls |
mdadm | 멤캐시드 | 마이크로파이썬 | 광산 테스트 | mini_httpd | 미니콤 | 미니들나 |
miniupnpc | miniupnpd | 모비 | 모드 보안 | 모니터 | 모기 | 운동 |
mp4v2 | mpg123 | mpv | msmtp | 미터 | mupdf | 바보 |
mysql | 나노 | 나스 | nbd | 저주를 받다 | 네온 | 네소스 |
네톡 | 순데이터 | netkit_ftp | 넷피엠 | 쐐기풀 | nghttp2 | nginx |
ngircd | nmap | 마디 | ntfs_3g | ntp | ntpsec | open_iscsi |
open_vm_tools | 개방형 | opencv | openjpeg | 오픈랩 | 오픈시 | openssh |
openssl | 오픈스완 | 오픈 VPN | p7zip | 팡고 | 반점 | pcre |
pcre2 | PCSC_라이트 | 펄 | PHP | 피코콤 | 돼지 | 픽스맨 |
png | polarssl_fedora | 포플러 | 포스트그레SQL | ppp | 프라이버시 | procps_ng |
proftpd | protobuf_c | pspp | pure_ftpd | 퍼티 | 파이썬 | 큐무 |
qpdf | qt | 콰가 | 레이더2 | 레이더 | 랩터 | 라우크 |
데스크탑 | 판독선 | rpm | 재동기화 | rsyslog | rtl_433 | rtmpdump |
룬 | 녹 | 삼바 | sane_backends | SDL | 해마 | Shadowsocks_libev |
스냅 | sngrep | 흡입 | 소캣 | sofia_sip | 연설 | 기미 |
SQLite | 스쿼시 | 오징어 | SSLH | 스텔라리움 | 강한 백조 | 충격을 주다 |
파괴 | sudo | 수리카타 | 실피드 | 시스템 로그 | 시스템 상태 | 체계화된 |
타르 | tcpdump | tcppreplay | 술어 | 정팔포체 | 절약 | thttpd |
천둥새 | 시간척도DB | 작은프록시 | 토르 | tpm2_tss | 추적 경로 | 전염 |
바지 | ttyd | twonky_server | u_boot | 유디스크 | 매여 있지 않은 | unixodbc |
upx | util_linux | 광택 | 정력 | vlc | vorbis_tools | vsftpd |
웹킷트크 | wget | 와이어샤크 | 울프슬 | wpa_신청자 | Xerces | xml2 |
x화면 보호기 | 엑스웨이랜드 | 야즘 | 자빅스 | zchunk | 지크 | zlib |
아연 | zsh | z표준 |
새 검사기를 추가하는 방법에 대한 지침과 마찬가지로 모든 검사기는 검사기 디렉터리에서 찾을 수 있습니다. 새로운 검사기에 대한 지원은 GitHub 문제를 통해 요청할 수 있습니다.
특정 언어 패키지에서 취약한 구성 요소를 찾는 데 다양한 검사기를 사용할 수 있습니다.
언어 | 지원되는 파일 |
---|---|
다트 | pubspec.lock |
가다 | Go.mod |
자바 | pom.xml ; JAR, WAR 및 EAR 아카이브 |
자바스크립트 | package-lock.json , yarn.lock |
녹 | Cargo.lock |
루비 | Gemfile.lock |
아르 자형 | renv.lock |
스위프트 | Package.resolved |
파이썬 | requirements.txt , PKG-INFO , METADATA ; .whl 및 .egg 파일 |
펄 | cpanfile |
언어별 검사기에 대한 자세한 내용은 CVE 바이너리 도구 설명서에서 확인할 수 있습니다.
현재 자동 추출기에서 지원되는 아카이브 형식은 다음과 같습니다.
아카이브 형식 | 파일 확장자 |
---|---|
지퍼 | .zip, .exe, .jar, .msi, .egg, .whl, .war, .ear |
타르 | .tar, .tgz, .tar.gz, .tar.xz, .tar.bz2 |
뎁 | .deb, .ipk |
rpm | .rpm |
택시 | .택시 |
APK | .apk |
zst | .zst |
패키지 | .pkg |
자동 추출기를 사용하려면 추출해야 하는 지원되는 아카이브 형식의 유형에 따라 다음 유틸리티가 필요할 수 있습니다.
Linux에서 전체 테스트 제품군을 실행하려면 아래 유틸리티가 필요합니다.
file
strings
tar
unzip
rpm2cpio
cpio
ar
cabextract
이들 중 대부분은 많은 Linux 시스템에 기본적으로 설치되지만 특히 cabextract
및 rpm2cpio
설치해야 할 수도 있습니다.
Windows 시스템에서는 다음이 필요할 수 있습니다.
ar
7z
Expand
pdftotext
Windows에는 기본적으로 Expand
설치되어 있지만 ar
및 7z
설치해야 할 수도 있습니다. 테스트 스위트를 실행하거나 zstd 압축 파일을 스캔하려면 7zip의 7-zip-zstd 포크를 설치하는 것이 좋습니다. 현재 jar
, apk
, msi
, exe
및 rpm
파일을 추출하기 위해 7z
사용하고 있습니다. ar
설치하려면 여기에서 MinGW(binutils가 일부 포함되어 있음)를 설치하고 다운로드한 .exe 파일을 실행할 수 있습니다.
pip에서 설치하려고 할 때 라이브러리 빌드에 대한 오류가 발생하는 경우 Windows 빌드 도구를 설치해야 할 수 있습니다. Windows 빌드 도구는 https://visualstudio.microsoft.com/visual-cpp-build-tools/에서 무료로 제공됩니다.
Windows에 brotlipy를 설치하는 동안 오류가 발생하는 경우 위의 컴파일러를 설치하면 문제가 해결됩니다.
테스트를 실행하려면 pdftotext
가 필요합니다. (cve-bin-tool 사용자에게는 필요하지 않을 수도 있지만 개발자에게는 필요할 것입니다.) Windows에 설치하는 가장 좋은 방법은 conda를 사용하는 것입니다(자세한 지침을 보려면 여기를 클릭하십시오).
CI 구성을 확인하여 명시적으로 테스트 중인 Python 버전을 확인할 수 있습니다.
이 스캐너는 문제를 악용하거나 코드를 더 자세히 조사하려고 시도하지 않습니다. 라이브러리 서명과 버전 번호만 찾습니다. 따라서 누군가가 취약한 버전으로 수정 사항을 백포트했는지 여부를 알 수 없으며 라이브러리 또는 버전 정보가 의도적으로 난독화된 경우에는 작동하지 않습니다.
이 도구는 개발자가 바이너리로 컴파일된 보안 문제가 있는 오래된 라이브러리를 인식할 수 있도록 비악성 환경에서 빠르게 실행하고 쉽게 자동화할 수 있는 검사로 사용됩니다.
이 도구는 보고된 취약점이 실제로 존재하거나 악용 가능함을 보장하지 않으며, 현재 존재하는 모든 취약점을 찾을 수도 없습니다.
사용자는 보고서에 분류 정보를 추가하여 문제를 가양성으로 표시하고, 구성/사용 변경으로 위험이 완화되었음을 나타낼 수 있습니다.
심사 세부 정보는 다른 프로젝트에서 재사용할 수 있으므로, 예를 들어 Linux 기본 이미지의 심사는 해당 이미지를 사용하는 여러 컨테이너에 적용될 수 있습니다.
도구를 사용한 분류 정보에 대한 자세한 내용 및 사용법은 여기를 참조하세요.
바이너리 스캐너 기능을 사용하는 경우 바이너리 검사기의 수가 제한되어 있으므로(위 표 참조) 해당 라이브러리만 검색할 수 있습니다. 새로운 체커의 기여는 언제나 환영합니다! 또한 대체 방법을 사용하여 구성 요소(예: tern과 같은 자재 명세서 도구)를 검색한 다음 결과 목록을 cve-bin-tool에 대한 입력으로 사용하여 보다 포괄적인 취약성 목록을 얻을 수도 있습니다.
도구는 현재 취약점을 탐지하기 위해 취약점 데이터베이스를 사용합니다. 데이터베이스가 자주 업데이트되지 않는 경우(특히 도구가 오프라인 모드에서 사용되는 경우) 도구는 새로 발견된 취약점을 탐지할 수 없습니다. 따라서 데이터베이스를 최신 상태로 유지하는 것이 좋습니다.
이 도구는 공개적으로 사용 가능한 제한된 수의 취약성 데이터베이스에만 액세스할 수 있으므로 모든 취약성이 보고되는 것을 보장하지 않습니다. 도구에 새로운 데이터 소스를 도입하기 위한 기여는 언제나 환영합니다.
취약성 데이터베이스 내의 데이터에 대해 일부 유효성 검사가 수행되는 동안 도구는 데이터 품질을 주장하거나 데이터가 불완전하거나 일관성이 없는 경우 불일치를 수정할 수 없습니다. 예를 들어 심각도가 UNKNOWN으로 보고되는 일부 취약성 보고서에서는 이로 인해 발생할 수 있습니다.
버그 및 기능 요청은 GitHub 문제를 통해 이루어질 수 있습니다. 이러한 문제는 비공개가 아니므로 출력을 제공할 때 다른 제품의 보안 문제가 공개되지 않도록 주의하세요.
끌어오기 요청은 git을 통해서도 환영합니다.
새로운 기여자는 시작하려면 기여자 가이드를 읽어야 합니다.
이미 오픈 소스 프로젝트에 기여한 경험이 있는 사람들은 전체 가이드가 필요하지 않을 수 있지만 모든 사람이 쉽게 작업할 수 있도록 풀 요청 체크리스트를 사용해야 합니다.
CVE 바이너리 도구 기여자는 Python 커뮤니티 행동 강령을 준수해야 합니다. 본 행동 강령과 관련된 우려 사항이나 질문이 있는 경우 Terri에게 문의하십시오.
도구 자체의 보안 문제는 https://intel.com/security를 통해 인텔의 보안 사고 대응 팀에 보고될 수 있습니다.
이 도구를 사용하는 동안 다른 사람의 코드에서 보안 문제를 발견한 경우 해당 당사자에게 책임감 있게 공개하십시오.
사용법: cve-bin-tool <directory/file to scan>
옵션: -h, --help 이 도움말 메시지를 표시하고 종료합니다. -e 제외, --제외 제외 쉼표로 구분된 제외 디렉터리 경로 -V, --version 프로그램의 버전 번호를 표시하고 종료합니다. --비활성화 버전 확인 새 버전 확인을 건너뜁니다. --비활성화-검증-확인 스키마에 대해 xml 파일 검사를 건너뜁니다. --offline 오프라인 모드에서 작동 --detailed csv 또는 json 보고서에 CVE 설명 추가(콘솔, html 또는 pdf에는 영향 없음) CVE 데이터 다운로드: 데이터 소스 및 캐시 구성과 관련된 인수 -n {api,api2,json,json-mirror,json-nvd}, --nvd {api,api2,json,json-mirror,json-nvd} NVD에서 CVE 목록을 가져오는 방법을 선택하세요. -u {지금,매일,한번도 안함,최신}, --update {지금,매일,한번도 안함,최신} 데이터 소스 업데이트 일정 및 데이터베이스 활용(기본값: 매일) --nvd-api-키 NVD_API_KEY NVD API 키를 지정합니다(NVD 속도 제한을 개선하는 데 사용됨). 환경의 모든 키를 무시하려면 'no'로 설정하세요. -d DISABLE_DATA_SOURCE, --disable-data-source DISABLE_DATA_SOURCE 비활성화할 데이터 소스(CURL, EPSS, GAD, NVD, OSV, PURL2CPE, REDHAT, RSD)의 쉼표로 구분된 목록(기본값: NONE) --use-mirror USE_MIRROR 미러를 사용하여 데이터베이스 업데이트 입력: 스캔할 디렉토리 디렉토리 -i INPUT_FILE, --input-file INPUT_FILE 입력 파일 이름 제공 -C CONFIG, --config CONFIG 구성 파일 제공 -L PACKAGE_LIST, --패키지 목록 PACKAGE_LIST 패키지 목록 제공 --sbom {spdx,cyclonedx,swid} 소프트웨어 BOM(sbom) 유형 지정(기본값: spdx) --sbom-파일 SBOM_FILE sbom 파일 이름 제공 --vex-파일 VEX_FILE 분류 처리를 위한 취약점 악용 교환(vex) 파일 이름 제공 산출: -q, --quiet 출력 억제 -l {디버그, 정보, 경고, 오류, 중요}, --log {디버그, 정보, 경고, 오류, 중요} 로그 수준(기본값: 정보) -o OUTPUT_FILE, --output-file OUTPUT_FILE 출력 파일 이름 제공(기본값: stdout으로 출력) --html 테마 HTML_THEME HTML 보고서에 대한 사용자 정의 테마 디렉토리 제공 -f {csv,json,json2,console,html,pdf}, --format {csv,json,json2,console,html,pdf} 출력 형식 업데이트(기본값: 콘솔) 쉼표(',')를 구분 기호로 사용하여 여러 출력 형식을 지정합니다. 참고: 쉼표(',')와 출력 형식 사이에 공백을 사용하지 마세요. --generate-config {yaml,toml,yaml,toml,toml,yaml} toml 및 yaml 형식으로 cve bin 도구에 대한 구성 파일을 생성합니다. -c CVSS, --cvss CVSS 보고할 최소 CVSS 점수(0~10 범위의 정수)(기본값: 0) -S {낮음, 중간, 높음, 심각}, --심각도 {낮음, 중간, 높음, 심각} 보고할 최소 CVE 심각도(기본값: 낮음) --측정항목 발견된 cve에서 메트릭(예: EPSS)을 확인하세요. --epss-백분위수 EPSS_PERCENTILE 보고할 CVE 범위의 최소 EPS 백분위수는 0~100입니다. `--metrics`를 자동으로 활성화합니다. --epss-확률 EPSS_PROBABILITY 보고할 CVE 범위의 최소 EPS 확률은 0~100입니다. `--metrics`를 자동으로 활성화합니다. --no-0-cve-report는 CVE가 발견된 경우에만 보고서를 생성합니다. -A [-], --사용 가능-수정 [-] Linux 배포판에서 사용 가능한 패키지 수정 사항을 나열합니다. -b [-], --backport-fix [-] Linux 배포판에서 사용 가능한 경우 백포트된 수정 사항을 나열합니다. --affected-versions 해당 CVE의 영향을 받는 제품 버전을 나열합니다(업그레이드를 용이하게 하기 위해). --sbom-출력 SBOM_OUTPUT 생성할 소프트웨어 자재 명세서(sbo) 파일 이름 제공 --sbom 유형 {spdx,cyclonedx} 생성할 소프트웨어 자재 명세서(sbom) 유형 지정(기본값: spdx) --sbom-format {tag,json,yaml} 생성할 소프트웨어 자재 명세서(sbom) 형식 지정(기본값: 태그) 벡스 출력: Vex 출력 문서와 관련된 인수입니다. --vex-output VEX_OUTPUT 생성할 취약점 악용 교환(vex) 파일 이름을 제공하세요. --vex-type {cyclonedx, csaf, openvex} 생성할 취약점 악용 교환(vex) 유형을 지정합니다(기본값: cyclonedx). --product 제품 제품 이름 --release RELEASE 릴리스 버전 --vendor VENDOR 제품 공급업체/공급업체 -rr REVISION_REASON, --개정 이유 REVISION_REASON vex 문서 업데이트 이유는 큰따옴표로 지정되어야 합니다. --filter-triage Vex 파일의 분류 데이터를 기반으로 cve를 필터링합니다. 보고서 병합: 중간 및 병합 보고서와 관련된 주장 -a [추가], --추가 [추가] 출력을 json 형식의 중간 보고서로 저장 -t TAG, --tag TAG 여러 중간 보고서를 구별하기 위해 고유한 태그를 추가합니다. -m 병합, --merge 병합 병합을 위한 쉼표로 구분된 중간 보고서 경로 -F 필터, --필터 필터 중간 보고서 필터링을 위한 쉼표로 구분된 태그 문자열 체커: -s 건너뛰기, -- 건너뛰기 건너뛰기 비활성화할 검사기의 쉼표로 구분된 목록 -r RUNS, --runs RUNS 활성화할 쉼표로 구분된 검사기 목록 데이터베이스 관리: --import-json IMPORT_JSON 연도별로 잘린 json 파일에서 데이터베이스 가져오기 --ignore-sig json 데이터를 가져오는 동안 PGP 서명을 확인하지 않습니다. --로그 서명 오류 서명이 일치하지 않으면 정지하는 대신 오류만 기록합니다(UNSAFE). --PGP_PUBKEY_PATH 확인 json 파일을 가져오는 동안 PGP 서명 확인 --export-json EXPORT_JSON 데이터베이스를 연도별로 잘린 json 파일로 내보내기 --pgp-서명 PGP_PRIVATE_KEY_PATH 내보낸 json 파일에 PGP로 서명 --passphrase PASSPHRASE PGP로 서명하려면 암호가 필요합니다. --export EXPORT 내보내기 데이터베이스 파일 이름 --import IMPORT 가져오기 데이터베이스 파일 이름 악용: --exploits는 발견된 cve에서 익스플로잇을 확인합니다. 더 이상 사용되지 않음: --triage-input-file TRIAGE_INPUT_FILE --vex-file로 대체됨 -x, --extract 압축 파일 자동 추출 --report 해당 출력 형식에 대한 CVE가 없는 경우에도 보고서를 생성합니다.
이러한 모든 옵션에 대한 자세한 내용은 CVE 바이너리 도구 사용자 설명서를 참조하세요.