แฮกเกอร์ฉีดมัลแวร์ใน crates ของ Rust ทำให้ขโมยข้อมูลนักพัฒนา

ที่มาภาพ: The Register

Security-อ่าน 6 นาทีThe Register

แฮกเกอร์ฉีดมัลแวร์ใน crates ของ Rust ทำให้ขโมยข้อมูลนักพัฒนา

⚡ สรุป 30 วิ

การโจมตีซัพพลายเชนฝังมัลแวร์ใน proc‑macro1 ทำให้ข้อมูลผู้พัฒนาถูกขโมย ทีมความปลอดภัยของ Rust ลบ crate ที่เป็นอันตรายและแนะนำให้อัปเดต Cargo.lock ทันที

การโจมตีซัพพลายเชนในระบบจัดเก็บแพ็กเกจของ Rust ถูกเปิดเผยเมื่อสัปดาห์นี้ หลังจากที่ผู้วิจัยเจอมัลแวร์ฝังอยู่ในหลาย crates ที่ได้รับความนิยม ทำให้ขั้นตอนการคอมไพล์โค้ดกลายเป็นช่องทางเข้าถึงเครื่องของนักพัฒนา ทีมตอบสนองด้านความปลอดภัยของ Rust (Rust Security Response Team) ได้แจ้งเหตุการณ์ต่อสาธารณะเมื่อวันพฤหัสบดีที่ผ่านมา

Overview

ตามข้อมูลจาก Rust Security Response Team การโจมตีเริ่มต้นจาก crate ที่ชื่อ proc‑macro1 ซึ่งเป็นรุ่นที่ทำให้สคริปต์การสร้าง (build script) ดึงไฟล์มัลแวร์จากเซิร์ฟเวอร์ระยะไกล การตรวจสอบพบว่าผู้โจมตีได้เพิ่ม proc‑macro1 เป็น dependency ของ crate ที่ได้รับการยอมรับอย่างกว้างขวางหลายตัว ได้แก่ arrayref, internment และ append‑only‑vec

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

Attack Vector & Mechanics

สคริปต์ build.rs ของ proc‑macro1 ทำหน้าที่ตรวจสอบระบบปฏิบัติการและสถาปัตยกรรมของเครื่องที่ทำการคอมไพล์ จากนั้นดาวน์โหลด payload ที่ตรงกับแพลตฟอร์มนั้น (Linux, Windows, Intel macOS และ Apple Silicon) แล้วรันโดยอัตโนมัติ การใช้ Cargo ซึ่งเป็นผู้จัดการแพ็กเกจของ Rust ทำให้ขั้นตอนนี้เกิดขึ้นในทุกครั้งที่นักพัฒนาติดตั้งหรืออัปเดต crate ที่ได้รับผลกระทบ

payload ระดับสองที่ได้จาก Aikido วิเคราะห์พบว่าไม่ได้เป็นแค่ดาวน์โหลดไฟล์เพิ่มเติมเท่านั้น แต่ยังมีโค้ดที่มุ่งเจาะข้อมูลเบราว์เซอร์ครอบคลุม Google Chrome, Brave และ Microsoft Edge รวมถึงการเข้าถึง storage ของส่วนขยายที่ใช้กระเป๋าเงินสกุลเงินดิจิทัล นอกจากนี้ยังมีฟังก์ชันเพื่อสร้างความคงอยู่ (persistence) บนเครื่องและรับคำสั่งจากเซิร์ฟเวอร์ของผู้โจมตี

Affected Packages & Timeline

  • arrayref เวอร์ชัน 0.3.10 ปรากฏบน crates.io เป็นเวลา 86 นาที
  • internment เวอร์ชัน 0.8.7 มีอายุการเผยแพร่ 90 นาที
  • append‑only‑vec เวอร์ชัน 0.1.9 อยู่ในระบบเป็น 107 นาที

แม้ระยะเวลาที่แพ็กเกจเหล่านี้เปิดให้ดาวน์โหลดจะสั้นมาก แต่ตามข้อมูลจากบริษัทความปลอดภัย Aikido จำนวนการดาวน์โหลดทั้งหมดของ arrayref ตลอดอายุการใช้งานประมาณ 245 ล้านครั้ง ส่วน append‑only‑vec มีการดาวน์โหลดกว่า 4 ล้านครั้ง ซึ่งทำให้แม้ช่วงเวลาสั้น ๆ ก็ตามอาจมีนักพัฒนาจำนวนมากที่ได้รับไฟล์ที่ถูกปนเปื้อน

