GitHub ยกระดับความปลอดภัย npm และ GitHub Actions สกัดกั้นการโจมตี Supply Chain

GitHub ยกระดับความปลอดภัย npm และ GitHub Actions สกัดกั้นการโจมตี Supply Chain

ในช่วงปีที่ผ่านมา รูปแบบการโจมตีซัพพลายเชนเริ่มรุนแรงขึ้น โดยพุ่งเป้าไปที่จุดอ่อนใน Package Repositories และระบบ CI/CD เพื่อแพร่กระจายมัลแวร์ไปยังโปรเจกต์โอเพนซอร์สจำนวนมาก มัลแวร์เหล่านี้มุ่งหวังที่จะขโมยข้อมูลรับรอง (Credentials) เพื่อนำไปใช้ขยายวงจรการโจมตีหรือหาประโยชน์ในระยะยาว

GitHub ได้เผยแพร่แผนการเสริมความแข็งแกร่งให้กับซัพพลายเชนมาอย่างต่อเนื่อง ไม่ว่าจะเป็น Our plan for a more secure npm supply chain ในเดือนกันยายน 2025, Strengthening supply chain security: Preparing for the next malware campaign ในเดือนธันวาคม 2025 และ What’s coming to our GitHub Actions 2026 security roadmap ในเดือนมีนาคม 2026 บทความนี้จะสรุปความคืบหน้าของการเปลี่ยนแปลงที่เกิดขึ้นจริงเพื่อขัดขวางเทคนิคการโจมตีที่พบบ่อยและมีความรุนแรงสูง

Anatomy of supply chain attacks

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

แม้การแพร่กระจายของมัลแวร์ในแต่ละระบบนิเวศจะแตกต่างกัน แต่ส่วนใหญ่มักใช้เทคนิคที่คล้ายคลึงกัน ทั้งการเข้าควบคุมโปรเจกต์ในเบื้องต้น การยกระดับสิทธิ์ และการกระจายตัวสู่ผู้ใช้ การปรับปรุง npm และ GitHub Actions ในช่วงไม่กี่เดือนนี้จึงมุ่งไปที่การปิดช่องทางเฉพาะหน้า พร้อมให้เครื่องมือกับลูกค้าในการระบุและตอบสนองต่อเหตุภัยคุกคามได้อย่างทันท่วงที

Initial compromise

การเจาะระบบขั้นแรกมักเริ่มจากการเข้าควบคุมโปรเจกต์เพียงแห่งเดียว ผ่านทางบัญชีของผู้ดูแล (Maintainer) หรือช่องโหว่ใน Workflow ของโปรเจกต์นั้นๆ

  • npm adds preventive account protection for high-impact accounts (มิถุนายน 2026): เพื่อป้องกันการถูกฟิชชิ่ง บัญชี npm ที่ส่งผลกระทบสูงจะถูกเปลี่ยนเป็นโหมดอ่านอย่างเดียว 72 ชั่วโมง หากมีการแก้ไขอีเมลหรือรหัสกู้คืน 2FA เพื่อให้เวลาผู้ดูแลตัวจริงในการกู้คืนบัญชี
  • Safer pull_request_target defaults for GitHub Actions checkout (มิถุนายน 2026): ป้องกันปัญหา “pwn requests,” โดยปรับพฤติกรรมเริ่มต้นของ actions/checkout ให้ไม่ดึงโค้ดที่ไม่น่าเชื่อถือจากฝั่ง Forks มาโดยอัตโนมัติ ช่วยลดความเสี่ยงจากการรันโค้ดอันตรายในระบบ CI/CD
  • Control who and what triggers GitHub Actions workflows (มิถุนายน 2026): เพิ่มการควบคุมระดับองค์กรให้เลือกได้ว่าใครหรือตัวกระตุ้น (Trigger) แบบใดที่ได้รับอนุญาตให้รัน Workflow ได้ ตามหลักการสิทธิ์ขั้นต่ำ (Least-privilege)
  • Read-only Actions cache for untrusted triggers (มิถุนายน 2026): ปิดเส้นทางการยกระดับสิทธิ์ผ่านการวางยาในรายการ Cache โดยจำกัด Workflow ที่มีความน่าเชื่อถือน้อยให้มีสิทธิ์เพียงแค่ดู Cache แต่ไม่สามารถแก้ไขได้

