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.