Hacker เกาหลีเหนือ อยู่เบื้องหลังแคมเปญการโจมตี VMConnect PyPI

พบ Hacker ที่ได้รับการสนับสนุนจากรัฐบาลเกาหลีเหนือ เป็นผู้อยู่เบื้องหลังแคมเปญการโจมตี VMConnect PyPI ที่เลียนแบบ VMware vSphere connector module vConnector โดยได้อัปโหลดไปยัง PyPI (Python Package Index) repository packages

โดย VMConnect PyPI ที่เป็นอันตรายได้ถูกอัปโหลดในเดือนสิงหาคม 2023 ซึ่งได้มุ่งเป้าหมายการโจมตีไปยังผู้เชี่ยวชาญด้านไอที ที่กำลังมองหาเครื่องมือ virtualization tool ซึ่งก่อนที่ Package ดังกล่าวจะถูกลบออกไป พบว่ามีการดาวน์โหลด 237 ครั้ง และมีการดาวน์โหลดแพ็กเกจอีก 2 แพ็กเกจที่มีโค้ดเดียวกันซึ่งเผยแพร่ด้วยชื่อ 'ethter' มีการดาวน์โหลด 253 ครั้ง และ 'quantiumbase' มีการดาวน์โหลด 216 ครั้ง (more…)

ผู้ใช้งานกว่า 45,000 ราย ตกเป็นเหยื่อจาก PyPI แพ็คเกจที่เป็นอันตราย

Misspelled Packages (แพ็คเกจที่จงใจตั้งชื่อให้ใกล้เคียงกับแพ็คเกจยอดนิยม) กำลังล่อลวงเหยื่อที่ไม่ได้ระมัดระวัง โดยเหตุการณ์นี้มาจากรายงานของผู้ดูแลระบบ PyPI ในวันที่ 20 พฤษภาคม 2023 ที่ประกาศการระงับการลงทะเบียนชื่อผู้ใช้ และโปรเจกต์ใหม่ชั่วคราว สาเหตุเกิดจากการมีผู้ใช้ และโปรเจกต์ที่เป็นอันตรายเพิ่มขึ้นจำนวนมากในช่วงสัปดาห์ที่ผ่านมา

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

PyPI (Python Package Index) เป็นที่เก็บซอฟต์แวร์ third-party อย่างเป็นทางการสำหรับ Python ซึ่งเป็นเว็บไซต์ที่ให้บริการในการจัดเก็บ และแจกจ่ายแพ็คเกจที่ถูกพัฒนาขึ้นด้วยภาษา Python โดย PyPI เป็นที่นิยมอย่างแพร่หลายสำหรับการพัฒนาแพ็คเกจด้วยภาษา Python ซึ่งช่วยให้นักพัฒนาสามารถเข้าถึง และดาวน์โหลดแพ็คเกจ Python ที่สร้างไว้ล่วงหน้าได้อย่างง่ายดาย ช่วยลดเวลา และความพยายามในการสร้างโค้ดตั้งแต่เริ่มต้น

Cyble Research and Intelligence Labs (CRIL) ได้ดำเนินการติดตามแพ็คเกจ Python ที่เป็นอันตราย และเร็ว ๆ นี้ CRIL ยังได้รายงานเรื่อง InfoSteraler ที่ถูกเรียกว่า KEKW ซึ่งกำลังแพร่กระจายผ่านแพ็คเกจ Python ที่เป็นอันตรายหลายรายการ

หลังจากการประกาศแจ้งเตือนของ PyPI นักวิจัยจาก Cyble ได้ดำเนินการตรวจสอบเพิ่มเติมเกี่ยวกับเหตุการณ์ดังกล่าว โดยพบแพ็คเกจ Python ที่เป็นอันตรายมากกว่า 160 รายการ จากสถิติที่เรียกดูจาก PePy พบว่าแพ็คเกจเหล่านี้มีการดาวน์โหลดไปแล้วมากกว่า 45,000 ครั้ง และยังพบว่ามีการดาวน์โหลดแพ็คเกจ python ที่เป็นอันตรายเพิ่มขึ้นต่อเดือน ซึ่งแพ็คเกจทั้งหมดเหล่านี้ถูกลบออกโดย PyPI และป้องกันการติดมัลแวร์ใหม่แล้ว

ภาพที่ 1 - จำนวนแพคเกจที่เป็นอันตรายที่ถูกดาวน์โหลดในแต่ละเดือน

การวิเคราะห์รายละเอียดเกี่ยวกับแพ็คเกจ Python ที่เป็นอันตรายกว่า 160 รายการ งานวิจัยครอบคลุมประเด็นที่น่าสนใจต่าง ๆ ได้แก่

Misspelled packages ถูกใช้งานโดยผู้ไม่หวังดี
กระแพร่กระจายของมัลแวร์ตัวใหม่ แพร่กระจายผ่านแพ็คเกจที่เป็นอันตราย
การนำเทคนิคของ obfuscation แบบใหม่มาใช้โดย W4SP Stealer
เทคนิคที่ใช้โดยผู้ไม่หวังดีที่ใช้ประโยชน์จากโมดูล EvilPIP

การวิเคราะห์

แพ็คเกจ Python ที่เป็นอันตราย

Misspelled Packages

ในการตรวจสอบของ CRIL เปิดเผยว่าผู้ไม่หวังดี (Threat Actors) ได้อัปโหลด Misspelled Python Packages โดยมุ่งเป้าหมายไปที่ผู้ใช้ Python โดยเฉพาะ ตัวอย่างที่โดดเด่น คือ การพบแพ็คเกจที่เป็นอันตรายที่ชื่อว่า 'reaquests' แพ็คเกจนี้มีจุดประสงค์ที่จะปลอมเป็นแพ็คเกจ Python ที่ถูกต้อง และใช้กันอย่างแพร่หลายที่ชื่อ 'requests' ซึ่งเป็นเครื่องมือยอดนิยมสำหรับดำเนินการ HTTP request ระหว่างผู้ใช้งานหลายล้านคน

การอัปโหลด Misspelled Packages นี้เป็นการเปิดเผยความเสี่ยงที่สำคัญโดยเฉพาะอย่างยิ่งหากผู้โจมตีรายอื่นนำเทคนิคนี้มาใช้ ซึ่งวิธีการดังกล่าวอาจทำให้ผู้ใช้งานที่ไม่ได้ระมัดระวังติดมัลแวร์จำนวนมากได้อย่างง่ายดาย โดยปกติแพ็คเกจ Python จะติดตั้งโดยใช้คำสั่ง “pip install package_name” ในกรณีที่ผู้ใช้พิมพ์ชื่อแพ็คเกจผิดพลาดอย่างไม่ได้ตั้งใจ พวกเขาก็จะติดตั้งแพ็คเกจ Python ที่เป็นอันตรายโดยไม่รู้ตัว

reaquests-0.1-py3-none-any
ดาวน์โหลดทั้งหมด : 252

ภาพด้านล่างแสดงสถิติการดาวน์โหลดในช่วง 3 เดือนที่ผ่านมา

ภาพที่ 2 - แหล่งที่มา PePy

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

ภาพที่ 3 - Stealer Code

รูปแบบมัลแวร์

เครื่องมือดาวน์โหลด (Downloader)

ในระหว่างการตรวจสอบ พบชุดของแพ็คเกจต่อไปนี้ที่ใช้งานเครื่องมือดาวน์โหลดที่เหมือนกัน ที่น่าสงสัยคือชุดแพ็คเกจเหล่านี้มีบันทึกการดาวน์โหลดทั้งหมด 1,355 ครั้ง

pyou-0.0.1-py3-none-any
tasksaio-0.0.1-py3-none-any
taskaio-0.0.1-py3-none-any
libcolors-0.0.1-py3-none-any
colorlibs-0.0.1-py3-none-any
pipcolors-0.0.1-py3-none-any
pycolorings-0.0.1-py3-none-any

เครื่องมือดาวน์โหลดที่กล่าวถึง ทำงานโดยการเรียกสคริปต์ระยะไกลจาก URL ที่กำหนด และเรียกใช้ผ่านตัวแปร Python ในกระบวนการนี้ เครื่องมือใช้ไฟล์ชั่วคราวเพื่อเก็บ และดำเนินการทำงานของสคริปต์จากระยะไกล ในกรณีนี้ถูกชี้ไปที่โฮสต์ "https[:]//paste[.]fo/raw/" และถูกปกปิดโดยใช้ Hyperion ซึ่งเป็นเครื่องมือปกปิดรหัส Python แบบโอเพ่นซอร์สที่มีชื่อเสียงสำหรับความสามารถในการปรับใช้เลเยอร์หลาย ๆ ชั้นของการปกปิดรหัสสคริปต์