Exfiltrate credentials

เมื่อเข้ามายังแพ็กเกจได้แล้ว ผู้โจมตีจะมุ่งขโมยข้อมูลรับรองเพื่อขยายการโจมตีไปสู่ส่วนอื่นๆ ของระบบนิเวศ

  • npm trusted publishing now supports CircleCI (เมษายน 2026): ขยายการรองรับ Trusted publishing มายัง CircleCI เพื่อใช้รหัสผ่านชั่วคราวแทนตัวที่มีอายุยาว ทำให้ลดโอกาสที่ข้อมูลรับรองจะถูกขโมยไปใช้งานในระยะยาว
  • Actions network firewall (In technical preview): ระบบบันทึกการส่งข้อมูลขาออกของ Action Workflow เพื่อตรวจจับความผิดปกติ เช่น การลักลอบส่งข้อมูลรับรองออกไปยังโดเมนของผู้โจมตี

Propagating the attack

ขั้นตอนของการใช้ข้อมูลที่ได้มาเพื่อเผยแพร่มัลแวร์และเจาะโปรเจกต์อื่นๆ ต่อไป

  • Staged publishing for npm (พฤษภาคม 2026): ใช้ระบบพักแพ็กเกจไว้จนกว่าจะมีการยืนยันตัวตนแบบ 2FA ซ้ำอีกครั้งผ่าน CLI หรือเว็บ แม้ผู้โจมตีจะมีข้อมูลรับรองเดิมก็ไม่สามารถเผยแพร่แพ็กเกจใหม่ได้ทันที
  • Upcoming breaking changes for npm v12 (มิถุนายน 2026): npm v12 จะปิดการทำงานของ Install-time Scripts โดยค่าเริ่มต้น เพื่อป้องกันมัลแวร์แอบรันโค้ดขณะติดตั้งแพ็กเกจ
  • Dependabot version updates introduce default package cooldown (กรกฎาคม 2026): เพิ่มเวลาหน่วง (Cooldown) 3 วันก่อนที่ Dependabot จะเปิด Pull Request อัปเดตเวอร์ชันใหม่ เพื่อให้ชุมชนมีเวลาตรวจสอบและส่งสัญญาณเตือนหากพบมัลแวร์ในเวอร์ชันนั้นๆ

Identifying and responding to supply chain attacks

นอกจากการป้องกัน GitHub ยังเพิ่มความสามารถในการระบุตัวตนและกู้คืนระบบเมื่อเกิดเหตุ

  • Self-service credential revocation for incident response (มิถุนายน 2026): เครื่องมือแบบบริการตนเองที่ให้ผู้ดูแลองค์กรสามารถสั่งเพิกถอน (Revoke) ข้อมูลรับรองทั้งหมดของผู้ใช้รายนั้นได้ทันทีเมื่อตรวจพบการเจาะระบบ
  • Expanded credential revocation API support (มีนาคม 2026): ขยายขอบเขต API การเพิกถอนข้อมูลรับรองให้ครอบคลุมทั้ง GitHub OAuth และ App Tokens เพื่อรับมือกับเหตุการณ์ที่มีข้อมูลหลุดรั่วให้รวดเร็วที่สุด

What’s Next?

การเพิ่มความปลอดภัยให้เป็นค่าเริ่มต้น (Secure by default) คือภารกิจหลักของ GitHub และ npm แม้จะมีฟีเจอร์ที่ส่งมอบไปแล้วจำนวนมาก แต่การพัฒนายังคงดำเนินต่อไปเพื่อปกป้องระบบนิเวศโอเพนซอร์ส ซึ่งเป็นสินค้าสาธารณะที่ทุกคนใช้งานร่วมกัน ผู้ใช้สามารถติดตามการอัปเดตอย่างต่อเนื่องได้ทาง changelog

Source: GitHub Blog
ดูแลงานแปลและเรียบเรียงโดย SirilukP

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร