Shai-Hulud 3.0 - npm Malware Worn - shai-hulud malware

Shai-Hulud 3.0: npm Malware Worn

TL; DR

Shai-Hulud 3.0 คือวิวัฒนาการล่าสุดของมัลแวร์ npm ชื่อ shai-hulud หนอนห่วงโซ่อุปทานที่แพร่พันธุ์ได้เอง การใช้แพ็กเกจ npm ในทางที่ผิดเพื่อขโมยข้อมูลประจำตัว แพร่กระจายโดยอัตโนมัติ และบุกรุกระบบ CI/CD สภาพแวดล้อม แตกต่างจากคลื่นลูกก่อนๆ Shai-Hulud 3.0 ปรับปรุงตรรกะการแพร่กระจาย กำหนดเป้าหมายไปที่ไลบรารีฟรอนต์เอนด์ยอดนิยม และเร่งการติดเชื้อผ่านการใช้โทเค็นของผู้ดูแลระบบในทางที่ผิด

ด้วยเหตุนี้ มัลแวร์ shai-hulud จึงพิสูจน์อีกครั้งว่า การโจมตีห่วงโซ่อุปทาน npm ในยุคปัจจุบันไม่ได้อาศัยช่องโหว่ Zero-day อีกต่อไป แต่พึ่งพาการทำงานอัตโนมัติ การใช้ความไว้วางใจในทางที่ผิด และขั้นตอนการทำงานของนักพัฒนา

Shai-Hulud 3.0 คืออะไร?

Shai-Hulud 3.0 เป็นคลื่นลูกที่สามที่ได้รับการยืนยันแล้วของแคมเปญมัลแวร์ npm ชื่อ shai-hulud ต่อจากเวิร์ม Shai-Hulud รุ่นแรก และการระบาดครั้งใหญ่ของ Shai-Hulud 2.0

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

ที่สำคัญที่สุดคือ มัลแวร์ยังคงทำงานในลักษณะของเวิร์ม ไม่ใช่ในรูปแบบของแพ็กเกจมัลแวร์ที่แพร่กระจายเพียงครั้งเดียว

เหตุใด Shai-Hulud 3.0 จึงมีความสำคัญต่อความปลอดภัยของ npm

เมื่อมองแวบแรก Shai-Hulud 3.0 อาจดูเหมือน "แค่แพ็กเกจ npm ที่เป็นอันตรายอีกตัวหนึ่ง" อย่างไรก็ตาม การสันนิษฐานเช่นนั้นกลับเป็นเหตุผลที่ทำให้แคมเปญนี้ประสบความสำเร็จ

เนื่องจากระบบนิเวศของ npm พึ่งพาปัจจัยเหล่านี้เป็นอย่างมาก:

  • ความไว้วางใจโดยปริยาย
  • การติดตั้งอัตโนมัติ
  • ข้อมูลประจำตัวผู้ดูแลระบบ
  • CI/CD pipelines

โทเค็นที่ถูกบุกรุกเพียงตัวเดียวสามารถลุกลามบานปลายกลายเป็นการระบาดของมัลแวร์ในห่วงโซ่อุปทาน npm ได้อย่างรวดเร็ว

ด้วยเหตุนี้ มัลแวร์ shai-hulud จึงไม่จำเป็นต้องใช้ช่องโหว่ มันใช้กระบวนการทำงานปกติเป็นอาวุธแทน

ช่องทางการโจมตีของ Shai-Hulud 3.0: มัลแวร์ npm แพร่กระจายได้อย่างไร

การติดเชื้อเริ่มต้นผ่านแพ็กเกจ npm ที่เป็นอันตราย

มัลแวร์ shai-hulud npm เข้าสู่ระบบนิเวศผ่านแพ็กเกจที่ถูกดัดแปลงเป็นโทรจัน ซึ่งเผยแพร่ภายใต้บัญชีผู้ดูแลที่ถูกต้องหรือบัญชีผู้ดูแลที่ถูกบุกรุก

ในการระบาดของ Shai-Hulud เวอร์ชัน 3.0 นักวิจัยพบการติดเชื้อผ่านทางส่วนประกอบที่นิยมใช้กันทั่วไป รวมถึงแพ็กเกจที่เน้นการใช้งานฝั่ง frontend เช่น:

เนื่องจากแพ็กเกจเหล่านี้มีลำดับความสัมพันธ์สูงในกราฟการพึ่งพา การติดตั้งเพียงครั้งเดียวจึงกระจายไปยังโปรเจกต์ต่างๆ ได้อย่างรวดเร็ว

การเก็บรวบรวมใบรับรองและการเพาะเลี้ยงหนอน

เมื่อติดตั้งแล้ว Shai-Hulud 3.0 จะเรียกใช้สคริปต์วงจรชีวิตที่เป็นอันตรายระหว่างการติดตั้ง install or postinstall.

ในขั้นตอนนี้ มัลแวร์มีลักษณะดังนี้:

  • สแกนไฟล์ในเครื่องและตัวแปรสภาพแวดล้อม
  • ดึงโทเค็น npm และข้อมูลรับรอง GitHub
  • ระบุแหล่งเก็บข้อมูลและแพ็กเกจที่สามารถเข้าถึงได้

ดังนั้น การติดเชื้อจึงเปลี่ยนจากทันทีจาก การประนีประนอมในระดับท้องถิ่น ไปยัง การแพร่กระจายในวงกว้างของระบบนิเวศ.

การเผยแพร่ซ้ำอัตโนมัติในพอร์ตโฟลิโอของผู้ดูแลระบบ

หลังจากเก็บรวบรวมข้อมูลประจำตัวแล้ว shai-hulud npm malware โปรแกรมจะแสดงรายการแพ็กเกจทั้งหมดที่เป็นของผู้ดูแลระบบที่ถูกบุกรุกโดยอัตโนมัติ

จากนั้นก็เกิดเหตุการณ์ดังนี้:

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

เป็นผลให้ โทเค็นที่ถูกขโมยเพียงอันเดียวสามารถแพร่เชื้อไปยังแพ็กเกจ npm หลายสิบหรือหลายร้อยแพ็กเกจได้ภายในเวลาไม่กี่ชั่วโมง.

ไช่ฮูลุด 3.0 เทียบกับคลื่นลูกก่อนหน้า

มีอะไรเปลี่ยนแปลงใน Shai-Hulud 3.0 บ้าง?

แม้ว่ากลไกหลักๆ จะยังคงคุ้นเคยอยู่ก็ตาม ชัยฮูลุด 3.0 นำเสนอการปรับปรุงที่สำคัญหลายประการ

ที่โดดเด่นที่สุดคือ:

  • ตรรกะการแพร่กระจายที่เร็วขึ้น
  • โครงสร้างเพย์โหลดที่สะอาดกว่า
  • ผสานเข้ากับการอัปเดตแพ็กเกจที่ถูกต้องได้ดียิ่งขึ้น
  • ลดเสียงรบกวนเมื่อเทียบกับ Shai-Hulud 2.0

ด้วยเหตุนี้ การตรวจจับที่อาศัยเพียงชื่อเสียงหรือรหัส CVE จึงไม่มีประสิทธิภาพ

แง่มุม ชัยฮูลุด 2.0 ชัยฮูลุด 3.0
เวกเตอร์การติดเชื้อเบื้องต้น แพ็กเกจ npm ที่เป็นอันตรายซึ่งมีสคริปต์วงจรชีวิตก่อนการติดตั้ง แพ็กเกจ npm ที่เป็นอันตรายใช้ประโยชน์จากไลบรารีที่มีชื่อเสียงและเส้นทางการอัปเดตที่น่าเชื่อถือ
เป้าหมายหลัก ระบบนิเวศ npm และ CI/CD pipelines ระบบนิเวศ npm ที่มุ่งเน้นที่เครื่องของนักพัฒนาและผู้ใช้งานปลายทาง
กลไกการแพร่กระจาย การขโมยข้อมูลประจำตัว ตามด้วยการเผยแพร่แพ็กเกจซ้ำโดยอัตโนมัติ การนำข้อมูลประจำตัวกลับมาใช้ซ้ำ บวกกับการใช้ประโยชน์จากความไว้วางใจในความสัมพันธ์ เพื่อขยายขอบเขตการเข้าถึงได้เร็วขึ้น
การละเมิดรันไทม์ การติดตั้งรันไทม์ของ Bun แบบทันที การนำรันไทม์ Node.js ที่มีอยู่และเส้นทางการดำเนินการที่เชื่อถือได้มาใช้ซ้ำ
CI/CD ใช้ผิดวิธี เวิร์กโฟลว์ GitHub Actions ที่ซ่อนอยู่ และรันเนอร์แบบโฮสต์เอง ลดลง CI/CD เสียงรบกวน เน้นการดำเนินการในระดับแพ็กเกจอย่างแนบเนียนมากขึ้น
พฤติกรรมของเพย์โหลด เพย์โหลด JavaScript ขนาดใหญ่ที่เข้ารหัสลับและการสแกนสภาพแวดล้อม เพย์โหลดขนาดเล็กกว่า เน้นเป้าหมายเฉพาะเจาะจง โดยมุ่งเน้นที่การคงอยู่และการแพร่กระจาย
การกำหนดเป้าหมายข้อมูลประจำตัว โทเค็น GitHub, โทเค็น npm, ข้อมูลรับรองระบบคลาวด์, รหัสลับ CI เป้าหมายข้อมูลประจำตัวเหมือนเดิม แต่สามารถนำกลับมาใช้ใหม่ได้เร็วขึ้น และมีการรั่วไหลของข้อมูลน้อยลงจนมองเห็นได้ยากขึ้น
เสียงรบกวนในการทำงาน เสียงดังมาก: การสร้าง repository จำนวนมาก, การแทรกเวิร์กโฟลว์, การอัปโหลดจำนวนมาก สัญญาณรบกวนต่ำลง: มีสิ่งแปลกปลอมให้เห็นน้อยลง ตรวจจับได้ยากขึ้นด้วยการตรวจสอบด้วยตนเอง
รัศมีการชน มีขนาดใหญ่แต่สามารถตรวจจับได้เนื่องจากขนาดและสิ่งแปลกปลอม อาจมีขนาดใหญ่กว่านี้เนื่องจากการลักลอบนำเข้าและการใช้แพ็กเกจที่น่าเชื่อถือในทางที่ผิด
การท้าทายเชิงรับ การหยุด CI/CD การละเมิดและการรั่วไหลของข้อมูลประจำตัว ตรวจจับพฤติกรรมที่เป็นอันตรายภายในแพ็กเกจที่ดูเหมือนถูกต้องตามกฎหมาย

ทำไมหนอนตัวนี้ถึงยังตัวเดิมอยู่

แม้จะมีการเปลี่ยนแปลงเหล่านั้นแล้วก็ตาม Shai-Hulud 3.0 ยังคงเป็นเวิร์มในห่วงโซ่อุปทาน npm ประเภทเดียวกัน.

มันขึ้นอยู่กับ:

  • การนำข้อมูลรับรองมาใช้ซ้ำ
  • การเผยแพร่ซ้ำอัตโนมัติ
  • ความไว้วางใจที่พึ่งพา
  • CI/CD การปฏิบัติ

ดังนั้น สภาพแวดล้อมใดๆ ที่ติดตั้งแพ็กเกจ npm โดยไม่มีการควบคุมพฤติกรรมจึงยังคงมีความเสี่ยงอยู่

