Articles

"Heap Spray" เทคนิคในการ Exploit ที่กำลังกลับมาได้รับความนิยม

Written by pspn on . Posted in Blog

ตอนนี้การโจมตีผ่านทาง Client (Client Site Attact) กำลังเป็นที่ได้รับความนิยม  เราคงได้ข่าวช่องโหว่ใหม่ของ Web Browser ออกมาอยู่เนืองๆ ช่วงนี้   ไม่จำกัดเฉพาะ IE เท่านั้น Firefox ก็โดนกะเขาด้วย วันนี้เลยอยากเอาเรื่องนี้มาเล่าให้ฟัง

History

เมื่อก่อนนี้การ Exploit ส่วนทั้งหมดจะเป็นการ Exploit แบบ Buffer Overflow  และก็มี Hacker หลายคนเชื่อว่าไม่สามารถที่จะ Exploit โดยการทำ Heap Overflow ได้   Skylined เป็น hacker คนแรกๆ ที่มีความสงสัยในข้อจำกัดนี้ และได้ทดลองการโจมตีผ่านทาง Heap Overflow  เมื่อประมาณปี 2004  โดยการ Exploit ผ่าน IFrame  ซึ่ง M$ ก็ได้ออก Patch มาปิดช่องโหว่นี้แล้ว (MS04-040)      การโจมตีโดยหลักการของ Heap Spray นี้เริ่มต้นตั้งแต่ปี 2001 แต่มานิยมใช้ในการโจมตีแพร่หลายก็เมื่อ 2005 นี่เอง  ซึ่งการโจมตีรูปแบบนี้ยังเป็นรูปแบบที่ตรวจจับอยากอยู่เหมือนกัน

How-to

วิธีการโจมตีแบบ Heap Spray มีวิธีการคล้ายๆ กับ Buffer Overflow  คือ Attacker จะทำการเขียนโปรแกรมเพื่อจัดการ Copy "Exploit Code"  เข้าไปยัง Heap ของ process เป้าหมาย (ตอนนี้เป้าหมายหลักก็คือ Browser นั่นเอง)   โดยการจัดการส่วนใหญ่ก็ไม่ยุงยากมาก ซึ่งอาศัย JavaScript ในการจัดการกับ Exploit Code และก็สร้าง Array และคัดลอกอัดเข้าไปยัง Heap ของ Process เป้าหมาย  เลยเป็นที่มาของคำว่า "Spray"  ลองดูโค้ดตัวอย่างได้ที่นี้ครับ   เป็นโค้ด exploit ของ IE6 และ IE7

แต่อย่างไรก็ตาม การโจมตีในรูปแบบนี้ก็ยัีงมีข้อจำกัดอยู่  คือไม่รู้ตำแหน่งที่แน่นอนของ Address ที่อยู่ใน Heap ทำให้ไม่สามารถควบคุมให้ Expoit Code ที่ต้องการทำงานได้ 100%  เนื่องจาก OS ส่วนใหญ่  ทั้ง Windows XP/ Vista ทีการป้องกันที่เรียกว่า "address-based layout randomization" เป็นการสุมตำแหน่ง layout ใน Heap ทำให้ Attacker ไม่สามารถระบุตำแหน่งที่แน่นอนได้   แต่จากการ Spray โค้ดเข้าไปใน Heap ที่มีขนาดใหญ่ (ขึ้นอยู่กับแต่ละ process) ก็ทำให้มีโอกาสที่จะสำเร็จสูง  รวมถึงจำนวนเหยีือที่เข้าไปเปิดหน้าเว็บที่มี Expoit Code (JavaScript) ฝังอยู่ยิ่งมากก็ยิ่งทำให้โอกาสที่จะโจมตีสำเร็จสูงตามไปด้วย

หากการโจมตีสำเร็จ  Attacker สามารถสั่งให้เครื่องของเหยือทำอะไรก็ได้ตาม Exploit Code ที่ฝังไว้ยกตัวอย่างเช่น ให้ไปดาวน์โหลด โปรแกรม Trojan ผมฝังไว้ที่เครื่องของเหยือ เป็นต้น

ระบบที่มีผลกระทบ  ไม่ได้ถูกจำกัดไว้ที่ web browser อย่างเดียว  เมื่อต้นปีที่ผ่านมีก็มีช่องโหว่ที่เราอาจจะเคยได้ยินแล้ว เป็นช่องโหว่ของโปรแกรม Acrobat Reader  ซึ่งสามารถสั่งให้รัน Exploit Code ใดๆ ก็ได้ที่ Attacker ต้องการ เมื่อผู้ใช้เปิดไฟล์ PDF    ซึ่งก็อาศัยเทคนิคที่ชื่อว่า "Heap Spray " นี้เช่นกัน

ตัวอย่างช่องโหว่ล่าสุด

"Microsoft Internet Explorer 'Style' Object Remote Code Execution Vulnerability" เป็นช่องโหว่ล่าสุดที่ใช้เทคนิค Heap Spray   ประกาศไว้ที่ Securiyfocus   มีตัวอย่าง Exploit ให้ไปศึกษาด้วยนะครับ

 

 

 

blog comments powered by Disqus