Rapid7 Labs เปิดเผยการค้นพบ Linux Toolkit ที่ไม่เคยมีการเปิดเผยมาก่อน ถูกฝังโดยตรงเข้าไปใน Binary ของ HAProxy Load Balancer ที่ถูกดัดแปลง (Trojanized) ในองค์กร 2 แห่งในเกาหลีใต้ ซึ่งอยู่ในภาคยานยนต์และสื่อ มัลแวร์นี้ถูกผู้โจมตีตั้งชื่อว่า "ted" ตาม Debug String ที่พบภายใน Binary และสามารถดัก Web Traffic, แก้ไข Web Content และส่งหน้าเว็บที่ถูกดัดแปลงให้กับผู้ใช้งานเป้าหมายที่เลือกไว้ได้ Rapid7 ประเมินด้วยความเชื่อมั่นระดับปานกลางว่าเครื่องมือนี้เชื่อมโยงกับกลุ่มที่ได้รับการสนับสนุนจากรัฐเกาหลีเหนือ
รายละเอียดมัลแวร์
ไม่ใช่ช่องโหว่ของ HAProxy แต่เป็นการแทนที่ Binary
ประเด็นสำคัญที่ต้องเข้าใจคือ Ted ไม่ได้อาศัยช่องโหว่ (Vulnerability) ใดๆ ของ HAProxy ผู้โจมตีจำเป็นต้องมีสิทธิ์ Execute Code บนเครื่องเป้าหมายอยู่แล้ว และต้องมีความสามารถในการแทนที่ HAProxy Binary ที่กำลังทำงานอยู่ในระบบ ด้วย Binary เวอร์ชันที่ถูกดัดแปลง ซึ่งหมายความว่ามัลแวร์นี้เป็นเครื่องมือขั้นตอนหลังการเจาะระบบสำเร็จ ไม่ใช่ช่องทางเข้าถึงเริ่มต้น
กลไกการซ่อนตัวจาก C2 ที่แนบเนียนเป็นพิเศษ
จุดที่โดดเด่นของ Ted คือ คำขอ Command-and-Control (C2) จะไม่ถูกส่งไปถึง Backend Server ที่แท้จริง และถูกลบออกจาก Connection Counter ภายในของ HAProxy เอง ทำให้ทั้ง Log ของ Backend และสถิติของ Load Balancerไม่มีการบันทึกกิจกรรม C2 นี้เลย
กลไกทำงานโดยเมื่อมี Request เรียกไปยัง Image Path ที่กำหนดไว้เฉพาะ Filter จะเข้าสู่ C2 Mode จากนั้น Ted จะลดค่า Live Connection Counter ของ HAProxy เพื่อไม่ให้ Connection นี้ปรากฏในสถิติของ Load Balancer และเขียนเนื้อหาคำสั่งลงใน Named Pipe ภายใต้ /tmp การ Zero ค่า Request Channel หลังจากนั้นทำให้ไม่มีข้อมูลเหลือให้ Forward ต่อ คำสั่งจึงสิ้นสุดที่ Load Balancer เอง ผลลัพธ์ของคำสั่งจะถูกส่งกลับผ่าน Raw Socket ภายใต้ Header HTTP/1.0 200 OK มาตรฐาน ทำให้การแลกเปลี่ยนข้อมูลดูเหมือน Web Traffic ปกติทุกประการ
ความสามารถและเงื่อนไขการเปิดใช้งาน
ผ่านช่องทางนี้ ผู้โจมตีสามารถ Beacon, อัปโหลดและดาวน์โหลดไฟล์, รันคำสั่ง Shell และแก้ไข Configuration ของตัว Implant เอง อย่างไรก็ตาม มีเพียง Request ที่ผ่านการตรวจสอบ 4 ขั้นตอนเท่านั้นที่จะได้รับหน้าเว็บที่ถูกดัดแปลง ได้แก่ ต้องมี User-Agent ที่กำหนด, ต้องตรงกับ Rule ของ URL และ Referer Pattern ทั้งคู่ จากนั้นการส่งมอบเนื้อหาจะขึ้นอยู่กับการเป็นสมาชิกใน Whitelist ของ Client Address (ตรวจสอบทั้งแบบเป๊ะและระดับ /24) หรือการมี Operator Key ใน Header Accept-Language ซึ่งสามารถข้าม (Override) การกรองด้วย Address ได้ทั้งหมด
Implant ยังเขียนทับ Content-Type และ Content-Length ของ Response ใหม่ บังคับให้ Response Status เป็น 200 และลบ Header Accept-Ranges ออก เพื่อไม่ให้ Client สามารถขอ Byte Range และสังเกตเห็นความเปลี่ยนแปลงของขนาดไฟล์ได้
เครื่องมือเสริมและกลไกคงอยู่ในระบบ
Rapid7 ตั้งสมมติฐานว่าผู้โจมตีอาจเข้าถึงระบบเริ่มต้นผ่าน Groupware Portal ที่เปิดเผยต่อสาธารณะ ซึ่งเป็นซอฟต์แวร์ Collaboration ที่นิยมใช้ในองค์กรเกาหลีใต้ โดยอ้างอิงจากรายงานของ ENKI ที่เคยพบกลุ่ม Kimsuky บุกรุก Groupware Vendor ผ่านช่องโหว่ Mail Server มาก่อน
Stager ของมัลแวร์จะติดตั้งเฉพาะในระบบที่มี HAProxy หรือ Cron ทำงานอยู่แล้ว และตรวจสอบสิทธิ์ Root ก่อนดำเนินการใดๆ จากนั้นจะเขียนทับ Binary crond ที่ถูกต้องตามกฎหมาย และกำหนด Timestamp การสร้างไฟล์ให้ตรงกับ /usr/bin/ssh เพื่อพรางตัว พร้อมลบคำสำคัญ tmp, wget, cron และ crond ออกจาก Bash History ของ Root และ System Log 6 ไฟล์ รวมถึง auth.log และ audit/audit.log
Rapid7 ยังพบ Trojanized sshd ที่เข้ารหัสรหัสผ่านที่ดักจับได้และเขียนลงตำแหน่งไฟล์คงที่ รวมถึงพบโค้ดลักษณะเดียวกันใน Binary agetty, atd และ polkitd ที่ถูกดัดแปลง นอกจากนี้ยังพบ RAT เสริมชื่อ curlRAT ที่ Beacon ทุก 12 ชั่วโมงตามค่า Default (ปรับเป็น 30 วินาทีได้หากผู้โจมตีตั้งค่า Flag) และจะทำงานเฉพาะเมื่อพบไฟล์ Marker ที่ยืนยันว่า Host เป็น Virtualized Environment เท่านั้น
ความท้าทายในการอัปเดตและตรวจสอบ
องค์กรทั้งสองแห่งที่ตกเป็นเหยื่อใช้ HAProxy เวอร์ชัน 2.8.12 (เผยแพร่พฤศจิกายน 2024) โดย Implant อ่านโครงสร้างภายในของ HAProxy ที่ Offset ซึ่งผูกติดกับเวอร์ชันนี้โดยเฉพาะ ประเด็นสำคัญคือการอัปเดต HAProxy ไม่สามารถทำความสะอาดเครื่องที่ถูกฝัง Ted ไปแล้วได้ เนื่องจากผู้โจมตีแทนที่ Binary ทั้งหมดแทนการอาศัยช่องโหว่ในตัวซอฟต์แวร์ และ Binary ที่ Compile ใหม่จะยังคง Version String เดียวกันกับ Build ที่สะอาด ทำให้ตรวจสอบผ่านการดู Version เพียงอย่างเดียวไม่ได้
ผลกระทบที่อาจเกิดขึ้น
- การที่ C2 Traffic ไม่ปรากฏใน Log ของ Backend หรือสถิติของ Load Balancer เลยทำให้การตรวจจับด้วยการตรวจสอบ Log แบบดั้งเดิมแทบเป็นไปไม่ได้ องค์กรอาจถูกบุกรุกเป็นระยะเวลานานโดยไม่มีร่องรอยที่ชัดเจนให้ตรวจสอบ
- ความสามารถในการดัก Web Traffic และส่งหน้าเว็บที่ถูกดัดแปลงให้เฉพาะผู้ใช้งานที่เลือกไว้เปิดทางให้เกิดการโจมตีแบบเจาะจงเป้าหมาย เช่น การส่ง Payload อันตรายเฉพาะกับผู้เยี่ยมชมบางรายโดยผู้ใช้งานทั่วไปจะไม่สังเกตเห็นความผิดปกติ
- การอัปเดต HAProxy เพียงอย่างเดียวไม่สามารถกำจัดมัลแวร์นี้ได้ องค์กรที่เพียงแค่ Patch โดยไม่ตรวจสอบ Integrity ของ Binary อาจยังคงถูกบุกรุกอยู่ต่อไปโดยไม่รู้ตัว
- การลบร่องรอยใน Bash History และ System Log อย่างเป็นระบบ รวมถึงการปลอมแปลง Timestamp ทำให้การสืบสวนทาง Forensic ทำได้ยากขึ้นมาก ลดโอกาสที่ทีม Incident Response จะสร้าง Timeline ของการโจมตีได้อย่างสมบูรณ์
สิ่งที่องค์กรควรทำ
- ตรวจสอบ Binary Integrity ของ HAProxy และ Component ระบบอื่นที่เกี่ยวข้อง (crond, sshd, agetty, atd, polkitd) เทียบกับ Checksum จากแหล่งที่เชื่อถือได้ แทนการพึ่งพา Version String เพียงอย่างเดียว เนื่องจาก Binary ที่ถูกดัดแปลงยังคงรายงาน Version เดิม
- ดำเนินการ Memory Behavioural Analysis และ Network Correlation อย่างอิสระ ตามคำแนะนำของ Rapid7 เนื่องจากไม่มี Detection Rule สำเร็จรูปสำหรับการตรวจจับ Binary ที่ถูก Recompile ใหม่
- ตรวจสอบว่า Groupware Portal หรือ Collaboration Software ที่เปิดเผยต่อสาธารณะได้รับการแพตช์ครบถ้วนและไม่มีช่องโหว่ที่ทราบแล้ว โดยเฉพาะ Mail Server Component ซึ่งเป็นช่องทางที่กลุ่ม Kimsuky เคยใช้เจาะระบบ Groupware Vendor มาก่อน
- หากตรวจพบ Indicator ที่เกี่ยวข้อง เช่น ไฟล์ในตำแหน่งที่ระบุไว้ (/tmp/jasper-log, /var/lib/sshd/ ที่มีชื่อไฟล์ผิดปกติ) ให้ถือว่าระบบถูกบุกรุกระดับ Root และดำเนินการ Incident Response แบบเต็มรูปแบบทันที
แนวทางลดความเสี่ยงระยะยาว
1. จัดทำกระบวนการ Baseline และตรวจสอบ Binary Hash ของ Component โครงสร้างพื้นฐานสำคัญอย่างสม่ำเสมอ
โดยเฉพาะ Load Balancer, Web Server และ Service ระดับ System ที่มีสิทธิ์สูง ควรมีการเปรียบเทียบ Hash กับค่า Baseline ที่ทราบว่าสะอาดเป็นประจำ เพื่อตรวจจับการแทนที่ Binary ที่อาจเกิดขึ้น
2. จำกัดสิทธิ์ Execute Code บนเครื่อง Production โดยเฉพาะระบบที่รัน Load Balancer หรือ Component เครือข่ายสำคัญ
เนื่องจาก Ted ต้องอาศัยสิทธิ์ Execute Code และ Root เป็นเงื่อนไขเบื้องต้น การจำกัดสิทธิ์ตามหลัก Least Privilege และ Application Control ช่วยลดโอกาสที่ผู้โจมตีจะสามารถแทนที่ Binary ได้ตั้งแต่แรก
3. เสริมการป้องกัน Groupware และ Collaboration Software ที่เปิดเผยต่อสาธารณะเป็นพิเศษ
เนื่องจากซอฟต์แวร์ประเภทนี้เป็นเป้าหมายที่กลุ่มภัยคุกคามรัฐเกาหลีเหนือหลายกลุ่มเคยใช้เป็นช่องทางเข้าถึงเริ่มต้น องค์กรที่ใช้ Groupware ควรทบทวนมาตรการ Security เฉพาะสำหรับระบบนี้
4. ติดตาม Threat Intelligence เกี่ยวกับกลุ่มภัยคุกคามที่เชื่อมโยงกับเกาหลีเหนือ (APT37, Lazarus, Kimsuky) อย่างต่อเนื่อง
เนื่องจากรายงานนี้ชี้ให้เห็นการทับซ้อนของเครื่องมือและเป้าหมายระหว่างกลุ่มย่อยหลายกลุ่ม การระบุตัวตนที่แม่นยำจึงทำได้ยาก องค์กรควรเน้นการป้องกันตามพฤติกรรมและเทคนิคมากกว่าการพึ่งพาการระบุกลุ่มผู้โจมตีที่ชัดเจน
วิเคราะห์ในมุมมองจาก TXEC
Ted เป็นตัวอย่างที่แสดงให้เห็นถึงระดับความซับซ้อนที่สูงมากของกลุ่มภัยคุกคามที่ได้รับการสนับสนุนจากรัฐ โดยเฉพาะเทคนิคการลบร่องรอยกิจกรรม C2 ออกจาก Connection Counter ของ Load Balancer เอง ซึ่งเป็นการโจมตีที่มุ่งเป้าไปที่กลไกการตรวจสอบของระบบโดยตรง ไม่ใช่เพียงการหลบเลี่ยง Signature-based Detection ทั่วไป TXEC มองว่าจุดที่ควรให้ความสำคัญเป็นพิเศษคือข้อเท็จจริงที่ว่าการอัปเดต Software เพียงอย่างเดียวไม่เพียงพอต่อการทำความสะอาดระบบที่ถูกบุกรุกลักษณะนี้ เนื่องจากผู้โจมตีแทนที่ Binary ทั้งหมดแทนการอาศัยช่องโหว่ในซอฟต์แวร์
องค์กรที่ใช้ HAProxy หรือ Load Balancer อื่นในลักษณะเดียวกันเป็นโครงสร้างพื้นฐานสำคัญ ควรตระหนักว่าการตรวจสอบเพียง Version หรือ Patch Status นั้นไม่เพียงพอ จำเป็นต้องมีกระบวนการตรวจสอบ Binary Integrity แยกต่างหากควบคู่ไปด้วย นอกจากนี้ TXEC มองว่ากรณีนี้ยังตอกย้ำความสำคัญของการป้องกัน Groupware และ Collaboration Software ที่เปิดเผยต่อสาธารณะ ซึ่งเป็นช่องทางเข้าถึงเริ่มต้นที่กลุ่มภัยคุกคามเกาหลีเหนือหลายกลุ่มใช้ซ้ำแล้วซ้ำเล่าในการโจมตีองค์กรเกาหลีใต้
รู้ก่อน ตรวจพบเร็ว ลดความเสียหายได้มากกว่า
[ แหล่งอ้างอิง: The Hacker News, Rapid7 Labs ]