ClusterFuzzLite ระบบสำหรับจัดการทดสอบโค้ดที่คลุมเครือ

เมื่อเร็ว ๆ นี้ Google เปิดตัว ผ่านบล็อกโพสต์ โปรเจ็กต์ ClusterFuzzLite ซึ่งช่วยให้จัดการการทดสอบที่คลุมเครือได้ ของรหัสสำหรับการตรวจหาช่องโหว่ที่อาจเกิดขึ้นในระยะแรกของระบบการรวมอย่างต่อเนื่อง

ปัจจุบัน ClusterFuzz สามารถใช้เพื่อทดสอบคำขอดึงโดยอัตโนมัติใน GitHub Actions, Google Cloud Build และ Prowแต่คาดว่าในอนาคตจะเข้ากันได้กับระบบไอซีอื่นๆ โปรเจ็กต์นี้ใช้แพลตฟอร์ม ClusterFuzz ซึ่งสร้างขึ้นเพื่อประสานงานการทำงานของคลัสเตอร์ทดสอบที่คลุมเครือ และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0

ควรสังเกตว่าหลังจาก Google ได้เปิดตัวบริการ OSS-Fuzz ในปี 2016 โครงการโอเพ่นซอร์สหลักมากกว่า 500 โครงการได้รับการยอมรับให้เข้าร่วมโปรแกรมทดสอบการฟัซซิ่งอย่างต่อเนื่อง จากการตรวจสอบที่ดำเนินการ ช่องโหว่ที่ยืนยันแล้วมากกว่า 6.500 รายการได้ถูกกำจัดและแก้ไขข้อผิดพลาดมากกว่า 21.000 รายการ

เกี่ยวกับ ClusterFuzzLite

ClusterFuzzLite ยังคงพัฒนากลไกการทดสอบที่คลุมเครือต่อไป กับความสามารถในการระบุปัญหาในช่วงต้นของขั้นตอนการตรวจสอบโดยเพื่อนของการเปลี่ยนแปลงที่เสนอ. ClusterFuzzLite ได้รับการแนะนำแล้วในกระบวนการตรวจสอบการเปลี่ยนแปลงในโครงการ systemd และ curlและทำให้สามารถระบุข้อผิดพลาดที่ตรวจไม่พบในตัววิเคราะห์แบบสถิตและ linters ที่ใช้ในขั้นเริ่มต้นของการตรวจสอบโค้ดใหม่

วันนี้ เรายินดีที่จะประกาศ ClusterFuzzLite ซึ่งเป็นโซลูชัน fuzzing แบบต่อเนื่องที่ทำงานเป็นส่วนหนึ่งของเวิร์กโฟลว์ CI / CD เพื่อค้นหาช่องโหว่ได้เร็วกว่าที่เคย ด้วยโค้ดเพียงไม่กี่บรรทัด ผู้ใช้ GitHub สามารถผสานรวม ClusterFuzzLite เข้ากับเวิร์กโฟลว์และคำขอดึง fuzz เพื่อตรวจจับจุดบกพร่องก่อนที่จะสร้าง ปรับปรุงความปลอดภัยโดยรวมของห่วงโซ่อุปทานซอฟต์แวร์
นับตั้งแต่เปิดตัวในปี 2016 โครงการโอเพ่นซอร์สที่สำคัญมากกว่า 500 โครงการได้ถูกรวมเข้ากับโปรแกรม OSS-Fuzz ของ Google ส่งผลให้มีการแก้ไขช่องโหว่มากกว่า 6.500 รายการและข้อบกพร่องในการทำงาน 21.000 รายการ ClusterFuzzLite ทำงานร่วมกับ OSS-Fuzz ซึ่งตรวจจับข้อผิดพลาดการถดถอยได้เร็วกว่ามากในกระบวนการพัฒนา

ClusterFuzzLite รองรับการตรวจสอบโครงการใน C, C ++, Java (และภาษาอื่นๆ ที่ใช้ JVM), Go, Python, Rust และ Swift การทดสอบฟัซซิ่งดำเนินการโดยใช้เอ็นจิ้น LibFuzzer สามารถเรียกเครื่องมือ AddressSanitizer, MemorySanitizer และ UBSan (UndefinedBehaviorSanitizer) เพื่อตรวจจับข้อผิดพลาดของหน่วยความจำและความผิดปกติได้

จากคุณสมบัติที่สำคัญ ClusterFuzzLite ไฮไลท์เช่น การตรวจสอบการเปลี่ยนแปลงที่เสนออย่างรวดเร็ว เพื่อหาข้อผิดพลาดในขั้นตอนก่อนการยอมรับรหัสรวมทั้ง การดาวน์โหลดรายงานเงื่อนไขการเกิดปัญหา ความสามารถในการย้ายไปยัง การทดสอบฟัซซิ่งขั้นสูงเพิ่มเติม เพื่อระบุข้อผิดพลาดที่ลึกกว่าซึ่งไม่ปรากฏขึ้นหลังจากตรวจสอบการเปลี่ยนแปลงโค้ด รวมถึงการสร้างรายงานความครอบคลุมเพื่อประเมินความครอบคลุมของโค้ดระหว่างการทดสอบและสถาปัตยกรรมโมดูลาร์ที่ช่วยให้คุณสามารถเลือกฟังก์ชันที่ต้องการได้

โครงการขนาดใหญ่รวมถึง systemd และ curlya กำลังใช้ ClusterFuzzLite ระหว่างการตรวจสอบโค้ด ซึ่งให้ผลลัพธ์ที่ดี Daniel Stenberg ผู้เขียน curl กล่าวว่า “เมื่อผู้ตรวจสอบที่เป็นมนุษย์ตกลงและอนุมัติโค้ดแล้ว และตัววิเคราะห์และ linters ของโค้ดแบบคงที่ไม่สามารถตรวจพบปัญหาได้อีกต่อไป การฟัซซี่คือสิ่งที่นำคุณไปสู่ระดับถัดไปของความสมบูรณ์และความทนทานของโค้ด OSS-Fuzz และ ClusterFuzzLite ช่วยให้เรารักษา curl ให้เป็นโครงการที่มีคุณภาพได้ตลอดทั้งวัน ทุกวัน และทุกครั้งที่มีส่วนร่วม

เราต้องจำไว้ว่าการทดสอบที่คลุมเครือจะสร้างกระแสของการรวมกันสุ่มทุกประเภทของข้อมูลอินพุตที่ใกล้เคียงกับข้อมูลจริง (เช่น หน้า html ที่มีพารามิเตอร์แท็กแบบสุ่ม ไฟล์หรือรูปภาพที่มีส่วนหัวที่ผิดปกติ ฯลฯ) และแก้ไขความล้มเหลวที่อาจเกิดขึ้นในกระบวนการ

หากลำดับใดล้มเหลวหรือไม่ตรงกับการตอบสนองที่คาดไว้ ลักษณะการทำงานนี้น่าจะบ่งชี้ว่ามีจุดบกพร่องหรือจุดอ่อน

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา