OpenAI ชี้แจงว่าทำไม Codex Security จึงไม่ใช้รายงาน SAST เป็นจุดเริ่มต้น

สำหรับการทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ (SAST) นั้นเป็นวิธีที่มีประสิทธิภาพในการช่วยให้ทีมรักษาความปลอดภัยขยายขอบเขตการตรวจสอบโค้ด แต่เมื่อสร้าง Codex Security เราได้ตัดสินใจอย่างเจตนาว่าจะไม่เริ่มต้นด้วยการนำเข้ารายงานการวิเคราะห์แบบคงที่และให้ Agent ทำการคัดกรอง

เราออกแบบระบบให้เริ่มต้นจาก Repository นั้นๆ เอง ทั้งสถาปัตยกรรม ขอบเขตความเชื่อถือ และพฤติกรรมที่ตั้งใจ เพื่อตรวจสอบสิ่งที่พบก่อนที่จะให้มนุษย์เข้ามาเสียเวลา

ปัญหา: SAST ถูกปรับให้เหมาะกับการไหลของข้อมูล

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

ตัวอย่าง: การตรวจสอบก่อนการถอดรหัส

การตอบสนองต่อปัญหานี้หมายถึงการต้องใช้เหตุผลเกี่ยวกับห่วงโซ่การแปลงทั้งหมด เช่น สิ่งที่ Regex อนุญาต การทำงานของการถอดรหัสและการทำให้เป็นมาตรฐาน การจัดการกรณีขอบของ URL และการแก้ไขตรรกะการเปลี่ยนเส้นทาง ดังเช่นใน CVE-2024-29041 ที่ Express มีปัญหาการเปลี่ยนเส้นทางแบบเปิด (open redirect) ซึ่ง URL ที่ผิดรูปแบบอาจหลบเลี่ยงการใช้งาน allowlist ทั่วไปได้

แนวทางของเรา: เริ่มจากพฤติกรรม แล้วจึงตรวจสอบ

ในผลิตภัณฑ์ของเรา นั่นหมายถึงการใช้บริบทเฉพาะของ Repository (รวมถึงแบบจำลองภัยคุกคาม) และการตรวจสอบประเด็นที่มีสัญญาณสูงในสภาพแวดล้อมที่แยกออกมา ก่อนที่จะนำเสนอขึ้นมา เมื่อ Codex Security พบขอบเขตที่ดูเหมือนว่าเป็นการ “ตรวจสอบ” หรือ “การทำให้ปลอดภัย” มันจะไม่ถือว่าเป็นเพียงแค่การทำเครื่องหมายถูก

เหตุผลที่เราไม่ป้อนรายงาน SAST ให้ Codex Security

หากคุณใช้มันเป็นจุดเริ่มต้น คุณอาจทำให้ระบบมีแนวโน้มที่จะใช้ความพยายามอย่างไม่สมส่วนในบางส่วน โดยใช้การทำให้เป็นนามธรรมแบบเดียวกัน และพลาดกลุ่มของปัญหาที่ไม่ตรงกับโลกทัศน์ของเครื่องมือ

ศัพท์ที่ควรรู้

  • SAST (Static Application Security Testing) – การทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ คือการวิเคราะห์โค้ดโดยไม่ต้องรันโปรแกรม
  • Dataflow – การไหลของข้อมูล คือการติดตามว่าข้อมูลเดินทางผ่านโปรแกรมอย่างไรจากจุดเริ่มต้นถึงจุดสิ้นสุด
  • Codex Security – คือระบบรักษาความปลอดภัยที่ถูกออกแบบมาเพื่อวิเคราะห์โค้ดโดยใช้บริบทของ Repository เป็นหลัก
  • CVE-2024-29041 – คือรหัสอ้างอิงของช่องโหว่ด้านความปลอดภัยที่ถูกค้นพบใน Express

ที่มา: OpenAI

Leave a Comment