สรุปสั้น

บริษัท CloudSEK เปิดโปงปฏิบัติการของแอฟฟิลิเอตแรนซัมแวร์ที่ใช้ชื่อ Azazel ซึ่งทำงานร่วมกับกลุ่ม The Gentlemen โดยจุดที่ทำให้กรณีนี้ต่างจากรายงาน “AI ช่วยเขียนมัลแวร์” ทั่วไป คือผู้โจมตีลงทะเบียนตัวรับ reverse shell เป็นเครื่องมือ (tool) ภายในผู้ช่วยเขียนโค้ด AI ผ่าน Model Context Protocol (MCP) แล้วใช้อินเทอร์เฟซนั้นส่งคำสั่งเข้าไปรันในเครือข่ายเหยื่อจริง หลักฐานชัดที่สุดคือสคริปต์ตรวจว่าโน้ตเรียกค่าไถ่ไปถึงปลายทางครบหรือยัง ซึ่งเรียกฟังก์ชันรันคำสั่งของ MCP พร้อมโทเคนยืนยันตัวตนแบบตายตัวเพื่อเช็กเครื่องภายใน 6 เครื่อง CloudSEK ระบุว่ายังไม่พบรายงานสาธารณะก่อนหน้าที่บันทึกการใช้วิธีรันคำสั่งผ่าน MCP แบบนี้เป็นช่องสั่งการของอาชญากร แต่ก็ย้ำว่าข้อสรุปนี้หมายถึงเทคนิคเฉพาะนี้ ไม่ได้แปลว่าการใช้ MCP ในทางร้ายเริ่มจากปฏิบัติการนี้

แคมเปญกระทบองค์กรกว่า 20 รายใน 6 ประเทศ ครอบคลุมโลจิสติกส์ ประกัน ยา อุปกรณ์การแพทย์ และธุรกิจ AI การเจาะส่วนใหญ่เริ่มจากความลับที่ขโมยจากตัวแปรของ GitLab pipeline และประวัติ repository ส่วนการโจมตีแพลตฟอร์ม AI ภาพถ่ายทางการแพทย์อีกรายเริ่มจาก API ที่ดึง URL ตามที่ผู้ใช้ส่งมาโดยไม่ตรวจสอบ (SSRF) และถูกดูดข้อมูลไปเกิน 6 TB โดยยังมีการโอนต่อเนื่องระหว่างการสืบสวน ที่น่าสนใจคือ Azazel เปิดเว็บปล่อยข้อมูลของตัวเองและเก็บเงินค่าไถ่ไว้เองแทนที่จะแบ่งให้ผู้ให้บริการ The Gentlemen

รายละเอียดข่าว

เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 6 ตุลาคม 2569 อ้างรายงานของ CloudSEK ที่เผยแพร่เมื่อวันที่ 5 ตุลาคม 2569 ว่านักวิจัยพบปฏิบัติการนี้จากไดเรกทอรีที่เปิดทิ้งไว้และโครงสร้างพื้นฐานจัดเก็บข้อมูลที่ตั้งค่าผิดพลาดของผู้โจมตีเอง ภายในพบทั้งร่องรอยการขโมยข้อมูลที่ยังดำเนินอยู่ ชุดสคริปต์โจมตีที่เขียนขึ้นเฉพาะ และปฏิบัติการรีดไถที่แยกเป็นอิสระจาก The Gentlemen

ผลลัพธ์บนเซิร์ฟเวอร์จัดเก็บข้อมูลยังมีลักษณะสอดคล้องกับผู้ช่วย AI ที่ตอบคำถามเรื่องการแบ็กอัป ประสิทธิภาพดิสก์ และการสแกนชุดข้อมูลขนาดใหญ่ CloudSEK จึงประเมินว่า AI ไม่ได้ถูกใช้เฉพาะตอนโจมตีเหยื่อ แต่ยังช่วยบริหารโครงสร้างพื้นฐานของอาชญากรด้วย ล็อกที่พบยังแสดงการสแกนหาพอร์ต MCP ที่เปิดออกอินเทอร์เน็ตทั่วโลก ซึ่งตรงกับแนวโน้มที่ผู้โจมตีไล่หาบริการเชื่อมต่อ AI ที่เข้าถึงได้

