- OpenAI ได้ เปิดซอร์สโค้ด CLI และเครื่องมือที่เกี่ยวข้องของ Codex Security เพื่อให้นำไปใช้ได้ในสภาพแวดล้อมการพัฒนาแบบโลคัลและใน CI
- วิเคราะห์รีโพซิทอรีที่มีสิทธิ์เข้าถึงเพื่อ ตรวจจับช่องโหว่ด้านความปลอดภัยและยืนยันความเป็นไปได้ในการถูกนำไปใช้โจมตีจริง พร้อมแสดงโค้ดที่เกี่ยวข้องและหลักฐานประกอบ
- เลือกตรวจได้ทั้งทั้งรีโพซิทอรี หรือเฉพาะพาธที่กำหนด / ความเปลี่ยนแปลงระหว่างคอมมิต / งานที่ยังไม่ได้คอมมิต
- รองรับ โหมด deep ที่ตรวจในขอบเขตกว้างกว่าการสแกนทั่วไป และรองรับฐานความรู้ที่สะท้อนสถาปัตยกรรม โมเดลภัยคุกคาม และนโยบายความปลอดภัยของโปรเจกต์
- จัดโครงสร้างผลการค้นพบ เช่น ระดับความรุนแรง / ระดับความเชื่อมั่น / หลักฐาน / วิธีแก้ไข และสามารถเปรียบเทียบประวัติการตรวจหรือเชื่อมกับนโยบาย CI ได้
การตรวจจับและยืนยันช่องโหว่
- ไม่ได้หยุดแค่การแสดงรายการรูปแบบโค้ดที่น่าสงสัย แต่จะวิเคราะห์การไหลของโค้ดและบริบทโดยรอบเพื่อยืนยันว่าเป็นปัญหาความปลอดภัยจริงหรือไม่
- แต่ละรายการที่พบจะให้ข้อมูลต่อไปนี้
- ประเภทของช่องโหว่และระดับความรุนแรง
- ระดับความเชื่อมั่นต่อการตัดสิน
- ไฟล์และตำแหน่งโค้ดที่ได้รับผลกระทบ
- เหตุผลที่ตัดสินว่าเป็นช่องโหว่
- เส้นทางที่สามารถโจมตีหรือใช้ประโยชน์ได้
- วิธีแก้ไขที่แนะนำ
การเลือกขอบเขตการตรวจ
- สามารถจำกัดขอบเขตการวิเคราะห์ได้ตามวัตถุประสงค์ของงาน
- ตรวจทั้งรีโพซิทอรี
- ตรวจเฉพาะไดเรกทอรีหรือแพ็กเกจที่กำหนด
- ตรวจความเปลี่ยนแปลงระหว่างคอมมิตฐานกับคอมมิตปัจจุบัน
- ตรวจความเปลี่ยนแปลงในเครื่องที่ถูก staged แล้วหรือยังไม่ได้คอมมิต
- สามารถตรวจเฉพาะโค้ดที่เพิ่มใหม่หรือแก้ไขแล้วได้ จึงนำไปใช้กับการรีวิวโค้ดและการตรวจสอบก่อนดีพลอยได้
โหมด deep
- ใช้เวลาและงานวิเคราะห์มากกว่าการตรวจทั่วไปเพื่อทบทวนรีโพซิทอรีอย่างกว้างขวาง
- ใช้สำหรับวิเคราะห์ช่องโหว่ที่ซับซ้อนซึ่งต้องติดตามความสัมพันธ์ระหว่างหลายไฟล์และหลายคอมโพเนนต์ หรือปัญหาที่ตรวจพบได้ยากด้วยการตรวจรูปแบบผิวเผิน
- ใช้ได้ทั้งกับทั้งรีโพซิทอรีและพาธที่ระบุ
การสะท้อนความรู้ของโปรเจกต์
- ไม่ได้วิเคราะห์โค้ดแบบแยกขาด แต่สามารถนำบริบทที่โปรเจกต์ให้มาไปใช้ในการตรวจได้
- ประเมินความเสี่ยงเฉพาะของโปรเจกต์โดยอิงจากเอกสารสถาปัตยกรรม / โมเดลภัยคุกคาม / นโยบายความปลอดภัย / กฎภายใน เป็นต้น
- แม้จะดูปกติตามกฎความปลอดภัยทั่วไป แต่โค้ดที่ขัดกับหลักการออกแบบของระบบนั้นก็สามารถถูกรวมอยู่ในขอบเขตการตรวจได้
รายงานผลและความครบถ้วนของการตรวจ
- บันทึกไม่เพียงช่องโหว่ที่พบ แต่ยังบันทึกด้วยว่าได้ตรวจพื้นที่ใดจริงบ้าง
- รายงานอาจมีสถานะการตรวจดังต่อไปนี้
- ขอบเขตที่วิเคราะห์แล้ว
- พื้นที่ที่ถูกยกเว้นจากการตรวจ
- งานที่ยังทำไม่เสร็จและถูกพักไว้
- คำถามที่ต้องการการตรวจสอบเพิ่มเติม
- ทำให้ตรวจสอบได้ไม่ใช่แค่รายการผลลัพธ์ แต่ยังรวมถึงว่ารีโพซิทอรีถูกทบทวนไปมากน้อยเพียงใด
การตรวจความปลอดภัยอย่างต่อเนื่อง
- สามารถเปิดผลการตรวจก่อนหน้าอีกครั้ง หรือรันการตรวจเดิมซ้ำเพื่อติดตามการเปลี่ยนแปลงของรายการที่พบ
- เปรียบเทียบผลก่อนและหลังการเปลี่ยนแปลงโค้ดได้ เพื่อตรวจว่ามีช่องโหว่ใหม่เกิดขึ้นหรือได้รับการแก้ไขแล้วหรือไม่
- สามารถเชื่อมต่อกับการตรวจก่อนคอมมิต / การรีวิวโค้ด / การตรวจหลายรีโพซิทอรีแบบเป็นชุด / การตรวจนโยบายความปลอดภัยใน CI pipeline ได้
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผมคือ Michael ผู้ร่วมก่อตั้ง Promptfoo และกำลังพัฒนา Codex Security CLI ที่ OpenAI ขอบคุณที่แจ้งปัญหาเรื่องการยืนยันตัวตน และเพิ่งเปิดเป็น โอเพนซอร์ส ไปสด ๆ ร้อน ๆ เลยยังมีจุดให้ปรับปรุงอีกมาก ตัวผลิตภัณฑ์ก็น่าจะพัฒนาได้เร็วมากจากนี้
อยากให้ลองใช้แล้วบอกทั้งส่วนที่ทำงานได้ดีและส่วนที่ควรปรับปรุงมาได้เลย และผมจะตอบคำถามด้วย
เอกสาร CLI: https://learn.chatgpt.com/docs/security/cli
ตอนนี้กำลังรับคนมาร่วมพัฒนาด้วย: https://openai.com/careers/full-stack-software-engineer-cybe...
ผลิตภัณฑ์ของพวกเขาเองก็กำลังหักล้างคำกล่าวอ้างนั้นอยู่ จึงหวังว่าจะมีคนเชื่อน้อยลงเรื่อย ๆ
ลองรันกับรีโปขนาดเล็กแล้วมันหยุดไปเองเกือบหนึ่งชั่วโมงให้หลัง และกิน โควตารายสัปดาห์ของแพ็กเกจ Pro ไปครึ่งหนึ่ง
ผมรัน
npx codex-security scan .เพื่อสแกนด้วย worker slot สูงสุด 8 ตัว แต่ผ่านไป 52 นาทีก็ขึ้น error ว่าHEADของรีโปเปลี่ยนระหว่างการสแกน จึงบันทึกผลไม่ได้และต้องเริ่มสแกนใหม่ตัวสแกนเองเป็นส่วนที่น่าสนใจน้อยที่สุด ส่วนที่เป็นผลิตภัณฑ์จริงคือระบบรอบข้างที่ดูแลเรื่อง การตัดงานซ้ำ ระหว่างแต่ละรัน การติดตาม false positive การควบคุมงบประมาณ และการตัดสินว่าผ่าน CI หรือไม่ ผมคิดว่านวัตกรรมที่น่าสนใจที่สุดก็น่าจะออกมาจากชั้นนี้
ตอนสร้าง AQ ซึ่งเป็นระบบรันงานเขียนโค้ดสำหรับทีม ผมก็เจอรูปแบบเดียวกัน ตอนแรกคิดว่าโมเดลดิบ ๆ คือคำตอบ แต่ไม่นานก็เปลี่ยนใจ และ ระบบรันงานเฉพาะวัตถุประสงค์ นั้นทรงพลังกว่าที่คาดไว้มาก
เจอ error ว่าพยายามทำงานที่ไม่ได้รับอนุญาตตลอด น่ารำคาญมาก อยากรู้ว่ามันใช้ได้กับโปรเจ็กต์แบบไหน และตรวจสอบความเป็นเจ้าของโค้ดอย่างไร
อย่างเช่น ถ้ามีแพตช์ที่ผมเขียนรวมอยู่ด้วย มันจะใช้กับ Linux kernel ไม่ได้เลยหรือเปล่า
เครื่องมือความปลอดภัยจากบริษัท AI ให้ความรู้สึกเหมือน สถานีดับเพลิงที่บริหารโดยคนวางเพลิง มีประโยชน์ก็จริง แต่ก็ยากจะไม่คิดว่าใครได้ประโยชน์จากไฟไหม้จำนวนมหาศาลเหล่านั้น
ดูเหมือนก่อนหน้านี้มันก็มีให้ใช้ผ่านปลั๊กอิน Codex อยู่แล้ว และข่าวสำคัญจริง ๆ คือ OpenAI ทำมันให้เป็น โอเพนซอร์ส และกำลังพัฒนาอย่างรวดเร็ว
ระหว่างสแกน เอาต์พุตของ CLI แทบไม่มีข้อมูลที่น่าสนใจเลย อยากให้แสดงข้อมูลอย่าง การใช้โทเคน หรือความคืบหน้าบ้าง
Alibaba ก็เปิดโอเพนซอร์สเครื่องมือตรวจโค้ดแบบ CLI เช่นกัน: https://github.com/alibaba/open-code-review
อยากรู้ว่าเครื่องมือนี้อัปโหลดโค้ดไปที่ ChatGPT เพื่อวิเคราะห์หรือเปล่า เพราะในบางโปรเจ็กต์ของบริษัทอาจไม่อนุญาตให้ ส่งโค้ดออกไปภายนอก
สงสัยว่าเครื่องมือแบบนี้จะทำให้บริษัทอย่าง Snyk ต้องปิดกิจการหรือไม่ ที่ทำงานผมใช้ Snyk อยู่แต่ก็ไม่ค่อยพอใจ