email Webmasster contact's email   phone to ETDA  0-2123-1234
TH | EN


เผยแพร่ 03.02.2015 (3 ปีที่ผ่านมา) | แก้ไขล่าสุด 13.12.2017 | อ่าน 1900

เสริมความมั่นคงปลอดภัยให้กับซอฟต์แวร์ด้วย EMET (2 มีนาคม 2555)


ปัญหาหนึ่งของผู้ใช้งานคอมพิวเตอร์ในยุคที่เทคโนโลยีมีความเจริญก้าวหน้าอย่างรวดเร็ว คือ ผู้ใช้ไม่สามารถติดตามข่าวสารและแก้ไขช่องโหว่ของซอฟต์แวร์ที่ใช้งานได้อย่างทันท่วงที นอกจากนี้ในฝั่งของผู้พัฒนาเอง บางครั้งถึงแม้จะรู้ว่าซอฟต์แวร์ที่ตนพัฒนามีช่องโหว่ ก็ยังไม่สามารถแก้ไขช่องโหว่เหล่านั้นได้ทันที เนื่องจากจะต้องมีการทดสอบให้แน่ใจว่า การแก้ปัญหานั้นไม่ส่งผลกระทบกับการทำงานปรกติของซอฟต์แวร์ แล้วในช่วงเวลาเช่นนี้ผู้ใช้จะป้องกันตนเองได้อย่างไร
 
โปรแกรม Enhanced Mitigation Experience Toolkit หรือ EMET เป็นทางเลือกหนึ่งสำหรับผู้ใช้งานระบบปฏิบัติการ Windows เนื่องจากการทำงานภายใน EMET ประกอบไปด้วยเทคโนโลยีต่าง ๆ ที่มีคุณสมบัติเรียกว่า Mitigation Technology โดยจะทำหน้าที่ขัดขวางการทำงานที่ผิดปรกติ จึงสามารถช่วยลดโอกาสของผู้ไม่หวังดีในการโจมตีผู้ใช้งานระบบปฏิบัติการ Windows ได้สำเร็จ ซึ่งจากข้อมูลของ EMET ได้ระบุถึงรายละเอียดของเทคนิค Mitigation Technology ต่าง ๆ โดยจะอธิบายในหัวข้อถัดไป
 
ปัจจุบัน EMET พัฒนามาถึงเวอร์ชั่น 2.1 โดยผู้ใช้สามารถใช้งานได้ทั้งในรูปแบบ Graphic User Interface (GUI) และแบบ Command-line Interface (CLI) ผู้ใช้สามารถดาวน์โหลด EMET ไปติดตั้งได้ด้วยตนเองจาก เว็บไซต์ของ Microsoft โปรแกรม EMET สามารถทำงานได้บนระบบปฏิบัติการดังต่อไปนี้
 
Windows XP ที่ติดตั้ง Service Pack 3 หรือเวอร์ชั่นใหม่กว่า
Windows Vista ที่ติดตั้ง Service Pack 1 หรือเวอร์ชั่นใหม่กว่า
Windows 7 ทุกเวอร์ชั่น
Windows Server 2003 หรือเวอร์ชั่นใหม่กว่า
Windows Server 2008 ทุกเวอร์ชั่น

*หมายเหตุ การใช้งาน EMET ในรูปแบบ GUI ผู้ใช้จำเป็นต้องติดตั้ง .NET Framework 2.0 หรือใหม่กว่า
 