ในเหยื่อรายหนึ่งซึ่งเป็นผู้ให้บริการซอฟต์แวร์ การเจาะลามไปถึงฐานข้อมูลกว่า 150 ชุด ระบบรับชำระเงิน และ repository หลายร้อยรายการ กระทบบริษัทลูกค้ากว่า 10 ราย ขณะที่ GitLab ที่ถูกยึดเพียงชุดเดียวเปิดทางเข้าสู่องค์กรสองแห่งที่ไม่เกี่ยวข้องกัน ส่วนเหยื่ออีกรายเสียข้อมูลทะเบียนการเงินกว่า 120,000 รายการ ก่อนที่ผู้โจมตีจะหยุดฐานข้อมูลที่ใช้งานจริงและลบข้อมูล production ทิ้ง

รายงานนี้ต่อยอดภาพเดียวกับกรณีแอฟฟิลิเอต Aurora ที่ CloudSEK เคยพบจากเซิร์ฟเวอร์ที่เปิดทิ้งไว้และใช้ Cursor วางแผนเจาะ Active Directory (โพสต์ 08/153) แต่ครั้งนี้ AI ขยับจากผู้ช่วยวางแผนมาเป็นช่องทางส่งคำสั่งโจมตีโดยตรง

วิธีการโจมตี

MCP เป็นโปรโตคอลที่เชื่อมผู้ช่วย AI เข้ากับเครื่องมือภายนอก Azazel อาศัยกลไกนี้ลงทะเบียนตัวรับ reverse shell เป็น tool ตัวหนึ่ง ทำให้สั่งงานเครื่องเหยื่อผ่านอินเทอร์เฟซของผู้ช่วย AI ได้ จุดปลายทาง MCP อยู่ที่ loopback 127.0.0.1:35367 บนเครื่องของผู้โจมตี และ client ที่ใช้มีชื่อตัวตน hermes สคริปต์ va.py ใช้ฟังก์ชันรันคำสั่งของ MCP กับโทเคนตายตัวตรวจเครื่องภายใน 6 เครื่อง และยืนยันว่าข้อความรีดไถไปถึง 8 ตำแหน่ง ได้แก่ ข้อความต้อนรับตอนล็อกอิน (/etc/motd และ banner ใน sshd_config) การตั้งค่าฐานข้อมูล หน้าล็อกอินของ pgAdmin (login_user.html) และ README ในโปรเจกต์บนระบบโฮสต์โค้ดของเหยื่อ CloudSEK ย้ำว่านี่ไม่ใช่แค่ผู้ช่วยแนะนำคำสั่ง แต่อินเทอร์เฟซ MCP เป็นตัวขนคำสั่งที่ใช้ในการบุกรุกจริง และยังพบสคริปต์อย่าง mcp_test.py กับ recon_mcp.py ที่แสดงว่าผู้โจมตีพัฒนาและทดสอบวิธีนี้กับเครื่องมือหลายตัว

ขั้นเข้าถึงเริ่มต้นส่วนใหญ่มาจากตัวแปรของ GitLab pipeline และประวัติ commit ซึ่งเก็บโทเคนหรือรหัสผ่านไว้ ผู้โจมตีมีสคริปต์ find_full_token.sh สำหรับกู้โทเคนจากประวัติ repository, jasypt_decrypt_all.py สำหรับถอดรหัส credential ที่เข้ารหัสด้วย Jasypt ในไฟล์คอนฟิก, grafana_all.py/grafana_crack3.py สำหรับดึงและแคร็ก credential ของ Grafana, brute_odoo.py สำหรับเดารหัสผ่าน Odoo ERP และ argocd_hunt.sh ที่เกี่ยวกับการเคลื่อนที่ข้ามระบบผ่าน Argo CD นอกจากนี้ยังไล่หาความลับในไฟล์อย่าง values.yaml, คอนฟิก docker-compose และ kubeconfig

