GitHub ปรับ actions/checkout เวอร์ชัน 7 เพื่อบล็อกการโจมตีแบบ pwn request

ที่มาภาพ: InfoWorld

Security-อ่าน 8 นาทีInfoWorld

GitHub ปรับ actions/checkout เวอร์ชัน 7 เพื่อบล็อกการโจมตีแบบ pwn request

⚡ สรุป 30 วิ

GitHub ปรับปรุง actions/checkout เวอร์ชัน 7 ให้บล็อก workflow ที่ดึงโค้ดจากฟอร์กที่ยังไม่ได้ตรวจสอบเมื่อใช้ pull_request_target หรือ workflow_run…

GitHub ปรับปรุงความปลอดภัยของ actions/checkout เวอร์ชัน 7 เพื่อป้องกันการโจมตีแบบ “pwn request” ที่ใช้ pull_request_target รันโค้ดจากฟอร์กที่ยังไม่ได้ตรวจสอบ โดยอัตโนมัติทำให้ workflow ที่พยายามดึงโค้ดจากฟอร์กจะล้มเหลว และผู้พัฒนาต้องเปิดใช้งานการยกเว้นเท่านั้น เป็นสัญญาณของยุค “secure by default” ที่ระบบจะกำหนดมาตรการความปลอดภัยให้โดยอัตโนมัติ

Overview

GitHub ประกาศเมื่อ 18 มิถุนายน 2566 ว่า actions/checkout เวอร์ชัน 7 จะบล็อก workflow ที่ทำงานภายใต้เหตุการณ์ pull_request_target หรือ workflow_run เมื่อพยายามเช็คเอาต์โค้ดจากฟอร์กที่ยังไม่ผ่านการรีวิว การบล็อกนี้ทำให้โค้ดที่อาจเป็นอันตรายไม่สามารถรันด้วยสิทธิ์เต็มของ workflow ได้ ผู้ใช้ที่ต้องการยกเว้นสามารถเพิ่มพารามิเตอร์ allow-unsafe-pr-checkout เข้าไปในไฟล์ workflow ได้เท่านั้น

การเปลี่ยนแปลงนี้จะถูกนำกลับไปใช้กับเวอร์ชันหลักทั้งหมดของ actions/checkout ที่รองรับตั้งแต่ 16 กรกฎาคม 2566 ต่อไป โดย workflow ที่อ้างอิงเวอร์ชันหลักแบบ floating tag เช่น actions/checkout@v4 จะรับอัปเดตอัตโนมัติ ส่วน workflow ที่ล็อกไว้ที่ SHA, เวอร์ชันย่อยหรือแพตช์จะไม่ถูกอัปเดตโดยอัตโนมัติและต้องอัปเกรดผ่าน Dependabot หรือกระบวนการอัปเดตที่มีอยู่

Technical Change

เวอร์ชัน 7 ของ actions/checkout เพิ่มการตรวจสอบสถานะของเหตุการณ์ workflow ก่อนทำการเช็คเอาต์ หากเหตุการณ์เป็น pull_request_target หรือ workflow_run และแหล่งที่มาคือฟอร์กที่ไม่ได้รับการตรวจสอบ ระบบจะส่งข้อผิดพลาดและหยุดการดำเนินการทันที การตรวจสอบนี้ทำงานระดับระบบและไม่ขึ้นกับการตั้งค่าใน workflow ของผู้ใช้

  • allow-unsafe-pr-checkout – พารามิเตอร์ที่ต้องเพิ่มเพื่อยกเว้นการบล็อกในกรณีพิเศษ
  • floating major tag – ตัวอย่างเช่น actions/checkout@v4 จะรับการอัปเดตอัตโนมัติเมื่อมีการ backport
  • specific SHA/minor/patch – ไม่ได้รับผลกระทบจากการ backport ต้องอัปเกรดด้วยตนเอง

การออกแบบนี้มุ่งให้ผู้ใช้ที่ต้องการความยืดหยุ่นยังคงสามารถทำได้โดยต้องรับความเสี่ยงอย่างชัดเจน ในขณะที่ส่วนใหญ่ของผู้ใช้จะได้รับการปกป้องโดยค่าเริ่มต้น

Security Context

