นักวิจัยด้านความปลอดภัยเปิดเผยเทคนิคใหม่ที่เชื่อมโยงกับกลุ่มแฮกเกอร์ที่ได้รับการสนับสนุนจาก เกาหลีเหนือ (DPRK) ในแคมเปญ Contagious Interview ซึ่งใช้เทคนิคที่เรียกว่า "NullReceiver" เพื่อซ่อนที่อยู่ Command and Control (C2) Server ไว้ใน ธุรกรรม Ethereum มูลค่าศูนย์ (Zero-Value Transaction) พบฝังอยู่ใน npm Package อันตราย 2 ตัวที่แอบอ้างเป็นปลั๊กอิน Tailwind CSS
npm Package ที่พบมัลแวร์
พบ NullReceiver ฝังอยู่ใน npm Package 2 ตัวที่แอบอ้างเป็นปลั๊กอินของ Tailwind CSS ได้แก่:
- bianira-ui เวอร์ชัน 1.27.0
- fluid-type-ui เวอร์ชัน 2.0.8
Package ทั้งสองถูกออกแบบให้ดูเหมือนเครื่องมือพัฒนา UI ทั่วไป เพื่อหลอกให้นักพัฒนาติดตั้งโดยไม่สงสัย
กลไกการซ่อน C2: เรียนรู้จากจุดอ่อนของ EtherHiding
NullReceiver เป็นวิวัฒนาการของเทคนิค EtherHiding ที่กลุ่มแฮกเกอร์ DPRK เคยใช้มาก่อน แต่ครั้งนี้ได้ตัดจุดที่เคยเป็นช่องทางให้นักวิจัยตรวจจับได้ออกไปทั้งหมด กลไกการทำงานมีดังนี้:
- มัลแวร์ใช้ Wallet Address ที่ถูกฝังไว้แบบ Hardcode คือ
0xa322e5f3d311d3080e6f0121063e9adc2490ef1a - สืบค้นธุรกรรมล่าสุดของ Wallet นี้บน Ethereum Blockchain โดยมองหาธุรกรรมที่มีลักษณะเฉพาะ คือ มูลค่าเป็นศูนย์ (Zero-Value) และ ไม่มีข้อมูล Transaction Input (Zero-Data)
- ถอดรหัสที่อยู่ C2 Server จาก Bytes ของ Recipient Address ในธุรกรรมนั้น โดยส่วนหนึ่งของ Address ถูกออกแบบมาให้แปลงกลับเป็น IP Address ของ C2 Server ได้โดยตรง
- จากการวิเคราะห์พบว่าเทคนิคนี้ถอดรหัสได้ที่อยู่ 166.88.134.62 พร้อม Port ที่เกี่ยวข้องคือ 443 และ 80
จุดที่ทำให้ NullReceiver ตรวจจับได้ยากกว่าเทคนิคเดิมคือ ธุรกรรมที่ใช้ไม่มีการเรียก Smart Contract ใดๆ ไม่มี Payload หรือ Script ที่ซ่อนอยู่ และไม่มี Transaction Input Data ให้เครื่องมือรักษาความปลอดภัยตรวจสอบ ทำให้มองผ่านๆ แล้วแทบไม่ต่างจากธุรกรรม Ethereum ปกติทั่วไปที่เกิดขึ้นนับล้านรายการต่อวัน
ระบบที่ได้รับผลกระทบ
- นักพัฒนาที่ติดตั้ง npm Package [email protected] หรือ [email protected] โดยเข้าใจผิดว่าเป็นปลั๊กอิน Tailwind CSS ที่ถูกต้อง
- ระบบ CI/CD Pipeline ที่ดึง Dependency จาก npm โดยอัตโนมัติ มีความเสี่ยงติดมัลแวร์ไปพร้อมกับกระบวนการ Build
ผลกระทบที่อาจเกิดขึ้น
- เครื่อง Developer ที่ติดตั้ง Package อันตรายเสี่ยงถูกเชื่อมต่อกับ C2 Server ที่เปลี่ยนแปลงได้ตลอดเวลา เนื่องจากผู้โจมตีสามารถส่งธุรกรรม Ethereum ใหม่เพื่อเปลี่ยนที่อยู่ C2 ได้ตลอด โดยไม่ต้องแก้ไขโค้ดมัลแวร์เลย
- ตรวจจับได้ยากกว่าเทคนิค C2 แบบเดิมอย่างมาก เนื่องจากไม่มี Indicator ทางเทคนิคที่ชัดเจนอย่าง Smart Contract Call หรือ Transaction Payload ให้เครื่องมือ Threat Intelligence ใช้อ้างอิง
- ความเสี่ยงต่อการรั่วไหลของ Source Code, Credential และข้อมูลสำคัญ บนเครื่อง Developer ที่ติดมัลแวร์
- สะท้อนแนวโน้มการใช้ Blockchain เป็นโครงสร้างพื้นฐาน C2 ที่ยากต่อการ Takedown เนื่องจาก Ethereum เป็นเครือข่ายกระจายศูนย์ ไม่มีจุดเดียวที่หน่วยงานสามารถปิดกั้นได้เหมือน Domain หรือ IP ทั่วไป
สิ่งที่องค์กรควรทำ
- ตรวจสอบ package.json และ Lock File ของโปรเจกต์ทันทีว่ามีการเรียกใช้ bianira-ui หรือ fluid-type-ui หรือไม่ หากพบให้ถอดถอนและตรวจสอบเครื่องที่เกี่ยวข้องทันที
- ตรวจสอบทราฟฟิกเครือข่ายขาออกที่เชื่อมต่อไปยัง 166.88.134.62 หรือ Port 443/80 ที่ผิดปกติ จากเครื่อง Developer และ CI/CD Server
- ใช้เครื่องมือ Software Composition Analysis (SCA) สแกน Dependency Tree ก่อน Build ทุกครั้ง โดยเฉพาะ Package ที่แอบอ้างเป็นปลั๊กอินของเครื่องมือยอดนิยมอย่าง Tailwind CSS
- ตรวจสอบ Wallet Address
0xa322e5f3d311d3080e6f0121063e9adc2490ef1aผ่าน Blockchain Explorer เพื่อติดตามธุรกรรมล่าสุดและประเมินว่ามี C2 Address ใหม่ที่ต้องเฝ้าระวังหรือไม่
แนวทางลดความเสี่ยงระยะยาว
1. ใช้ Lockfile และ Dependency Pinning อย่างเคร่งครัดในทุกโปรเจกต์
เพื่อป้องกันการติดตั้ง Package เวอร์ชันใหม่ที่อาจถูกแทรกโค้ดอันตรายโดยไม่ได้ตรวจสอบก่อน
2. ตรวจสอบ Dependency ใหม่ทุกตัวก่อนเพิ่มเข้าโปรเจกต์ โดยเฉพาะ Package ที่มีประวัติผู้เผยแพร่สั้นหรือไม่มีประวัติการใช้งานมาก่อน
Package ที่เพิ่งสร้างบัญชีใหม่หรือมี Download Count ต่ำควรได้รับการตรวจสอบเป็นพิเศษก่อนนำไปใช้
3. เพิ่ม Network Monitoring ที่ครอบคลุมถึงทราฟฟิกที่เชื่อมต่อกับ Blockchain Node หรือ RPC Endpoint จากเครื่อง Developer
เนื่องจากเทคนิค C2 แบบใหม่นี้อาศัยการสื่อสารกับ Blockchain Infrastructure ซึ่งเครื่องมือตรวจจับแบบเดิมอาจมองข้ามว่าเป็นทราฟฟิกปกติ
4. ติดตามรายงานภัยคุกคามจากกลุ่ม DPRK อย่างต่อเนื่อง โดยเฉพาะแคมเปญ Contagious Interview
เนื่องจากกลุ่มนี้มีประวัติพัฒนาเทคนิคการโจมตี Supply Chain ผ่าน npm อย่างต่อเนื่องและรวดเร็ว
วิเคราะห์ในมุมมองจาก TXEC
NullReceiver เป็นตัวอย่างที่ชัดเจนว่าผู้โจมตีที่มีทรัพยากรระดับรัฐ (Nation-State) อย่างกลุ่ม DPRK กำลังพัฒนาเทคนิคหลบเลี่ยงการตรวจจับอย่างต่อเนื่อง โดยเรียนรู้จากจุดอ่อนของเทคนิคเดิมของตัวเอง (EtherHiding) แล้วปรับปรุงให้ตรวจจับได้ยากขึ้นไปอีกขั้น การใช้ธุรกรรม Blockchain มูลค่าศูนย์ที่ไม่มี Payload ใดๆ เป็นช่องทาง C2 สะท้อนว่าเครื่องมือตรวจจับที่พึ่งพา Indicator แบบดั้งเดิม เช่น Domain Reputation หรือ Smart Contract Analysis เพียงอย่างเดียว อาจไม่เพียงพอต่อไปอีกแล้ว
TXEC มองว่าองค์กรไทยที่มีทีมพัฒนาซอฟต์แวร์ควรตระหนักว่าแคมเปญ Contagious Interview ของ DPRK มักมุ่งเป้าไปที่นักพัฒนาโดยตรงผ่านกระบวนการสมัครงานปลอมหรือ Package ที่ดูน่าเชื่อถือ การตรวจสอบ Dependency อย่างเข้มงวดจึงไม่ใช่แค่มาตรการทางเทคนิค แต่ควรเป็นส่วนหนึ่งของวัฒนธรรมความปลอดภัยของทีมพัฒนาโดยรวม
รู้ก่อน ตรวจพบเร็ว ลดความเสียหายได้มากกว่า
[ แหล่งอ้างอิง: Cyberpress, CyberSecurityNews, GBHackers ]