สรุปสั้น
บริษัท Mandiant เปิดเผยกรณีที่ผู้โจมตีเข้ายึดเซสชันของผู้ช่วย AI สำหรับเขียนโค้ดที่กำลังเปิดใช้งานอยู่ ณ ผู้ให้บริการซอฟต์แวร์แบบ SaaS รายหนึ่งที่ไม่ระบุชื่อ แล้วอาศัยเซสชันนั้นปล่อย worm ชื่อ Shai-Hulud ให้ลามไปยังรีโพซอร์สโค้ดภายในองค์กรราว 100 แห่ง จุดเริ่มที่น่าตกใจคือก่อนการลาม ตัวผู้ช่วย AI เองได้แนะนำซอฟต์แวร์ที่ผู้โจมตีวางยาไว้ และนักพัฒนายอมรับคำแนะนำนั้น
หลังคำแนะนำถูกยอมรับ ผู้โจมตีใช้เซสชันที่ยังทำงานอยู่ของนักพัฒนาติดตั้งอินโฟสตีลเลอร์ผ่านแพ็กเกจ PyPI ที่ถูกวางยา พร้อมขโมยโทเคน GitHub OAuth จากนั้นจึงกระจาย worm Shai-Hulud ที่แพร่กระจายตัวเองไปทั่วรีโพภายในเกือบ 100 แห่ง worm ตัวนี้ขโมยทั้งความลับของรีโพและซอร์สโค้ดของผลิตภัณฑ์บริษัท ยิ่งไปกว่านั้นผู้โจมตียังวางยาแพ็กเกจในเนมสเปซทางการของบริษัทเอง ทำให้พนักงานอีกคนดึงเวอร์ชันที่ถูกวางยาไปใช้จนเกิดการติดเชื้อรอบสอง กรณีนี้ปรากฏในรายงานประจำเดือนกันยายน 2569 ของ Mandiant แต่รายงานสาธารณะไม่ได้ระบุว่าเหตุเกิดขึ้นเมื่อใดหรือผู้โจมตียึดเซสชันได้อย่างไร
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 16 กันยายน 2569 โดยอ้างรายงานของบริษัท Mandiant ว่า ผู้โจมตีได้เข้ายึดเซสชันผู้ช่วย AI สำหรับเขียนโค้ดที่กำลังเปิดใช้งานอยู่ของผู้ให้บริการ SaaS รายหนึ่ง ก่อนที่การแพร่กระจายจะเริ่มขึ้น ผู้ช่วย AI ได้แนะนำซอฟต์แวร์ที่ถูกผู้โจมตีวางยาไว้ล่วงหน้า และคำแนะนำนั้นก็ถูกยอมรับไปใช้งาน
เมื่อได้ช่องแล้ว ผู้โจมตีใช้เซสชันที่ยังเปิดอยู่ของนักพัฒนาติดตั้งอินโฟสตีลเลอร์ผ่านแพ็กเกจ PyPI ที่ถูกวางยา และขโมยโทเคน GitHub OAuth ต่อจากนั้นจึงปล่อย worm Shai-Hulud ที่แพร่กระจายตัวเองออกไปยังรีโพซอร์สโค้ดภายในราว 100 แห่ง ผู้โจมตียังวางยาแพ็กเกจในเนมสเปซทางการของบริษัท ส่งผลให้พนักงานอีกรายดึงเวอร์ชันที่ถูกวางยาไปใช้ จนเกิดการติดเชื้อเป็นรอบที่สอง Mandiant เคยบันทึกการที่ผู้โจมตีใช้ AI ในการโจมตีจริงมาแล้ว โดยในรายงานเดือนมีนาคม 2569 ระบุว่าตลอดปี 2568 ผู้โจมตีได้ขยับจากการใช้ generative AI เพื่อเร่งงานเป็นหลัก ไปสู่การใช้โมเดลภาษาขนาดใหญ่ในตัวมัลแวร์และในปฏิบัติการโจมตีที่กำลังดำเนินอยู่
การโจมตีในตระกูล Shai-Hulud ช่วงหลังยังพุ่งเป้าไปที่เครื่องมือและข้อมูลรับรองของนักพัฒนาอย่างต่อเนื่อง เมื่อเดือนสิงหาคมมี worm บน npm ที่เชื่อมโยงกับ Keyv วางยาแพ็กเกจหลายร้อยตัวและฝังฮุกสำหรับ Claude Code และ Visual Studio Code ต่อมามีการวิเคราะห์พบ Shai-Hulud สายพันธุ์หนึ่งที่กวาดค้นข้อมูลรับรองถึง 469 ตำแหน่งทั่วระบบของนักพัฒนา ทั้งในเครื่องมือ CI/CD ไฟล์ตั้งค่าคลาวด์ และไฟล์ของเครื่องมือ AI อย่างไรก็ตามเหตุการณ์เหล่านี้เป็นคนละแคมเปญกัน และหลักฐานที่มีอยู่ยังไม่เชื่อมโยงกับการบุกรุกที่ Mandiant รายงานครั้งนี้ นอกจากนี้รายงานสาธารณะยังไม่เปิดเผยชื่อผู้ให้บริการที่ตกเป็นเหยื่อ ช่วงเวลาที่เกิดเหตุ หรือวิธีที่ผู้โจมตียึดเซสชันผู้ช่วย AI ได้
วิธีการโจมตี
ห่วงโซ่การโจมตีเริ่มจากการที่ผู้โจมตีเข้ายึดเซสชันผู้ช่วย AI สำหรับเขียนโค้ดที่กำลังทำงานอยู่ของนักพัฒนา จุดพลิกสำคัญคือผู้ช่วย AI ได้แนะนำซอฟต์แวร์ที่ถูกวางยาไว้ และเมื่อนักพัฒนายอมรับคำแนะนำ ผู้โจมตีก็ใช้เซสชันเดียวกันนั้นติดตั้งอินโฟสตีลเลอร์ผ่านแพ็กเกจ PyPI ที่ถูกวางยา พร้อมกับขโมยโทเคน GitHub OAuth ซึ่งเป็นกุญแจสู่คลังโค้ดขององค์กร
เมื่อได้โทเคนและช่องทางเข้าถึงแล้ว ผู้โจมตีจึงปล่อย worm Shai-Hulud ที่ออกแบบให้แพร่กระจายตัวเองไปยังรีโพภายในราว 100 แห่ง โดยขโมยทั้งความลับที่เก็บในรีโพและซอร์สโค้ดของผลิตภัณฑ์ เทคนิคที่ทำให้เหตุนี้ลุกลามกว้างคือการวางยาแพ็กเกจในเนมสเปซทางการของบริษัทเอง เพราะพนักงานที่ไว้วางใจแพ็กเกจภายในองค์กรจะดึงเวอร์ชันที่ถูกวางยาไปใช้โดยไม่ทันระวัง ทำให้เกิดการติดเชื้อซ้ำจากภายในอีกทอดหนึ่ง
ผลกระทบ
กรณีนี้ชี้ให้เห็นความเสี่ยงรูปแบบใหม่ของการพัฒนาซอฟต์แวร์ที่มี AI ช่วย เมื่อผู้ช่วย AI กลายเป็นทั้งช่องทางเข้าและกระบอกเสียงแนะนำแพ็กเกจอันตราย การไว้วางใจคำแนะนำของผู้ช่วยโดยไม่ตรวจสอบจึงอาจเปิดทางให้ห่วงโซ่อุปทานถูกเจาะได้ เซสชันที่กำลังทำงานอยู่ โทเคน OAuth อายุยาว และคีย์ API ที่เอ็กซ์เทนชันเข้าถึงได้ ล้วนกลายเป็นทรัพย์สินที่ผู้โจมตีต้องการ เพราะยึดได้เพียงจุดเดียวก็ต่อยอดไปถึงคลังโค้ดทั้งองค์กร
ผลที่ตามมาไม่ได้จำกัดแค่การรั่วไหลของซอร์สโค้ด แต่รวมถึงความลับที่ฝังในรีโพซึ่งอาจเปิดประตูไปยังระบบอื่นต่อได้ และการที่ worm แพร่จากเนมสเปซภายในองค์กรยังทำให้การกักกันยากขึ้น เพราะการติดเชื้อมาจากแหล่งที่พนักงานเชื่อว่าปลอดภัย
คำแนะนำ
Mandiant แนะนำมาตรการควบคุมสามข้อสำหรับการพัฒนาที่มี AI ช่วย ข้อแรกคือตรวจสอบไลบรารีบุคคลที่สามที่ AI แนะนำเทียบกับค่าแฮชเชิงเข้ารหัส (cryptographic checksum) และรายการที่อนุญาต (allowlist) ก่อนนำมาใช้ ข้อสองคือเก็บคีย์ API แบบดิบ โทเคน OAuth อายุยาว และความลับอื่น ๆ ให้พ้นมือของเอ็กซ์เทนชันหรือเครื่องมือที่เข้าถึงได้โดยตรง และข้อสามคือกำหนดเส้นทางการดึงไลบรารีให้ผ่านคลังภายในที่ควบคุมได้ นอกจากนี้ทีมพัฒนาควรปฏิบัติต่อคำแนะนำแพ็กเกจของผู้ช่วย AI อย่างระมัดระวัง หมุนและจำกัดอายุโทเคนที่ใช้เข้าถึงรีโพ และเฝ้าติดตามการติดตั้งแพ็กเกจหรือการเข้าถึงรีโพที่ผิดปกติเพื่อตัดวงจรการแพร่ของ worm ตั้งแต่ระยะแรก