Mitigation Technology
Mitigation Technology ที่เกี่ยวข้องกับ Microsoft จะหมายถึงเทคโนโลยีที่ทาง Microsoft พัฒนาขึ้นมาเอง โดยมีวัตถุประสงค์เพื่อเพิ่มความมั่นคงปลอดภัยให้กับระบบปฎิบัติการ ซึ่งโดยส่วนใหญ่มักจะอัพเดทเทคโนโลยีดังกล่าวเข้ามาร่วมกับ Windows เวอร์ชั่นใหม่หรือเวอร์ชั่นล่าสุด ณ ช่วงเวลานั้น แต่ข้อเสียคือเทคโนโลยีดังกล่าวจะสามารถตรวจสอบและป้องกันได้เพียงโปรแกรมที่ติดตั้งมาพร้อมกับระบบปฎิบัติการเท่านั้น ซึ่งในโปรแกรม EMET ที่มีหลักการทำงานของ Mitigation Technology อยู่แล้วนั้น ผู้ใช้สามารถกำหนดให้ใช้ Mitigation Technology กับโปรแกรมอื่น ๆ ที่ติดตั้งเพิ่มเติมภายหลังได้ จึงทำให้ระบบมีความมั่นคงปลอดภัยมากยิ่งขึ้น โดย Mitigation Technology ที่มีในโปรแกรม EMET เวอร์ชั่น 2.1 มีดังต่อไปนี้
  1. Structure Exception Handler Overwriter Protection [1] [9]
    SEHOP จะตรวจสอบการทำงานของ Structure Exception Handler (SEH) ซึ่งเป็นส่วนที่ทำหน้าที่จัดการกับข้อผิดพลาดที่เกิดขึ้นในระหว่างการประมวลผล (Exception Handlind) โดยจะป้องกันไม่ให้มีการนำคำสั่งอันตรายเข้ามาประมวลผลในระหว่างการจัดการ Exception ทำให้การโจมตีโดยใช้วิธี Stack Overflow ทำได้ยากขึ้น
  2. Dynamic Data Execution Prevention [2] [9]
    DEP จะเป็นการตรวจสอบการใช้งานหน่วยความจำ โดยจะป้องกันไม่ให้มีการนำค่าในตำแหน่งของหน่วยความจำที่มีไว้สำหรับเก็บข้อมูลไปประมวลผล ทำให้การโจมตีด้วยวิธี Buffer Overflow ทำได้ยากขึ้น
  3. Heap Spray Allocation [3] [9]
    HSA จะเป็นการจองพื้นที่ในหน่วยความจำในส่วนของ Heap ให้กับโพรเซสนั้นๆ ไว้ล่วงหน้า เพื่อทำให้การโจมตีโดยวิธี Heap spray ทำได้ยากขึ้น
  4. Null Page Allocation [3] [9]
    NPA ช่วยให้การโจมตีโดยใช้เทคนิค Null Dereference ทำได้ยากขึ้น (Null Dereference คือการใช้ Pointer กำหนดค่า Null ให้กับหน่วยความจำ ทำให้โพรเซสไม่สามารถทำงานต่อได้) ปัจจุบันยังไม่พบการโจมตีด้วยวิธีนี้
  5. Address Space Layout Randomization [5] [9]
    ASLR จะสลับตำแหน่ง (Shuffle) โมดูลในแต่ละส่วนของโปรแกรม แล้วสุ่มตำแหน่งของหน่วยความจำที่จะเก็บโมดูลนั้นไว้ ก่อนจะโหลดโปรแกรมเข้าไปในหน่วยความจำเพื่อทำการประมวลผล ทำให้การโจมตีโดยการสั่ง Jump ไปยังตำแหน่งในหน่วยความจำเป็นไปได้ยาก
  6. Bottom-Up Randomization [3] [4] [9]
    BUR เป็นการใส่ Offset เข้าไปในส่วนท้ายของ Stack หรือ Heap เพื่อให้แต่ละครั้งที่มีการโหลดไลบรารีเข้าไปในหน่วยความจำจะไม่ได้อยู่ที่ ตำแหน่งเดิม ทำให้การโจมตีโดยการคาดการณ์ที่อยู่ของไลบรารีทำได้ยาก
  7. Export Address Table Access Filtering [3] [9]
    EAF จะป้องกันการค้นหาตำแหน่งของฟังก์ชันของระบบปฏิบัติการใน Export Address Table (EAT) โดยจะทำการตรวจสอบว่าฟังก์ชันนั้นสามารถเรียกใช้งาน EAT ได้หรือไม่ ทำในการโจมตีโดยใช้ Shellcode บางประเภทนั้นทำได้ยาก
การใช้งานโปรแกรม EMET
เอกสารฉบับนี้จะแสดงวิธีการใช้งานโปรแกรม EMET ในรูปแบบ GUI บนระบบปฏิบัติการ Windows XP โดยมีวิธีการดังนี้ เมื่อเปิดโปรแกรม EMET ขึ้นมาจะพบหน้าต่างแสดงส่วนประกอบของโปรแกรมดังรูปที่ 1

 

 

รูปที่ 1 หน้าต่างเริ่มต้นเมื่อเปิดโปรแกรม EMET

 

