สรุปสั้น

ห่วงโซ่อุปทานซอฟต์แวร์ (Software Supply Chain) กลายเป็นเป้าหมายที่น่าดึงดูดมากขึ้นเรื่อยๆ สำหรับผู้โจมตี เพราะการเจาะเพียงจุดเดียวสามารถส่งผลกระเพื่อมไปยังสภาพแวดล้อมการพัฒนาซอฟต์แวร์นับไม่ถ้วนได้ แทนที่จะเจาะเข้าองค์กรทีละแห่ง ผู้โจมตีหันมามุ่งเป้าเข้าถึงโครงสร้างพื้นฐานที่เชื่อถือได้ซึ่งใช้แจกจ่ายซอฟต์แวร์ ทำให้โค้ดอันตรายแพร่กระจายผ่านช่องทางที่ถูกต้องตามกฎหมายได้ และงานวิจัยใหม่จากบริษัท Upwind ก็เป็นอีกตัวอย่างหนึ่งของการเปลี่ยนแปลงนี้ โดยบริษัทด้านความปลอดภัยบนคลาวด์รายนี้ได้เปิดเผยผลการสอบสวนการโจมตีที่ประสานงานกัน ซึ่งกระทบแพ็กเกจ npm อย่างเป็นทางการของ AsyncAPI หลายตัว

สิ่งที่การสอบสวนพบคือการเจาะที่ลุกลามไปทั่วทั้ง repository และไปป์ไลน์การเผยแพร่ (Publishing Pipeline) แทนที่จะเป็นแพ็กเกจเดียวที่ถูกเจาะแบบโดดๆ นักวิจัยยืนยันว่าผู้โจมตีเจาะ GitHub repository ที่แยกกัน 2 แห่ง พร้อมทั้งพบการเจาะ repository อิสระอีกแห่งหนึ่ง โดยผู้โจมตีมุ่งเป้าไปยัง release branch ที่ต่างกันและใช้ตัวตนการเผยแพร่แบบ OpenID Connect (OIDC) ที่ต่างกันในช่วงเวลาสั้นๆ แสดงให้เห็นถึงการเข้าถึงไปป์ไลน์การเผยแพร่หลายชุด นาย Amiram Shachar ซีอีโอและผู้ร่วมก่อตั้งบริษัท Upwind กล่าวว่า “นี่ไม่ใช่แค่แพ็กเกจอันตราย แต่เป็นการทำลายความไว้วางใจ” เพราะแพ็กเกจ AsyncAPI อย่างเป็นทางการหลายตัวถูกเผยแพร่พร้อมโค้ดที่ฝัง backdoor จาก repository และไปป์ไลน์ที่แยกกัน

รายละเอียดข่าว

เว็บไซต์ HackRead รายงานเมื่อวันที่ 14 กรกฎาคม พ.ศ. 2569 ว่าบริษัท Upwind ซึ่งเป็นบริษัทด้านความปลอดภัยบนคลาวด์ ได้เปิดเผยผลการสอบสวนการโจมตีห่วงโซ่อุปทานที่ประสานงานกันอย่างเป็นระบบ ซึ่งเจาะแพ็กเกจ npm อย่างเป็นทางการหลายตัวในระบบนิเวศของ AsyncAPI ซึ่งเป็นชุดเครื่องมือโอเพนซอร์สยอดนิยมที่นักพัฒนาใช้กำหนดมาตรฐานสำหรับ event-driven API

การสอบสวนของ Upwind พบว่าแคมเปญนี้ส่งผลกระทบต่อองค์ประกอบหลายส่วนของระบบนิเวศ AsyncAPI นักวิจัยยืนยันว่าผู้โจมตีได้เจาะ GitHub repository ที่แยกจากกัน 2 แห่ง พร้อมทั้งระบุการเจาะ repository อิสระอีกแห่งหนึ่ง โดยผู้โจมตีมุ่งเป้าไปยัง release branch ที่แตกต่างกัน และใช้ตัวตนการเผยแพร่แบบ OIDC ที่ต่างกันในช่วงเวลาสั้นๆ ซึ่งเป็นการแสดงให้เห็นว่าพวกเขาเข้าถึงไปป์ไลน์การเผยแพร่ได้หลายชุด

พฤติกรรมนี้บ่งชี้ถึงปฏิบัติการที่ประสานงานกันซึ่งมุ่งโจมตีที่กระบวนการปล่อยซอฟต์แวร์ (Software Release Process) โดยตรง แทนที่จะเป็นการเจาะแพ็กเกจเพียงครั้งเดียว การที่ผู้โจมตีมุ่งเป้าไปยังโครงสร้างพื้นฐานการเผยแพร่ที่เชื่อถือได้ ทำให้พวกเขาสามารถแจกจ่ายโค้ดอันตรายผ่านช่องทางอย่างเป็นทางการที่นักพัฒนามักถือว่าเชื่อถือได้

วิธีการโจมตี