กรณีแพลตฟอร์ม AI การแพทย์ API ภาพถ่ายดึง URL ที่ผู้ใช้ส่งมาโดยไม่ตรวจสอบ ผู้โจมตีใช้จุดนี้เข้าถึงบริการภายใน ถอดรหัส credential ที่เก็บไว้ และกู้โทเคนข้ามการยืนยันตัวตนจากประวัติ repository ก่อนคัดลอกข้อมูลออกผ่าน MinIO Client (mc) และ MEGA โดยพักข้อมูลที่ขโมยไว้ในไดเรกทอรี /data บนเซิร์ฟเวอร์ปฏิบัติการ ข้อมูลที่ขโมยได้ถูกนำไปเผยแพร่ผ่านปฏิบัติการปล่อยข้อมูลชื่อ LEAKNED ของ Azazel เอง

ผลกระทบ

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

แต่ต้นเหตุที่ทำให้เหยื่อจำนวนมากถูกเจาะยังเป็นปัญหาเดิม คือความลับใน CI/CD และประวัติ repository ที่ไม่ถูกหมุนเวียน กรณี GitLab ชุดเดียวเปิดทางเข้าสององค์กร และผู้ให้บริการซอฟต์แวร์ที่ลามถึงลูกค้ากว่า 10 ราย แสดงว่าโทเคนรั่วเพียงชุดเดียวในโครงสร้างพื้นฐานพัฒนาที่ใช้ร่วมกันสร้างผลกระทบแบบห่วงโซ่อุปทานได้ ขณะที่การลบข้อมูล production และการเก็บค่าไถ่ไว้เองของแอฟฟิลิเอตสะท้อนว่าระบบนิเวศ RaaS แตกตัว และการจ่ายเงินให้แบรนด์หนึ่งไม่รับประกันว่าแอฟฟิลิเอตจะไม่รีดไถซ้ำ

คำแนะนำ

  • ย้ายความลับของ pipeline ไปเก็บในระบบจัดการ credential โดยเฉพาะ หมุนเวียนโทเคนที่เคยรั่ว และตรวจประวัติ repository ย้อนหลังหาความลับที่เคย commit ไว้
  • จำกัดบริการ MCP ให้เข้าถึงได้เฉพาะ local เปิดบันทึกการรันเครื่องมือที่มีสิทธิ์สูง และไม่เปิดพอร์ต MCP ออกอินเทอร์เน็ต
  • แยกคีย์เข้ารหัสออกจากไฟล์คอนฟิก (เช่น คีย์ Jasypt) จำกัดสิทธิ์ storage และทดสอบแบ็กอัปที่แยกจาก production
  • เฝ้าระวังการอ่านตัวแปร pipeline ที่ผิดปกติ การใช้โทเคน service account ที่ไม่คาดคิด และการโอนข้อมูลจำนวนมากด้วย mc หรือไปยัง MEGA
  • ตรวจ API ที่ดึง URL ตามที่ผู้ใช้ส่งมาให้กรองปลายทางภายใน (SSRF) จำกัดการรันคำสั่งในฐานข้อมูล และตรวจเนื้อหาไฟล์อัปโหลดแทนการเชื่อนามสกุลไฟล์
  • ตรวจหาไฟล์ ATTENTION_SENSITIVE_INFORMATION.txt และการแก้ไข /etc/motd, banner ใน sshd_config หรือหน้าล็อกอิน pgAdmin ที่ผิดปกติ

Indicators of Compromise (IoCs)

