Computer >> Máy Tính >  >> Hệ thống >> Windows

Bảo vệ khai thác Windows 10 - Hướng dẫn

Với việc phát hành Windows 10 Fall Creators Update (Build 1709), Bộ công cụ trải nghiệm giảm nhẹ nâng cao (EMET) tuyệt vời và trang nhã nhất không còn khả dụng hoặc có thể được cài đặt trên hệ điều hành này. Thay vào đó, những biện pháp giảm thiểu này hiện là một phần không thể thiếu của Windows 10.

Vì tôi là một người rất hâm mộ EMET và tôi đang sử dụng nó trên tất cả các máy Windows của mình nên tôi quyết định viết một hướng dẫn sử dụng chi tiết, thiết thực và thực tế về cách triển khai và điều chỉnh các biện pháp giảm thiểu mới trong Windows 10. Vui lòng theo tôi.


Mục lục


  1. Giới thiệu &đọc sơ bộ
  2. Bảo vệ khai thác Windows 10
    1. Cài đặt hệ thống
    2. Cài đặt chương trình
  3. Xuất và nhập cấu hình
    1. Định dạng tệp cấu hình
    2. Sử dụng cấu hình EMET cũ
    3. Mẫu ứng dụng
  4. Ví dụ và cách sử dụng thực tế
    1. Nhập cấu hình mới
    2. Nội dung tập tin cấu hình
    3. Chạy và sử dụng bảo vệ khai thác
    4. Chỉnh sửa và tinh chỉnh cấu hình
    5. Bảo vệ quá nhiệt tình
  5. Đọc thêm
  6. Kết luận

Giới thiệu &đọc sơ bộ

Nếu bạn tình cờ đọc được bài viết này, điều này không chắc do tính chất thích hợp và kỳ lạ của chủ đề này, thì hãy để tôi giới thiệu ngắn gọn về EMET. Tiện ích này là một tập hợp các cơ chế hệ thống và chương trình ngăn mã xấu chạy. Bằng cách này, nó có khả năng dừng và chặn khai thác trong các chương trình đang chạy.

Microsoft đã phát hành EMET như một công cụ độc lập từ nhiều năm trước và bạn có thể triển khai thủ công nó trên bất kỳ hệ thống nào. Nó vẫn có sẵn trong hai phiên bản trước của Windows cũng như Windows 10 cho đến Build 1709.

EMET hoạt động bằng cách hạn chế loại hướng dẫn và quyền truy cập bộ nhớ mà các chương trình đang chạy có thể thực thi. Cái hay của ý tưởng này là nó KHÔNG phân biệt giữa cái mà chúng ta gọi là chương trình tốt và phần mềm độc hại. Nó chỉ phân biệt giữa tuân thủ, được gọi là mã hợp pháp và không tuân thủ, được gọi là mã bất hợp pháp. Vì vậy, ngay cả khi bạn có một chương trình hoàn toàn hợp pháp như Chrome hoặc Powerpoint và chúng được đóng gói và bảo vệ bởi các thư viện EMET, nếu chúng hoạt động sai do một số hướng dẫn bất hợp pháp - rất có thể được giới thiệu do nhầm lẫn và thực hành lập trình cẩu thả hoặc các ràng buộc cũ - thì EMET sẽ chặn việc thực thi và chấm dứt chương trình.

Điều này làm cho các ý tưởng EMET trở thành một công cụ bảo mật - một khi được định cấu hình đúng cách, đó là một giải pháp nhanh chóng và dễ dàng. Nó nhẹ, không xâm nhập, cực kỳ hiệu quả và thông minh. Khái niệm xem xét phần mềm từ góc độ chất lượng thực thi của nó sẽ khôn ngoan hơn nhiều so với việc cố gắng đưa vào danh sách đen các chương trình xấu.

