ข้ามไปยังเนื้อหา
getnextpdf.com

ความถูกต้องครบถ้วนของห่วงโซ่อุปทาน

มาตรการควบคุมห่วงโซ่อุปทานของ NextPDF ทำงานที่สองจุด: เกต CI ที่รันในทุก pull request ที่เปลี่ยนแปลง dependency และทุก version tag และเวิร์กโฟลว์การปล่อยรุ่น ซึ่งกำหนดค่าการสร้าง provenance การลงนามแบบไร้กุญแจ และการปล่อย SBOM

มาตรการควบคุมประเภท
SBOM แบบ CycloneDX 1.7 ของบิลด์เกต CI, บังคับ
คำแถลง in-toto ที่ผูกมัดกับอินพุตของบิลด์เกต CI, บังคับ
diff ลายนิ้วมือ SHA-256 ของ dependency เทียบกับ baseline ที่ตรึงไว้เกต CI, บังคับ
การตรวจสอบความสอดคล้องด้วย OpenVEX เทียบกับนโยบายคำแนะนำด้านช่องโหว่ของ dependencyเกต CI, บังคับ
การตรวจสอบความเป็นเชิงกำหนดข้ามชุด fixtureการตรวจ CI, best-effort
การสร้าง provenance ด้วย slsa-github-generator ที่ตรึงเวอร์ชันไว้การกำหนดค่าเวิร์กโฟลว์ — เวิร์กโฟลว์การปล่อยรุ่น
การลงนามแบบไร้กุญแจด้วย Sigstore cosign พร้อมการบันทึกความโปร่งใสลง Rekorการกำหนดค่าเวิร์กโฟลว์ — เวิร์กโฟลว์การปล่อยรุ่น
การปล่อย SBOM แบบ CycloneDX 1.7 และ SPDX 2.3การกำหนดค่าเวิร์กโฟลว์ — เวิร์กโฟลว์การปล่อยรุ่น
เมทริกซ์ php-fuzzer รายคืนบนเส้นทาง parser และ writerCI ตามกำหนดเวลา

ทุก pull request ที่แตะต้อง dependency และทุก version tag จะรัน:

การตรวจสิ่งที่ทำเกต
บัญชีรายการปล่อย SBOM แบบ CycloneDX 1.7 ของบิลด์บังคับ
บันทึกอินพุตของบิลด์ปล่อยคำแถลง in-toto ที่ผูกมัดกับอินพุตของบิลด์บังคับ
ความสมบูรณ์ของ dependencydiff ลายนิ้วมือระดับไบต์ SHA-256 เทียบกับ baseline ที่ตรึงไว้บังคับ
ความสอดคล้องของ VEXกำหนดให้ทุกรายการในนโยบายคำแนะนำด้านช่องโหว่ของ dependency ต้องมีคำแถลงที่ตรงกันในเอกสาร OpenVEX v0.2.0 ของที่เก็บโค้ดบังคับ
ความสามารถในการทำซ้ำรันการตรวจสอบความเป็นเชิงกำหนดข้ามชุด fixturebest-effort

เกตความสมบูรณ์ของ dependency จะ diff ลายนิ้วมือระดับไบต์ SHA-256 ของทรี dependency เทียบกับ baseline ที่ตรึงไว้ในที่เก็บโค้ด โดยไม่ขึ้นกับ metadata ของแพ็กเกจ

เวิร์กโฟลว์การปล่อยรุ่นตรึง reusable workflow slsa-github-generator ฉบับหลักไว้ ซึ่งกำหนดค่าให้สร้าง provenance แบบ in-toto ภายในบิลเดอร์ที่แยกตัวโดดเดี่ยวและเป็นแบบชั่วคราว (ephemeral) และกำหนดค่าให้ slsa-verifier รันแบบ inline เทียบกับเอาต์พุตของเครื่องกำเนิด

การลงนามและความโปร่งใส — การกำหนดค่าเวิร์กโฟลว์

หัวข้อที่มีชื่อว่า “การลงนามและความโปร่งใส — การกำหนดค่าเวิร์กโฟลว์”

เวิร์กโฟลว์การปล่อยรุ่นกำหนดค่าการลงนามแบบไร้กุญแจด้วย Sigstore cosign สำหรับชุด artifact พร้อมการบันทึกความโปร่งใสลง Rekor การลงนามแบบไร้กุญแจได้ใบรับรองอายุสั้นมาจากอัตลักษณ์ OIDC ของเวิร์กโฟลว์ (https://token.actions.githubusercontent.com) ดังนั้นเส้นทางการลงนามการปล่อยรุ่นนี้จึงถูกกำหนดค่าไว้โดยไม่มีคีย์ลงนาม artifact ที่มีอายุยืน

เวิร์กโฟลว์การปล่อยรุ่นกำหนดค่าการปล่อย SBOM สองรูปแบบ — เอกสาร CycloneDX 1.7 และเอกสาร SPDX 2.3

เมทริกซ์ php-fuzzer รายคืน พร้อมด้วย harness แบบ AST/structure-tree ทดสอบเส้นทาง parser และ writer