ตัวบ่งชี้การประนีประนอม

ทีมรักษาความปลอดภัยที่ตรวจสอบมัลแวร์ shai-hulud ควรสังเกตสัญญาณต่อไปนี้:

  • การเปลี่ยนแปลงเวอร์ชันแพ็กเกจที่ไม่คาดคิด
  • สคริปต์วงจรชีวิตถูกเพิ่มเข้ามาโดยไม่มีเหตุผล
  • บล็อก JavaScript ที่ถูกทำให้คลุมเครือ
  • คำขอเครือข่ายขาออกระหว่างการติดตั้ง
  • npm หรือ GitHub โทเค็นที่เข้าถึงระหว่างการติดตั้ง
  • CI/CD งานต่างๆ ทำงานผิดปกติหลังจากอัปเดตการพึ่งพา

ที่สำคัญคือ สิ่งเหล่านี้ไม่จำเป็นต้องมี CVE เพื่อให้มีอยู่จริง

เหตุใดเครื่องมือรักษาความปลอดภัย npm แบบดั้งเดิมจึงพลาด Shai-Hulud 3.0

การตรวจจับตาม CVE ล้มเหลว

เนื่องจาก Shai-Hulud 3.0 ใช้ประโยชน์จากขั้นตอนการทำงานที่ถูกต้องตามกฎหมายในทางที่ผิด ทำให้โปรแกรมสแกนที่เน้นเฉพาะช่องโหว่ที่รู้จักไม่พบสิ่งผิดปกติใดๆ

มี:

  • ไม่มีฟังก์ชันที่เปราะบาง
  • ไม่มี API ที่ไม่ปลอดภัย
  • ไม่มีความเสียหายของหน่วยความจำ

แต่ในความเป็นจริงแล้ว มีเจตนาร้ายแฝงอยู่ในโค้ด JavaScript ทั่วไป

SBOM การมองเห็นอย่างเดียวไม่เพียงพอ

ในทำนองเดียวกัน SBOMs บอกคุณได้เลย อะไร คุณพึ่งพา แต่ไม่ใช่ สิ่งที่มันทำในระหว่างการติดตั้ง.

ดังนั้น การเปิดเผยข้อมูลโดยปราศจากการบังคับใช้กฎหมายจึงไม่สามารถหยุดยั้งหนอนในห่วงโซ่อุปทานได้

Xygeni ป้องกันการโจมตีห่วงโซ่อุปทาน npm Shai-Hulud 3.0 ได้อย่างไร

นี่คือจุดที่สถาปัตยกรรมของ Xygeni มีความสำคัญอย่างยิ่ง

ระบบแจ้งเตือนมัลแวร์ล่วงหน้า (MEW): หยุดมัลแวร์ npm ในขณะเผยแพร่

ระบบเตือนภัยมัลแวร์ล่วงหน้าของ Xygeni (MEW) สแกนแพ็กเกจ npm ที่เผยแพร่ใหม่แบบเรียลไทม์อย่างต่อเนื่อง

MEW ตรวจพบ:

  • เพย์โหลดที่ถูกปกปิด
  • สคริปต์วงจรชีวิตที่น่าสงสัย
  • พฤติกรรมการเก็บรวบรวมใบรับรอง
  • การเขียนข้อมูลลงไฟล์ระบบผิดปกติ
  • กิจกรรมเครือข่ายที่ไม่คาดคิด

ที่สำคัญที่สุด MEW สามารถบล็อกการสร้างโดยอัตโนมัติ ป้องกันไม่ให้มัลแวร์ shai-hulud npm เข้ามาได้ CI/CD.

Guardrails: บังคับใช้พฤติกรรมการพึ่งพาที่ปลอดภัย

ไซเกนี Guardrails บังคับใช้นโยบายที่เข้มงวดภายใน pipelines.

พวกเขา:

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