EMET cũng hoạt động cùng với các cơ chế bảo mật cấp hệ thống có sẵn trong Windows, bao gồm DEP, SEHOP, ASLR và các cơ chế khác. Rất gọn gàng, rất tiện dụng và cực kỳ hữu ích.

Tôi đã viết một hướng dẫn chi tiết về cách sử dụng EMET. Nó được thực hiện với phiên bản 4 của chương trình, nhưng các nguyên tắc là đúng và chính xác 100% cho các phiên bản sau, với lần xem xét cuối cùng của tôi về bộ công cụ giảm thiểu là trên phiên bản 5.5. Vui lòng đọc chúng để bạn có thể tự làm quen với các khái niệm và biện pháp bảo vệ khác nhau.

Bảo vệ khai thác Windows 10 - Hướng dẫn

Tuy nhiên, không thể cài đặt được nữa:

Bảo vệ khai thác Windows 10

Chức năng của EMET hiện khả dụng trong Windows 10 Build 1709 dưới dạng khả năng tích hợp sẵn. Bạn có thể truy cập giao diện người dùng có liên quan thông qua Trung tâm bảo mật của Bộ bảo vệ Windows. Ở bên trái, trong thanh bên, nhấp vào biểu tượng từ thứ hai đến cuối cùng, cuộn xuống cuối danh sách rồi nhấp vào Khai thác cài đặt bảo vệ.

Giao diện người dùng mới được đơn giản hóa so với EMET - và cũng khó sử dụng hơn vì bạn có ít khả năng hiển thị hơn đối với những gì bạn hiện đã bật. Bạn cũng không có chế độ xem kiểu ma trận đầy đủ cho các ứng dụng của mình và các biện pháp giảm thiểu được kích hoạt. Nhưng hãy để những cân nhắc về công thái học sang một bên. Hãy chỉ tập trung vào chức năng thô. Chúng tôi sẽ đề cập đến cách giao diện thực tế có thể và nên được cải thiện sau.

Cài đặt hệ thống

Chế độ xem mặc định liệt kê Cài đặt hệ thống. Giống như các hệ điều hành cũ hơn, Windows 10 đi kèm với một số cơ chế cấp thấp để ngăn chặn việc thực thi mã độc hại (đọc sai/bất hợp pháp). Một lần nữa, chúng tôi không nói cụ thể về phần mềm độc hại, chúng tôi đang nói về bất kỳ mã nào có khả năng gây ra sự cố hệ thống, mất ổn định, v.v.

Sáu biện pháp bảo vệ có sẵn đi kèm với Windows 10 bao gồm:CFG, DEP, ASLR bắt buộc, ASLR từ dưới lên, SEHOP và tính toàn vẹn của heap. Những thứ này gần tương đương với những gì Windows đã có trước đây, nhưng không có bản dịch 1:1 chính xác, vì đã có một số thay đổi trong cấu trúc nhân bên dưới. Theo mặc định, tất cả các biện pháp bảo vệ này đều BẬT.

Cài đặt chương trình

Nếu bạn nhấp vào danh mục thứ hai, điều này sẽ mở rộng danh sách các chương trình riêng lẻ hiện đang được bảo vệ bởi cơ chế bảo vệ khai thác. Chỉ các chương trình có phần ghi đè mới được liệt kê. Nếu một chương trình có cấu hình phù hợp với mặc định của hệ thống, nó sẽ không được thêm vào.

Windows 10 đi kèm với một số ứng dụng đã được liệt kê, bao gồm các phần ghi đè cụ thể. Hiện tại, chúng ta nên để những thứ đó một mình vì chúng đã được Microsoft định cấu hình để bảo mật tối ưu so với khả năng tương thích.

Bạn có thể thêm các chương trình mới, theo đường dẫn hoặc theo tên. Cái sau tốt hơn vì nó cho phép bạn bảo vệ bất kỳ phiên bản nào của ứng dụng cụ thể khớp với tên thực thi cụ thể, bất kể nó được cài đặt ở đâu trên đĩa của bạn.

