แฮ็กเกอร์ใช้ช่องโหว่ใน OAuth 2.0 workflows เพื่อแฮ็กบัญชี Microsoft 365

กลุ่มแฮ็กเกอร์จากรัสเซีย ใช้ช่องโหว่ OAuth 2.0 authentication เพื่อแฮ็กบัญชี Microsoft 365 ของพนักงานในองค์กรที่เกี่ยวข้องกับยูเครน และองค์กรด้านสิทธิมนุษยชน

ผู้โจมตีแอบอ้างตัวเป็นเจ้าหน้าที่จากประเทศในยุโรป และติดต่อเป้าหมายผ่านแอปส่งข้อความอย่าง WhatsApp และ Signal โดยเป้าหมายคือการโน้มน้าวให้เหยื่อใส่รหัส authorization codes สำหรับ Microsoft หรือทำการคลิกลิงก์อันตราย เพื่อเก็บข้อมูลการล็อกอิน และรหัสผ่านแบบ One-Time Codes

บริษัทด้านความปลอดภัยทางไซเบอร์ Volexity สังเกตเห็นพฤติกรรมนี้ตั้งแต่ช่วงต้นเดือนมีนาคม 2025 หลังจากที่เคยเกิดเหตุการณ์ในลักษณะเดียวกันนี้ในเดือนกุมภาพันธ์ ซึ่งเคยถูกรายงานโดย Volexity และ Microsoft โดยในครั้งนั้นผู้โจมตีใช้เทคนิคฟิชชิงผ่าน Device Code Authentication เพื่อขโมยบัญชี Microsoft 365

Volexity ได้ติดตามกลุ่มผู้โจมตีที่อยู่เบื้องหลังการโจมตีทั้งสองแคมเปญในชื่อ UTA0352 และ UTA0355 และประเมินด้วยความมั่นใจในระดับปานกลางว่าทั้งสองกลุ่มเป็นชาวรัสเซีย

ลำดับการโจมตี

ในรายงานที่เผยแพร่วันที่ 25 เมษายน 2025 นักวิจัยได้อธิบายว่า การโจมตีเริ่มต้นจากการส่งข้อความผ่านแอปพลิเคชัน Signal หรือ WhatsApp

โดย Volexity ระบุว่า ในบางกรณี ข้อความดังกล่าวถูกส่งมาจากบัญชีของรัฐบาลยูเครนที่ถูกโจมตี

โดยผู้โจมตีจะแอบอ้างเป็นเจ้าหน้าที่ทางการเมืองของยุโรป หรือเจ้าหน้าที่การทูตของยูเครน และหลอกเป้าหมายด้วยคำเชิญให้เข้าร่วมการประชุมวิดีโอส่วนตัวเพื่อหารือเกี่ยวกับประเด็นที่เกี่ยวข้องกับยูเครน

เมื่อสามารถสร้างช่องทางการสื่อสารกับเป้าหมายได้แล้ว ผู้โจมตีจะส่ง phishing URL ในรูปแบบ OAuth โดยอ้างว่าเป็นลิงก์ที่จำเป็นสำหรับเข้าร่วมการประชุม

กลุ่ม UTA0352 อาจส่งคำแนะนำในการเข้าร่วมประชุมในรูปแบบไฟล์ PDF พร้อมกับลิงก์อันตรายที่ถูกออกแบบมาให้ใช้สำหรับล็อกอินเข้าสู่ระบบ Microsoft และแอปของ third-party ซึ่งใช้ในขั้นตอน OAuth ของ Microsoft 365

หลังจากเป้าหมายทำการยืนยันตัวตนเรียบร้อยแล้ว นักวิจัยระบุว่า จะมีการเปลี่ยนเส้นทางผู้ใช้ไปยัง Visual Studio Code เวอร์ชันในเบราว์เซอร์ ซึ่งโฮสต์อยู่ที่ insiders.vscode.dev

หน้า Landing Page สามารถรับพารามิเตอร์การเข้าสู่ระบบจาก Microsoft 365 ซึ่งรวมถึง OAuth และผู้ใช้จะเห็นหน้าต่างแสดงผล ดังนี้

ผู้โจมตีจะใช้เทคนิค Social Engineering เพื่อหลอกให้เหยื่อส่งโค้ดข้างต้นกลับมา โดยอ้างว่าจำเป็นต้องใส่โค้ดดังกล่าวเพื่อเข้าร่วมการประชุม