จุดอ่อนที่ทำให้เกิดการโจมตีแบบ “pwn request” นั้นไม่ได้อยู่ที่ trigger pull_request_target โดยตรง แต่เกิดจากการใช้ actions/checkout ดึงโค้ดจากฟอร์กที่ยังไม่ผ่านการตรวจสอบ ซึ่งทำให้โค้ดของผู้โจมตีทำงานด้วยสิทธิ์เต็มของ workflow รวมถึงการเข้าถึง secret ต่าง ๆ เช่น API keys และ token เมื่อผู้พัฒนาตั้งค่า pull_request_target โดยไม่ระมัดระวัง ระบบจึงเปิดช่องทางให้ผู้โจมตีฝังโค้ดอันตรายในฟอร์กและรันผ่าน workflow

GitHub ยอมรับว่าปัญหานี้เป็น “blind spot” ที่ถูกค้นพบมานานหลายปี แต่การแก้ไขจริงจังเริ่มขึ้นเมื่อเกิดการระเบิดของการโจมตีในช่วงต้นปี โดยเฉพาะจากกลุ่ม TeamPCP ที่ใช้เทคนิค pwn request เพื่อเข้าควบคุม repository และทำลายความปลอดภัยของระบบ การบล็อกอัตโนมัติของเวอร์ชัน 7 จึงเป็นการตอบสนองที่สำคัญต่อช่องโหว่นี้

Recent Incidents

ในเดือนที่ผ่านมา กลุ่ม TeamPCP ได้โจมตีแพคเกจของ npm จำนวน 170 แพคเกจ รวมถึงระบบนิเวศของ TanStack Router โดยใช้การโจมตีแบบ pwn request ทำให้โค้ดอันตรายถูกแทรกเข้าไปในกระบวนการ build ของผู้ใช้ทั่วโลก เหตุการณ์นี้เป็นตัวอย่างที่ชัดเจนว่าแม้การตั้งค่า pull_request_target จะเป็นมาตรฐานที่ปลอดภัยเมื่อใช้อย่างถูกต้อง แต่การกำหนดค่าที่ไม่เหมาะสมก็สามารถกลายเป็นประตูหลังได้

นอกจากนี้ GitHub เองก็ประสบกับการละเมิดข้อมูลเมื่อเดือนก่อน โดยผู้โจมตีได้ดึงข้อมูลซอร์สโค้ดจาก repository ภายในของบริษัทจำนวน 3,800 แห่ง แม้ว่าการละเมิดนี้ไม่ได้เกี่ยวข้องกับ pwn request แต่แสดงให้เห็นว่าการรักษาความปลอดภัยในระบบ CI/CD ยังคงต้องการการตรวจสอบและอัปเดตอย่างต่อเนื่อง GitHub ยังได้ดำเนินการจำกัดการรันสคริปต์ติดตั้งอัตโนมัติใน npm ซึ่งเป็นมาตรการเสริมเพื่อยับยั้งวิธีการโจมตีแบบอื่น ๆ

Future Outlook

GitHub ระบุว่าการบล็อกในเวอร์ชัน 7 เป็นเพียงขั้นตอนแรกของโครงการ “secure by default” และอาจมีการขยายการ harden ไปยังเหตุการณ์อื่น ๆ ในเวอร์ชันถัดไป โดยเฉพาะเหตุการณ์ที่อาจถูกใช้ในการดึงโค้ดจากฟอร์กโดยไม่ได้ตรวจสอบ การอัปเดตต่อเนื่องนี้คาดว่าจะทำให้ผู้พัฒนาต้องพึ่งพาเครื่องมืออัตโนมัติเช่น Dependabot ในการตรวจสอบและอัปเดต dependencies อย่างสม่ำเสมอ

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

Impact

สำหรับผู้ใช้ GitHub Actions ที่อ้างอิง actions/checkout ด้วย tag หลัก เช่น actions/checkout@v4 การอัปเดตนี้จะทำงานโดยอัตโนมัติ ทำให้ส่วนใหญ่ของ repository จะได้รับการป้องกันจากการโจมตีแบบ pwn request โดยไม่ต้องทำการเปลี่ยนแปลงใด ๆ แต่ผู้ใช้ที่ล็อกเวอร์ชันลงระดับ SHA หรือเวอร์ชันย่อยจำเป็นต้องดำเนินการอัปเกรดด้วยตนเอง หากไม่ทำเช่นนั้น workflow ของพวกเขาอาจยังคงเสี่ยงต่อการรันโค้ดที่ไม่ได้รับการตรวจสอบ