Sau khi bạn thêm một chương trình, một cửa sổ mới sẽ bật lên, cho phép bạn tùy chỉnh cấu hình bảo vệ chống khai thác của nó, với một danh sách dài và hơi khó hiểu về các biện pháp giảm thiểu có sẵn. Giờ đây, bạn có thể bật và tắt riêng lẻ các biện pháp giảm nhẹ. Bạn sẽ nhận thấy rằng một số biện pháp bảo vệ này được Tắt theo mặc định - và những biện pháp bảo vệ khác được bật, thường phù hợp với cấu hình hệ thống đã đề cập trước đó. Vì vậy, bạn có thể ghi đè lên các giá trị mặc định.


Có sẵn 15 biện pháp giảm thiểu - và nếu bạn bật chúng, chúng sẽ được ưu tiên hơn so với mặc định của hệ thống. Bạn cũng có tùy chọn cho phép kiểm tra - về cơ bản nếu gặp ngoại lệ, hệ thống sẽ thông báo cho bạn và bạn sẽ cần phải đóng hoặc chấm dứt chương trình theo cách thủ công. Nếu không, hệ thống sẽ chấm dứt các chương trình có hướng dẫn bất hợp pháp phù hợp với các biện pháp giảm nhẹ.

Xuất và nhập cấu hình

Bây giờ, phần thú vị và khó khăn. Vì cơ chế mới đi kèm với giao diện cồng kềnh hơn nên việc định cấu hình các chương trình trở nên khó khăn - chúng ta đang nói về 20-30 chương trình với tối đa 15 lần giảm nhẹ cho mỗi chương trình và việc này cần rất nhiều lần nhấp chuột để sắp xếp.

May mắn thay, bạn có thể sử dụng các tệp cấu hình XML để cập nhật nhanh hơn các biện pháp bảo vệ của mình. Bạn thêm và xóa các chương trình vào và khỏi danh sách của mình, bạn có thể điều chỉnh các biện pháp giảm thiểu cụ thể và thực hiện thiết lập cần thiết nhanh chóng và hiệu quả hơn nhiều. Để làm như vậy, bạn cần hiểu định dạng cơ bản của tệp cấu hình.

Trong giao diện chính, nhấp vào Xuất cài đặt và lưu tệp XML ở đâu đó trên đĩa. Hãy mở nó bên trong một trình soạn thảo văn bản và chúng ta hãy xem sơ qua cấu hình cũng như ý nghĩa của các chỉ thị và giá trị khác nhau.

Định dạng tệp cấu hình

Hãy để chúng tôi xem xét:




OverrideForceRelocateImages="false">


OverrideExtensionPoint="false">

...

Đây là một vài dòng đầu tiên của một cấu hình thực tế; vết lõm ở đó để giúp phân biệt trực quan nơi mọi thứ bắt đầu và nơi chúng dừng lại, giống như hầu hết các ngôn ngữ khác. Bạn có phần khai báo XML ở trên cùng. Sau đó, bạn có phần gốc, về cơ bản xác định khối bên trong mà bạn sẽ có cấu hình hệ thống và ứng dụng.

Cấu hình hệ thống được khai báo bởi SystemConfig. Các ứng dụng được khai báo bởi AppConfig. Tên ứng dụng được khai báo bởi biến Executable. Sau đó, chúng tôi có các loại giảm thiểu khác nhau, như Điểm mở rộng, Phông chữ, Tải trọng, Mã động và các loại khác. Chẳng hạn, danh sách gần như đầy đủ cho một ứng dụng được thêm vào sẽ bao gồm những thứ như:


Kích hoạt ="đúng"
OverrideStrictHandle="false">

DisableWin32kSystemCalls="false"
Ghi đèSystemCall="false"
Kiểm toán="true">