ภาพด้านล่างแสดงแผนผังการทำงานของสคริปต์ดาวน์โหลดในกระบวนการดึงเนื้อหาจากภายนอก

ภาพที่ 4 – เครื่องมือดาวน์โหลด

Creal Stealer

Creel Stealer เป็นเครื่องมือขโมยข้อมูลแบบโอเพ่นซอร์สที่ได้รับการใช้งานอย่างแพร่หลายจากผู้ไม่หวังดี ถึงแม้ CRIL จะพบว่ามีการแพร่กระจายของมัลแวร์ขโมยนี้ผ่านเว็บไซต์ฟิชชิ่ง แต่ไม่มีหลักฐานใด ๆ ที่พบว่ามีการแพร่กระจายผ่านแพ็คเกจ Python มาก่อน ในการวิเคราะห์ยังพบว่ามีแพ็คเกจ Python หลายรายการที่แพร่กระจายมัลแวร์ Creal Stealer

ด้านล่างเป็นตัวอย่างของแพ็คเกจเหล่านี้ ซึ่งถูกดาวน์โหลดกว่า 1300 ครั้ง

amazonpxnau-0.0.1-py3-none-any.

เทคนิคการโจมตีใหม่ Dependency Confusion ใช้แฮกไปแล้ว 35 บริษัท Tech ไมโครซอฟต์ออก Whitepaper แจ้งเตือน

นักวิจัยด้านความปลอดภัย Alex Birsan และ Justin Gardner ได้มีการเผยแพร่เทคนิคการโจมตีใหม่ภายใต้ชื่อ Dependency Confusion ซึ่งอาศัยช่องโหว่ของการดาวน์โหลดและติดตั้งแพ็คเกจของนักพัฒนาในการลักลอบนำแพ็คเกจซึ่งเป็นอันตรายไปรันใน Environment ภายในของนักพัฒนา วิธีการนี้ถูกใช้ทดสอบกับกว่า 35 บริษัท Tech ซึ่งรวมไปถึง Microsoft, Apple, PayPal, Shopify, Netflix, Yelp, Tesla, และ Uber และสามารถใช้โจมตีได้จริง

คีย์หลักของการโจมตีนั้นอยู่ในจุดที่ว่า หากผู้โจมตีทราบถึงชื่อของไลบรารีหรือแพ็คเกจที่นักพัฒนาจะใช้งานภายในกระบวนการพัฒนาแอป ผู้โจมตีจะใช้ข้อมูลดังกล่าวในการนำไปสร้างเป็นไลบรารีหรือแพ็คเกจที่มีชื่อเหมือนกันใน Public repository แทนและสอดแทรกโค้ดที่เป็นอันตรายเข้าไปในลักษณะที่คล้ายกับ Supply-chain attack การโจมตีในลักษณะนี้ส่วนหนึ่งเกิดขึ้นได้เนื่องจากพฤติกรรมของ Package manager ที่จะใช้ความสำคัญกับแพ็คเกจที่อยู่บน Public repository มากกว่าที่อยู่ในระบบภายใน

สองนักพัฒนาได้ทำการทดสอบช่องโหว่นี้กับ Package manager อย่าง npm, RubyGems, PyPI, JFrog และ NuGet พบว่าสามารถใช้การโจมตีนี้ได้ทั้งหมด

การค้นพบช่องโหว่ดังกล่าวนำไปสู่การแจ้งเตือนยังบริษัทที่ได้รับผลกระทบ และส่งผลให้นักวิจัยทั้งสองได้รับรางวัลจากโครงการ Bug Bounty ไปกว่า 130,000 ดอลลาร์สหรัฐฯ หรือประมาณเกือบ 4 ล้านบาท

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

บล็อกงานวิจัยต้นฉบับ: medium

ที่มา: zdnet, bleepingcomputer