เจาะประเด็น
AI Security
AI ช่วยแก้บั๊กให้คุณ แต่ดันเปิดประตูให้แฮกเกอร์เข้าระบบ: บทเรียนราคาแพงจาก Copilot ของ Snowflake
เครื่องมือ Autofix ที่ว่ากันว่าฉลาด กลับแนะนำโค้ดที่รั่วสุดๆ จนทีมวิจัยเจาะระบบ Jira ได้แบบไม่ต้องง้อ 0-day
ทีมข่าว เอไอไทย.com
⏱ อ่าน 4 นาที
ถ้า AI เขียนโค้ดให้เรา แล้วมันผิดพลาด เราจะโทษใคร? ตัว AI หรือตัวเราเองที่เชื่อมันมากเกินไป?
เรื่องนี้มันไม่ได้เกิดขึ้นกับบริษัทเล็กๆ ที่ไม่มีทีมเซcurities อะไรเลยนะครับ มันเกิดกับ Snowflake บริษัทคลาวด์ดาต้าเวิร์คเฮาส์ยักษ์ใหญ่ที่ทั้งโลกใช้กัน และตัวต้นเรื่องก็ไม่ได้มาจากแฮกเกอร์นอก แต่มาจากฟีเจอร์ "อัจฉริยะ" ของ GitHub Copilot ที่ชื่อว่า Autofix ซึ่งเป็นลูกเล่นที่หลายคนยกให้เป็นพระเอกยุคใหม่ ช่วยไล่แก้บั๊กให้โดยอัตโนมัติ ฟังดูดีใช่ไหมล่ะ? แต่ผลลัพธ์ที่ออกมามันชวนให้ผมต้องตั้งคำถามกับทุกอย่างที่ AI เขียนให้เราจริงๆ
ทีมวิจัยจาก Wiz (บริษัทด้านคลาวด์ซีเคียวริตี้) ค้นพบช่องโหว่ร้ายแรงในระบบของ Snowflake ที่เปิดทางให้พวกเขาสามารถเข้ายึด Jira ของบริษัทได้ทั้งหมด โดยไม่ต้องใช้เทคนิคเจ๋งๆ อะไรให้ยาก ต้นตอของปัญหามันอยู่ที่โค้ดที่ Copilot แนะนำให้แก้นั่นแหละครับ มันคือการ "แนะนำ" ที่ดูสมเหตุสมผลบนพื้นผิว แต่ลึกๆ แล้วมันคือหายนะ
ประเด็นมันอยู่ตรงนี้: ฟีเจอร์ Autofix ถูกออกแบบมาเพื่อช่วยนักพัฒนาปิดช่องโหว่ที่เจอในโค้ดรีวิวหรือการสแกน แต่การ "ช่วย" ของมันในเคสนี้คือการแนะนำให้ใช้ฟังก์ชันที่จัดการกับข้อมูลที่ผู้ใช้ป้อนเข้ามาโดยตรง ซึ่งมันเปิดช่องให้เกิดการโจมตีแบบ Injection ได้ง่ายๆ เหมือนกับที่เราเคยเห็นในตำราแฮกโบราณเลย
ผมไม่ได้บอกว่า AI ไม่มีประโยชน์นะ แต่นี่คือตัวอย่างที่ชัดเจนที่สุดของการที่เรามอบความไว้วางใจให้เครื่องมือที่ "เก่ง" แต่ไม่รู้จัก "บริบท" จริงๆ มันเหมือนกับมีเด็กฝึกงานที่ฉลาดมาก แต่ไม่มีประสบการณ์ คอยมาแก้โค้ดให้ แล้วคุณดันปล่อยให้มัน push ขึ้น production โดยไม่ตรวจทานให้ดีๆ
เรื่องราวเริ่มจากทีม Wiz พบว่ามีบางอย่างผิดปกติในตัวเชื่อมต่อ (connector) ระหว่าง Snowflake กับระบบของคู่ค้าบางราย พวกเขาไล่ตามไปเรื่อยๆ จนไปสะดุดกับโค้ดที่ถูกแก้ไขใน CI/CD pipeline ซึ่งโค้ดส่วนนี้แหละที่ถูกเขียนขึ้นโดย "คำแนะนำ" จาก Copilot โดยไม่มีมนุษย์คนไหนตรวจสอบความถูกต้องเชิงความปลอดภัยอย่างจริงจัง
จุดที่รั่วนั้นอยู่ที่การจัดการกับพารามิเตอร์ที่ส่งเข้ามาในลิงก์หรือฟอร์ม ซึ่ง Autofix ตัดสินใจที่จะ "ทำความสะอาด" ข้อมูลโดยใช้วิธีที่ไม่ปลอดภัย แทนที่จะใช้ prepared statements หรือ parameterized queries ที่เป็นมาตรฐานสากลในการป้องกันการโจมตีแบบ SQL Injection หรือ Command Injection ผลลัพธ์คือ ทีมวิจัยสามารถส่งคำสั่งที่เป็นอันตรายผ่านช่องทางนี้เพื่อรันคำสั่งบนเซิร์ฟเวอร์ของ Snowflake ได้สำเร็จ และไต่ระดับสิทธิ์ไปเรื่อยๆ จนถึง Jira ซึ่งเป็นหัวใจหลักของการจัดการโปรเจกต์และข้อมูลภายใน
นี่ไม่ใช่แค่ข่าวซีเคียวริตี้ทั่วไป แต่คือสัญญาณเตือนภัยที่ดังลั่นถึงวงการ DevRel และ DevOps ทั้งหมด เรากำลังรีบเร่งนำ AI เข้ามาเป็นผู้ช่วยเขียนโค้ด โดยลืมไปว่าความปลอดภัยมันคือ "ความรู้" และ "ประสบการณ์" ที่ AI ยังไม่มี มันทำได้แค่เดาจากแพทเทิร์นที่มันเคยเห็น ซึ่งแพทเทิร์นส่วนใหญ่ในโลกอินเทอร์เน็ตก็ไม่ได้ปลอดภัยเสมอไป
สิ่งที่เกิดขึ้นกับ Snowflake คือบทเรียนที่ว่า "Code Review" ไม่ใช่ขั้นตอนที่จะตัดทิ้งได้ หรือปล่อยให้เป็นหน้าที่ของ AI ตรวจกันเอง การที่มนุษย์ยังต้องเป็นคนดูโค้ดที่ AI เขียนมันไม่ใช่เรื่องเสียเวลาอีกต่อไป แต่คือเกราะป้องกันสุดท้ายที่เรามี ถ้าคุณเป็นนักพัฒนาแล้วใช้ Copilot หรือเครื่องมือ AI อื่นๆ โดยไม่ตรวจทานโค้ดด้วยตัวเอง ผมบอกได้เลยว่า คุณกำลังนั่งอยู่บนระเบิดเวลาที่รอวันปะทุ
และที่สำคัญกว่านั้นคือ นักพัฒนาต้องเข้าใจ "ทำไม" โค้ดแบบนี้ถึงปลอดภัย หรือไม่ปลอดภัย ไม่ใช่แค่กดรับคำแนะนำของ AI เพราะถ้าเราไม่รู้หลักการพื้นฐาน เราก็จะไม่รู้ด้วยซ้ำว่าโค้ดที่ AI เขียนให้มันผิดตรงไหน เรื่องนี้มันไม่ได้เกี่ยวกับความฉลาดของ AI แต่มันเกี่ยวกับความรับผิดชอบของมนุษย์ที่กดปุ่ม "Merge" ต่างหาก
AI คือเครื่องมือที่ทรงพลัง แต่ไม่ใช่พระเจ้า การที่ Snowflake เกือบโดนเจาะทั้งระบบเพราะโค้ดที่ AI เขียนให้ เป็นเครื่องยืนยันว่าความรู้ด้านความปลอดภัยขั้นพื้นฐานของนักพัฒนาคือสิ่งที่ AI ทดแทนไม่ได้ และถ้ายังปล่อยให้ AI เขียนโค้ดโดยไม่มีมนุษย์ตรวจทานแบบจริงจัง เรื่องแบบนี้จะเกิดซ้ำอีกแน่นอน และอาจไม่ใช่แค่ระบบ Jira แต่คือทั้งบริษัทของคุณ
ที่มา: Wiz Blog ผ่าน Hacker News — อ่านต้นฉบับ
ความคิดเห็น 5
กำลังโหลดความคิดเห็น...