MDR Analyst Note #1: Understanding Heap Spray Alert

ผลิตภัณฑ์ CrowdStrike มีการตรวจพบการแจ้งเตือนซึ่งเกิดจากการใช้งานโปรแกรม Internet Explorer โดยมีเนื้อหาของการแจ้งเตือนเกี่ยวข้องกับการทำ heap spraying ซึ่งเป็นหนึ่งในขั้นตอนของการทำ heap overflow ทีมตอบสนองการโจมตีและภัยคุกคามจึงทำการตรวจสอบเหตุการณ์ที่เกิดขึ้นว่าการแจ้งเตือนดังกล่าวมีแนวโน้มว่าจะเป็นการโจมตีช่องโหว่หรือไม่

Sample Alert

Analysis Goal

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

Analysis Procedures

จากการแจ้งเตือนที่ได้รับ ทีมตอบสนองการโจมตีและภัยคุกคามได้เข้าตรวจสอบรายละเอียดเหตุการณ์ที่เกิดขึ้น โดยรายละเอียดของเหตุการณ์ในส่วนของ Indicator of Attack (IOA) Name มีการระบุว่าการแจ้งเตือนมาจาก HeapSprayAttempted ในโปรเซสย่อยของ iexplore.exe ปรากฎโปรเซส WerFault.exe ซึ่งเป็นโปรเซสที่ใช้รายงานข้อผิดพลาดที่เกิดขึ้นในแอปพลิเคชันไปยัง Microsoft

เทคนิค heap spray เป็นเทคนิคซึ่งใช้ร่วมกับการโจมตีที่เกี่ยวข้องกับหน่วยความจำประเภท heap เพื่อให้การโจมตีนั้นมีความเสถียรและมีความง่ายมากขึ้นในการทำให้ช่องโหว่ที่เกิดขึ้นสามารถถูกใช้ประโยชน์ได้จากการโจมตี เป้าหมายของการทำ heap spray นั้นในเชิงเทคนิคยังคงมีอีกหลายประเด็นและเงื่อนไข เช่น บังคับให้มี heap manager ทำการจองพื้นที่ใหม่โดยไม่ใช้พื้นที่เก่า หรือการเติมพื้นที่ของ heap ด้วย NOP-sled เพื่อให้การทำงานของ shellcode นั้นเกิดขึ้นได้ง่าย

ในมุมของผู้โจมตีการทำ heap spray สามารถทำได้หลายลักษณะ เช่น การจองด้วยการใส่ก้อนข้อมูลขนาดใหญ่ลงไปหรืออาจเป็นการจองขนาดที่เล็กแต่เป็นการจองและคืนหลายรอบเพื่อทำให้เกิดการจัดเรียงข้อมูลใน heap ให้เหมาะสมตามเงื่อนไขของการโจมตี การทำ heap spray ในเบราว์เซอร์โดยส่วนใหญ่ถูกอิมพลีเมนต์โดยการใช้ JavaScript ด้วยคุณลักษณะที่ตัวภาษาสามารถจองพื้นที่ใน heap ได้โดยตรง รวมไปถึงการใช้ภาษาอื่นๆ อาทิ VBScript, ActionScript, HTML5

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

  1. ตรวจสอบการเข้าถึงเว็บไซต์ ณ เวลาดังกล่าวว่าเป็นเว็บไซต์ใด และเว็บไซต์มีการปรากฎของโค้ดซึ่งอาจเกี่ยวข้องกับการโจมตีช่องโหว่หรือไม่ การตรวจสอบสามารถทำได้โดยการดูกิจกรรมการเชื่อมต่อเครือข่ายและการใช้งานโปรโตคอล DNS ที่ CrowdStrike บันทึกเอาไว้
  2. ตรวจสอบความเป็นไปได้ที่จะมีการเกิดขึ้นของโปรเซสอื่นๆ ภายใต้ iexplorer.exe ที่บ่งชี้ให้เห็นว่าการโจมตีนั้นสำเร็จ
  3. ตรวจสอบ crash dump จาก iexplorer.exe เพื่อยืนยันข้อผิดพลาดที่ทำให้เกิดการ crash เพิ่มเติม

MDR analyst จะต้องทำการศึกษาความนิยมของช่องโหว่ที่ใช้โจมตี Internet Explorer ในช่วงเวลาปัจจุบันเพื่อกำหนดขอบเขตและความเป็นไปได้ของวิธีการโจมตีเพิ่มเติม

ในกรณีดังกล่าว MDR analyst สามารถทำการตรวจสอบประเด็นในข้อที่ 1 และ 2 ได้เอง แต่ต้องขอการช่วยเหลือจาก Intelligent Response โดยหากการตรวจสอบประเด็นที่ 1 และ 2 ไม่พบความผิดปกติ MDR analyst ไม่จำเป็นต้องขอความเชื่อเหลือจาก Intelligent Response เพิ่มเติม