ทีมนักวิจัยด้านความมั่นคงปลอดภัยจาก SensePost ออกมาเปิดเผยถึงเทคนิคการโจมตี Microsoft Office รูปแบบใหม่ซึ่งไม่ต้องใช้ Macros ในการรันโค้ดแปลกปลอมอีกต่อไป ด้าน Microsoft ปฏิเสธ ไม่ใช่ช่องโหว่ด้านความมั่นคงปลอดภัยเพราะมีหน้าต่างแจ้งเตือนแล้ว
การโจมตีที่กล่าวถึงนี้อาศัย Microsoft Dynamic Data Exchange (DDE) ฟีเจอร์เก่าแก่ของ Microsoft Office ซึ่งช่วยให้โปรแกรม Office หนึ่ง สามารถโหลดข้อมูลจากอีกโปรแกรม Office หนึ่งเข้ามาได้ เช่น ไฟล์ Word สามารถอัปเดตข้อมูลบนตารางด้วยตัวเองโดยการดึงข้อมูลจากไฟล์ Excel ทุกครั้งที่ไฟล์ Word ถูกเปิด ถึงแม้ว่าฟีเจอร์นี้จะถูกแทนที่ด้วยฟีเจอร์ Object Linking and Embedding (OLE) ไปแล้ว แต่ Office ทุกโปรแกรมยังคงรองรับการใช้ฟีเจอร์ดังกล่าวอยู่จนถึงปัจจุบัน
ในเชิงเทคนิค DDE เปรียบได้กับฟิลด์หนึ่งบนเอกสารที่ผู้ใช้สามารถปรับแต่งค่าได้ตามต้องการ โดยสามารถใส่คำสั่งง่ายๆ พร้อมระบุตำแหน่งของไฟล์ที่ต้องการจะดึงข้อมูล และข้อมูลที่จะนำมาใส่ในไฟล์เอกสารอีกฉบับ ตรงจุดนี้เอง ทำให้แฮ็คเกอร์สามารถสร้างไฟล์ชนิดพิเศษขึ้นมา ซึ่งแทนที่จะสั่ง DDE ให้เปิดโปรแกรม Office อีกโปรแกรมหนึ่ง กลับสั่งให้เปิด Command Prompt และรันโค้ดคำสั่งของตนเองแทน
โดยปกติแล้ว การทำแบบนี้โปรแกรม Office จะแสดงหน้าต่างแจ้งเตือน 2 ครั้ง ครั้งแรกคือแจ้งเตือนว่าไฟล์เอกสารที่กำลังเปิดอยู่มีลิงค์นำไปสู่ไฟล์อื่น และครั้งที่สองคือแจ้งเตือนถึงความผิดพลาดที่เกิดขึ้นเกี่ยวกับการเปิด Command Prompt จากระยะไกล อย่างไรก็ตาม สามารถปรับการตั้งค่าให้ไม่แสดงผลการแจ้งเตือนครั้งที่ 2 ได้ เหลือเฉพาะการแจ้งเตือนครั้งแรกครั้งเดียว การทำแบบนี้ส่งผลให้การโจมตีประสบความสำเร็จได้ง่ายยิ่งขึ้น เนื่องจากผู้ที่ทำงานกับไฟล์ที่ใช้ DDE เป็นประจำมักจะกดปิดหรือไม่สนใจการแจ้งเตือน (ครั้งแรก) ที่แสดงขึ้นมาบนหน้าจอ
ด้านล่างแสดงวิดีโอสาธิตการโจมตี
SensePost ได้แจ้งปัญหาดังกล่าวไปยัง Micrsoft ตั้งแต่ช่วงต้นปี แต่ Microsoft กลับระบุว่าสิ่งนี้ไม่ใช่ช่องโหว่ด้านความมั่นคงปลอดภัย เนื่องจากโปรแกรม Office ทำการแจ้งเตือนก่อนที่จะเปิดไฟล์อยู่แล้ว ดังนั้นวิธีที่ดีที่สุดในการป้องกันตัวเอง คือ ไม่ควรเปิดไฟล์ที่แนบมากับอีเมลที่ไม่รู้จัก หรือตรวจสอบให้ดีก่อนว่าไฟล์ที่แนบมาเป็นไฟล์ที่เจ้าของส่งมาให้จริงๆ ไม่ใช่ถูกปลอมอีเมลมา
รายละเอียดเชิงเทคนิค: https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/