<Điểm mở rộng
DisableExtensionPoints="true"
OverrideExtensionPoint="false">

BlockDynamicCode="false"
AllowThreadsToOptOut="false"
Ghi đèDynamicCode="false"
Kiểm toán="true">

DisableNonSystemFonts="false"
AuditOnly="false"
OverrideFontDisable="false"
Kiểm toán="true">

BlockRemoteImageLoads="false"
OverrideBlockRemoteImageLoads="false"
BlockLowLabelImageLoads="false"
Ghi đèBlockLowLabel="false"
AuditRemoteImageLoads="true"
AuditLowLabelImageLoads="true">

EnableExportAddressFilter="true"
Ghi đèExportAddressFilter="false"
AuditEnableExportAddressFilter="true"
EnableExportAddressFilterPlus="true"
Ghi đèExportAddressFilterPlus="false"
AuditEnableExportAddressFilterPlus="true"
EnableImportAddressFilter="true"
Ghi đèImportAddressFilter="false"
AuditEnableImportAddressFilter="true"
EnableRopStackPivot="true"
Ghi đèEnableRopStackPivot="false"
AuditEnableRopStackPivot="true"
EnableRopCallerCheck="true"
Ghi đèEnableRopCallerCheck="false"
AuditEnableRopCallerCheck="true"
EnableRopSimExec="true"
Ghi đèEnableRopSimExec="false"
AuditEnableRopSimExec="true">


Bỏ qua các giá trị thực tế trong thời điểm hiện tại. Hãy hiểu ba biến quan trọng:

Giá trị - có thể đúng/sai, xác định xem có bật giảm thiểu hay không.

Ghi đè - trái với suy nghĩ của bạn, điều này KHÔNG cho bạn biết liệu giá trị được chỉ định có ghi đè giá trị mặc định của hệ thống hay không. Không. Đó là do thiết kế. Nếu biến này được đặt thành true, điều đó có nghĩa là bạn KHÔNG THỂ chỉnh sửa cài đặt thông qua giao diện người dùng. Điều này khá khó hiểu, đặc biệt là vì sai nghĩa là bạn có quyền kiểm soát thông qua Trung tâm bảo mật của Bộ bảo vệ và đúng nghĩa là bạn không có. Tốt nhất bỏ qua biến này.

Kiểm tra - cho dù chương trình chạy ở chế độ kiểm tra hay chế độ thực thi đầy đủ.

Vì vậy, chúng tôi có những điều cơ bản đã sẵn sàng. Bây giờ, hãy thực sự tạo một tệp cấu hình, sau đó nhập tệp đó vào danh sách khai thác. Và chúng tôi sẽ làm điều đó bằng cách thực sự nhập cấu hình EMET cũ, vì chúng tôi không muốn mất tất cả công việc khó khăn mà chúng tôi đã thực hiện.

Sử dụng cấu hình EMET cũ

Bây giờ chúng ta sẽ thực sự sử dụng dòng lệnh Powershell để thực hiện một số tác vụ. Cụ thể, chúng tôi sẽ chuyển đổi tệp cấu hình EMET sang định dạng mới và sau đó nhập tệp đó. Các lệnh này hiện không có GUI tương đương. Bạn cần quyền truy cập Powershell và quản trị viên. Dù sao, tệp EMET sẽ trông giống như thế này:









<Đường dẫn AppConfig="*" Executable="7z.exe">



Tôi nghĩ rằng đây là một định dạng sạch hơn và đẹp hơn nhiều. Nhưng thôi kệ. Bây giờ hãy chuyển đổi tập tin cấu hình này. Nếu chúng tôi đọc tài liệu trực tuyến về cách thực hiện việc này, chúng tôi cần lệnh sau:

ConvertTo-ProcessMitigationPolicy -EMETFilePath emetconfig.xml -OutputFilePath newconfig.xml

Tôi gặp rất nhiều lỗi:

Lỗi:Nên đọc cài đặt Win10 vì lý do nào đó?:PinRuleMember
Lỗi:Nên đọc cài đặt Win10 vì lý do nào?:Đang hoạt động
Lỗi:Nên đọc cài đặt Win10 vì lý do nào?:PinnedSite
Lỗi:Nên đọc cài đặt Win10 vì một số lý do?:Tên miền
Lỗi:Nên đọc cài đặt Win10 vì lý do nào đó?:PinRuleMember
Lỗi:Nên đọc cài đặt Win10 vì lý do nào đó?:Đang hoạt động

Rõ ràng, tất cả các quy tắc được ghim cho chứng chỉ trong các quy tắc trước Windows 10 đều không tương thích với định dạng mới. Nếu bạn đang cố gắng nhập một cấu hình như vậy, nó sẽ không thành công. Bạn sẽ cần dọn sạch XML trước khi thực hiện lại chuyển đổi.




{392c02ca-a7dd-49e3-888f-7fb505de9333}
FacebookCA
...

Lưu ý:Không có sự trùng khớp chính xác 1:1 giữa EMET và cơ chế bảo vệ khai thác mới, đặc biệt nếu bạn di chuyển trên nhiều hệ điều hành. Khuyến nghị của tôi là chỉ sử dụng cấu hình cũ làm tư vấn.

Vì vậy, tệp được chuyển đổi sẽ trông giống như sau - về mặt giảm thiểu ứng dụng:

Có thể thực thi="AcroRd32.exe">
<ĐẸP
Kích hoạt ="true"
Thi đuaAtlThunks="false"/>
ForceRelocateImages="false"
RequireInfo="false"
BottomUp="true"
HighEntropy="false"/>
Bật="false"/>
DisableWin32kSystemCalls="false"
Kiểm toán ="sai"/>
<Điểm mở rộng
DisableExtensionPoints="false"/>
BlockDynamicCode="false"
AllowThreadsToOptOut="false"
Kiểm toán ="sai"/>
Kích hoạt ="sai"
SuppressExports="false"
StrictControlFlowGuard="false"/>
MicrosoftSignedOnly="false"
AllowStoreSignedBinaries="false"
EnforceModuleDependencySigning="false"
Kiểm toán ="sai"
AuditStoreSigned="false"
AuditEnforceModuleDependencySigning="false"/>
DisableNonSystemFonts="false"
Kiểm toán ="sai"/>
AuditPreferSystem32="false"
AuditLowLabelImageLoads="false"
AuditRemoteImageLoads="false"
PreferSystem32="false"
BlockLowLabelImageLoads="false"
BlockRemoteImageLoads="false"/>
EAFModules=""
EnableExportAddressFilter="true"
AuditEnableExportAddressFilter="false"
EnableExportAddressFilterPlus="true"
AuditEnableExportAddressFilterPlus="false"
EnableImportAddressFilter="false"
AuditEnableImportAddressFilter="false"
EnableRopStackPivot="true"
AuditEnableRopStackPivot="false"
EnableRopCallerCheck="true"
AuditEnableRopCallerCheck="false"
EnableRopSimExec="true"
AuditEnableRopSimExec="false"/>
Enable="true"
TelemetryOnly="false"
Audit="false"/>
TerminateOnError="true"/>
DisallowChildProcessCreation="false"
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:



 
     EnableExportAddressFilterPlus="true"
   EnableImportAddressFilter="true"
   EnableRopStackPivot="true"
   EnableRopCallerCheck="true"
   EnableRopSimExec="true">
 

 

We can extend this with fonts protection (the text is formatted for visual clarity):



 
     AuditOnly="false"
   OverrideFontDisable="false"
   Audit="false">
 

     EnableExportAddressFilterPlus="true"
   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

Kết luận

Của bạn đi. 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! See you.

If you like this tutorial, then give some love back, support Dedoimedo. Đúng?

Chúc mừng.