องค์กรที่ใช้ GitHub เป็นส่วนสำคัญของกระบวนการพัฒนาจะต้องตรวจสอบนโยบายการใช้ pull_request_target และตรวจสอบว่ามีการเพิ่ม allow-unsafe-pr-checkout เฉพาะในกรณีที่จำเป็นจริง ๆ การตรวจสอบนี้อาจต้องรวมถึงการฝึกอบรมทีมพัฒนาให้เข้าใจความแตกต่างระหว่าง trigger ต่าง ๆ และผลกระทบต่อความปลอดภัยของระบบ CI/CD

Summary

GitHub ปรับปรุง actions/checkout ไปเป็นเวอร์ชัน 7 เพื่อบล็อกการดึงโค้ดจากฟอร์กที่ยังไม่ตรวจสอบในเหตุการณ์ pull_request_target และ workflow_run โดยอัตโนมัติ การเปลี่ยนแปลงนี้เป็นส่วนหนึ่งของแนวทาง “secure by default” ที่คาดว่าจะขยายการป้องกันต่อไปในอนาคต.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
GitHub Actions hardens checkout security to block ‘pwn request’ attacks
ผู้เขียน
Unknown
แหล่ง
InfoWorld
วันที่เผยแพร่
23 มิถุนายน 2569 เวลา 06:43

Related

บทความที่เกี่ยวข้อง

เว็บบินาร์สำรวจวิธีโจมตีหลบ MFA ด้วยฟิชชิงและแนวทางตอบโต้ด้วยพฤติกรรม AISecurity
21 มิถุนายน 2569 เวลา 06:30

เว็บบินาร์สำรวจวิธีโจมตีหลบ MFA ด้วยฟิชชิงและแนวทางตอบโต้ด้วยพฤติกรรม AI

การโจมตีแบบฟิชชิงล่าสุดใช้ Device Code เพื่อหลบ MFA ทำให้ผู้โจมตีเข้าถึงบัญชีโดยไม่ต้องขโมยรหัสผ่าน เว็บบินาร์แนะนำการใช้พฤติกรรม AI…

BleepingComputer6 นาที
Microsoft คืนค่าและลบ Repository บน GitHub หลังเหตุการณ์แ…Security
11 มิถุนายน 2569 เวลา 23:30

Microsoft คืนค่าและลบ Repository บน GitHub หลังเหตุการณ์แ…

Microsoft ลบ Repository ที่ถูกแฮ็กบน GitHub ชั่วคราวและคืนค่า Repository ที่ปลอดภัย…

The Hacker News6 นาที
Ladybird Browser ห้ามรับ Pull Request สาธารณะ เนื่องจากคว…Security
9 มิถุนายน 2569 เวลา 08:30

Ladybird Browser ห้ามรับ Pull Request สาธารณะ เนื่องจากคว…

Ladybird Browser ประกาศระงับการรับ pull request สาธารณะทั้งหมด เนื่องจากความเสี่ยงด้านความปลอดภัยจากโค้ดที่สร้างโดย AI…

XDA Developers8 นาที
เปิดเผยช่องโหว่ Squidbleed อายุ 29 ปี รั่วข้อมูล HTTP แบบ plaintext ผ่านพร็อกซี่เดียวกันSecurity
-

เปิดเผยช่องโหว่ Squidbleed อายุ 29 ปี รั่วข้อมูล HTTP แบบ plaintext ผ่านพร็อกซี่เดียวกัน

นักวิจัยจาก Calif.io พบช่องโหว่ heap over‑read ใน Squid ชื่อ Squidbleed ซึ่งอายุ 29 ปี ทำให้ผู้ใช้ที่แชร์พร็อกซี่เดียวกันสามารถดึงข้อมูล HTTP แบบ plaintext…

The Hacker News6 นาที
คัดลอกลิงก์แล้ว!