แพ็กเกจ NPM - บทสัมภาษณ์ที่แพร่กระจาย

แพ็กเกจ NPM ปลอมตัวเป็นไลบรารี UI ที่ไม่เป็นอันตรายในการโจมตีห่วงโซ่อุปทาน "การสัมภาษณ์แบบแพร่เชื้อ" ของเกาหลีเหนือ

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

ทีมวิจัยด้านความปลอดภัยที่ ไซเกนี ได้ตรวจสอบแล้วว่าแพ็กเกจ npm เหล่านี้: 'react-ui-notify', 'react-tmedia', 'react-ui-animates', 'react-medias', 'react-mandes' เป็นอนุพันธ์ที่ดัดแปลงมาจาก 'บิงโกล็อกเกอร์'ซึ่งเป็นโปรแกรมที่แตกแขนงออกมาอย่างมุ่งร้าย โดยเลียนแบบโครงสร้างและเอกสารประกอบของโปรแกรมบันทึกข้อมูลยอดนิยม 'ปิโน' เพื่อทำให้ดูน่าเชื่อถือ การปกปิดนั้นใช้เพื่ออาศัยความไว้วางใจของนักพัฒนาและดึงดูดการดาวน์โหลด ในความเป็นจริง โค้ดเบสประกอบด้วยไฟล์ที่ไม่เกี่ยวข้องซึ่งถูกเข้ารหัสไว้และสามารถทำงานในสภาพแวดล้อม Node ได้ 

ข้อมูลเบื้องต้นเกี่ยวกับผู้ก่อภัยคุกคาม: แคมเปญ “การสัมภาษณ์ที่แพร่กระจาย”

การขอ แคมเปญสัมภาษณ์ที่แพร่กระจาย เกี่ยวข้องกับกลุ่มภัยคุกคามที่รู้จักกันในชื่อ 'UNC4034'ซึ่งรายงานถึงความเชื่อมโยงกับกลุ่มบุคคลที่เกี่ยวข้องกับเกาหลีเหนือ กลุ่ม Lazarus or APT38กลุ่มดังกล่าวเป็นกลุ่มที่ได้รับการสนับสนุนจากรัฐบาลเกาหลีเหนือและเป็นที่รู้จักกันดี ผู้ก่อภัยคุกคามในแคมเปญนี้มีประวัติการโจมตีนักพัฒนาผ่านระบบนิเวศโอเพนซอร์ส โดยแจกจ่ายแพ็กเกจที่ดูคล้ายกันซึ่งจะเรียกใช้เพย์โหลดที่ซ่อนอยู่ และท้ายที่สุดจะขโมยข้อมูลที่เกี่ยวข้องกับคริปโตเคอร์เรนซี ซอร์สโค้ด และข้อมูลประจำตัวจากระบบที่ติดไวรัส

การขอ กลยุทธ์ เทคนิค และขั้นตอน (TTPs) ที่พบในแพ็กเกจ npm เหล่านี้มีรูปแบบเดียวกัน:

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

ผลการวิเคราะห์ทางเทคนิค: การวิเคราะห์ข้อมูลที่ถูกปกปิด

เพย์โหลดที่พบภายใน '/test/fixtures/eval/node_modules/test.list' โปรแกรมนี้ใช้ JavaScript ที่เข้ารหัส (การค้นหาสตริงด้วยดัชนี/อาร์เรย์ บล็อกที่เข้ารหัส) เพื่อซ่อนสตริงที่อ่านได้ และการควบคุมการทำงานจะถูกเรียกใช้เมื่อติดตั้งแพ็กเกจเสร็จสิ้นเนื่องจากสคริปต์ postinstall 'npm run test || npm transpile || npm run skipภายใน แพ็คเกจ.json 

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

เมื่อมัลแวร์แทรกซึมเข้าสู่ระบบแล้ว มันจะสำรวจสภาพแวดล้อมโดยรอบและรวบรวมข้อมูล ข้อมูลระบบแบบละเอียด เช่น ชื่อโฮสต์, เวที, โฮมไดเร็กทอรี และ ไดเร็กทอรีชั่วคราวของระบบ ก่อนที่จะขยายขอบเขตไปสู่แอปพลิเคชันที่จัดเก็บข้อมูลที่ละเอียดอ่อน เช่น เบราว์เซอร์ (Chrome/Brave/Edge/Opera) และ กระเป๋าสตางค์ดิจิตอลโดยจะค้นหาแบบวนซ้ำในตำแหน่งทั่วไปสำหรับโปรไฟล์เบราว์เซอร์ ไฟล์กระเป๋าเงิน คีย์เชน และเอกสาร/ไฟล์ประเภทต่างๆ มากมาย คำค้นหารวมถึงกระเป๋าเงิน คำที่เกี่ยวข้องกับรหัสลับ และนามสกุลไฟล์จำนวนมากที่อาจมีข้อมูลประจำตัวหรือความลับ (*.env, *.key, *.wallet, *.json, *.txt, *.doc เป็นต้น.). ไฟล์นี้มีรายการยกเว้นสำหรับไดเร็กทอรีทั่วไปเพื่อหลีกเลี่ยงไฟล์ระบบที่เห็นได้ชัด

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

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

เมื่อมัลแวร์พบข้อมูลที่ละเอียดอ่อน มันจะรวมข้อมูลเหล่านั้นเข้าด้วยกันและพยายามอัปโหลดไปยังปลายทางระยะไกลที่โฮสต์อยู่บนเซิร์ฟเวอร์คลาวด์โดยใช้ multipart/form-data เพื่อให้ไฟล์ที่ถูกขโมยถูกแนบไปกับคำขอ

ตัวชี้วัดความเสียหายและข้อเสนอแนะในการบรรเทาผลกระทบ

องค์กรต่างๆ ได้รับคำแนะนำให้ลบส่วนประกอบที่เป็นอันตรายเหล่านี้ออก (react-ui-notify, react-tmedia, react-ui-animates, react-medias, react-mandes, bingo-logger) และปรับปรุงสภาพแวดล้อมเหล่านี้ใหม่เพื่อให้มั่นใจในความสมบูรณ์ ระบบที่อาจได้รับผลกระทบควรทำการหมุนเวียนข้อมูลประจำตัวและโทเค็นการเข้าถึงทั้งหมดโดยทันที

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

บริบทที่กว้างขึ้น

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

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

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

ระบบแจ้งเตือนมัลแวร์ล่วงหน้า (MEW) โดย Xygeni

เหตุการณ์นี้ถูกเปิดเผยครั้งแรกผ่านทาง Xygeni ระบบเตือนภัยมัลแวร์ล่วงหน้า ระบบที่คอยตรวจสอบคลังแพ็กเกจโอเพนซอร์สอย่างต่อเนื่อง เช่น npm, PyPI, Maven เพื่อตรวจจับแพ็กเกจที่เป็นอันตราย

ระบบตรวจจับของเราตรวจพบแพ็กเกจเหล่านี้โดยอัตโนมัติว่าเป็นแพ็กเกจที่น่าสงสัย เนื่องจากโครงสร้างที่ผิดปกติ สคริปต์หลังการติดตั้ง และเพย์โหลดที่ถูกปกปิด ส่งผลให้แพ็กเกจที่เป็นอันตราย (react-ui-notify, react-tmedia, react-ui-animates, react-medias และ react-mandes(ไฟล์เหล่านั้น) ได้รับการยืนยันว่าเป็นอันตรายโดยทีมรักษาความปลอดภัยของเรา และได้รายงานไปยัง npm ก่อนที่จะมีการใช้งานในวงกว้าง

ระบบเตือนภัยล่วงหน้า Xygeni ช่วยปกป้องคุณได้อย่างไร pipelines

  • การตรวจจับภัยคุกคามตามเวลาจริง: สแกนทุกแพ็กเกจใหม่หรือที่ได้รับการอัปเดตในกราฟการพึ่งพาของคุณ และแจ้งเตือนพฤติกรรมที่น่าสงสัย เช่น การเรียกใช้ระบบปฏิบัติการ การเรียกใช้คำสั่ง โค้ดที่ถูกเข้ารหัส การปลอมแปลงชื่อโดเมน และอื่นๆ อีกมากมาย
  • การแจ้งเตือนทันทีแจ้งเตือนทีมรักษาความปลอดภัยและทีม DevOps ของคุณผ่าน Slack, Jira หรืออีเมลทันทีที่พบภัยคุกคามใหม่ในสภาพแวดล้อมของคุณ
  • การแก้ไขด้วยการคลิกเพียงครั้งเดียว: สร้าง pull requests ซึ่งจะลบหรือแทนที่เวอร์ชันของไลบรารีที่มีความเสี่ยงในโปรเจกต์ของคุณ
  • ระบบนิเวศที่ได้รับการสนับสนุน: ปัจจุบันประกอบด้วย npm, PyPI, Maven และ Packagist
  • Xygeni ช่วยให้คุณก้าวล้ำหน้าการโจมตีห่วงโซ่อุปทานด้วยการตรวจจับแพ็กเกจที่เป็นอันตรายในระยะเริ่มต้น ก่อนที่จะเข้าสู่กระบวนการสร้างซอฟต์แวร์ของคุณ

???? ลองใช้ Xygeni Malware Early Warning ฟรี และดูว่าคุณสามารถตรวจจับและกำจัดภัยคุกคามในห่วงโซ่อุปทานได้เร็วแค่ไหนในสภาพแวดล้อมของคุณเอง pipelines.

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

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

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