ช่องโหว่ที่อนุญาตให้มีการเผยแพร่การอัปเดตสำหรับแพ็คเกจใดๆ ในพื้นที่เก็บข้อมูล NPM

GitHub เปิดเผยเหตุการณ์สองเหตุการณ์ในโครงสร้างพื้นฐานคลังแพ็กเกจ NPM ของตน เมื่อวันที่ 2 พฤศจิกายน นักวิจัยด้านความปลอดภัยจากภายนอก (Kajetan Grzybowski และ Maciej Piechota) ได้รายงานช่องโหว่ในคลังแพ็กเกจ NPM ผ่านโครงการ Bug Bounty ช่องโหว่นี้เปิดโอกาสให้ผู้ใช้เผยแพร่แพ็กเกจเวอร์ชันใหม่โดยใช้บัญชีที่ไม่ได้รับอนุญาตให้ดำเนินการอัปเดตดังกล่าว

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

ปัญหาได้รับการแก้ไขแล้วหกชั่วโมงหลังจากมีการรายงานช่องโหว่ แต่ยังคงค้างอยู่ใน NPM นานกว่าที่บันทึกข้อมูลระยะไกลจะครอบคลุม GitHub อ้างว่าไม่พบร่องรอยการโจมตีที่ใช้ช่องโหว่นี้ตั้งแต่เดือนกันยายน 2020 แต่ไม่มีการรับประกันว่าปัญหานี้ไม่เคยถูกนำไปใช้ประโยชน์มาก่อน

Второй инцидент произошёл 26 октября. В ходе технических работ с базой данной сервиса replicate.npmjs.com было выявлено присутствие в доступной для внешних запросов БД конфиденциальных данных, раскрывающих информацию об именах внутренних пакетов, которые упоминались в логе изменений. Информация о подобных именах может быть использована для совершения атак на зависимости во внутренних проектах (в феврале подобная атака позволила выполнить код на เซิร์ฟเวอร์ PayPal, Micrоsoft, Apple, Netflix, Uber и ещё 30 компаний).

ยิ่งไปกว่านั้น เนื่องจากจำนวนที่เก็บข้อมูลของโครงการขนาดใหญ่ถูกควบคุมเพิ่มขึ้นเรื่อยๆ และโค้ดอันตรายถูกนำไปใช้งานผ่านการเข้าถึงบัญชีนักพัฒนา GitHub จึงตัดสินใจบังคับใช้การยืนยันตัวตนแบบสองปัจจัย (two-factor authentication) การเปลี่ยนแปลงนี้จะมีผลบังคับใช้ในไตรมาสแรกของปี 2022 และจะบังคับใช้กับผู้ดูแลระบบและผู้ดูแลระบบของแพ็กเกจที่รวมอยู่ในรายการแพ็กเกจยอดนิยม นอกจากนี้ ยังมีการประกาศการอัปเกรดโครงสร้างพื้นฐาน ซึ่งจะรวมถึงการตรวจสอบและวิเคราะห์เวอร์ชันใหม่ของแพ็กเกจโดยอัตโนมัติ เพื่อตรวจจับการเปลี่ยนแปลงที่เป็นอันตรายได้ตั้งแต่เนิ่นๆ

ขอเตือนว่า จากการศึกษาในปี 2020 พบว่ามีเพียง 9.27% ​​ของผู้ดูแลแพ็กเกจที่ใช้การยืนยันตัวตนแบบสองปัจจัยเพื่อป้องกันการเข้าถึง และใน 13.37% ของกรณี นักพัฒนาพยายามนำรหัสผ่านที่ถูกบุกรุกกลับมาใช้ซ้ำจากการรั่วไหลของรหัสผ่านที่ทราบแล้วเมื่อลงทะเบียนบัญชีใหม่ การตรวจสอบความแข็งแกร่งของรหัสผ่านพบว่า 12% ของบัญชี NPM (13% ของแพ็กเกจ) ถูกบุกรุกเนื่องจากการใช้รหัสผ่านที่คาดเดาได้และง่าย เช่น "123456" ในบรรดาบัญชีที่ได้รับผลกระทบมีบัญชีผู้ใช้ 4 บัญชีจาก 20 แพ็กเกจยอดนิยม 13 บัญชีที่มีแพ็กเกจดาวน์โหลดมากกว่า 50 ล้านครั้งต่อเดือน 40 บัญชีที่มีการดาวน์โหลดมากกว่า 10 ล้านครั้งต่อเดือน และ 282 บัญชีที่มีการดาวน์โหลดมากกว่า 1 ล้านครั้งต่อเดือน เมื่อพิจารณาถึงการโหลดโมดูลผ่านห่วงโซ่การอ้างอิง การถูกบุกรุกข้อมูลประจำตัวที่ไม่น่าเชื่อถืออาจส่งผลกระทบต่อโมดูลทั้งหมดใน NPM มากถึง 52%

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster