การเป็นพิษของสิ่งประดิษฐ์ใน GitHub Actions นำเข้ามัลแวร์ผ่านทางซอฟต์แวร์ไปป์ไลน์

โหนดต้นทาง: 1769941

ผู้โจมตีที่ส่งการเปลี่ยนแปลงไปยังที่เก็บโอเพ่นซอร์สบน GitHub อาจทำให้โครงการซอฟต์แวร์ดาวน์สตรีมที่มีคอมโพเนนต์เวอร์ชันล่าสุดรวบรวมการอัปเดตด้วยโค้ดที่เป็นอันตราย

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

ช่องโหว่นี้ไม่ได้เป็นไปตามทฤษฎี: Legit Security จำลองการโจมตีโครงการที่จัดการ Rust ทำให้โครงการคอมไพล์ใหม่โดยใช้ไลบรารีซอฟต์แวร์ยอดนิยม GCC เวอร์ชันที่กำหนดเองและเป็นอันตราย บริษัทระบุในคำแนะนำ

Liav Caspi หัวหน้าเจ้าหน้าที่ฝ่ายเทคโนโลยีของ Legit Security กล่าวว่าปัญหาน่าจะส่งผลกระทบต่อโครงการโอเพ่นซอร์สจำนวนมาก เนื่องจากโดยปกติแล้วผู้ดูแลจะทำการทดสอบโค้ดที่มีส่วนร่วมก่อนที่จะวิเคราะห์โค้ดด้วยตัวเองจริง ๆ Liav Caspi หัวหน้าเจ้าหน้าที่ฝ่ายเทคโนโลยีของ Legit Security กล่าว

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

การโจมตีใช้ประโยชน์จากกระบวนการสร้างอัตโนมัติผ่าน GitHub Actions ในกรณีของภาษาโปรแกรม Rust รูปแบบที่มีช่องโหว่นี้อาจทำให้ผู้โจมตีเรียกใช้โค้ดในลักษณะพิเศษซึ่งเป็นส่วนหนึ่งของขั้นตอนการพัฒนา ขโมยความลับของพื้นที่เก็บข้อมูล และอาจแก้ไขโค้ดได้ Legit Security กล่าว

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

ช่องโหว่นี้ทำให้สามารถโจมตีได้คล้ายกับ การโจมตีด้วยการแทรกมัลแวร์ที่กำหนดเป้าหมาย CodeCov และผ่านทางซอฟต์แวร์ของบริษัท ลูกค้าปลายน้ำ

“[T] เขาขาดการใช้ GitHub ดั้งเดิมสำหรับการสื่อสารสิ่งประดิษฐ์ข้ามเวิร์กโฟลว์ ทำให้หลายโครงการและชุมชน GitHub Actions พัฒนาโซลูชันที่ไม่ปลอดภัยสำหรับการสื่อสารข้ามเวิร์กโฟลว์ และทำให้ภัยคุกคามนี้แพร่หลายอย่างมาก” Legit Security ระบุในคำแนะนำ

GitHub ยืนยันปัญหาและจ่ายค่าหัวสำหรับข้อมูล ในขณะที่ Rust แก้ไขไปป์ไลน์ที่มีช่องโหว่ Legit Security ระบุ

ที่มา: Legit Security

ซอฟต์แวร์ซัพพลายเชนต้องการความปลอดภัย

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

ตัวอย่างเช่น ในเดือนพฤษภาคม 2021 ฝ่ายบริหารของ Biden ได้ออกคำสั่งฝ่ายบริหารว่าด้วยการปรับปรุงความปลอดภัยทางไซเบอร์ของประเทศ ซึ่งเป็นกฎของรัฐบาลกลางที่กำหนดให้รัฐบาลต้องปฏิบัติตามข้อกำหนดอื่นๆ ต้องการมาตรฐานความปลอดภัยขั้นพื้นฐานสำหรับซอฟต์แวร์ใด ๆ ที่ซื้อ. ในด้านอุตสาหกรรมส่วนตัว Google และ Microsoft มี ให้คำมั่นสัญญาหลายพันล้านดอลลาร์ เพื่อเสริมความปลอดภัยในระบบนิเวศโอเพ่นซอร์สซึ่งให้รหัสที่ ประกอบด้วยมากกว่าสามในสี่ของฐานรหัสของแอปพลิเคชันโดยเฉลี่ย.

มีเหตุผล แต่มีช่องโหว่

ปัญหาด้านความปลอดภัยจัดอยู่ในประเภทของปัญหาที่ยากต่อการค้นหา ซึ่งเรียกว่าปัญหาด้านลอจิก ซึ่งรวมถึงปัญหาเกี่ยวกับสิทธิ์ ความเป็นไปได้ที่ที่เก็บที่ถูกแยกจะถูกแทรกลงในไปป์ไลน์ และการขาดความแตกต่างระหว่างที่เก็บที่แยกออกจากกันและฐานที่เก็บข้อมูล

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

“เมื่อคุณพัฒนาโอเพ่นซอร์ส ปัญหาจะใหญ่ขึ้น เพราะคุณยอมรับการสนับสนุนจากทุกคนในโลก” Caspi กล่าว “คุณกำลังทำสิ่งที่คุณไว้ใจไม่ได้”

GitHub รับทราบปัญหาและขยายวิธีการยกเว้นการส่งจากผู้ทำงานร่วมกันภายนอกจากการแทรกลงในไปป์ไลน์ Actions โดยอัตโนมัติ บริษัท อัปเดต GetArtifact และ ListArtifacts API โดยมีเป้าหมายในการให้ข้อมูลเพิ่มเติมเพื่อช่วยตัดสินว่าสิ่งประดิษฐ์นั้นเชื่อถือได้หรือไม่

“ใครก็ตามที่ทำอะไรเหมือนที่โครงการ Rust ทำ — เชื่อข้อมูลจากบุคคลที่สาม — พวกเขาก็ยังอ่อนแออยู่” Caspi กล่าว “มันเป็นปัญหาเชิงตรรกะ GitHub ทำให้การเขียนสคริปต์ที่ปลอดภัยง่ายขึ้น”

ประทับเวลา:

เพิ่มเติมจาก การอ่านที่มืด