indicator ทั้งหมด defang แล้ว ([.]) ก่อนนำไปใช้ต้องแปลงกลับ · บางรายการเป็นชื่อไฟล์ปกติที่ถูกใช้ในทางร้าย ไม่ได้มุ่งร้ายในตัวเอง

ประเภทIndicatorคำอธิบาย
IPv423.236.169[.]183เซิร์ฟเวอร์ C2 และไดเรกทอรีที่เปิดทิ้งไว้ (directory listing พอร์ต 8000 · อัปโหลดพอร์ต 9999)
IPv4162.220.163[.]26เซิร์ฟเวอร์ staging ปฏิบัติการและที่เก็บข้อมูลที่ขโมยมา
โดเมนforgitlab[.]comโฮสต์ของผู้โจมตีที่ปลอมเป็นโครงสร้างพื้นฐาน GitLab
IPv466.179.30[.]155เซิร์ฟเวอร์เผยแพร่และเก็บข้อมูลของปฏิบัติการ LEAKNED
IPv4141.95.252[.]30ที่อยู่ beacon check-in
IPv4:Port66.203.124[.]135:443ปลายทางโอนข้อมูลไป MEGA (ไม่ใช่โครงสร้างพื้นฐานมุ่งร้ายโดยเฉพาะ)
Local endpoint127.0.0.1:35367จุดปลายทาง MCP แบบ loopback ที่ใช้รันการโจมตี (ไม่ใช่ที่อยู่ระยะไกล)
MCP clienthermesตัวตน client ที่ CloudSEK ระบุว่าใช้ในปฏิบัติการนี้
Scanner fingerprintinternet-census-mcp-scannerfingerprint ของการสแกนหาบริการ MCP ที่เปิดออกอินเทอร์เน็ตทั่วโลก
สคริปต์va.pyตรวจการส่งโน้ตเรียกค่าไถ่ไปยังเครื่องภายใน 6 เครื่องผ่าน MCP
สคริปต์mcp_test.py · recon_mcp.pyเครื่องมือทดสอบและสำรวจผ่าน MCP
สคริปต์brute_odoo.pyเดารหัสผ่าน Odoo ERP
สคริปต์jasypt_decrypt_all.pyถอดรหัส credential ในไฟล์คอนฟิก
สคริปต์find_full_token.shกู้โทเคนยืนยันตัวตนจากประวัติ repository
สคริปต์grafana_all.py · grafana_crack3.pyดึงและแคร็ก credential ของ Grafana
สคริปต์scan_vectors.py · sqli_hunt.py · deser_hunt.py · check_rce_surface.shสำรวจและสแกนช่องโหว่
สคริปต์gbasic_mirror_retry.shคัดลอก object storage แบบต่อเนื่องพร้อม retry
สคริปต์argocd_hunt.shเกี่ยวข้องกับการเคลื่อนที่ข้ามระบบ
สคริปต์loki_analyze.py · monitoring_grep.shวิเคราะห์ล็อกแอปพลิเคชันและค้นข้อมูล monitoring
พาธโน้ตค่าไถ่/root/ATTENTION_SENSITIVE_INFORMATION.txtโน้ตเรียกค่าไถ่ใน home ของ root
พาธโน้ตค่าไถ่/home/ubuntu/ATTENTION_SENSITIVE_INFORMATION.txtโน้ตเรียกค่าไถ่ใน home ของผู้ใช้ ubuntu
ไฟล์ระบบที่ถูกแก้/etc/motd · sshd_configใช้แสดงข้อความรีดไถตอนล็อกอิน
เทมเพลตlogin_user.htmlหน้าล็อกอิน pgAdmin ที่ถูกวางข้อความเรียกค่าไถ่
พาธ executable/mcMinIO Client ที่ใช้ในกฎตรวจจับ (การแบ็กอัปปกติอาจตรงด้วย)
ไดเรกทอรี staging/dataพักข้อมูลที่ขโมยบนเซิร์ฟเวอร์ปฏิบัติการ

แหล่งอ้างอิง