เครื่องมือ CLI และไลบรารี Go สำหรับสร้าง Software Bill of Materials (SBOM) จากคอนเทนเนอร์อิมเมจและระบบไฟล์ โดดเด่นในการตรวจจับช่องโหว่เมื่อใช้กับเครื่องสแกนเช่น Grype
Syft เป็นเครื่องมือโอเพ่นซอร์สที่ทรงพลังและใช้งานง่ายสำหรับสร้าง Software Bill of Materials (SBOM) สำหรับคอนเทนเนอร์อิมเมจและระบบไฟล์ โดยให้การมองเห็นโดยละเอียดเกี่ยวกับแพ็คเกจและการขึ้นต่อกันในซอฟต์แวร์ของคุณ ช่วยให้คุณจัดการช่องโหว่ การปฏิบัติตามใบอนุญาต และความปลอดภัยของห่วงโซ่อุปทานของซอฟต์แวร์
การพัฒนา Syft ได้รับการสนับสนุนโดย Anchore และเผยแพร่ภายใต้ลิขสิทธิ์ Apache-2.0 สำหรับตัวเลือกการสนับสนุนเชิงพาณิชย์กับ Syft หรือ Grype โปรดติดต่อ Anchore
สร้าง SBOM สำหรับคอนเทนเนอร์อิมเมจ ระบบไฟล์ ไฟล์เก็บถาวร และอื่นๆ เพื่อค้นหาแพ็คเกจและไลบรารี
รองรับรูปแบบภาพ OCI, Docker และ Singularity
การระบุการแจกจ่าย Linux
ทำงานได้อย่างราบรื่นกับ Grype (เครื่องสแกนช่องโหว่ที่รวดเร็วและทันสมัย)
สามารถสร้างการรับรอง SBOM ที่ลงนามแล้วได้โดยใช้ข้อกำหนด in-toto
แปลงระหว่างรูปแบบ SBOM เช่น CycloneDX, SPDX และรูปแบบของ Syft เอง
ไบนารี Syft มีไว้สำหรับ Linux, macOS และ Windows
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | ช -s -- -b /usr/local/bin
ติดตั้งตัวเลือกสคริปต์:
-b
: ระบุไดเร็กทอรีการติดตั้งแบบกำหนดเอง (ค่าเริ่มต้นคือ ./bin
bin )
-d
: ระดับการบันทึกโดยละเอียดเพิ่มเติม ( -d
สำหรับการดีบัก -dd
สำหรับการติดตาม)
-v
: ตรวจสอบลายเซ็นของสิ่งประดิษฐ์ที่ดาวน์โหลดก่อนการติดตั้ง (ต้องติดตั้ง cosign
)
ชงติดตั้ง syft
สกู๊ปติดตั้ง syft
การจำหน่าย Syft แบบช็อกโกแลตนั้นดูแลโดยชุมชนและไม่ได้จัดจำหน่ายโดยทีมงาน Anchore
choco ติดตั้ง syft -y
หมายเหตุ : บรรจุภัณฑ์ Nix ของ Syft ได้รับการดูแลโดยชุมชน Syft มีให้บริการในช่องทางที่เสถียรตั้งแต่ NixOS 22.05
ห้าม-env -i syft
... หรือลองใช้ Nix Shell ชั่วคราว:
ห้าม-shell -p syft
หากต้องการสร้าง SBOM สำหรับอิมเมจคอนเทนเนอร์:
syft <รูปภาพ>
ผลลัพธ์ข้างต้นรวมเฉพาะซอฟต์แวร์ที่มองเห็นได้ในคอนเทนเนอร์ (เช่น การแสดงรูปภาพที่ถูกบีบอัด) หากต้องการรวมซอฟต์แวร์จากเลเยอร์รูปภาพทั้งหมดใน SBOM โดยไม่คำนึงถึงการแสดงตนในรูปภาพสุดท้าย ให้ระบุ --scope all-layers
:
syft--กำหนดขอบเขตทุกเลเยอร์
รูปแบบเอาต์พุตสำหรับ Syft สามารถกำหนดค่าได้เช่นกันโดยใช้ตัวเลือก -o
(หรือ --output
):
syft-o
ในกรณีที่มี formats
ให้เลือก:
syft-json
: ใช้สิ่งนี้เพื่อรับข้อมูลจาก Syft ให้ได้มากที่สุด!
syft-text
: เอาต์พุตที่เน้นแถวและเป็นมิตรกับมนุษย์และเครื่องจักร
cyclonedx-xml
: รายงาน XML ที่สอดคล้องกับข้อกำหนด CycloneDX 1.6
[email protected]
: รายงาน XML ที่สอดคล้องกับข้อกำหนด CycloneDX 1.5
cyclonedx-json
: รายงาน JSON ที่สอดคล้องกับข้อกำหนด CycloneDX 1.6
[email protected]
: รายงาน JSON ที่สอดคล้องกับข้อกำหนดเฉพาะ CycloneDX 1.5
spdx-tag-value
: รายงานที่จัดรูปแบบค่าแท็กที่สอดคล้องกับข้อกำหนด SPDX 2.3
[email protected]
: รายงานที่จัดรูปแบบค่าแท็กที่สอดคล้องกับข้อกำหนด SPDX 2.2
spdx-json
: รายงาน JSON ที่สอดคล้องกับ SPDX 2.3 JSON Schema
[email protected]
: รายงาน JSON ที่สอดคล้องกับ SPDX 2.2 JSON Schema
github-json
: รายงาน JSON ที่สอดคล้องกับรูปแบบสแนปช็อตการพึ่งพาของ GitHub
syft-table
: สรุปเรียงเป็นแนว (ค่าเริ่มต้น)
template
: อนุญาตให้ผู้ใช้ระบุรูปแบบเอาต์พุต ดู "การใช้เทมเพลต" ด้านล่าง
โปรดทราบว่าแฟล็กที่ใช้ @ สามารถใช้กับเวอร์ชันก่อนหน้าของแต่ละข้อกำหนดได้เช่นกัน
อัลไพน์ (APK)
ซี (โคนัน)
C++ (โคนัน)
โผ (ผับ)
เดเบียน (dpkg)
ดอทเน็ต (deps.json)
Objective-C (โกโก้พอด)
น้ำอมฤต (ผสม)
เออร์แลง (rebar3)
ไป (go.mod, ไปไบนารี)
Haskell (กลุ่ม, กองซ้อน)
ชวา (ขวด, หู, สงคราม, พาร์, ซาร์, นาร์, ภาพพื้นเมือง)
จาวาสคริปต์ (npm, เส้นด้าย)
ปลั๊กอินเจนกินส์ (jpi, hpi)
ไฟล์เก็บถาวรเคอร์เนล Linux (vmlinz)
โมดูลเคอร์เนล Linux (ko)
ห้าม (เอาต์พุตใน /nix/store)
PHP (ผู้แต่ง)
Python (วงล้อ, ไข่, บทกวี, Requirements.txt)
หมวกแดง (รอบต่อนาที)
ทับทิม (อัญมณี)
สนิม (cargo.lock)
Swift (cocoapods, ผู้จัดการแพ็คเกจรวดเร็ว)
ปลั๊กอินเวิร์ดเพรส
วิกิของเรามีรายละเอียดเพิ่มเติมในหัวข้อต่อไปนี้:
แหล่งที่มาที่รองรับ
การเลือกไฟล์
ไม่รวมเส้นทางไฟล์
รูปแบบเอาต์พุต
การเลือกแค็ตตาล็อกแพ็คเกจ
แนวคิด
ตัวอย่าง
การใช้เทมเพลต
เอาต์พุตหลายตัว
การรับรองความถูกต้องของรีจิสทรีส่วนตัว
ข้อมูลรับรองนักเทียบท่าท้องถิ่น
ข้อมูลรับรองนักเทียบท่าใน Kubernetes
การรับรอง (ทดลอง)
การสนับสนุนแบบไม่ใช้กุญแจ
การสนับสนุนคีย์ส่วนตัวในเครื่อง
การเพิ่ม SBOM ให้กับรูปภาพเพื่อเป็นการรับรองโดยใช้ Syft
การกำหนดค่า
ดูคู่มือการสนับสนุนและเอกสารสำหรับนักพัฒนาของเรา
ทีมงาน Syft จัดการประชุมชุมชนออนไลน์เป็นประจำ ยินดีต้อนรับทุกท่านเข้าร่วมเพื่อนำหัวข้อต่างๆ มาร่วมอภิปราย
ตรวจสอบปฏิทินสำหรับวันประชุมครั้งถัดไป
เพิ่มรายการลงในวาระการประชุม (เข้าร่วมกลุ่มนี้เพื่อเข้าถึงวาระการเขียน)
แล้วเจอกัน!