จากรูปที่ 1 ส่วนประกอบของหน้าต่างโปรแกรม EMET มีดังต่อไปนี้
  • System Status เนื่องจากในระบบปฏิบัติการ Windows XP มีการติดตั้ง DEP ไว้ในระบบแล้วแต่ยังไม่ได้มีการติดตั้ง SEHOP และ ASLR ดังนั้นหน้าต่างโปรแกรม EMET จึงแสดงค่าเป็น Unavailable อย่างไรก็ตามผู้ใช้ยังสามารถใช้งาน SEHOP และ ASLR ได้เนื่องจาก EMET ได้รับการพัฒนาให้ใช้ SEHOP และ ASLR กับโปรแกรมต่าง ๆ ได้
    • Configure System เป็นปุ่มเรียกหน้าต่างการตั้งค่าโหมดการทำงานของ Mitigation ที่รองรับให้กับระบบ ซึ่งในที่นี้คือ DEP โดยหน้าต่างการตั้งค่ามีส่วนประกอบดังรูปที่ 2

      • Profile name
        • Maximum Secutiy Settings จะเป็นเปลี่ยนค่าให้ DEP ทำงานในโหมด AlwaysOn
        • Recommended Security Settings จะเป็นการเปลี่ยนให้ DEP ทำงานในโหมด OptIn
    • *หมายเหตุ โหมดการทำงานของ DEP มีดังต่อไปนี้ [2]
      • OptIn: เป็นการตั้งค่าให้ DEP ตรวจสอบเฉพาะไบนารีของระบบปฏิบัติการ โหมดการทำงานนี้เป็นค่าตั้งต้นของระบบ
      • OptOut: เป็นการตั้งค่าเพื่อเลือกโปรแกรมที่ไม่ต้องใช้ DEP
      • AlwaysOn: เป็นการตั้งค่าเพื่อให้ DEP ตรวจสอบทุกโพรเซสที่รันอยู่ในระบบ ไม่ว่าโพรเซสนั้นจะเป็นของโปรแกรมที่ระบุใน OptOut หรือไม่
      • AlwaysOff: ตั้งค่าเพื่อไม่ใช้งาน DEP
  • Running Processes เป็นรายการของโพรเซสที่กำลังทำงานอยู่ในขณะนั้น รายการนี้โปรแกรม EMET จะตรวจสอบการเปลี่ยนแปลงทุก ๆ 30 วินาที
    • Configure Apps เป็นปุ่มเรียกหน้าต่างตั้งค่าเพื่อให้ผู้ใช้สามารถเลือกโปรแกรมที่ต้องการ ให้ EMET ตรวจสอบโพรเซส ซึ่งมีส่วนประกอบดังรูปที่ 3



      รูปที่ 3 หน้าต่างเลือกโปรแกรมที่ต้องการให้ EMET ตรวจสอบ

 

ผู้ใช้สามารถเพิ่มหรือลดโปรแกรมที่ต้องการให้ EMET ตรวจสอบการทำงานได้โดยคลิกที่ปุ่ม Add หรือ Remove ในด้านล่างซ้าย ในการเลือกโปรแกรมนั้นจะต้องระบุพาธที่โปรแกรมนั้นติดตั้งอยู่
 
ในการพิจารณาเลือกโปรแกรมเพื่อใช้งานกับ EMET ผู้ใช้ควรเลือกโปรแกรมที่ใช้งานในชีวิตประจำวัน เพราะว่าโปรแกรมที่ใช้งานบ่อยมักจะเป็นเป้าหมายของการโจมตี [6] ตัวอย่างโปรแกรมที่ใช้งานบ่อยเช่น โปรแกรมเว็บเบราว์เซอร์ โปรแกรมสำนักงาน (Microsoft Office, OpenOffice) โปรแกรมด้านมัลติมีเดีย และโปรแกรม Adobe Reader, Adobe Acrobat เป็นต้น
 
หลังจากเลือกโปรแกรมเรียบร้อยแล้วจะต้องทำการเริ่มโปรแกรมนั้นใหม่เพื่อให้ EMET ทำงาน
 
*หมายเหตุ บางเทคนิคไม่สามารถใช้งานได้กับบางโปรแกรม เนื่องจากอาจทำให้โปรแกรมนั้นทำงานผิดปรกติได้ ดังนั้นหลังจากเลือกโปรแกรมใช้งานแล้ว จึงควรทดสอบให้แน่ใจว่าโปรแกรมนั้น ๆ ทำงานได้ปรกติ [7]
 

เนื่องจาก EMET เป็นเครื่องมือที่มีการทำงานอยู่เบื้องหลัง ทำให้ผู้ใช้ไม่สามารถตรวจสอบว่า EMET ทำงานอยู่หรือไม่ได้โดยตรง แต่สามารถตรวจสอบได้โดยดูจากโปรแกรมที่มีความสามารถตรวจสอบโพรเซสของโปรแกรมต่าง ๆ ที่กำลังทำงานอยู่เช่น โปรแกรม Process Explorer [8] เป็นต้น ในรูปที่ 4 เป็นการใช้โปรแกรม Process Explorer ตรวจสอบโพรเซสของ Internet Explorer



รูปที่ 4 EMET กำลังตรวจสอบการทำงานในขณะที่ใช้โปรแกรม Internet Explorer

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


 

อ้างอิง
  1. http://blogs.technet.com/b/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx
  2. http://support.microsoft.com/kb/875352
  3. http://blogs.technet.com/cfs-filesystemfile.ashx/__key/communityserver-components-postattachments/00-03-35-03-78/Users-Guide.pdf
  4. http://blog.didierstevens.com/2011/09/29/add-bottom-up-randomization-to-your-own-source-code/
  5. http://blog.didierstevens.com/2011/08/16/so-how-good-is-pseudo-aslr/
  6. http://rationallyparanoid.com/articles/microsoft-emet-2.html
  7. http://support.microsoft.com/kb/2458544
  8. http://technet.microsoft.com/en-us/sysinternals/bb896653
  9. http://www.infoworld.com/t/microsoft-windows/microsoft-shuffles-windows-security-deck-emet-21-831