ด้วยการเปิดตัว Windows 10 Fall Creators Update (รุ่น 1709) Enhanced Mitigation Experience Toolkit (EMET) ที่ยอดเยี่ยมและสง่างามที่สุดจะไม่มีให้ใช้งานอีกต่อไปหรือสามารถติดตั้งบนระบบปฏิบัติการนี้ได้ การลดระดับเหล่านี้กลายเป็นส่วนสำคัญของ Windows 10 แทน
เนื่องจากฉันเป็นแฟนตัวยงของ EMET และฉันใช้มันบนเครื่อง Windows ทุกเครื่องของฉัน ฉันจึงตัดสินใจเขียนคู่มือโดยละเอียด ใช้งานได้จริงและใช้งานในชีวิตจริงเกี่ยวกับวิธีการปรับใช้และปรับแต่งการลดขนาดใหม่ใน Windows 10 ได้โปรด ปฏิบัติตามฉัน.
สารบัญ
- บทนำ &การอ่านเบื้องต้น
- การป้องกันการใช้ประโยชน์จาก Windows 10
- การตั้งค่าระบบ
- การตั้งค่าโปรแกรม
- ส่งออกและนำเข้าการกำหนดค่า
- รูปแบบไฟล์การกำหนดค่า
- ใช้การกำหนดค่า EMET แบบเก่า
- เทมเพลตแอปพลิเคชัน
- การใช้งานจริงและตัวอย่าง
- นำเข้าการกำหนดค่าใหม่
- เนื้อหาไฟล์การกำหนดค่า
- การเรียกใช้และการใช้การป้องกันการโจมตี
- แก้ไขและปรับแต่งการกำหนดค่า
- การป้องกันมากเกินไป
- การอ่านเพิ่มเติม
- สรุป
บทนำ &การอ่านเบื้องต้น
หากคุณบังเอิญเจอบทความนี้โดยบังเอิญ ซึ่งไม่น่าเป็นไปได้เนื่องจากลักษณะเฉพาะและเนิร์ดของหัวข้อนี้ ให้ฉันแนะนำ EMET สั้น ๆ ยูทิลิตีนี้เป็นชุดของระบบและกลไกของโปรแกรมที่ป้องกันไม่ให้โค้ดที่ไม่ถูกต้องทำงาน วิธีนี้อาจหยุดและบล็อกการหาประโยชน์ในโปรแกรมที่กำลังรันอยู่
Microsoft เปิดตัว EMET เป็นเครื่องมือแบบสแตนด์อโลนเมื่อหลายปีก่อน และคุณสามารถปรับใช้ด้วยตนเองในระบบใดก็ได้ ยังคงมีอยู่ใน Windows สองเวอร์ชันก่อนหน้านี้ รวมถึง Windows 10 จนถึง Build 1709
EMET ทำงานโดยจำกัดประเภทของคำสั่งและการเข้าถึงหน่วยความจำที่รันโปรแกรมสามารถดำเนินการได้ ข้อดีของแนวคิดนี้คือมันไม่ได้แยกความแตกต่างระหว่างสิ่งที่เราเรียกว่าโปรแกรมที่ดีและมัลแวร์ มันแยกความแตกต่างระหว่างรหัสที่ปฏิบัติตามซึ่งเรียกว่ารหัสทางกฎหมายและไม่ปฏิบัติตามซึ่งเรียกว่ารหัสที่ผิดกฎหมาย ดังนั้น แม้ว่าคุณจะมีโปรแกรมที่ถูกต้องสมบูรณ์อย่างเช่น Chrome หรือ Powerpoint และโปรแกรมเหล่านั้นถูกห่อหุ้มและปกป้องโดยไลบรารี EMET หากโปรแกรมเหล่านั้นทำงานผิดปกติเนื่องจากคำสั่งที่ผิดกฎหมาย ซึ่งเป็นไปได้มากว่าเกิดจากความผิดพลาดและแนวทางปฏิบัติในการเขียนโปรแกรมที่เลอะเทอะหรือข้อจำกัดดั้งเดิม - ดังนั้น EMET จะบล็อกการดำเนินการและยุติโปรแกรม
สิ่งนี้ทำให้แนวคิด EMET เป็นเครื่องมือรักษาความปลอดภัย - เมื่อกำหนดค่าอย่างถูกต้องแล้ว จะเป็นโซลูชันที่ไม่ต้องเสียเวลา มีน้ำหนักเบา ไม่ล่วงล้ำ มีประสิทธิภาพสูงสุด และชาญฉลาด แนวคิดในการดูซอฟต์แวร์จากมุมมองด้านคุณภาพการดำเนินการนั้นฉลาดกว่าการพยายามขึ้นบัญชีดำโปรแกรมที่ไม่ดี
EMET ยังทำงานร่วมกับกลไกความปลอดภัยระดับระบบที่มีอยู่ใน Windows รวมถึง DEP, SEHOP, ASLR และอื่นๆ เรียบร้อยมาก สะดวกมาก และมีประโยชน์สูงสุด
ฉันได้เขียนบทช่วยสอนโดยละเอียดเกี่ยวกับวิธีใช้ EMET มันถูกสร้างด้วยเวอร์ชัน 4 ของโปรแกรม แต่แนวทางเป็นจริง 100% และถูกต้องสำหรับเวอร์ชันที่ใหม่กว่า โดยการตรวจสอบล่าสุดของฉันเกี่ยวกับชุดเครื่องมือลดผลกระทบเป็นเวอร์ชัน 5.5 โปรดอ่านสิ่งเหล่านี้เพื่อให้คุณได้ทำความคุ้นเคยกับแนวคิดและการป้องกันต่างๆ
ไม่สามารถติดตั้งได้อีกต่อไป:
การป้องกันการใช้ประโยชน์จาก Windows 10
ฟังก์ชันการทำงานของ EMET พร้อมใช้งานแล้วใน Windows 10 Build 1709 เป็นความสามารถในตัว คุณสามารถเข้าถึง UI ที่เกี่ยวข้องผ่าน Windows Defender Security Center ทางด้านซ้าย ในแถบด้านข้าง คลิกที่ไอคอนรองสุดท้าย เลื่อนลงไปที่ส่วนท้ายของรายการ จากนั้นคลิก Exploit protection settings
UI ใหม่นั้นเรียบง่ายเมื่อเทียบกับ EMET และยังใช้งานยากกว่าอีกด้วย เนื่องจากคุณมองเห็นสิ่งที่คุณเปิดใช้งานอยู่ในปัจจุบันได้น้อยลง คุณไม่มีมุมมองแบบเมทริกซ์เต็มรูปแบบของแอปและการลดขนาดที่เปิดใช้งาน แต่ให้คำนึงถึงหลักสรีรศาสตร์กัน เรามาโฟกัสกันที่ฟังก์ชันดิบเท่านั้น เราจะพูดถึงวิธีที่อินเทอร์เฟซจริงสามารถและควรปรับปรุงในภายหลัง
การตั้งค่าระบบ
มุมมองเริ่มต้นจะแสดงรายการการตั้งค่าระบบ เช่นเดียวกับระบบปฏิบัติการรุ่นเก่า Windows 10 มาพร้อมกับกลไกระดับต่ำหลายอย่างเพื่อป้องกันการเรียกใช้โค้ดที่เป็นอันตราย (อ่านไม่ถูกต้อง/ผิดกฎหมาย) ขอย้ำอีกครั้งว่าเราไม่ได้พูดถึงมัลแวร์โดยเฉพาะ แต่เรากำลังพูดถึงโค้ดใดๆ ที่อาจทำให้ระบบล่ม ไม่เสถียร และอื่นๆ
การป้องกันที่มีอยู่หกประการที่มาพร้อมกับ Windows 10 ได้แก่ CFG, DEP, ASLR บังคับ, ASLR จากล่างขึ้นบน, SEHOP และความสมบูรณ์ของฮีป สิ่งเหล่านี้เทียบเท่ากับที่ Windows เคยมีมาก่อน แต่ไม่มีการแปลแบบ 1:1 ที่แน่นอน เนื่องจากมีการเปลี่ยนแปลงบางอย่างในโครงสร้างเคอร์เนลพื้นฐาน ตามค่าเริ่มต้น การป้องกันทั้งหมดนี้จะเปิดอยู่
การตั้งค่าโปรแกรม
หากคุณคลิกหมวดหมู่ที่สอง จะเป็นการขยายรายชื่อโปรแกรมแต่ละโปรแกรมที่ครอบคลุมโดยกลไกการป้องกันการเจาะระบบในปัจจุบัน แสดงเฉพาะโปรแกรมที่มีการแทนที่เท่านั้น หากโปรแกรมมีการกำหนดค่าที่ตรงกับค่าเริ่มต้นของระบบ ก็จะไม่ถูกเพิ่ม
Windows 10 มาพร้อมกับแอพพลิเคชั่นหลายตัวที่อยู่ในรายการ รวมถึงการแทนที่เฉพาะ ในขณะนี้ เราควรปล่อยไว้ตามลำพัง เนื่องจาก Microsoft ได้รับการกำหนดค่าเพื่อความปลอดภัยสูงสุดและความเข้ากันได้
คุณสามารถเพิ่มโปรแกรมใหม่ได้ไม่ว่าจะตามเส้นทางหรือตามชื่อ อย่างหลังดีกว่าเพราะช่วยให้คุณสามารถปกป้องเวอร์ชันของแอปพลิเคชันเฉพาะที่ตรงกับชื่อปฏิบัติการเฉพาะได้ โดยไม่คำนึงว่าติดตั้งไว้ที่ใดบนดิสก์ของคุณ
เมื่อคุณเพิ่มโปรแกรมแล้ว หน้าต่างใหม่จะปรากฏขึ้น ให้คุณปรับแต่งการกำหนดค่าการป้องกันการเจาะระบบได้ พร้อมรายการบรรเทาที่มีอยู่ที่ยาวและค่อนข้างสับสน ขณะนี้คุณสามารถเปิดและปิดการบรรเทาทีละรายการได้ คุณจะสังเกตเห็นว่าการป้องกันเหล่านี้บางส่วนถูกปิดโดยค่าเริ่มต้น และส่วนอื่นๆ จะเปิดอยู่ โดยปกติจะตรงกับการกำหนดค่าระบบที่กล่าวถึงก่อนหน้านี้ คุณจึงสามารถแทนที่ค่าเริ่มต้นได้
มี 15 mitigation ที่พร้อมใช้งาน - และถ้าคุณเปิดใช้งาน mitigation เหล่านั้นจะมีความสำคัญเหนือค่าเริ่มต้นของระบบ คุณยังมีตัวเลือกในการอนุญาตการตรวจสอบ โดยทั่วไปหากพบข้อยกเว้น ระบบจะแจ้งให้คุณทราบ และคุณจะต้องปิดหรือยุติโปรแกรมด้วยตนเอง มิฉะนั้น ระบบจะยุติโปรแกรมด้วยคำสั่งที่ผิดกฎหมายซึ่งตรงกับการบรรเทา
ส่งออกและนำเข้าการกำหนดค่า
ตอนนี้ส่วนที่น่าสนใจและยุ่งยาก เนื่องจากกลไกใหม่มาพร้อมกับอินเทอร์เฟซที่ยุ่งยากมากขึ้น การกำหนดค่าโปรแกรมจึงกลายเป็นเรื่องยุ่งยาก - เรากำลังพูดถึงโปรแกรม 20-30 รายการที่มีการลดขนาดสูงสุด 15 รายการต่อรายการ และการดำเนินการนี้ต้องใช้การคลิกเมาส์จำนวนมากเพื่อแยกแยะ
โชคดีที่คุณสามารถใช้ไฟล์การกำหนดค่า XML เพื่ออัปเดตการป้องกันของคุณได้รวดเร็วยิ่งขึ้น คุณเพิ่มและลบโปรแกรมเข้าและออกจากรายการของคุณ คุณสามารถปรับแต่งการบรรเทาเฉพาะ และดำเนินการตั้งค่าที่จำเป็นได้อย่างรวดเร็วและมีประสิทธิภาพมากขึ้น ในการทำเช่นนั้น คุณต้องเข้าใจรูปแบบพื้นฐานของไฟล์คอนฟิกูเรชัน
ในอินเทอร์เฟซหลัก ให้คลิก ส่งออกการตั้งค่า และบันทึกไฟล์ XML ที่ใดที่หนึ่งบนดิสก์ เปิดภายในโปรแกรมแก้ไขข้อความ แล้วมาดูการกำหนดค่าคร่าวๆ และความหมายของคำสั่งและค่าต่างๆ
รูปแบบไฟล์การกำหนดค่า
ให้เราตรวจสอบ:
<ราก>
<การกำหนดค่าระบบ>
การกำหนดค่าระบบ>
...
นี่เป็นสองสามบรรทัดแรกของการกำหนดค่าจริง การเยื้องมีไว้เพื่อช่วยให้มองเห็นได้ว่าสิ่งต่างๆ เริ่มต้นและหยุดอยู่ที่ใด เช่นเดียวกับภาษาอื่นๆ คุณมีการประกาศ XML ที่ด้านบน จากนั้น คุณจะมีส่วนรูท ซึ่งโดยทั่วไปกำหนดบล็อกภายในซึ่งคุณจะมีการกำหนดค่าระบบและแอปพลิเคชัน
การกำหนดค่าระบบถูกประกาศโดย SystemConfig แอปพลิเคชันได้รับการประกาศโดย AppConfig ชื่อแอปพลิเคชันถูกประกาศโดยตัวแปร Executable จากนั้นเรามีการลดประเภทต่างๆ เช่น ExtensionPoints, Fonts, Payloads, DynamicCode และอื่นๆ ตัวอย่างเช่น รายการเกือบเต็มสำหรับแอปพลิเคชันที่เพิ่มเข้ามาจะรวมถึงสิ่งต่อไปนี้:
<เข้มงวดแฮนเดิล
เปิดใช้งาน ="จริง"
OverrideStrictHandle="false">
<การเรียกระบบ
ปิดใช้งาน Win32kSystemCalls ="เท็จ"
OverrideSystemCall ="เท็จ"
ตรวจสอบ ="จริง">
OverrideExtensionPoint="false">
<ไดนามิกโค้ด
BlockDynamicCode="เท็จ"
AllowThreadsToOptOut="เท็จ"
OverrideDynamicCode="เท็จ"
ตรวจสอบ ="จริง">
<แบบอักษร
DisableNonSystemFonts="เท็จ"
ตรวจสอบเท่านั้น ="เท็จ"
OverrideFontDisable="เท็จ"
ตรวจสอบ ="จริง">
<โหลดภาพ
BlockRemoteImageLoads="เท็จ"
OverrideBlockRemoteImageLoads="เท็จ"
BlockLowLabelImageLoads="เท็จ"
OverrideBlockLowLabel="เท็จ"
AuditRemoteImageLoads="จริง"
AuditLowLabelImageLoads="true">
<เพย์โหลด
EnableExportAddressFilter="จริง"
OverrideExportAddressFilter="เท็จ"
AuditEnableExportAddressFilter="จริง"
EnableExportAddressFilterPlus="จริง"
OverrideExportAddressFilterPlus="เท็จ"
AuditEnableExportAddressFilterPlus ="จริง"
EnableImportAddressFilter="จริง"
OverrideImportAddressFilter="เท็จ"
AuditEnableImportAddressFilter="จริง"
EnableRopStackPivot="จริง"
OverrideEnableRopStackPivot="เท็จ"
AuditEnableRopStackPivot="จริง"
EnableRopCallerCheck="จริง"
OverrideEnableRopCallerCheck ="เท็จ"
AuditEnableRopCallerCheck="จริง"
EnableRopSimExec="จริง"
OverrideEnableRopSimExec="เท็จ"
AuditEnableRopSimExec="true">
น้ำหนักบรรทุก>
ละเว้นค่าจริงในขณะนี้ มาทำความเข้าใจตัวแปรสำคัญ 3 ตัวกัน:
ค่า - สามารถเป็นจริง/เท็จ ระบุว่ามีการเปิดใช้งานการบรรเทาหรือไม่
ลบล้าง - ตรงกันข้ามกับที่คุณคิด สิ่งนี้ไม่ได้บอกคุณว่าค่าที่ระบุลบล้างค่าเริ่มต้นของระบบหรือไม่ ไม่. นั่นเป็นการออกแบบอยู่แล้ว หากตั้งค่าตัวแปรนี้เป็น True หมายความว่าคุณไม่สามารถแก้ไขการตั้งค่าผ่าน UI ได้ สิ่งนี้ค่อนข้างสับสน โดยเฉพาะอย่างยิ่งเมื่อ False หมายความว่าคุณควบคุมผ่าน Defender Security Center และ True หมายความว่าคุณไม่มี ดีที่สุดละเว้นตัวแปรนี้
การตรวจสอบ - ไม่ว่าโปรแกรมจะทำงานในโหมดการตรวจสอบหรือโหมดบังคับใช้เต็มรูปแบบ
ดังนั้นเราจึงมีพื้นฐานพร้อม ตอนนี้ เรามาสร้างไฟล์คอนฟิกูเรชัน แล้วนำเข้าไปยังรายการการหาประโยชน์ และเราจะทำเช่นนั้นโดยการนำเข้าการกำหนดค่า EMET แบบเก่า เนื่องจากเราไม่ต้องการสูญเสียงานหนักทั้งหมดที่เราได้ทำไป
ใช้การกำหนดค่า EMET แบบเก่า
ตอนนี้เราจะใช้บรรทัดคำสั่ง Powershell เพื่อทำงานบางอย่าง กล่าวคือ เราจะแปลงไฟล์กำหนดค่า EMET เป็นรูปแบบใหม่แล้วนำเข้า ขณะนี้คำสั่งเหล่านี้ยังไม่มี GUI ที่เทียบเท่า คุณต้องมีการเข้าถึง Powershell และผู้ดูแลระบบ อย่างไรก็ตาม ไฟล์ EMET จะมีลักษณะดังนี้:
<เวอร์ชัน EMET="5.1.5426.28431">
<การตั้งค่า>
<การตั้งค่าขั้นสูง DeepHooks="True" AntiDetours="True" BannedFunctions="True" />
การตั้งค่า>
<การลดการเปิดใช้งาน ="จริง" />
<การลดการเปิดใช้งาน ="จริง" />
<การลดการเปิดใช้งาน ="จริง" />
ฉันคิดว่านี่เป็นรูปแบบที่สะอาดและดีกว่ามาก แต่ไม่เป็นไร. ตอนนี้เรามาแปลงไฟล์คอนฟิกูเรชันนี้กัน หากเราอ่านเอกสารออนไลน์เกี่ยวกับวิธีการทำเช่นนี้ เราต้องใช้คำสั่งต่อไปนี้:
ConvertTo-ProcessMitigationPolicy -EMETFilePath emetconfig.xml -OutputFilePath newconfig.xml
ฉันพบข้อผิดพลาดมากมาย:
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:PinRuleMember
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:ใช้งานอยู่
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:PinnedSite
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:โดเมน
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:PinRuleMember
ข้อผิดพลาด:ควรอ่านการตั้งค่า Win10 ด้วยเหตุผลบางประการหรือไม่:ใช้งานอยู่
เห็นได้ชัดว่ากฎที่ปักหมุดสำหรับใบรับรองในกฎก่อน Windows 10 เข้ากันไม่ได้กับรูปแบบใหม่ หากคุณพยายามนำเข้าการกำหนดค่าดังกล่าว จะล้มเหลว คุณจะต้องล้าง XML ก่อนทำการแปลงอีกครั้ง
<ปักหมุด>
<กฎพิน>
<พินรูล>
<ชื่อ>FacebookCA
...
หมายเหตุ:ไม่มีการจับคู่แบบ 1:1 ระหว่าง EMET และกลไกการป้องกันการโจมตีแบบใหม่ และโดยเฉพาะอย่างยิ่งหากคุณย้ายข้ามระบบปฏิบัติการหลายระบบ คำแนะนำของฉันคือให้ใช้การกำหนดค่าเก่าเป็นคำแนะนำเท่านั้น
ดังนั้น ไฟล์ที่แปลงแล้วจะมีลักษณะดังนี้ - ในแง่ของการลดแอป:
<การกำหนดค่าแอป
Executable="AcroRd32.exe">
<ผบ.ทบ
เปิดใช้งาน ="จริง"
EmulateAtlThunks="false"/>
ต้องการข้อมูล ="เท็จ"
BottomUp ="จริง"
เอนโทรปีสูง ="เท็จ"/>
<เข้มงวดแฮนเดิล
เปิดใช้งาน ="เท็จ"/>
ตรวจสอบ ="เท็จ"/>
<ไดนามิกโค้ด
BlockDynamicCode="เท็จ"
AllowThreadsToOptOut="เท็จ"
ตรวจสอบ ="เท็จ"/>
ระงับการส่งออก ="เท็จ"
StrictControlFlowGuard="false"/>
<ไบนารีที่ลงนามแล้ว
MicrosoftSignedOnly="เท็จ"
AllowStoreSignedBinaries="เท็จ"
EnforceModuleDependencySigning ="เท็จ"
ตรวจสอบ ="เท็จ"
AuditStoreSigned="เท็จ"
AuditEnforceModuleDependencySigning="false"/>
<แบบอักษร
DisableNonSystemFonts="เท็จ"
ตรวจสอบ ="เท็จ"/>
<โหลดภาพ
AuditPreferSystem32="เท็จ"
AuditLowLabelImageLoads="เท็จ"
AuditRemoteImageLoads="เท็จ"
PreferSystem32="เท็จ"
BlockLowLabelImageLoads="เท็จ"
BlockRemoteImageLoads="false"/>
<เพย์โหลด
EAFModules=""
EnableExportAddressFilter="จริง"
AuditEnableExportAddressFilter="เท็จ"
EnableExportAddressFilterPlus="จริง"
AuditEnableExportAddressFilterPlus="เท็จ"
EnableImportAddressFilter="เท็จ"
AuditEnableImportAddressFilter="เท็จ"
EnableRopStackPivot="จริง"
AuditEnableRopStackPivot="เท็จ"
EnableRopCallerCheck="จริง"
AuditEnableRopCallerCheck ="เท็จ"
EnableRopSimExec="จริง"
AuditEnableRopSimExec="false"/>
<ซีฮอป
เปิดใช้งาน ="จริง"
TelemetryOnly="เท็จ"
ตรวจสอบ ="เท็จ"/>
<กอง
TerminateOnError="true"/>
Audit="false"/>
Application template
Most of the mitigations imported from EMET will be set to false unfortunately - and the system ones will no longer fully match. So my recommendation is as follows:the six system mitigations cover the basics. You can also enabled an additional six mitigations that seem to match 1:1 between EMET and new protection mechanism, including:EAF, EAF+, IAF, StackPivot, CallerCheck, and SimExec. Therefore our basic template for applications, based on previous usage becomes:
EnableImportAddressFilter="true"
EnableRopStackPivot="true"
EnableRopCallerCheck="true"
EnableRopSimExec="true">
We can extend this with fonts protection (the text is formatted for visual clarity):
OverrideFontDisable="false"
Audit="false">
EnableImportAddressFilter="true"
EnableRopStackPivot="true"
EnableRopCallerCheck="true"
EnableRopSimExec="true">
And this is a template section you can use as your baseline:
Real-life usage and examples
All right, so far, we have covered the new UI, system and program settings, overview of new exploit mitigations, how to export configuration files, how to convert old EMET settings, and now we will import our app templates and use them.
We will use our app template from above to quickly and elegantly add new applications into the system list, bearing in mind that system settings are best left at their defaults, and they already cover a great deal, plus there are six other mitigations that closely match past configurations, and are likely to work well. This is the MAIN reason why I have chosen this baseline, plus the fonts, which make simple sense, and also go hand in hand with past vulnerabilities on this issue.
There are other mitigations that we could potentially enable, but unless you fully understand what you're doing, you may cripple your programs. In some cases, even the developers of software will NOT know what their applications are doing wrong, so it is quite possible you won't find an easy answer.
- ACG, low integrity and remote images - should be okay.
- Code integrity guard - unless signed by Microsoft, images won't run - this is basically Windows 10 S. Not recommended.
- Extension points - very likely to cause problems in how software runs.
- Disable system calls - highly likely to cause problems.
- Child processes - will definitely cripple programs.
- Handle usage - likely to cause problems with sloppily designed software.
The rest we already have covered - six basics, six old mitigations, fonts, and potentially three written in the first bullet, with the rest best left alone.
Import new configuration
This is done as follows, again from Powershell, and with admin credentials:
Set-ProcessMitigation -PolicyFilePath .\config.xml
Configuration file contents
Based on our template, we can add the applications inside the file. You can either create a single configuration with several programs listed inside and then import it once, or make an per-app template and perform multiple imports. It makes no difference.
What you need to take into account is:1) you can do with the Security Center running, but it will NOT show the changes on the fly; the config is loaded once and/or whenever you make changes through the UI 2) old app settings will be removed with the new ones.
Running and using exploit protection
I tested with the following programs:Firefox, LibreOffice, VLC, IrfanView, Notepad++, and these run without any problems, including updates. Google Chrome would not run with ANY mitigation enabled except the fonts - both the pages and extensions kept crashing. This is in contrast to EMET behavior. Like I said, there's no GOLDEN list on what works and what does not, but I believe you can have 7/15 and maybe even 10/15 mitigations enabled, with code signing, child processes and system calls disabling really being unnecessary. That leaves only two mitigations that might need closer look:extension points and handle usage. Pretty good, I'd say.
Edit and tweak configuration
You can always go back and make changes - also through GUI after you've imported the bulk of your configuration, and now you just need fine tuning. If things do not work, you can always remove an entry and start fresh.
Overzealous protection
If you go wild, and I tried, just to see what gives, you may completely cripple your programs, and they won't run. It's all too easy to do this, so please be utterly careful, and make sure you understand what you're doing. This is a long-term investment. Do it well once and you won't have problems down the road.
Additional reading
You may also want to check these official Microsoft articles:
Apply mitigations to help prevent attacks through vulnerabilities
Customize exploit protection
สรุป
ไปแล้ว A very thorough, hands-on, real-life guide on how to use the new exploit protection mechanism in Windows 10. We didn't just blindly look at the list and wonder what magic happens behind the scene, we went behind the scene, and got ourselves autographs on our chests.
On a more technical note, we learned about the exploit mechanism, the new UI, system and program settings, types of exploits and what they roughly do, how to export and import XML configuration files, we created our work template, we converted and used our old EMET settings, we tried to match the level of protection that EMET gave us while still maintaining sane and practical functionality with most programs and most mitigations. We have about 80-90% coverage without breaking things. There are no guarantees in this process, but it's so much ahead of any conventional security software.
The mitigation protection remains Microsoft's best product by far, and hopefully, they will improve the workflow so it is more accessible to advanced users. For the time being, you have this guide, and hopefully, it will make your journey into the post-EMET world of mitigations simpler and faster. And your apps will still work! แล้วพบกันใหม่.
If you like this tutorial, then give some love back, support Dedoimedo. ใช่ไหม
ไชโย