ไฮไลท์บทความ
สรุปเหตุการณ์ Axios ไลบรารียอดนิยมถูกแฮ็กฝังมัลแวร์ RAT โดยกลุ่ม Lazarus จากเกาหลีเหนือ ผ่านการโจมตี Supply Chain และ Social Engineering ต่อผู้ดูแลโปรเจกต์ กระทบเวอร์ชัน 1.14.1 และ 0.30.4 เสี่ยงถูกขโมยข้อมูลสำคัญบน Windows, macOS และ Linux แนะนำให้ตรวจสอบและดาวน์เกรดเวอร์ชันด่วน
มันเป็นเรื่องน่าเศร้าที่เราไม่สามารถมอบความไว้ใจให้กันได้เลย ทั้งที่เป้าหมายเดียวของผมคือการสร้างสิ่งที่มีประโยชน์ผ่านโค้ด แต่ดูเหมือนโลกจะคอยจ้องฉกฉวยผลประโยชน์ในทุกย่างก้าว
.
อีกหนึ่งเหตุการณ์ช็อกวงการเทคเมื่อวานนะครัช ซึ่งอันนี้เรียกได้ว่าเป็นฝันร้ายนักพัฒนาที่ใช้ JavaScript ทั่วโลกเลย และกระทบกับพวกเราๆได้มากกว่ากรณี Claude ด้วย ซึ่งเกิดจากกาที่ “axios” ไลบรารียอดนิยมที่แทบทุกโปรเจกต์ JS ต้องมี ถูกมือดีลอบวางยาผ่านวิธี Supply Chain Attack เมื่อวันก่อน โดยพบร่องรอยการฝังมัลแวร์ร้ายแรงที่มุ่งเป้าขโมยข้อมูลและควบคุมเครื่องเหยื่อแบบเบ็ดเสร็จ
.
เหตุการณ์นี้เริ่มขึ้นเมื่อวันที่ 31 มี.ค. หลังจากมีการตรวจพบความผิดปกติในไฟล์ package.json ของ axios เวอร์ชัน 1.14.1 และ 0.30.4 ซึ่งถูกปล่อยขึ้นระบบ npm Registry โดยบัญชีของผู้ดูแลโปรเจกต์ หรือ Maintainer ที่คาดว่าถูกแฮ็กหรือถูกขโมยสิทธิ์เข้าถึงไป จนทำให้ publish เวอร์ชั่นใหม่ที่มีมัลแวร์ฝังไว้ออกมา
.
โดยแฮ๊กเกอร์ผู้โจมตี “ไม่ได้แก้โค้ด” ของ axios แต่ใช้วิธี “ยัดไส้” ด้วยการเพิ่ม Dependency ตัวใหม่ที่ชื่อว่า “[email protected]” เข้าไปในโปรเจกต์ ซึ่งเจ้าแพ็กเกจปริศนานี้เองคือมัลแวร์ RAT หรือ Remote Access Trojan ที่หากถูกเปิดใช้งานผ่านคำสั่ง npm install (ซึ่งเป็๋นคำสั่งพื้นฐานในการทำงานอยู่แล้ว โดยเฉพาะกาทำงานแบบ CI/CD โดยมัลแวร์จะอาศัยช่องโหว่จาก postinstall hook ทำงานอัตโนมัติทันที
.
ซึ่งผลลัพธ์ที่ตามมาคือมัลแวร์ตัวนี้ทำงานได้ทั้ง Windows, macOS และ Linux และจะไล่สูบข้อมูลในโฟลเดอร์สำคัญอย่าง Documents, Desktop รวมถึงส่องดูว่าในเครื่องกำลังรัน Process อะไรอยู่บ้าง จากนั้นข้อมูลทั้งหมดจะถูกส่งไปยังเซิร์ฟเวอร์ เพื่อรอรับคำสั่งถัดไปจากแฮ็กเกอร์
.
โดยจากการวิเคราะห์โครงสร้างของ Code และเซิร์ฟเวอร์ที่ใช้รับส่งข้อมูล ผู้เชี่ยวชาญด้านความปลอดภัยหลายคนฟันธงไปในทิศทางเดียวกันว่า นี่คือผลงานของกลุ่ม Lazarus Group กลุ่มแฮ็กเกอร์จากเกาหลีเหนือ ที่มีประวัติโชกโชนในการโจมตีระบบการเงินและซอฟต์แวร์ระดับโลก
.
อนึ่ง สำหรับใครที่งงกับศัพท์เทคนิคและนึกภาพไม่ออก ให้ลองนึกภาพว่า เรามีน้ำประปาใช้ดื่มกินและไว้ใจได้ว่าน้ำนั้นปลอดภัย แต่อยู่ๆวันนึงมีคนเอายาพิษมาหยดใส่ท่อน้ำประปาแล้วส่งไปทั่วเมืองอะครับ ประมาณนั้นเลย
.
หลังจากเกิดเหตุดังกล่าว แม้ทางผู้ดูแลฝั่ง npm จะรับทราบว่ามีมัลแวร์ฝังและรีบลบเวอร์ชั่นดังกล่าวทิ้ง แต่ก็เป็นเวลาหลายชั่วโมงที่มากพอจะทำให้แทบทั้งโลกติดมัลแวร์ตัวนี้ได้ผ่านทาง npm เนื่องจาก axois คือไลบรารี่ยอดนิยมของฝั่ง JS/TS ที่มียอดติตตั้งหลักร้อยล้านครั้งต่อสัปดาห์ นั่นคือทุกๆนาทีที่ผ่านไป หลังเวอร์ชัน 1.14.1 และ 0.30.4 ที่เป็นปัญหาถูกปล่อยออกมา จะมีโปรเจกต์ทั่วโลกที่เรียกใช้เวอร์ชั่นนี้เกือบหมื่นครั้งต่อนาที เรียกได้ว่าเป็นความเสียหายร้ายแรงที่กระทบทั้งโลก
.
ในเวลาต่อมาทางฝั่ง Github ของ axois ก็ได้มีคนไปเปิด issue ว่าตอนนี้โปรเจกต์ axois ถูก Compromise ไปแล้วเรียบร้อย โดยมีคนพยายามติดต่อ คุณ jasonsaayman ซึ่งเป็น Maintainer หรือผู้ดูแลหลัก แต่เนื่องจากเวลาดังกล่าวเป็นตอนกลางคืนทางฝั่งคุณ jason จึงยังไม่มีการตอบกลับ แต่ก็มี DigitalBrainJS
ซึ่งเป็นผู้ดูแลรองมาคอยตอบคำถาม พร้อมแจ้งอัปเดตเป็นระยะ โดยตั้งข้อสังเกตว่า แฮ๊กเกอร์น่าจะได้ access ของทางคุณ jason ไปแล้ว จนทำให้สามารถสั่งปล่อยโค้ดเวอร์ชั่นที่เป็นปัญหาได้ และถึงแม้เค้าจะพยายามแก้ไขเวอร์ชั่น แต่ด้วยว่าเจ้าตัวมีสิทธิ์น้อยกว่า ก็จะโดนแฮ๊กเกอร์แก้ไขทับอยุ่ดี ที่ทำได้คือส่งเรื่องไปให้ npm และ github จัดการเรื่องนี้ให้
.
ซึ่งต่อมาคุณ jason ได้รับทราบเรื่องแล้ว และทำการกู้คืนและรีเซ็ตทุกอย่าง และได้ออกมาเปิดเผยว่า สาเหตุหลักที่ทำให้แฮ็กเกอร์สามารถเข้าถึงระบบและ Publish ชุดคำสั่งที่มีมัลแวร์ได้นั้น ไม่ได้เกิดจากช่องโหว่ทางเทคนิคเพียงอย่างเดียว แต่เกิดจากการที่เขาตกเป็นเหยื่อของการโจมตีแบบ Social Engineering
.
โดยกลุ่มแฮ็กเกอร์ได้ใช้วิธีปลอมตัวเป็นผู้ที่สนใจอยากจะร่วมงานในโปรเจกต์ Open Source ที่คุณ jason ดูแล ซึ่งเป็นการจู่โจมที่เป้าหมายโดยตรง จนนำไปสู่การที่อุปกรณ์และบัญชีส่วนตัวของเขาถูกเจาะระบบอย่างสมบูรณ์ Jason ระบุว่าในสภาวะที่ถูกคุมเครื่องได้แบบนั้น ต่อให้วางระบบป้องกันไว้อย่างดีแค่ไหน แฮ็กเกอร์ก็แทบจะยึดอำนาจไปได้ทั้งหมดอยู่ดี
.
แม้ว่าคุณ jason จะยืนยันว่าได้เปิดการยืนยันตัวตนแบบ 2FA และพยายามเปลี่ยนมาใช้ระบบ Token OIDC ตามคำแนะนำของ npm แล้ว แต่เขายอมรับว่ากระบวนการบางส่วน โดยเฉพาะในเวอร์ชันเก่ายังมีการ Deploy ผ่าน CLI ซึ่งรวมศูนย์อยู่ที่เขาเพียงคนเดียว ทำให้เมื่อตัวเขาพลาด ระบบทั้งหมดจึงพังทลายตามไปด้วย
.
โดยคุณ jason ได้อธิบายว่า มาตรการแก้ไขที่ดำเนินการแล้ว ได้แก่การฟอร์แมตอุปกรณ์ทุกเครื่องและรีเซ็ตบัญชีทุกอย่างที่เขาเป็นเจ้าของ เตรียมเปลี่ยนไปใช้ FIDO Key เพื่อความปลอดภัย และยอมรับว่าจากนี้ไปจะต้องระมัดระวังและลดความไว้วางใจต่อการติดต่อจากคนแปลกหน้าที่อ้างว่าจะมาร่วมงาน Open Source ให้มากขึ้น
.
“มันเป็นเรื่องน่าเศร้าที่เราไม่สามารถมอบความไว้ใจให้กันได้เลย ทั้งที่เป้าหมายเดียวของผมคือการสร้างสิ่งที่มีประโยชน์ผ่านโค้ด แต่ดูเหมือนโลกจะคอยจ้องฉกฉวยผลประโยชน์ในทุกย่างก้าว ผมหวังว่าในอนาคตผู้คนจะยอมรับปรัชญา Ubuntu (การมีอยู่ของฉันเพราะมีพวกเรา) กันมากขึ้น”
คุณ jason กล่าว
.
สำหรับคนที่เผลอติดตั้งหรือได้รับผลกระทบจากเวอร์ชัน 1.14.1 และ 0.30.4 ให้รีบ เปิดไฟล์ package-lock. json หรือ yarn. lock แล้วค้นหาคำว่า [email protected].1, [email protected].4 หรือชื่อ plain-crypto-js หากพบให้รีบสั่งลบทิ้งและ Downgrade กลับไปใช้เวอร์ชัน 1.14.0 หรือ 0.30.3 ทันที และหากพบร่องรอยการติดตั้ง ขอแนะนำให้ “ล้างเครื่อง” และรีเซ็ต password, API Key รวมถึง tokens ทุกอย่างที่ค้างอยู่ในเครื่องนั้น เพราะไม่อาจแน่ใจได้เลยว่าแฮ็กเกอร์แอบฝังไว้ที่จุดไหนอีกและโดนขโมยอะไรบ้าง
.
วิธีตรวจจาก stepsecurity ว่าเครื่องติด RAT แล้วหรือไม่ให้ทำดังนี้
1. ตรวจสอบเวอร์ชั่น axios
npm list axios 2>/dev/null | grep -E “1.14.1|0.30.4”
grep -A1 ‘”axios”‘ package-lock.json | grep -E “1.14.1|0.30.4”
2. ตรวจว่ามี plain-crypto-js ใน node_modules หรือไม่
ls node_modules/plain-crypto-js 2>/dev/null && echo “POTENTIALLY AFFECTED”
3. ตรวจว่าเครื่องโดน RAT ไปแล้วรึยัง
# macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo “COMPROMISED”
# Linux
ls -la /tmp/ld.py 2>/dev/null && echo “COMPROMISED”
# Windows (cmd.exe)
dir “%PROGRAMDATA%wt.exe” 2>nul && echo COMPROMISED
——————————-
GGKeyStore ร้านขายเกมและบัตรเติมเกม ราคาถูก รับของทันที เปิด 24 ชั่วโมง เชื่อถือได้ 100% สมาชิกกว่า 200,000 คน ขายไปแล้วกว่า 800,000 คีย์




