สรุปสั้น
บริษัท Group-IB เปิดเผยมัลแวร์จารกรรมตัวใหม่ที่ตั้งชื่อว่า HollowGraph ซึ่งพลิกวิธีสั่งการมัลแวร์ไปจากเดิมอย่างสิ้นเชิง แทนที่จะติดต่อกลับไปยังเซิร์ฟเวอร์สั่งการ (C2) ของผู้โจมตี มัลแวร์ตัวนี้กลับใช้ปฏิทิน Microsoft 365 ของบัญชีที่ถูกเจาะเป็น “จุดฝากของ” สองทาง โดยผู้ควบคุมจะฝังคำสั่งไว้ในนัดหมายที่ลงวันที่ไกลถึง 13 พฤษภาคม ค.ศ. 2050 ซึ่งเจ้าของกล่องจดหมายแทบไม่มีทางเลื่อนปฏิทินไปเจอ ส่วนไฟล์ที่ขโมยได้ก็ถูกส่งออกด้วยวิธีเดียวกันคือแนบเป็นไฟล์แนบของนัดหมายในอนาคตอันไกลโพ้น
สิ่งที่ทำให้เทคนิคนี้ตรวจจับยากคือทราฟฟิกทั้งหมดวิ่งผ่าน Microsoft Graph API ที่ถูกต้องตามกฎหมาย ทำให้กิจกรรมของมัลแวร์ดูเหมือนการใช้งาน Microsoft 365 ตามปกติ และมาตรการควบคุมเครือข่ายที่ตั้งไว้ดักปลายทางของผู้โจมตีก็ไม่มีอะไรให้จับ บริษัท Group-IB พบมัลแวร์ตัวนี้บนเครื่องอย่างน้อย 12 เครื่อง โดยมีราวสามเครื่องที่ยังสื่อสารกับผู้โจมตีอยู่ในช่วงที่วิเคราะห์ และทราฟฟิกของเหยื่อกินเวลาตั้งแต่วันที่ 3 มิถุนายน ถึง 9 กรกฎาคม 2569 ขนาดที่เล็กและเลือกเป้าหมายชัดเจนเช่นนี้ถูกตีความว่าเป็นปฏิบัติการจารกรรมแบบเจาะจง ไม่ใช่อาชญากรรมไซเบอร์แบบหว่านแห
ประเด็นที่ผู้ดูแลระบบต้องเข้าใจให้ตรงกันคือ เรื่องนี้ไม่มีช่องโหว่ของซอฟต์แวร์ไมโครซอฟท์และไม่มีแพตช์ให้ติดตั้ง HollowGraph อาศัยบัญชีที่ถูกเจาะไปแล้วบวกกับฟังก์ชันปกติของ Graph API ล้วน ๆ ซึ่งเป็นเหตุผลที่ทำให้มันตรวจจับได้ยาก งานป้องกันจึงอยู่ที่การจัดการตัวตน (Identity) สิทธิ์ของแอปพลิเคชัน และการเฝ้าระวัง ไม่ใช่การอัปเดตเวอร์ชัน
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 20 กรกฎาคม 2569 ว่าบริษัท Group-IB ได้เปิดเผยผลการวิเคราะห์มัลแวร์ฝังตัว (Implant) ตัวใหม่ที่ตั้งชื่อว่า HollowGraph ซึ่งใช้ปฏิทินของ Microsoft 365 ที่ถูกยึดเป็นช่องทางสั่งการ ตัวมัลแวร์เป็นไฟล์ DLL ที่เขียนด้วย .NET และรองรับคำสั่งเพียงสองคำสั่งเท่านั้นคือ get และ send ความเรียบง่ายระดับนี้เป็นความตั้งใจ เพราะยิ่งฟังก์ชันน้อย ร่องรอยที่ทิ้งไว้ให้ตรวจจับก็ยิ่งน้อยตามไปด้วย และที่สำคัญคือมัลแวร์ไม่เคยติดต่อออกไปยังเซิร์ฟเวอร์ของผู้โจมตีเพื่อดึงเพย์โหลดเลยแม้แต่ครั้งเดียว
ในฝั่งรับคำสั่ง มัลแวร์จะสอบถามปฏิทินเพื่อหานัดหมายที่ผู้ควบคุมฝังไว้ที่วันที่ 2050-05-13 แล้วอ่านคำสั่งจากไฟล์ที่แนบมากับนัดหมายนั้น ส่วนการส่งข้อมูลออก (Exfiltration) ทำในทางกลับกัน คือเข้ารหัสไฟล์ที่ขโมยมา สร้างนัดหมายในอนาคตอันไกลของตัวเอง แล้วอัปโหลดข้อมูลขึ้นไปเป็นไฟล์แนบหนึ่งไฟล์หรือมากกว่า ข้อมูลทุกอย่างที่วิ่งผ่านปฏิทินถูกห่อด้วยการเข้ารหัสแบบผสมระหว่าง RSA และ AES-256 โดยใช้คู่กุญแจแยกกันระหว่างคำสั่งขาเข้ากับข้อมูลขาออก
บริษัท Group-IB เชื่อมโยง HollowGraph เข้ากับเฟรมเวิร์กที่ชื่อ Cavern ด้วยความเชื่อมั่นระดับสูง โดยอาศัยรูปแบบไวยากรณ์คำสั่งที่ใช้ร่วมกันและโครงสร้างการสั่งงานภายในที่ตรงกัน ทั้งนี้ Cavern คือเฟรมเวิร์กแบ็กดอร์แบบโมดูลที่บริษัท Check Point เพิ่งเปิดเผยรายละเอียดไปเมื่อต้นเดือนกรกฎาคมนี้ และระบุว่าเป็นของกลุ่มที่เชื่อมโยงกับกระทรวงข่าวกรองและความมั่นคงของอิหร่าน ซึ่ง Check Point เรียกว่า Cavern Manticore กลุ่มนี้ถูกประเมินว่ามีความทับซ้อนกับกลุ่มอิหร่านที่รู้จักกันดีอย่าง MuddyWater และ Lyceum
แต่จุดที่ต้องระวังคือ ความเชื่อมโยงที่หนักแน่นอยู่ที่ตัวโค้ด ไม่ใช่ตัวผู้ลงมือ บริษัท Group-IB ปฏิเสธที่จะระบุชื่อผู้อยู่เบื้องหลังแคมเปญนี้ โดยเขียนไว้ตรง ๆ ว่า “จากหลักฐานที่มีอยู่ในขณะนี้ เราไม่สามารถระบุกิจกรรมนี้ให้กับกลุ่มผู้โจมตีที่เคยถูกระบุตัวมาก่อนได้อย่างมั่นใจ” และให้เพียงความทับซ้อนระดับความเชื่อมั่นต่ำกับกลุ่ม Lyceum ซึ่งเป็นกลุ่มย่อยของกลุ่มอิหร่านชื่อ OilRig ส่วนกล่องจดหมายที่ถูกใช้เป็นช่องส่งข้อมูลออกนั้นเป็นขององค์กรในอิสราเอล แต่ Group-IB ถือว่านั่นเป็นเพียงภูมิศาสตร์ของเหยื่อ ไม่ใช่หลักฐานระบุตัวผู้โจมตี
วิธีการโจมตี
หัวใจของ HollowGraph คือการแปลงปฏิทินให้กลายเป็นช่องสัญญาณสองทาง มัลแวร์ทำงานภายใต้สิทธิ์ของแอปพลิเคชันที่ลงทะเบียนไว้กับ Entra ID (ชื่อเดิมคือ Azure AD) แล้วเรียก Microsoft Graph API เพื่ออ่านและเขียนนัดหมายในกล่องจดหมายที่ถูกเจาะ เมื่อทุกอย่างเกิดขึ้นภายในบริการของไมโครซอฟท์เอง อุปกรณ์ป้องกันที่คอยดูว่ามีการติดต่อออกไปยังโดเมนหรือไอพีแปลกปลอมหรือไม่ก็จะไม่เห็นอะไรผิดปกติเลย
ช่องทางที่สองเป็นช่องทางสำรองที่หยาบกว่ามาก และมีไว้เพื่อรักษาการเข้าถึง Graph API ให้ยังใช้งานได้ต่อเนื่อง HollowGraph จะรีเฟรชข้อมูลล็อกอินของแอปบน Entra ID ผ่านช่องทาง DNS ได้แก่ tenant ID, client ID, client secret และกล่องจดหมายเป้าหมาย โดยถอดค่าเหล่านี้ออกมาจากเรกคอร์ด AAAA แบบ IPv6 ที่ตอบกลับมาจากโดเมนของผู้โจมตีคือ cloudlanecdn[.]com (โดเมนนี้ถูกทำ defang ไว้แล้วเพื่อป้องกันการคลิกโดยไม่ตั้งใจ) จากนั้นจึงเขียนค่าที่ได้ลงไฟล์ชื่อ logAzure.txt ที่ตั้งชื่อให้ดูเหมือนไฟล์ล็อกทั่วไป
สองประเด็นที่ต้องเน้นคือ ค่าที่ถูกส่งมาทาง DNS นี้เป็น ข้อมูลรับรองแบบ client credentials ที่เก็บไว้ ไม่ใช่ access token ซึ่งหมายความว่าผู้โจมตีสามารถขอโทเคนใหม่ได้เองเมื่อไรก็ได้ตราบใดที่ข้อมูลชุดนี้ยังไม่ถูกเพิกถอน และต่างจากทราฟฟิกฝั่งปฏิทินตรงที่ ช่องทาง DNS นี้วิ่งแบบไม่เข้ารหัส จึงเป็นจุดอ่อนที่ฝั่งป้องกันพอจะจับได้ง่ายกว่าช่องทางหลัก
บริษัท Group-IB ยังชี้ว่าการซ่อนช่องสั่งการไว้ในบริการของไมโครซอฟท์ที่องค์กรไว้ใจนั้นไม่ใช่เรื่องใหม่ ผู้โจมตีเคยใช้กล่องจดหมาย Outlook โฟลเดอร์ฉบับร่าง และ OneDrive มาแล้ว สิ่งที่ใหม่คือการเลือกจอดนัดหมายไว้ที่ปี ค.ศ. 2050 ซึ่งเป็นมุมที่ไม่มีใครมีเหตุผลจะเข้าไปตรวจ
ผลกระทบต่อไทย
องค์กรในประเทศไทยจำนวนมากใช้ Microsoft 365 เป็นระบบอีเมลและปฏิทินหลัก ทั้งหน่วยงานภาครัฐ สถาบันการเงิน สถาบันการศึกษา และภาคเอกชนขนาดใหญ่ เทคนิคของ HollowGraph จึงใช้ได้กับสภาพแวดล้อมแบบเดียวกันนี้ทันทีโดยไม่ต้องดัดแปลงอะไร แม้แคมเปญที่พบครั้งนี้จะพุ่งเป้าไปที่ตะวันออกกลางก็ตาม เพราะสิ่งที่มัลแวร์ต้องการมีเพียงบัญชีที่ถูกเจาะและแอปพลิเคชันที่มีสิทธิ์เข้าถึงปฏิทินผ่าน Graph API เท่านั้น และตัว Group-IB เองก็ระบุว่าเทคนิคนี้สามารถถูกนำไปใช้ซ้ำได้กว้างกว่าแคมเปญเดียวนี้มาก
ความเสี่ยงที่แท้จริงสำหรับองค์กรไทยอยู่ที่การกำกับดูแลแอปพลิเคชันที่ลงทะเบียนไว้กับ Entra ID ซึ่งหลายองค์กรยังไม่มีกระบวนการตรวจสอบว่ามีแอปใดบ้างที่ได้รับสิทธิ์แบบ client credentials ไปแล้ว ใครเป็นผู้อนุมัติ และมีการสร้าง client secret ใหม่เมื่อใด ช่องว่างตรงนี้ทำให้ผู้โจมตีที่เข้ามาได้แล้วฝังตัวอยู่ได้นานโดยไม่ถูกจับสังเกต เพราะกิจกรรมทั้งหมดปรากฏในล็อกในฐานะ “แอปพลิเคชันที่ได้รับอนุญาต” ไม่ใช่ “การล็อกอินที่น่าสงสัย”
อีกประเด็นที่กระทบตรงคือองค์กรไทยจำนวนไม่น้อยลงทุนกับการเฝ้าระวังทราฟฟิกขาออกไปยังปลายทางที่น่าสงสัย แต่ยังไม่ได้ตรวจสอบพฤติกรรมภายในบริการคลาวด์ที่ตนเองใช้อยู่ กรณีนี้จึงเป็นเครื่องเตือนว่าการมองเห็น (Visibility) ในระดับ Microsoft Graph และล็อกกิจกรรมของกล่องจดหมายเป็นสิ่งจำเป็น ไม่ใช่ของเสริม
คำแนะนำ
ในฝั่งการล่าหาร่องรอย (Threat Hunting) บริษัท Group-IB แนะนำให้เริ่มจากปฏิทินโดยตรง โดยค้นหานัดหมายที่มีลักษณะดังนี้ คือลงวันที่ในอนาคตอันไกลโดยเฉพาะวันที่ 2050-05-13, มีหัวเรื่องเป็น GUID เปล่า ๆ หรือหัวเรื่องที่ตรงกับรูปแบบ Event ID:orBoss{..}ID{..} ที่ผู้ควบคุมใช้ และมีไฟล์แนบชื่อในรูปแบบ File{n}.txt
ในฝั่งการจัดการตัวตน ให้จำกัดและตรวจสอบแอปพลิเคชันแบบ client-credential OAuth ที่สามารถเข้าถึง Microsoft Graph ได้ ตั้งการแจ้งเตือนเมื่อมีการสร้าง client secret ใหม่ พร้อมทั้งทำสุขอนามัยพื้นฐานของ Entra ID ให้ครบ ได้แก่ Conditional Access, การหมุนเวียนข้อมูลรับรอง (Credential Rotation) และการตรวจจับโทเคนที่มีพฤติกรรมผิดปกติ
ในฝั่งการตรวจจับ ให้ตรวจสอบล็อกของ Microsoft Graph และกิจกรรมกล่องจดหมาย โดยเน้นการเปลี่ยนแปลงปฏิทินที่เกิดจากแอปพลิเคชันแทนที่จะเกิดจากคน เช่น การสร้างนัดหมาย การอัปโหลดไฟล์แนบ หรือการเปลี่ยนชื่อหัวเรื่องที่กระทำโดยแอป นอกจากนี้ให้เฝ้าระวัง DNS ด้วย โดยมองหาการสอบถามเรกคอร์ด AAAA ที่ถี่ผิดปกติ และซับโดเมนที่ยาวและมีค่าเอนโทรปีสูงซึ่งพุ่งไปยังโดเมนเดียว
การตรวจหาโดเมน cloudlanecdn[.]com และไฟล์ตั้งค่าชื่อ logAzure.txt คือการกวาดรอบแรกที่เร็วที่สุด ส่วนชุดตัวบ่งชี้เต็มรวมถึงค่าแฮชของไฟล์อยู่ในรายงานฉบับเต็มของบริษัท Group-IB สุดท้ายขอย้ำอีกครั้งว่ากรณีนี้ไม่มีแพตช์ให้ติดตั้ง งานทั้งหมดอยู่ที่การควบคุมสิทธิ์และการเฝ้าระวัง และเนื่องจากทราฟฟิกของเหยื่อยังไหลอยู่จนถึงวันที่ 9 กรกฎาคมที่ผ่านมา นัดหมายในอนาคตอันไกลเหล่านั้นจึงคุ้มค่าที่จะเข้าไปตรวจตั้งแต่ตอนนี้
Indicators of Compromise (IoCs)
| Indicator | ประเภท | คำอธิบาย |
|---|---|---|
cloudlanecdn[.]com | โดเมน | โดเมนของผู้โจมตีที่ตอบเรกคอร์ด AAAA เพื่อส่งข้อมูลรับรอง Entra ID กลับมา |
logAzure.txt | ชื่อไฟล์ | ไฟล์ตั้งค่าที่ปลอมเป็นไฟล์ล็อก ใช้เก็บ tenant ID/client ID/client secret/กล่องจดหมายเป้าหมาย |
2050-05-13 | วันที่นัดหมาย | วันที่ของนัดหมายในปฏิทินที่ใช้ฝากคำสั่งและข้อมูลที่ขโมย |
Event ID:orBoss{..}ID{..} | หัวเรื่องนัดหมาย | รูปแบบหัวเรื่องที่ผู้ควบคุมใช้ (บางครั้งเป็น GUID เปล่า) |
File{n}.txt | ชื่อไฟล์แนบ | รูปแบบชื่อไฟล์แนบที่ใช้ส่งคำสั่งและข้อมูลที่ขโมยออก |
หมายเหตุ: โดเมนข้างต้นถูกทำ defang แล้ว (แทน . ด้วย [.]) เพื่อป้องกันการคลิกโดยไม่ตั้งใจ
