Joshua Rogers สร้างข่าวใหญ่ในชุมชนโอเพนซอร์สด้วยการค้นพบบั๊กที่ได้รับการยืนยันแล้วมากกว่า 22 ตัวใน cURL ซึ่งเป็นหนึ่งในไลบรารีเครือข่ายที่ใช้กันอย่างแพร่หลายที่สุดในโลก สิ่งที่ทำให้การค้นพบนี้น่าสนใจเป็นพิเศษคือวิธีที่ Rogers บรรลุเป้าหมายนี้ - ผ่านการผลิตรวมที่ซับซ้อนของเครื่องมือวิเคราะห์ความปลอดภัยที่ขับเคลื่อนด้วย AI แทนที่จะเป็นการตรวจสอบโค้ดด้วยตนเองแบบดั้งเดิม
เรื่องราวความสำเร็จนี้ตรงกันข้ามอย่างสิ้นเชิงกับรายงานบั๊กคุณภาพต่ำที่สร้างขึ้นโดย AI ที่กำลังรบกวนผู้ดูแลโอเพนซอร์ส Daniel Stenberg ผู้ดูแลหลักของ cURL เคยแสดงความหงุดหงิดกับนักวิจัยด้านความปลอดภัยมือสมัครเล่นที่เพียงแค่โยนโค้ดไปให้ ChatGPT และส่งช่องโหว่ใดๆ ที่ AI อ้างว่าพบ โดยไม่มีการตรวจสอบที่เหมาะสม
วิธีที่ถูกต้องในการใช้ AI สำหรับการวิเคราะห์ความปลอดภัย
แนวทางของ Rogers แสดงให้เห็นว่า AI สามารถนำมาใช้ประโยชน์ในการวิเคราะห์โค้ดได้อย่างมีประสิทธิภาพเมื่อใช้โดยผู้ที่มีความเชี่ยวชาญที่เหมาะสม แทนที่จะพึ่งพาโมเดลภาษาที่ใช้ได้ทั่วไป เขาใช้เครื่องมือ static analysis security testing (SAST) ที่ช่วยเหลือด้วย AI เฉพาะทาง รวมถึง ZeroPath, Corgea และ Almanax เครื่องมือเหล่านี้ไม่เพียงแค่สร้างช่องโหว่ที่เป็นไปได้ - แต่ใช้ AI เพื่อกรองและจัดลำดับความสำคัญของผลการค้นหาจาก static analyzer แบบดั้งเดิม ลดการแจ้งเตือนเท็จได้อย่างมีนัยสำคัญ
การตอบสนองของชุมชนเป็นไปในทางบวกอย่างท่วมท้น โดยนักพัฒนาหลายคนสังเกตว่านี่คือกรณีการใช้งานที่เหมาะสมสำหรับ AI ในการเขียนโปรแกรม แทนที่จะให้ AI เขียนโค้ดที่มนุษย์ต้องตรวจสอบ เครื่องมือเหล่านี้ช่วยระบุพื้นที่ที่น่าสงสัยซึ่งควรได้รับการตรวจสอบอย่างใกล้ชิดจากมนุษย์
เครื่องมือ AI ที่ Joshua Rogers ใช้:
- ZeroPath (แบบสมัครสมาชิก ราคา $200 USD แผนปกติ)
- Corgea (การกรอง SAST ที่ขับเคลื่อนด้วย AI)
- Almanax (แพลตฟอร์มวิเคราะห์ความปลอดภัย)
- การตั้งค่าการวิเคราะห์แบบคงที่ที่ช่วยเหลือด้วย AI แบบกำหนดเอง
เกินกว่า Static Analysis แบบดั้งเดิม
สิ่งที่ทำให้การค้นพบของ Rogers น่าประทับใจเป็นพิเศษคือ cURL ได้รับการวิเคราะห์โดย code analyzer ที่มีความสามารถสามตัวแล้ว ซึ่งทั้งหมดรายงานว่าไม่พบปัญหาใดๆ เครื่องมือที่ช่วยเหลือด้วย AI สามารถเปิดเผยปัญหาที่ static analysis แบบดั้งเดิมพลาดไป รวมถึงข้อบกพร่องด้านความปลอดภัยที่เป็นไปได้พร้อมกับบั๊กเล็กๆ
นี่คือสิ่งที่ฉันต้องการจาก 'AI coding companion' อย่างแท้จริง อย่าเขียนหรือแก้ไขโค้ดให้ฉัน แต่ให้บอกฉันว่าส่วนไหนในโค้ดดูน่าสงสัยและที่ไหนที่ฉันต้องดูให้ใกล้ชิดมากขึ้น
บั๊กเหล่านี้มีตั้งแต่ปัญหาการเขียนโค้ดเล็กน้อยไปจนถึงปัญหาที่ร้ายแรงกว่า โดยการแก้ไขบางอย่างแก้ไข printf format specifier ที่ไม่ถูกต้องและข้อผิดพลาดเล็กๆ อื่นๆ ที่อาจมีผลกระทบต่อความปลอดภัย Stenberg ได้ผสานการแก้ไขบั๊ก 22 ตัวแล้วจากรายงานของ Rogers และยังคงทำงานกับปัญหาที่เหลืออยู่
ผลการค้นพบบั๊ก:
- บั๊กที่ได้รับการยืนยันและแก้ไขใน cURL มากกว่า 22 ตัว
- ปัญหาเพิ่มเติมยังคงอยู่ระหว่างการตรวจสอบ (คาดการณ์ว่าจะพบทั้งหมดมากกว่า 40 ตัว)
- ประกอบด้วยบั๊กเล็กน้อยและช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น
- ค้นพบหลังจากเครื่องมือวิเคราะห์โค้ดแบบดั้งเดิม 3 ตัวรายงานว่า "ไม่พบปัญหา"
แนวทางมืออาชีพในการวิจัยความปลอดภัยที่ช่วยเหลือด้วย AI
ความแตกต่างหลักระหว่างงานของ Rogers และรายงานที่สร้างโดย AI ที่มีปัญหาซึ่งผู้ดูแลมักได้รับอยู่ในวิธีการ Rogers ใช้เครื่องมือวิเคราะห์ความปลอดภัยที่สร้างขึ้นเพื่อจุดประสงค์เฉพาะ ตรวจสอบผลการค้นหาแต่ละรายการอย่างระมัดระวัง และตรวจสอบช่องโหว่ก่อนรายงาน แนวทางมืออาชีพนี้ตรงกันข้ามอย่างชัดเจนกับนักวิจัยมือสมัครเล่นที่ส่งผลลัพธ์ AI ดิบโดยไม่มีความเข้าใจหรือการตรวจสอบ
ความสำเร็จนี้ได้จุดประกายการอพิพากษาที่กว้างขึ้นเกี่ยวกับอนาคตของ AI ในความปลอดภัยซอฟต์แวร์ หลายคนในชุมชนเห็นสิ่งนี้เป็นการยืนยันว่าเครื่องมือ AI เมื่อใช้อย่างเหมาะสมโดยผู้เชี่ยวชาญที่มีความรู้ สามารถเพิ่มประสิทธิภาพวิธีการวิเคราะห์ความปลอดภัยแบบดั้งเดิมได้อย่างมีนัยสำคัญ อย่างไรก็ตาม ความเน้นยังคงอยู่ที่ความเชี่ยวชาญของมนุษย์ - AI ทำหน้าที่เป็นผู้ช่วยขั้นสูงมากกว่าการทดแทนนักวิจัยด้านความปลอดภัยที่มีทักษะ
การพัฒนานี้ให้ความหวังแก่ชุมชนโอเพนซอร์ส แสดงให้เห็นว่า AI สามารถเป็นพันธมิตรที่มีค่าในการรักษาความปลอดภัยซอฟต์แวร์เมื่อใช้อย่างรับผิดชอบและเป็นมืออาชีพ
อ้างอิง: Joshua Rogers sent us a massive list of potential issues in #curl
