GitHub ปรับ npm v12 ยกเครื่องความปลอดภัย สกัด Supply-chain Attack ผ่าน npm install

GitHub ประกาศว่า npm v12 ที่จะเปิดตัวในเดือนหน้า จะมาพร้อมการเปลี่ยนแปลงด้านความปลอดภัยหลายอย่าง เพื่อสกัดการโจมตีแบบ supply-chain ที่อาศัยพฤติกรรมการทำงานอัตโนมัติของคำสั่ง npm install

Credit: GitHub

คำสั่ง npm install เป็นคำสั่งที่นักพัฒนาใช้ดาวน์โหลดและติดตั้ง dependency ของโปรเจ็กต์ พร้อมรัน install script ต่าง ๆ ที่แพ็กเกจกำหนดไว้ โดยนักพัฒนามักรันคำสั่งนี้หลัง clone โปรเจ็กต์ ดึงอัปเดต หรือระหว่างกระบวนการ CI/CD ซึ่งจุดนี้เองที่ผู้โจมตีเล็งเป้าหมาย เพราะเปิดโอกาสให้รันโค้ดอัตโนมัติในระหว่างขั้นตอนการติดตั้งแพ็กเกจ แก่นของการเปลี่ยนแปลงครั้งนี้คือ การรันโค้ดและการดึง dependency จากแหล่งที่ไม่ใช่ registry ซึ่งเดิมจะทำงานอัตโนมัติระหว่าง npm install จะต้องได้รับการอนุมัติอย่างชัดเจน (explicit approval) แทนการเชื่อถือเป็นค่าเริ่มต้น

ตามประกาศของ GitHub การเปลี่ยนแปลงหลักใน npm v12 ประกอบด้วย 3 ส่วนหลัก คือ

  • npm install จะไม่รัน preinstall, install หรือ postinstall script จาก dependency อีกต่อไป เว้นแต่จะได้รับการอนุมัติอย่างชัดเจน โดยครอบคลุมถึงการ build native module ผ่าน node-gyp และ prepare script จาก dependency ประเภท Git, local file และ linked ด้วย
  • npm install จะไม่ดึง dependency จาก Git repository ทั้งแบบ direct และ transitive เว้นแต่จะได้รับอนุญาตอย่างชัดเจน ซึ่งช่วยปิดช่องทางการรันโค้ดที่ไฟล์ .npmrc ของ Git dependency สามารถเปลี่ยน Git executable ที่ถูกเรียกใช้ได้ แม้จะปิด install script ไว้แล้วก็ตาม
  • dependency ที่ติดตั้งจาก remote URL เช่น HTTPS tarball จะไม่ถูก resolve เว้นแต่จะได้รับอนุญาตอย่างชัดเจน โดยมีผลทั้งกับ dependency แบบ direct และ transitive

การเปลี่ยนแปลงเหล่านี้ช่วยลดการโจมตีแบบ supply-chain ได้อย่างมีนัยสำคัญ ด้วยการตัดการรัน install script อัตโนมัติ การ resolve dependency แบบ Git และการ resolve dependency จาก remote URL อัตโนมัติออกไป ซึ่งหากบังคับใช้ก่อนหน้านี้ ก็จะสามารถขัดขวางเทคนิคการโจมตีที่ปรากฏในหลายเหตุการณ์ล่าสุด ทั้งแคมเปญ malicious preinstall/postinstall script ที่เล่นงาน eslint-config-prettier และแพ็กเกจ Picasso ของ Toptal การฝังแพ็กเกจ npm ขโมยข้อมูลจำนวนมาก ไปจนถึงการอาศัย Git dependency ในการโจมตีชุด Shai-Hulud อย่างไรก็ตาม โปรเจ็กต์ที่ยังต้องพึ่งพาพฤติกรรมเหล่านี้ใน workflow ปกติ จะต้องตั้งค่า opt in อย่างชัดเจนก่อนอัปเกรดไปยัง npm v12

GitHub แนะนำให้นักพัฒนาเตรียมตัวด้วยการอัปเกรดไปใช้ npm 11.16.0 หรือใหม่กว่า ซึ่งจะแสดงคำเตือนสำหรับทุก action ที่จะใช้งานไม่ได้ภายใต้ v12 ทำให้นักพัฒนาที่รันขั้นตอนการติดตั้งตามปกติสามารถตรวจสอบคำเตือนเหล่านี้ เพื่อระบุ dependency หรือ workflow ที่ต้องได้รับการอนุมัติก่อนอัปเกรด หลังอัปเกรดเป็น v12 แล้ว จะมีเพียง script และแหล่ง dependency ที่ได้รับการอนุมัติอย่างชัดเจนเท่านั้นที่ยังทำงานอัตโนมัติต่อไป ทั้งนี้ GitHub ได้เปิด community discussion ให้นักพัฒนาร่วมแสดงความคิดเห็นต่อการเปลี่ยนแปลงที่กำลังจะเกิดขึ้นด้วย

ที่มา: https://www.bleepingcomputer.com/news/security/github-announces-npm-security-changes-to-tackle-supply-chain-attacks/

About เด็กฝึกงาน TechTalkThai หมายเลข 1

นักเขียนผู้มีความสนใจใน Enterprise IT ด้วยประสบการณ์กว่า 10 ปีในไทย ปัจจุบันใช้ชีวิตอยู่ที่สหรัฐอเมริกา แต่ยังคงมุ่งมั่นในการแบ่งปันความรู้และประสบการณ์ด้านเทคโนโลยีให้กับทุกคน

Check Also

TensorWave สตาร์ทอัพโครงสร้างพื้นฐานศูนย์ข้อมูล ระดมทุน 350 ล้านดอลลาร์ ช่วยทลายการผูกขาดชิป AI ของ Nvidia

TensorWave สตาร์ทอัพผู้ให้บริการโครงสร้างพื้นฐานปัญญาประดิษฐ์บนระบบคลาวด์ ประกาศว่าบริษัทสามารถปิดระดมทุนรอบ Series B มูลค่า 350 ล้านดอลลาร์สหรัฐ ในขณะที่บริษัทกำลังพยายามตอบสนองความต้องการของตลาดที่มองหาทางเลือกอื่นนอกเหนือจากหน่วยประมวลผลกราฟิก (GPU) ของ Nvidia

Synology เผยแผน AI Ready กับรากฐาน Local AI สำหรับองค์กร เตรียมกรุยทางด้วย GPU Accelerate NAS

หากท่านเป็นแฟนๆของ Synology มาก่อนย่อมรู้จักกับระบบปฏิบัติการที่เรียกได้ว่าเป็นแกนหลักของแบรนด์ที่ชื่อว่า Disk Station Manager (DSM) ซึ่งเป็นรากฐานสำหรับการปฏิบัติการในโซลูชันต่างๆก็ว่าได้ เป็นเวลากว่า 20 ปีแล้ว ซึ่งที่งาน Computex ได้มีการเป็นเผยถึงก้าวถัดไปที่ DSM …