Response & Mitigation

หลังจากตรวจพบเหตุการณ์ ทีม Rust Security Response Team ได้ลบ crate ที่เกี่ยวข้องทั้งหมด รวมถึง proc‑macro-en, aovine, arone, aronenao และ tinymember พร้อมประกาศให้ถือว่าเวอร์ชันใด ๆ ของแพ็กเกจเหล่านี้อาจเป็นอันตราย นักพัฒนาถูกแนะนำให้ตรวจสอบไฟล์ Cargo.lock และแคชของ registry ในเครื่องท้องถิ่นเพื่อยืนยันว่าตัวเองไม่ได้ใช้เวอร์ชันที่ถูกปนเปื้อน

การวิจัยโดย Aikido ชี้ว่าโค้ดต้นฉบับของ crate ที่ได้รับผลกระทบนั้นยังคงไม่ถูกแก้ไข ยกเว้นการเพิ่ม dependency ไปยัง proc‑macro1 ซึ่งเป็นการทำ typosquat ของแพ็กเกจที่แท้จริงคือ proc‑macro2 การสังเกตนี้ช่วยให้ผู้ตรวจสอบสามารถแยกแยะได้ว่าการเปลี่ยนแปลงมาจากขั้นตอนการจัดส่ง (supply chain) มากกว่าการแก้ไขโค้ดโดยตรง

Impact & Implications

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

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

Summary

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

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
Hackers poison popular Rust crates to steal developers' credentials
ผู้เขียน
Unknown
แหล่ง
The Register
วันที่เผยแพร่
21 สิงหาคม 2569 เวลา 21:57

Related

บทความที่เกี่ยวข้อง

การโจมตีซัพพลายเชนของ Klue ทำให้บริษัทด้านความปลอดภัยหลายร้อยแห่งถูกละเมิดข้อมูลSecurity
25 มิถุนายน 2569 เวลา 02:00

การโจมตีซัพพลายเชนของ Klue ทำให้บริษัทด้านความปลอดภัยหลายร้อยแห่งถูกละเมิดข้อมูล

Klue ถูกเจาะระบบซัพพลายเชนเมื่อ 11‑มิถุนายนโดยใช้ credential เก่าเพื่อดึง OAuth token ทำให้ข้อมูล Salesforce ของหลายร้อยบริษัท…

The Register6 นาที
Ubuntu 26.04 เสนอการอัปเกรดความปลอดภัยสำคัญด้วย RustSecurity
20 มิถุนายน 2569 เวลา 22:30

Ubuntu 26.04 เสนอการอัปเกรดความปลอดภัยสำคัญด้วย Rust

Ubuntu 26.04 มาพร้อม GNOME 50 ที่ทำให้หน้าตาเดสก์ท็อปทันสมัย แต่การอัปเดตที่สำคัญที่สุดคือการนำ Rust มาใช้ในยูทิลิตี้ระบบ ลดความเสี่ยงจากช่องโหว่ของ C/C++…

XDA Developers7 นาที
Microsoft คืนค่าและลบ Repository บน GitHub หลังเหตุการณ์แ…Security
11 มิถุนายน 2569 เวลา 23:30

Microsoft คืนค่าและลบ Repository บน GitHub หลังเหตุการณ์แ…

Microsoft ลบ Repository ที่ถูกแฮ็กบน GitHub ชั่วคราวและคืนค่า Repository ที่ปลอดภัย…

The Hacker News6 นาที
VS Code เปิดการหน่วงเวลา 2 ชั่วโมงก่อนอัปเดตส่วนขยายอัตโน…Security
10 มิถุนายน 2569 เวลา 13:00

VS Code เปิดการหน่วงเวลา 2 ชั่วโมงก่อนอัปเดตส่วนขยายอัตโน…

Microsoft เพิ่มเวลาหน่วง 2 ชั่วโมงก่อนส่วนขยายของ VS Code จะอัปเดตอัตโนมัติ เพื่อลดความเสี่ยงจากการโจมตีซัพพลายเชน ผู้ใช้ยังคงอัปเดตด้วยตนเองได้หากต้องการ

The Hacker News7 นาที
คัดลอกลิงก์แล้ว!