สำหรับการทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ (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