โจมตีโครงสร้างพื้นฐานของ PyTorch ส่งผลกระทบต่อพื้นที่เก็บข้อมูลและการเผยแพร่

รายละเอียดของการโจมตีโครงสร้างพื้นฐานที่ใช้ในการพัฒนาเฟรมเวิร์กการเรียนรู้ของเครื่อง PyTorch ได้รับการเปิดเผย ซึ่งทำให้สามารถแยกคีย์การเข้าถึงที่เพียงพอเพื่อวางข้อมูลที่กำหนดเองในพื้นที่เก็บข้อมูลด้วยการเปิดตัวโครงการบน GitHub และ AWS เช่นเดียวกับการแทนที่โค้ด ในสาขาหลักของพื้นที่เก็บข้อมูลและเพิ่มแบ็คดอร์ผ่านการพึ่งพา การปลอมแปลงการเปิดตัว PyTorch สามารถใช้เพื่อโจมตีบริษัทขนาดใหญ่ เช่น Google, Meta, Boeing และ Lockheed Martin ที่ใช้ PyTorch ในโครงการของตน ในฐานะส่วนหนึ่งของโปรแกรม Bug Bounty Meta จ่ายเงินให้นักวิจัย 16250 ดอลลาร์สำหรับข้อมูลเกี่ยวกับปัญหา

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

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

ใน PyTorch และโปรเจ็กต์อื่น ๆ มากมายที่ใช้ Self-Hosted Runner เฉพาะนักพัฒนาที่การเปลี่ยนแปลงเคยได้รับการตรวจสอบโดยผู้ทรงคุณวุฒิและรวมอยู่ในโค้ดเบสของโปรเจ็กต์เท่านั้นที่ได้รับอนุญาตให้รันงานบิลด์ การมีสถานะ “ผู้สนับสนุน” เมื่อใช้การตั้งค่าเริ่มต้นในพื้นที่เก็บข้อมูลทำให้สามารถเปิดตัวจัดการ GitHub Actions เมื่อส่งคำขอดึงข้อมูล และตามลำดับ ดำเนินการโค้ดของคุณในสภาพแวดล้อม GitHub Actions Runner ใดๆ ที่เชื่อมโยงกับพื้นที่เก็บข้อมูลหรือองค์กรที่ดูแลโครงการ

ลิงก์ไปยังสถานะ "ผู้สนับสนุน" กลายเป็นเรื่องง่ายที่จะข้าม - เพียงส่งการเปลี่ยนแปลงเล็กน้อยก่อนและรอให้ได้รับการยอมรับในฐานโค้ดหลังจากนั้นนักพัฒนาจะได้รับสถานะของผู้เข้าร่วมที่ใช้งานอยู่โดยอัตโนมัติ ซึ่งคำขอดึงได้รับอนุญาตให้ทดสอบในโครงสร้างพื้นฐาน CI โดยไม่ต้องตรวจสอบแยกต่างหาก เพื่อให้บรรลุสถานะนักพัฒนาซอฟต์แวร์ที่ใช้งานอยู่ การทดลองได้รวมการเปลี่ยนแปลงเล็กๆ น้อยๆ เพื่อแก้ไขการพิมพ์ผิดในเอกสารประกอบ เพื่อเข้าถึงพื้นที่เก็บข้อมูลและพื้นที่จัดเก็บของ PyTorch ที่เผยแพร่ การโจมตีขณะเรียกใช้โค้ดใน “Self-Hosted Runner” จะสกัดกั้นโทเค็น GitHub ที่ใช้ในการเข้าถึงพื้นที่เก็บข้อมูลจากกระบวนการสร้าง เช่นเดียวกับคีย์ AWS ที่ใช้ในการบันทึกผลลัพธ์การสร้าง .

ปัญหานี้ไม่ได้เกิดขึ้นเฉพาะกับ PyTorch และส่งผลกระทบต่อโปรเจ็กต์ขนาดใหญ่อื่นๆ จำนวนมากที่ใช้การตั้งค่าเริ่มต้นสำหรับ "Self-Hosted Runner" ใน GitHub Actions ตัวอย่างเช่น มีการกล่าวถึงการดำเนินการโจมตีที่คล้ายกันเพื่อติดตั้งแบ็คดอร์ในกระเป๋าเงินดิจิทัลขนาดใหญ่และโครงการบล็อกเชนที่มีมูลค่าหลายพันล้านดอลลาร์ ทำการเปลี่ยนแปลงกับการเปิดตัว Microsoft Deepspeed และ TensorFlow ประนีประนอมหนึ่งในแอปพลิเคชัน CloudFlare และยังดำเนินการอีกด้วย รหัสบนคอมพิวเตอร์บนเครือข่าย Microsoft รายละเอียดของเหตุการณ์เหล่านี้ยังไม่ได้รับการเปิดเผย ภายใต้โปรแกรม Bug Bounty ที่มีอยู่ นักวิจัยได้ส่งใบสมัครมากกว่า 20 ใบเพื่อรับรางวัลมูลค่าหลายแสนดอลลาร์

ที่มา: opennet.ru

เพิ่มความคิดเห็น