หนึ่งในการค้นพบสำคัญของการสอบสวนคือวิธีการที่โค้ดอันตรายถูกสั่งให้ทำงาน แทนที่จะพึ่งพาสคริปต์ preinstall หรือ postinstall ที่มักพบในการโจมตี npm ทั่วไป ผู้โจมตีกลับฝังโค้ดที่ทำงานระหว่างการ import แพ็กเกจตามปกติ หรือผ่านเส้นทางการรันทางเลือกอื่น วิธีนี้ทำให้กิจกรรมอันตรายเกิดขึ้นระหว่างพฤติกรรมการทำงานปกติของแอปพลิเคชัน แทนที่จะเกิดตอนติดตั้งแพ็กเกจ ซึ่งทำให้เครื่องมือความปลอดภัยแบบดั้งเดิมตรวจจับพฤติกรรมน่าสงสัยได้ยากยิ่งขึ้น

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

เนื่องจากแพ็กเกจที่ถูกเจาะถูกเผยแพร่ผ่านช่องทางอย่างเป็นทางการ นักพัฒนาที่ใช้แนวปฏิบัติการจัดการ dependency ตามปกติจึงอาจนำโค้ดอันตรายเข้าสู่สภาพแวดล้อมของตนโดยไม่รู้ตัว ตามข้อมูลของ Upwind ภัยคุกคามนี้ขยายไปถึงทั้งเครื่องเวิร์กสเตชันของนักพัฒนาและสภาพแวดล้อม CI/CD ที่มีการ import แพ็กเกจที่ได้รับผลกระทบ และเนื่องจากแพ็กเกจดูเหมือนถูกต้อง องค์กรอาจไม่ทันสังเกตว่าโครงสร้างพื้นฐานการพัฒนาของตนถูกเปิดช่องแล้ว

ผลกระทบต่อไทย

นักพัฒนาและองค์กรไทยที่ทำงานด้าน API โดยเฉพาะระบบที่ใช้สถาปัตยกรรม event-driven หรือ microservices และพึ่งพาเครื่องมือ AsyncAPI ในการออกแบบและจัดทำเอกสาร API มีความเสี่ยงโดยตรงหากดึงแพ็กเกจเวอร์ชันที่ถูกเจาะเข้ามาใช้ ประเด็นที่น่ากังวลเป็นพิเศษคือโค้ดอันตรายทำงานตอน import ไม่ใช่ตอนติดตั้ง ทำให้การสแกนแบบเดิมที่เน้นตรวจตอนติดตั้งแพ็กเกจอาจมองไม่เห็น ทั้งเครื่องนักพัฒนาและระบบ CI/CD ในไทยที่ดึงแพ็กเกจเหล่านี้ไปใช้จึงควรถือว่าอาจถูกบุกรุกแล้ว โดยเฉพาะอย่างยิ่งระบบ CI/CD ที่มักมี credential สำคัญ เช่น คีย์เข้าถึงคลาวด์และโทเคนต่างๆ ซึ่งหากรั่วไหลอาจนำไปสู่การโจมตีที่ลุกลามต่อได้

คำแนะนำ

องค์กรควรทบทวนห่วงโซ่อุปทานซอฟต์แวร์ของตนและตรวจสอบว่ามีการนำแพ็กเกจ AsyncAPI เวอร์ชันที่ได้รับผลกระทบเข้าสู่สภาพแวดล้อมการพัฒนาหรือไม่ ทีมความปลอดภัยควรตรวจสอบเวอร์ชันแพ็กเกจที่ใช้อยู่ในปัจจุบันอย่างเฉพาะเจาะจง ตรึง (Pin) dependency ไว้กับเวอร์ชันที่เชื่อถือได้ และตรวจสอบการอัปเดต dependency ล่าสุด ไฟล์ lockfile และ Software Bill of Materials (SBOM) เพื่อหาการเปลี่ยนแปลงที่ไม่คาดคิด ควรถือว่าเครื่องเวิร์กสเตชันของนักพัฒนาและ CI/CD runner ที่ import แพ็กเกจที่ได้รับผลกระทบนั้นอาจถูกบุกรุกแล้ว และควรหมุนเปลี่ยน (Rotate) credential ที่เข้าถึงได้จากระบบเหล่านั้นเพื่อลดความเสี่ยง นอกจากนี้ Upwind ยังแนะนำให้เสริมการป้องกันห่วงโซ่อุปทานแบบดั้งเดิมด้วยการมองเห็นพฤติกรรมตอนรัน (Runtime Visibility) และการเฝ้าระวังอย่างต่อเนื่องที่สามารถตรวจจับพฤติกรรมน่าสงสัยระหว่างการทำงานของแอปพลิเคชันได้ เพราะการเฝ้าดูแค่ตอนติดตั้งแพ็กเกจอาจไม่เพียงพอต่อการตรวจจับภัยคุกคามรูปแบบนี้อีกต่อไป

แหล่งอ้างอิง