Tags:
Node Thumbnail

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

ช่องโหว่ทั้งหมดมี 3 รายการ โดย 2 ช่องโหว่เป็นการลบเอกสารออกจากหน้าเว็บ PyPI เนื่องจากโค้ดส่วนลบเอกสารนั้นตรวจสอบเพียงคำขึ้นต้น (prefix) ของชื่อโครงการ ทำให้แฮกเกอร์สามารถใช้ชื่อโครงการที่ขึ้นต้นเหมือนกันเพื่อลบเอกสารโครงการอื่นได้ อีกช่องโหว่หนึ่งคือการลบ role ID ของโครงการ โดยตัว SQL ที่ใช้ไม่ได้ระบุหมายเลขประจำโครงการไปในการคิวรี

แต่ส่วนที่สำคัญที่สุดเป็นระบบ CI/CD ของ PyPI เอง ที่รันเมื่อมีการยิง pull request เข้ามา และแสดงรายชื่อของ branch ด้วยคำสั่ง echo บน shell script แต่กลับไม่ป้องกันอินพุต ทำให้แฮกเกอร์สามารถตั้งชื่อ branch เป็นสคริปต์เพื่อรันโค้ดได้

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

ทาง PyPI แก้ไขช่องโหว่ทั้งหมดภายในวันเดียวหลัง RyotaK รายงานปัญหา

ที่มา - RyotaK's Blog

No Description

Get latest news from Blognone