อย่างไรก็ตาม รหัสนี้คือ Authorization Code ที่สามารถใช้งานได้นานถึง 60 วัน และสามารถนำไปใช้เพื่อขอ Access Token ที่มีสิทธิ์เข้าถึงทรัพยากรทั้งหมดที่ผู้ใช้สามารถเข้าถึงได้ตามปกติ

Volexity ระบุว่า “ควรสังเกตว่ารหัสนี้ยังปรากฏอยู่ใน URL ที่แสดงในแถบ Address ของเบราว์เซอร์ด้วย และVisual Studio Code ถูกตั้งค่าไว้เพื่อให้สามารถแยก และแชร์รหัสนี้ได้ง่ายขึ้น ในขณะที่ในกรณีอื่น ๆ มักจะนำผู้ใช้ไปยังหน้าเปล่าแทน”

นักวิจัยได้ลดความซับซ้อนของการโจมตีโดยกำหนดเป้าหมายไปที่ผู้ใช้ และอาศัยแอปพลิเคชันใน first-party ของ Visual Studio Code ในแผนภาพต่อไปนี้

งานวิจัยระบุว่า มีรูปแบบเก่าของการโจมตีฟิชชิ่งในปัจจุบัน ซึ่งผู้โจมตีใช้รูปแบบ URL ของ AzureAD เวอร์ชัน 1.0 แทนที่จะเป็นเวอร์ชัน 2.0 โดยความแตกต่างระหว่างสองเวอร์ชันนี้อยู่ที่พารามิเตอร์ใน URL ที่ใช้

แคมเปญในเดือนเมษายน ที่ถูกระบุว่าเป็นฝีมือของกลุ่ม UTA0355 มีความคล้ายกับแคมเปญของ UTA0352 แต่จุดเริ่มต้นของการติดต่อมาจากอีเมลของรัฐบาลยูเครนที่ถูกโจมตี และผู้โจมตีได้ใช้รหัส OAuth ที่ถูกขโมยไป เพื่อลงทะเบียนอุปกรณ์ใหม่เข้ากับ Microsoft Entra ID ของเหยื่อ (ซึ่งเดิมคือ Azure Active Directory)

นักวิจัยจาก Volexity ระบุว่า หลังจากที่ผู้โจมตีสามารถลงทะเบียนอุปกรณ์ใหม่เรียบร้อยแล้ว พวกเขาต้องโน้มน้าวเป้าหมายให้อนุมัติคำขอการยืนยันตัวตนแบบ 2FA เพื่อให้สามารถเข้าถึงอีเมลของเหยื่อได้

เพื่อให้บรรลุเป้าหมายดังกล่าว ผู้โจมตีจะใช้เทคนิค social engineering โดยอ้างว่า รหัส 2FA จำเป็นสำหรับการเข้าถึง SharePoint ที่เกี่ยวข้องกับการประชุม

ขั้นตอนสุดท้ายนี้จะทำให้ผู้โจมตีได้ Token ที่ใช้เข้าถึงข้อมูล และอีเมลของเหยื่อ รวมทั้งยังมีอุปกรณ์ใหม่ที่ถูกลงทะเบียนไว้ในระบบ ซึ่งช่วยให้สามารถเข้าถึงบัญชีของเหยื่อได้อย่างต่อเนื่องในระยะยาว

นักวิจัยของ Volexity ระบุว่า “จากบันทึกข้อมูลที่ Volexity ตรวจสอบพบว่าการลงทะเบียนอุปกรณ์ครั้งแรกสำเร็จ ไม่นานหลังจากที่เหยื่อมีการโต้ตอบกับผู้โจมตี และการเข้าถึงข้อมูลอีเมลเกิดขึ้นในวันถัดมา ซึ่งเป็นช่วงเวลาที่กลุ่ม UTA0355 วางแผนให้เหยื่ออนุมัติคำขอ 2FA ได้สำเร็จ”

เพื่อป้องกันการโจมตีประเภทดังกล่าว Volexity แนะนำให้ตั้งค่าการแจ้งเตือนในการเข้าสู่ระบบโดยใช้ Visual Studio Code client_id บล็อกการเข้าถึง ‘insiders.vscode.dev’ และ ‘insiders.vscode.dev’

นักวิจัยยังแนะนำให้ ตั้งค่า Conditional Access Policies เพื่อจำกัดการเข้าถึงเฉพาะอุปกรณ์ที่ได้รับการอนุมัติเท่านั้น

 

ที่มา : bleepingcomputer.com