CVE Binary Tool เป็นเครื่องมือโอเพ่นซอร์สฟรีที่จะช่วยคุณค้นหาช่องโหว่ที่รู้จักในซอฟต์แวร์ โดยใช้ข้อมูลจากรายการ Common Vulnerabilities and Exposures (CVE) ของฐานข้อมูลช่องโหว่แห่งชาติ (NVD) รวมถึงข้อมูลช่องโหว่ที่รู้จักจาก Redhat, Open Source ฐานข้อมูลช่องโหว่ (OSV), ฐานข้อมูลที่ปรึกษา Gitlab (GAD) และ Curl
CVE Binary Tool ใช้ NVD API แต่ไม่ได้รับการรับรองหรือรับรองโดย NVD
เครื่องมือนี้มีโหมดการทำงานหลักสองโหมด:
เครื่องสแกนไบนารีซึ่งช่วยให้คุณระบุได้ว่าแพ็คเกจใดบ้างที่อาจรวมเป็นส่วนหนึ่งของซอฟต์แวร์ มีหมากฮอส 367 ตัว โฟกัสเริ่มต้นของเราอยู่ที่ส่วนประกอบโอเพ่นซอร์สทั่วไปที่มีช่องโหว่ เช่น openssl, libpng, libxml2 และ expat
เครื่องมือสำหรับการสแกนรายการส่วนประกอบที่รู้จักในรูปแบบต่างๆ รวมถึง .csv, รายการแพ็คเกจการแจกจ่าย linux หลายรายการ, โปรแกรมสแกนแพ็คเกจเฉพาะภาษา และรูปแบบรายการซอฟต์แวร์ (SBOM) หลายรูปแบบ
มีวัตถุประสงค์เพื่อใช้เป็นส่วนหนึ่งของระบบบูรณาการอย่างต่อเนื่องของคุณ เพื่อเปิดใช้งานการสแกนช่องโหว่เป็นประจำ และแจ้งเตือนคุณล่วงหน้าเกี่ยวกับปัญหาที่ทราบในห่วงโซ่อุปทานของคุณ นอกจากนี้ยังสามารถใช้เพื่อตรวจจับส่วนประกอบอัตโนมัติและสร้าง SBOM ได้อีกด้วย
CVE Binary Tool ทำอะไรได้บ้างเมื่อทำงาน:
ดาวน์โหลดข้อมูล CVE (จาก NVD, Redhat, OSV, Gitlab และ Curl)
สิ่งนี้จะเกิดขึ้นวันละครั้งตามค่าเริ่มต้น ไม่ใช่ทุกครั้งที่ทำการสแกน
ในการเรียกใช้ครั้งแรก การดาวน์โหลดข้อมูลทั้งหมดอาจใช้เวลาสักระยะ
สร้าง/อ่านรายการส่วนประกอบ มีสองโหมดการทำงาน:
สร้างรายการส่วนประกอบ (รวมถึงเวอร์ชัน) โดยใช้การผสมผสานระหว่างตัวตรวจสอบไบนารีและรายการส่วนประกอบภาษา (เช่น Requirements.txt ของ python)
อ่าน SBOM (ใช้รายการส่วนประกอบที่มีอยู่ในรูปแบบรายการวัสดุซอฟต์แวร์ที่เป็นมาตรฐาน)
สร้างรายการ CVE
การดำเนินการนี้จะค้นหาส่วนประกอบทั้งหมดที่พบหรืออ่านจากรายการวัสดุที่มีอยู่ และรายงานปัญหาที่ทราบที่เกี่ยวข้องกับส่วนประกอบเหล่านั้น
รวมการคัดแยก/ข้อมูลเพิ่มเติม
มีหลายตัวเลือกในการเพิ่มการคัดแยก/บันทึก ข้อมูลจากรายงานก่อนหน้านี้เพื่อติดตามการเปลี่ยนแปลงช่องโหว่เมื่อเวลาผ่านไป หรือข้อมูลการแก้ไขที่ทราบ
สร้างรายงานในรูปแบบหนึ่งหรือหลายรูปแบบ (คอนโซล, json, csv, html, pdf)
สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารประกอบของเราหรือคู่มือเริ่มต้นใช้งานฉบับย่อนี้
CVE Binary Tool เริ่มต้นอย่างรวดเร็ว / README
รายการตรวจสอบไบนารี
ตัวตรวจสอบเฉพาะภาษา
รูปแบบไฟล์เก็บถาวรที่รองรับ
ค้นหาช่องโหว่ที่ทราบโดยใช้เครื่องสแกนไบนารี
กำลังสแกนไฟล์ SBOM เพื่อหาช่องโหว่ที่ทราบ
การสร้าง SBOM
กำลังสร้าง VEX
การไตร่ตรองช่องโหว่
การใช้เครื่องมือออฟไลน์
การใช้ CVE Binary Tool ใน GitHub Actions
การติดตั้งเครื่องมือไบนารี CVE
ตัวเลือกการใช้งานยอดนิยม
ตัวเลือกเอาท์พุต
การกำหนดค่า
การตรวจจับส่วนประกอบอัตโนมัติ
ข้อกำหนดเพิ่มเติม
ข้อจำกัด
ข้อเสนอแนะและการมีส่วนร่วม
ปัญหาด้านความปลอดภัย
รายการตัวเลือกแบบเต็ม
CVE Binary Tool สามารถติดตั้งได้โดยใช้ 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 คุณต้องระบุ NVD_API_KEY ของคุณเองเพื่อใช้ API
หากคุณกำลังใช้รุ่นก่อน 3.3 ที่ไม่ได้ใช้มิเรอร์ของเรา โปรดใช้ NVD_API_KEY ตามที่อธิบายไว้ข้างต้น
หากต้องการเรียกใช้เครื่องสแกนไบนารี่ในไดเร็กทอรีหรือไฟล์:
cve-bin-tool <ไดเรกทอรี/ไฟล์>
หมายเหตุ : ตัวเลือกนี้จะใช้ตัวตรวจสอบภาษาเฉพาะเพื่อค้นหาช่องโหว่ที่ทราบในส่วนประกอบต่างๆ
ตามค่าเริ่มต้น เครื่องมือจะถือว่าคุณกำลังพยายามสแกนไดเร็กทอรีทั้งหมด แต่หากคุณระบุไฟล์ .csv หรือ .json ไฟล์เดียวที่แสดงรายการการขึ้นต่อกัน เครื่องมือจะถือว่าเป็นรายการวัสดุ คุณยังสามารถระบุไฟล์รายการวัสดุได้โดยตรงโดยใช้ตัวเลือก --input-file
หรือสแกน SBOM ตามคำแนะนำด้านล่าง
หากต้องการสแกนไฟล์รายการวัสดุซอฟต์แวร์ (SBOM):
cve-bin-tool --sbom <sbom_filetype> --sbom-ไฟล์ <sbom_filename>
ประเภท SBOM ที่ถูกต้องคือ SPDX, CycloneDX และ SWID การสแกนชื่อผลิตภัณฑ์ภายในไฟล์ SBOM ไม่ต้องคำนึงถึงขนาดตัวพิมพ์
คู่มือวิธีการสแกน SBOM จะให้ตัวอย่างการสแกน SBOM เพิ่มเติม
นอกจากการสแกน SBOM แล้ว CVE Binary Tool ยังสามารถใช้เพื่อสร้าง SBOM จากการสแกนได้ดังต่อไปนี้:
cve-bin-tool --sbom-type <sbom_type> --sbom-format <sbom-format> --sbom-output <sbom_filename> <ตัวเลือกการสแกนอื่น ๆ ตามต้องการ>
ประเภท SBOM ที่ถูกต้องคือ SPDX และ CycloneDX
SBOM ที่สร้างขึ้นจะรวมชื่อผลิตภัณฑ์ เวอร์ชัน และซัพพลายเออร์ (หากมี) ไม่ได้ระบุข้อมูลใบอนุญาต
คู่มือวิธีสร้าง SBOM มีตัวอย่างการสร้าง SBOM เพิ่มเติม
นอกจากการสแกน VEX แล้ว CVE Binary Tool ยังสามารถใช้เพื่อสร้าง 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
) รูปแบบที่รองรับคือรูปแบบ CycloneDX,CSAF และ OpenVEX VEX ซึ่งสามารถสร้างได้โดยใช้ตัวเลือก --vex-output
การใช้งานทั่วไป:
สร้างไฟล์ triage โดยใช้ cve-bin-tool /path/to/scan --vex-output triage.json
แก้ไข triage.json ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อให้ข้อมูลการคัดแยกช่องโหว่ที่ระบุไว้
ใช้ไฟล์ triage นี้สำหรับการสแกนในอนาคตดังนี้: cve-bin-tool /path/to/scan --vex-file triage.json
สำหรับคู่มือการใช้งานที่ดีขึ้นโปรดดูลิงค์นี้
ควรเป็นไปได้ที่จะแบ่งปันข้อมูล triage ระหว่างการทำงาน cve-bin-tool ที่แตกต่างกัน หรือกับเครื่องมืออื่นๆ ที่รองรับรูปแบบ CycloneDX VEX, OpenVEX และ CSAF สิ่งนี้จะเป็นประโยชน์อย่างยิ่งสำหรับทีมที่สแกนผลิตภัณฑ์หรือคอนเทนเนอร์ที่เกี่ยวข้อง ทีมที่ต้องการใช้เครื่องมือหลายอย่างด้วยเหตุผลด้านการปฏิบัติตามข้อกำหนด บริษัทที่มีกลุ่มนโยบายความปลอดภัยส่วนกลางที่ให้คำแนะนำเกี่ยวกับการคัดแยกช่องโหว่ และอื่นๆ
การระบุตัวเลือก --offline
เมื่อเรียกใช้การสแกนทำให้แน่ใจได้ว่า cve-bin-tool จะไม่พยายามดาวน์โหลดไฟล์ฐานข้อมูลล่าสุดหรือตรวจสอบเวอร์ชันที่ใหม่กว่าของเครื่องมือ
โปรดทราบว่าคุณจะต้องได้รับสำเนาข้อมูลช่องโหว่ก่อนที่เครื่องมือจะสามารถทำงานในโหมดออฟไลน์ได้ คู่มือวิธีใช้แบบออฟไลน์ประกอบด้วยข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าฐานข้อมูลของคุณ
หากคุณต้องการรวม cve-bin-tool เป็นส่วนหนึ่งของไปป์ไลน์ Action GitHub ของคุณ คุณสามารถใช้ GitHub Action อย่างเป็นทางการของ cve-bin-tool ค้นหารายละเอียดเพิ่มเติมได้ที่นี่ GitHub Action จัดทำรายงานบนแท็บความปลอดภัย ซึ่งพร้อมใช้งานสำหรับโปรเจ็กต์โอเพ่นซอร์ส เช่นเดียวกับลูกค้า GitHub ที่ชำระเงินสำหรับการเข้าถึงนั้น
นอกจากนี้เรายังมีตัวอย่างการดำเนินการของ GitHub หากคุณต้องการใช้เครื่องมือโดยตรง นี่อาจเป็นทางเลือกที่ดีสำหรับทีมที่ต้องการจัดเก็บรายงานไว้ในตู้เก็บหลักฐานหรือทีมที่ไม่สามารถเข้าถึงแท็บ GitHub Security
CVE Binary Tool ให้เอาต์พุตแบบคอนโซลตามค่าเริ่มต้น หากคุณต้องการจัดเตรียมรูปแบบอื่น คุณสามารถระบุสิ่งนี้และชื่อไฟล์ในบรรทัดคำสั่งโดยใช้ --format
รูปแบบที่ถูกต้องคือ CSV, JSON, JSON2, คอนโซล, HTML และ PDF ชื่อไฟล์เอาต์พุตสามารถระบุได้โดยใช้แฟล็ก --output-file
คุณยังสามารถระบุรูปแบบเอาต์พุตได้หลายรูปแบบโดยใช้เครื่องหมายจุลภาค (',') เป็นตัวคั่น:
ไฟล์ cve-bin-tool -f csv,json,json2,html -o report
หมายเหตุ: คุณต้องไม่ใช้ช่องว่างระหว่างเครื่องหมายจุลภาค (',') และรูปแบบผลลัพธ์
ช่องโหว่ที่รายงานสามารถรายงานเพิ่มเติมได้ในรูปแบบ Vulnerability Exploitability eXchange (VEX) โดยการระบุ --vex-output
พร้อมประเภทที่กำหนดโดยใช้ตัวเลือกบรรทัดคำสั่ง --vex-type
ไฟล์ VEX ที่สร้างขึ้นนั้นสามารถใช้เป็น --vex-file
เพื่อรองรับกระบวนการคัดแยก
หากคุณต้องการใช้การสนับสนุน PDF คุณจะต้องติดตั้งไลบรารี reportlab
แยกต่างหาก
หากคุณตั้งใจจะใช้การสนับสนุน PDF เมื่อคุณติดตั้ง cve-bin-tool คุณสามารถระบุได้ และแล็บรายงานจะถูกติดตั้งเป็นส่วนหนึ่งของการติดตั้ง cve-bin-tool:
pip ติดตั้ง cve-bin-tool [PDF]
หากคุณได้ติดตั้ง cve-bin-tool แล้ว คุณสามารถเพิ่ม reportlab ได้หลังจากใช้งาน pip:
pip ติดตั้ง -- อัปเกรด Reportlab
โปรดทราบว่า reportlab ถูกนำออกจากการติดตั้ง cve-bin-tool เริ่มต้นเนื่องจากมี CVE ที่รู้จักเชื่อมโยงอยู่ด้วย (CVE-2020-28463) รหัส cve-bin-tool ใช้การบรรเทาที่แนะนำเพื่อจำกัดทรัพยากรที่เพิ่มลงใน PDF รวมถึงการตรวจสอบอินพุตเพิ่มเติม นี่เป็น CVE ที่แปลกนิดหน่อยเพราะมันอธิบายฟังก์ชันหลักของ PDF: รายการภายนอก เช่น รูปภาพ สามารถฝังไว้ในรายการเหล่านั้นได้ และด้วยเหตุนี้ใครก็ตามที่ดู PDF ก็สามารถโหลดรูปภาพภายนอกได้ (คล้ายกับวิธีที่การดูหน้าเว็บสามารถทริกเกอร์ได้ โหลดภายนอก) ไม่มี "การแก้ไข" โดยธรรมชาติสำหรับสิ่งนั้น มีเพียงการบรรเทาปัญหาที่ผู้ใช้ไลบรารีต้องตรวจสอบให้แน่ใจว่ามีเพียงรายการที่คาดหวังเท่านั้นที่จะถูกเพิ่มลงใน PDF ในขณะที่สร้าง
เนื่องจากผู้ใช้อาจไม่ต้องการติดตั้งซอฟต์แวร์ที่มี CVE แบบเปิดและแก้ไขไม่ได้เชื่อมโยงอยู่ด้วย เราจึงเลือกที่จะให้การรองรับ PDF ใช้งานได้เฉพาะกับผู้ใช้ที่ติดตั้งไลบรารีด้วยตนเองเท่านั้น เมื่อติดตั้งไลบรารีแล้ว ตัวเลือกรายงาน PDF จะทำงาน
คุณสามารถใช้ตัวเลือก --config
เพื่อจัดเตรียมไฟล์การกำหนดค่าสำหรับเครื่องมือ คุณยังคงสามารถแทนที่ตัวเลือกที่ระบุในไฟล์กำหนดค่าด้วยอาร์กิวเมนต์บรรทัดคำสั่งได้ ดูไฟล์กำหนดค่าตัวอย่างของเราในการทดสอบ/การกำหนดค่า
เครื่องมือไบนารี CVE พยายามตรวจหาส่วนประกอบโดยอัตโนมัติโดยใช้ตัวตรวจสอบไบนารี รายการส่วนประกอบภาษาที่รองรับ และวิธีการแยกไฟล์ เครื่องมือที่รองรับสำหรับการตรวจจับอัตโนมัติมีดังต่อไปนี้
ตัวตรวจสอบต่อไปนี้มีไว้สำหรับการค้นหาส่วนประกอบในไฟล์ไบนารี:
หมากฮอสที่มีอยู่ | ||||||
---|---|---|---|---|---|---|
บริการบัญชี | กรด | apache_http_server | แอพคัพเอสดี | รูปลักษณ์ | asn1c | แอสซิมป์ |
เครื่องหมายดอกจัน | atftp | อวาฮี | แอ็กเซล | ทุบตี | ผูก | บินิติล |
นก | วัวกระทิง | บลูซ | บองค์ | โบตัน | พี่ชาย | บับเบิ้ลแรป |
กล่องยุ่ง | bwm_ng | bzip2 | c_ares | capnproto | เซ็ฟ | หมากรุก |
เรื้อรัง | ชะมด | คลามาฟ | รวบรวม | commons_compress | นักโทษ | coreutils |
ซีพีโอ | พวกพ้อง | การเข้ารหัสลับ | ถ้วย | ขด | ประวัติย่อ | darkhttpd |
dav1d | davfs2 | ดีบัส | เดเบียนยูทิลิตี้ | ลูกค้า | dhcpcd | ดีเอชซีพีดี |
dlt_daemon | dmidecode | DNSMAQ | นักเทียบท่า | โดโมติซ | ดอสสตูล | ดอทเน็ต |
นกพิราบ | ด็อกซิเจน | ดีพีกก | หมีดรอปแบร์ | e2fsprogs | เอ็ด | เอลฟ์ |
อีแมคส์ | จารึก | เอ็กซ์แฟตโปรกส์ | ส่งออก | exiv2 | f2fs_tools | แฟชั่น2 |
อดอาหาร | ffmpeg | ไฟล์ | ไฟร์ฟอกซ์ | แฟลค | น้ำยาสังเคราะห์ | รัศมีอิสระ |
ฟรีดพี | ฟริบิดี | frr | เพ่งพิศ | จีซีซี | กดาล | จีดีบี |
gdk_pixbuf | ghostscript | ขลิบด้าย | คอมไพล์ | กะล่อน | ไกลบีซี | จีเอ็มพี |
คำพังเพย | gnupg | กนัท | ไป | gpgme | จีพีเอส | กราฟิกเมจิก |
เกรป | ด้วง2 | gstreamer | กุปเอ็นพี | gvfs | gzip | haproxy |
ฮาร์ฟบัซ | ฮาเซิร์ล | hdf5 | ไฮม์ดาล | โฮสต์ | ฮันสเปล | ฮล็อค |
i2pd | โยนน้ำแข็ง | ห้องไอซียู | iperf3 | อิพมิทูล | ipsec_tools | ไอพีเทเบิล |
irssi | iucode_tool | เหมือนกัน | แจ็ค2 | แจ็คสันดาต้าบินด์ | เจนัส | แจสเปอร์ |
เจเฮด | เจคิว | json_c | เคบีดี | เก็บไว้ | เคอร์เบรอส | เค็กเซคทูลส์ |
โคดี้ | คูเบอร์เนเตส | ldns | แอลพีพี | ห้องสมุด | ลิบาส | libbpg |
libcoap | libconfuse | libcurl | libdb | libde265 | libebml | เชื่อถือ |
ลิเบกซ์แพท | libgcrypt.php | libgd | libgit2 | ลิเบอิฟ | หมิ่นประมาท | ความใคร่2 |
ลิบินพุต | libjpeg | libjpeg_turbo | ลิบส์บา | ลิบลาส | ลิบมาโตรสกา | libmemcached |
libmicrohttpd | libmodbus | ลิบส์ | libopenmpt | libpcap | libraw | librsvg |
librsync | libsamplerate | libseccomp | libsndfile.libsndfile | libsolv | ลิบซุป | libbrtp |
ลิบส์ช | libssh2 | libtasn1 | ลิบทิฟ | ลิบทอมคริปโต | ลิบูพีเอ็นพี | ลิบุฟ |
libvips | libvirt | libvncserver | ลิบวอร์บิส | libvpx | libxslt | ลิเบียมล |
lighttpd | linux_kernel | ลินุกซ์พีทีพี | lldpd | เข้าสู่ระบบ | lrzip | ลัวะ |
ลุยจิต | lxc | แมวป่าชนิดหนึ่ง | lz4 | เมล์เอ็กซ์ | มาเรียดบ์ | mbedtls |
บ้า | เมคแคช | ไมโครไพธอน | ของฉันทดสอบ | mini_httpd | มินิคอม | มินิดอลน่า |
มินิอัพพีซี | miniupnpd | โมบี้ | ความปลอดภัยของ mod | ตรวจสอบ | ยุง | การเคลื่อนไหว |
mp4v2 | mpg123 | เอ็มพีวี | msmtp | รถไฟฟ้าใต้ดิน | mupdf | โง่ |
mysql | นาโน | นาซึม | ไม่มี | คำสาป | นีออน | เนสซัส |
เน็ตทอล์ค | เน็ตดาต้า | netkit_ftp | netpbm | ตำแย | nghttp2 | nginx |
ngircd | nmap | โหนด | ntfs_3g | เอ็นทีพี | เอ็นทีพีซีค | open_iscsi |
open_vm_tools | openafs | opencv | openjpeg | openldap | opensc | openssh |
openssl | หงส์เปิด | เปิด VPN | p7zip | ปังโก | แพทช์ | พีซีอาร์ |
พีซีเคร2 | pcsc_lite | เพิร์ล | PHP | พิโคคอม | หมู | พิกแมน |
PNG | polarssl_fedora | ป๊อปเพลอร์ | postgresql | พีพีพี | ความเป็นส่วนตัว | propps_ng |
proftpd | โปรโตบุฟ_ซี | พีเอสพีพี | pure_ftpd | สีโป๊ว | หลาม | เชมู |
qpdf | คิวที | ควักก้า | เรดาร์2 | ราดวี | แร็พเตอร์ | เรา |
เดสก์ท็อป | อ่านบรรทัด | รอบต่อนาที | rsync | rsyslog | rtl_433 | rtmpdump |
รันค | สนิม | แซมบ้า | sane_backends | sdl | ม้าน้ำ | shadowsocks_libev |
สแน็ปอิน | สงเรป | สูดจมูก | โซกัต | โซเฟีย_ซิบ | สปีกซ์ | เครื่องเทศ |
ตร.ม | สควอช | ปลาหมึก | sslh | สเตลลาเรียม | หงส์แข็งแกร่ง | ตะลึง |
การโค่นล้ม | ซูโดะ | ซูริกาตา | ซิลฟี่ | syslogng | ระบบ | ระบบ |
ทาร์ | tcpdump | ทีซีพรีเพลย์ | คำศัพท์เฉพาะทาง | เทสเซอร์แรค | ความประหยัด | thttpd |
ธันเดอร์เบิร์ด | มาตราส่วนเวลาdb | Tinyproxy | ทอร์ | tpm2_tss | ตามรอย | การแพร่เชื้อ |
กางเกงขายาว | ตกลง | twonky_server | u_boot | อูดิสก์ | หลุด | ยูนิกซ์odbc |
อัพเอ็กซ์ | util_linux | วานิช | เป็นกลุ่ม | วีแอลซี | vorbis_tools | vsftpd |
เว็บคิททีเค | ตกลง | ฉลามลวด | วูล์ฟสล | wpa_supplicant | ออกกำลังกาย | xml2 |
xscreensaver.com | เอ็กซ์เวย์แลนด์ | ยาสม์ | แซบบิกซ์ | ซชังก์ | ซีค | ซลิบ |
สังกะสี | 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 Binary Tool
ปัจจุบันรูปแบบไฟล์เก็บถาวรต่อไปนี้ได้รับการสนับสนุนโดยโปรแกรมแยกไฟล์อัตโนมัติ:
รูปแบบการเก็บถาวร | นามสกุลไฟล์ |
---|---|
ซิป | .zip, .exe, .jar, .msi, .egg, .whl, .war, .ear |
ทาร์ | .tar, .tgz, .tar.gz, .tar.xz, .tar.bz2 |
เด็บ | .deb, .ipk |
รอบต่อนาที | .รอบต่อนาที |
รถแท็กซี่ | .แท็กซี่ |
เอพีเค | .เอพีเค |
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 เราขอแนะนำให้ติดตั้ง 7-zip-zstd fork ของ 7zip ขณะนี้เรากำลังใช้ 7z
เพื่อแยกไฟล์ jar
, apk
, msi
, exe
และ rpm
หากต้องการติดตั้ง ar
คุณสามารถติดตั้ง MinGW (ซึ่งมี binutils เป็นส่วนหนึ่งของมัน) จากที่นี่ และเรียกใช้ไฟล์ .exe ที่ดาวน์โหลดมา
หากคุณได้รับข้อผิดพลาดเกี่ยวกับการสร้างไลบรารี่เมื่อคุณพยายามติดตั้งจาก pip คุณอาจต้องติดตั้งเครื่องมือสร้าง Windows เครื่องมือ Windows build มีให้บริการฟรีจาก https://visualstudio.microsoft.com/visual-cpp-build-tools/
หากคุณได้รับข้อผิดพลาดขณะติดตั้ง brotlipy บน Windows การติดตั้งคอมไพเลอร์ด้านบนควรแก้ไขได้
ต้องใช้ pdftotext
เพื่อทำการทดสอบ (ผู้ใช้ cve-bin-tool อาจไม่จำเป็นต้องใช้ นักพัฒนาน่าจะต้องการ) แนวทางที่ดีที่สุดในการติดตั้งบน Windows คือการใช้ conda (คลิกที่นี่เพื่อดูคำแนะนำเพิ่มเติม)
คุณสามารถตรวจสอบการกำหนดค่า CI ของเราเพื่อดูว่าเรากำลังทดสอบ Python เวอร์ชันใดอย่างชัดเจน
เครื่องสแกนนี้ไม่พยายามใช้ประโยชน์จากปัญหาหรือตรวจสอบโค้ดโดยละเอียด ค้นหาเฉพาะลายเซ็นไลบรารีและหมายเลขเวอร์ชันเท่านั้น ด้วยเหตุนี้ จึงไม่สามารถบอกได้ว่ามีใครบางคน backported โปรแกรมแก้ไขไปยังเวอร์ชันที่มีช่องโหว่หรือไม่ และจะไม่ทำงานหากข้อมูลไลบรารีหรือเวอร์ชันมีเจตนาทำให้สับสน
เครื่องมือนี้มีไว้เพื่อใช้เป็นการตรวจสอบที่รวดเร็วและอัตโนมัติได้อย่างง่ายดายในสภาพแวดล้อมที่ไม่เป็นอันตราย เพื่อให้นักพัฒนาสามารถทราบถึงไลบรารีเก่าที่มีปัญหาด้านความปลอดภัยที่ได้รับการคอมไพล์เป็นไบนารีของพวกเขา
เครื่องมือนี้ไม่รับประกันว่าช่องโหว่ใดๆ ที่รายงานมีอยู่จริงหรือสามารถหาประโยชน์ได้ และไม่สามารถค้นหาช่องโหว่ที่มีอยู่ทั้งหมดพร้อมการรับประกันได้
ผู้ใช้สามารถเพิ่มข้อมูล triage ลงในรายงานเพื่อทำเครื่องหมายปัญหาเป็นผลบวกลวง บ่งชี้ว่าความเสี่ยงได้รับการบรรเทาลงโดยการเปลี่ยนแปลงการกำหนดค่า/การใช้งาน และอื่นๆ
รายละเอียดการคัดแยกสามารถนำมาใช้ซ้ำในโปรเจ็กต์อื่นได้ ตัวอย่างเช่น การคัดแยกบนอิมเมจพื้นฐาน Linux สามารถนำไปใช้กับคอนเทนเนอร์หลายตัวโดยใช้อิมเมจนั้น
สำหรับข้อมูลเพิ่มเติมและการใช้ข้อมูลการคัดแยกด้วยเครื่องมือ โปรดดูที่นี่
หากคุณใช้ความสามารถของเครื่องสแกนไบนารี โปรดทราบว่าเรามีตัวตรวจสอบไบนารีในจำนวนจำกัด (ดูตารางด้านบน) ดังนั้นเราจึงสามารถตรวจจับได้เฉพาะไลบรารีเหล่านั้นเท่านั้น ยินดีต้อนรับการมีส่วนร่วมของหมากฮอสใหม่เสมอ! คุณยังสามารถใช้วิธีอื่นในการตรวจจับส่วนประกอบ (เช่น เครื่องมือรายการวัสดุ เช่น tern) จากนั้นใช้รายการผลลัพธ์เป็นอินพุตไปยัง cve-bin-tool เพื่อรับรายการช่องโหว่ที่ครอบคลุมมากขึ้น
เครื่องมือนี้ใช้ฐานข้อมูลช่องโหว่เพื่อตรวจจับช่องโหว่ในปัจจุบัน ในกรณีที่ฐานข้อมูลไม่ได้รับการอัพเดตบ่อยครั้ง (โดยเฉพาะหากใช้เครื่องมือในโหมดออฟไลน์) เครื่องมือจะไม่สามารถตรวจพบช่องโหว่ที่เพิ่งค้นพบได้ ดังนั้นจึงขอแนะนำอย่างยิ่งให้อัพเดตฐานข้อมูลอยู่เสมอ
เครื่องมือนี้ไม่รับประกันว่าช่องโหว่ทั้งหมดจะถูกรายงาน เนื่องจากเครื่องมือนี้มีสิทธิ์เข้าถึงฐานข้อมูลช่องโหว่ที่เปิดเผยต่อสาธารณะในจำนวนจำกัดเท่านั้น เรายินดีให้ความช่วยเหลือในการแนะนำแหล่งข้อมูลใหม่ๆ ให้กับเครื่องมือนี้เสมอ
แม้ว่าการตรวจสอบความถูกต้องบางอย่างจะดำเนินการกับข้อมูลภายในฐานข้อมูลช่องโหว่ แต่เครื่องมือก็ไม่สามารถยืนยันคุณภาพของข้อมูลหรือแก้ไขความคลาดเคลื่อนใดๆ ได้หากข้อมูลไม่สมบูรณ์หรือไม่สอดคล้องกัน ซึ่งอาจส่งผลให้มีรายงานช่องโหว่บางรายงานที่มีการรายงานความรุนแรงเป็น UNKNOWN เป็นต้น
ข้อบกพร่องและการร้องขอคุณสมบัติสามารถทำได้ผ่านปัญหา GitHub โปรดทราบว่าปัญหาเหล่านี้ไม่ใช่เรื่องส่วนตัว ดังนั้นควรระมัดระวังในการจัดเตรียมเอาต์พุตเพื่อให้แน่ใจว่าคุณไม่ได้เปิดเผยปัญหาด้านความปลอดภัยในผลิตภัณฑ์อื่นๆ
คำขอดึงก็ยินดีต้อนรับผ่านคอมไพล์
ผู้ร่วมให้ข้อมูลรายใหม่ควรอ่านคู่มือผู้ร่วมให้ข้อมูลเพื่อเริ่มต้น
ผู้ที่มีประสบการณ์ในการมีส่วนร่วมในโครงการโอเพ่นซอร์สอยู่แล้วอาจไม่ต้องการคำแนะนำฉบับเต็ม แต่ควรใช้รายการตรวจสอบคำขอดึงเพื่อทำให้ทุกอย่างง่ายสำหรับทุกคน
ผู้ร่วมให้ข้อมูล CVE Binary Tool จะต้องปฏิบัติตามหลักจรรยาบรรณของชุมชน Python โปรดติดต่อ Terri หากคุณมีข้อกังวลหรือคำถามเกี่ยวกับหลักปฏิบัตินี้
ปัญหาด้านความปลอดภัยเกี่ยวกับเครื่องมือสามารถรายงานไปยังทีมตอบสนองเหตุการณ์ด้านความปลอดภัยของ Intel ผ่านทาง https://intel.com/security
หากในระหว่างการใช้เครื่องมือนี้ คุณพบปัญหาด้านความปลอดภัยกับรหัสของบุคคลอื่น โปรดเปิดเผยอย่างมีความรับผิดชอบต่อฝ่ายที่เกี่ยวข้อง
การใช้งาน: cve-bin-tool <directory/file to scan>
ตัวเลือก: -h, --help แสดงข้อความช่วยเหลือนี้และออก -e ยกเว้น --ไม่รวม ยกเว้น คั่นด้วยเครื่องหมายจุลภาค ยกเว้นเส้นทางไดเรกทอรี -V, --version แสดงหมายเลขเวอร์ชันของโปรแกรมและออก --disable-version-check ข้ามการตรวจสอบเวอร์ชันใหม่ --disable-ตรวจสอบความถูกต้อง-ตรวจสอบ ข้ามการตรวจสอบไฟล์ xml กับสคีมา --offline ทำงานในโหมดออฟไลน์ -- เพิ่มคำอธิบาย CVE อย่างละเอียดในรายงาน csv หรือ json (ไม่มีผลกับคอนโซล, html หรือ pdf) ดาวน์โหลดข้อมูล CVE: ข้อโต้แย้งที่เกี่ยวข้องกับแหล่งข้อมูลและการกำหนดค่าแคช -n {api,api2,json,json-mirror,json-nvd}, --nvd {api,api2,json,json-mirror,json-nvd} เลือกวิธีการรับรายการ CVE จาก NVD -u {ตอนนี้ รายวัน ไม่เคย ล่าสุด}, --อัปเดต {ตอนนี้ รายวัน ไม่เคย ล่าสุด} ตารางการอัพเดตแหล่งข้อมูลและฐานข้อมูลการหาประโยชน์ (ค่าเริ่มต้น: รายวัน) --nvd-api-คีย์ NVD_API_KEY ระบุคีย์ NVD API (ใช้เพื่อปรับปรุงขีดจำกัดอัตรา NVD) ตั้งค่าเป็น "ไม่" เพื่อละเว้นคีย์ใดๆ ในสภาพแวดล้อม -d DISABLE_DATA_SOURCE, --disable-แหล่งข้อมูล DISABLE_DATA_SOURCE รายการแหล่งข้อมูลที่คั่นด้วยเครื่องหมายจุลภาค (CURL, EPSS, GAD, NVD, OSV, PURL2CPE, REDHAT, RSD) เพื่อปิดใช้งาน (ค่าเริ่มต้น: NONE) --ใช้กระจก USE_MIRROR ใช้มิเรอร์เพื่ออัพเดตฐานข้อมูล ป้อนข้อมูล: ไดเร็กทอรีไดเร็กทอรีที่จะสแกน -i INPUT_FILE, --อินพุตไฟล์ INPUT_FILE ระบุชื่อไฟล์อินพุต -C กำหนดค่า --config กำหนดค่า ให้ไฟล์ปรับแต่ง -L PACKAGE_LIST, --รายการแพ็คเกจ PACKAGE_LIST ให้รายการแพ็คเกจ --sbom {spdx,พายุไซโคลนx,swid} ระบุประเภทของรายการวัสดุซอฟต์แวร์ (sbom) (ค่าเริ่มต้น: spdx) --sbom-ไฟล์ SBOM_FILE ระบุชื่อไฟล์ sbom --vex ไฟล์ VEX_FILE ระบุชื่อไฟล์การแลกเปลี่ยนช่องโหว่ (vex) สำหรับการประมวลผล triage เอาท์พุท: -q, --quiet ระงับเอาต์พุต -l {debug,ข้อมูล,คำเตือน,ข้อผิดพลาด,วิกฤต}, --log {debug,ข้อมูล,คำเตือน,ข้อผิดพลาด,critical} ระดับการบันทึก (ค่าเริ่มต้น: ข้อมูล) -o OUTPUT_FILE, --ไฟล์เอาต์พุต OUTPUT_FILE ระบุชื่อไฟล์เอาต์พุต (ค่าเริ่มต้น: ส่งออกไปยัง stdout) --html-ธีม HTML_THEME จัดเตรียมไดเร็กทอรีธีมที่กำหนดเองสำหรับรายงาน HTML -f {csv,json,json2,คอนโซล,html,pdf}, --รูปแบบ {csv,json,json2,คอนโซล,html,pdf} อัปเดตรูปแบบเอาต์พุต (ค่าเริ่มต้น: คอนโซล) ระบุรูปแบบเอาต์พุตหลายรูปแบบโดยใช้เครื่องหมายจุลภาค (',') เป็นตัวคั่น หมายเหตุ: อย่าเว้นวรรคระหว่างเครื่องหมายจุลภาค (',') และรูปแบบเอาต์พุต --สร้างการกำหนดค่า {yaml,toml,yaml,toml,toml,yaml} สร้างไฟล์ปรับแต่งสำหรับเครื่องมือ cve bin ในรูปแบบ toml และ yaml -c CVSS, --cvss CVSS คะแนน CVSS ขั้นต่ำ (เป็นจำนวนเต็มในช่วง 0 ถึง 10) ที่จะรายงาน (ค่าเริ่มต้น: 0) -S {ต่ำ ปานกลาง สูง วิกฤต} --ความรุนแรง {ต่ำ ปานกลาง สูง วิกฤต} ความรุนแรง CVE ขั้นต่ำที่จะรายงาน (ค่าเริ่มต้น: ต่ำ) --เมตริก ตรวจสอบตัวชี้วัด (เช่น EPSS) จาก cves ที่พบ --epss-เปอร์เซ็นไทล์ EPSS_PERCENTILE เปอร์เซ็นต์ไทล์ epss ขั้นต่ำของช่วง CVE ระหว่าง 0 ถึง 100 ที่จะรายงาน เปิดใช้งาน `--metrics` โดยอัตโนมัติ --epss-ความน่าจะเป็น EPSS_PROBABILITY ความน่าจะเป็น epss ขั้นต่ำของช่วง CVE ระหว่าง 0 ถึง 100 ที่จะรายงาน เปิดใช้งาน `--metrics` โดยอัตโนมัติ --no-0-cve-report จะสร้างรายงานเฉพาะเมื่อพบ CVE เท่านั้น -A [-], --มีการแก้ไข [-] แสดงรายการโปรแกรมแก้ไขที่มีอยู่ของแพ็คเกจจากการแจกจ่าย Linux -b [-], --backport-แก้ไข [-] แสดงรายการการแก้ไขที่ backported หากมีให้จากการแจกจ่าย Linux --affected-versions แสดงรายการเวอร์ชันของผลิตภัณฑ์ที่ได้รับผลกระทบจาก CVE ที่กำหนด (เพื่ออำนวยความสะดวกในการอัพเกรด) --sbom-เอาท์พุท SBOM_OUTPUT ระบุชื่อไฟล์รายการวัสดุซอฟต์แวร์ (sbom) เพื่อสร้าง --sbom-type {spdx,cyclonedx} ระบุประเภทของรายการวัสดุซอฟต์แวร์ (sbom) ที่จะสร้าง (ค่าเริ่มต้น: spdx) --sbom รูปแบบ {tag, json, yaml} ระบุรูปแบบของรายการวัสดุซอฟต์แวร์ (sbom) ที่จะสร้าง (ค่าเริ่มต้น: แท็ก) เอาท์พุท Vex: ข้อโต้แย้งที่เกี่ยวข้องกับเอกสารเอาต์พุต Vex --vex-ouptput VEX_OUTPUT ระบุชื่อไฟล์การแลกเปลี่ยนช่องโหว่ (vex) เพื่อสร้าง --vex-type {cyclonedx, csaf, openvex} ระบุประเภทของการแลกเปลี่ยนช่องโหว่ (vex) ที่จะสร้าง (ค่าเริ่มต้น: cyclonedx) --ผลิตภัณฑ์ ชื่อผลิตภัณฑ์ผลิตภัณฑ์ --release ปล่อยเวอร์ชันวางจำหน่าย --ผู้ขาย ผู้ขาย ผู้ขาย/ผู้จำหน่ายผลิตภัณฑ์ -rr REVISION_REASON, --การแก้ไข-เหตุผล REVISION_REASON เหตุผลในการอัปเดตเอกสาร vex ควรระบุด้วยเครื่องหมายคำพูดคู่ --filter-triage กรอง cves ตามข้อมูล triage จากไฟล์ Vex รายงานการรวม: ข้อโต้แย้งที่เกี่ยวข้องกับรายงานระดับกลางและแบบรวม -a [ผนวก] --ผนวก [ผนวก] บันทึกเอาต์พุตเป็นรายงานระดับกลางในรูปแบบ json -t TAG, --tag TAG เพิ่มแท็กที่ไม่ซ้ำเพื่อแยกความแตกต่างระหว่างรายงานระดับกลางหลายรายการ -m ผสาน, --ผสาน ผสาน เส้นทางรายงานระดับกลางที่คั่นด้วยเครื่องหมายจุลภาคสำหรับการรวม -F ตัวกรอง --ตัวกรอง ตัวกรอง สตริงแท็กที่คั่นด้วยเครื่องหมายจุลภาคสำหรับการกรองรายงานระดับกลาง หมากฮอส: -s ข้าม --ข้าม ข้าม รายการตัวตรวจสอบที่คั่นด้วยเครื่องหมายจุลภาคเพื่อปิดใช้งาน -r RUNS, --runs เรียกใช้รายการตัวตรวจสอบที่คั่นด้วยเครื่องหมายจุลภาค RUNS เพื่อเปิดใช้งาน การจัดการฐานข้อมูล: --import-json IMPORT_JSON นำเข้าฐานข้อมูลจากไฟล์ json ที่ถูกสับเป็นปี --ignore-sig จะไม่ตรวจสอบลายเซ็น PGP ขณะนำเข้าข้อมูล json --บันทึกลายเซ็นข้อผิดพลาด เมื่อลายเซ็นไม่ตรงกับบันทึกข้อผิดพลาดเท่านั้นแทนที่จะหยุด (UNSAFE) --ตรวจสอบ PGP_PUBKEY_PATH ตรวจสอบเครื่องหมาย PGP ขณะนำเข้าไฟล์ json --ส่งออก-json EXPORT_JSON ส่งออกฐานข้อมูลเป็นไฟล์ json ที่ถูกสับเป็นปี --pgp ลงชื่อ PGP_PRIVATE_KEY_PATH ลงนามไฟล์ json ที่ส่งออกด้วย PGP --วลีรหัสผ่าน รหัสผ่าน ข้อความรหัสผ่านที่จำเป็นสำหรับการลงนามกับ PGP --export EXPORT ชื่อไฟล์ฐานข้อมูลการส่งออก --import นำเข้าชื่อไฟล์ฐานข้อมูลนำเข้า การหาประโยชน์: --exploits ตรวจสอบหาช่องโหว่จาก cves ที่พบ เลิกใช้แล้ว: --triage-อินพุตไฟล์ TRIAGE_INPUT_FILE แทนที่ด้วย --vex-file -x, --extract แตกไฟล์บีบอัดอัตโนมัติ --report สร้างรายงานแม้ว่าจะไม่มี CVE สำหรับรูปแบบเอาต์พุตที่เกี่ยวข้อง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ทั้งหมด โปรดดูคู่มือผู้ใช้ CVE Binary Tool