เป็นผลให้ pipeline หยุดการทำงานก่อนที่เวิร์มจะลงมือ

CI/CD ความปลอดภัย: ปกป้อง Pipelineจากการถูกล่วงละเมิด

เนื่องจาก Shai-Hulud 3.0 มักจะเปลี่ยนไปใช้รูปแบบอื่น CI/CDจอภาพ Xygeni pipelineสำหรับ:

  • การเปลี่ยนแปลงเวิร์กโฟลว์ที่ไม่ได้รับอนุญาต
  • รูปแบบการดำเนินการที่ผิดปกติ
  • การใช้สิทธิ์ในทางที่ผิด
  • การแทรกเวิร์กโฟลว์ที่ถูกกระตุ้นโดยการพึ่งพา

หากพบพฤติกรรมเสี่ยง Xygeni จะทำการบล็อกพฤติกรรมนั้น pipeline ทันทีที่เริ่มการเคลื่อนไหวด้านข้างหยุดลง

การปกป้องความลับ: ลดรัศมีของการระเบิด

เนื่องจากมัลแวร์ shai-hulud ขโมยข้อมูลประจำตัวอย่างรุนแรง Xygeni ยังให้ความสำคัญกับความลับต่างๆ ด้วย

ไซเจนี:

  • ตรวจจับความลับที่ถูกเปิดเผยทั่วทั้งระบบ SDLC
  • หมุนเวียนข้อมูลประจำตัวที่มีความเสี่ยงสูงโดยอัตโนมัติ
  • บังคับใช้แนวทางปฏิบัติเกี่ยวกับโทเค็นที่ปลอดภัยยิ่งขึ้น

ดังนั้น แม้ว่ามัลแวร์จะทำงานได้ แต่ข้อมูลลับที่ถูกขโมยไปก็จะเสื่อมค่าลงอย่างรวดเร็ว

เหตุใด Shai-Hulud 3.0 จึงยืนยันแนวโน้มระยะยาว

ท้ายที่สุดแล้ว Shai-Hulud 3.0 ยืนยันถึงความเป็นจริงที่กว้างกว่านั้น

การโจมตีห่วงโซ่อุปทาน npm สมัยใหม่:

  • แพร่กระจายโดยอัตโนมัติ
  • ดำเนินการเร็วกว่าการตรวจสอบโดยมนุษย์
  • จงใช้ประโยชน์จากความไว้วางใจ ไม่ใช่ช่องโหว่
  • เป้า pipelineไม่ใช่แค่โค้ด

ด้วยเหตุนี้ การป้องกันมัลแวร์ shai-hulud npm จึงจำเป็นต้องใช้การตรวจจับและการบังคับใช้เชิงพฤติกรรม ไม่ใช่แค่การสแกนเพียงอย่างเดียว

หมายเหตุสุดท้าย: เหตุใด Shai-Hulud 3.0 จึงยังคงมีความสำคัญ

แม้ว่า Shai-Hulud 3.0 จะไม่ได้นำเสนอช่องโหว่ใหม่ที่น่าตื่นเต้น แต่ก็แสดงให้เห็นถึงรูปแบบการโจมตีที่สมบูรณ์ สามารถทำซ้ำได้ และปรับขนาดได้

กล่าวอีกนัยหนึ่ง นี่จะไม่ใช่คลื่นลูกสุดท้าย

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

นั่นคือความแตกต่าง

sca-tools-software-composition-analysis-tools
จัดลำดับความสำคัญ แก้ไข และรักษาความปลอดภัยความเสี่ยงด้านซอฟต์แวร์ของคุณ
สมัครบัญชีฟรีได้เลย
ไม่ต้องใช้บัตรเครดิต

รักษาความปลอดภัยให้กับการพัฒนาและส่งมอบซอฟต์แวร์ของคุณ

ด้วยชุดผลิตภัณฑ์ Xygeni