[Windows Sandbox] New mitigation support |
||
Issue description
Tracking ticket for work underway.
- Dynamic Code Disable >= Win8.1.
- Thread opt-out >= Win10 RS1.
- Prevents the process from generating dynamic code or modifying executable code. Second option to allow thread-specific opt-out.
- VirtualAlloc with PAGE_EXECUTE_*
- VirtualProtect with PAGE_EXECUTE_*
- MapViewOfFile with FILE_MAP_EXECUTE | FILE_MAP_WRITE
- SetProcessValidCallTargets for CFG
- MS Code Signing enforcement >= Win10 TH2.
- Prevents the process from loading binaries NOT signed by MS.
- Image load prefer system32 >= Win10 RS1.
- Forces image load preference to prioritize the Windows install System32
folder before dll load dir, application dir and any user dirs set.
- Affects IAT resolution standard search path only, NOT direct LoadLibrary or executable search path.
,
Jul 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec commit 21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec Author: Penny MacNeil <pennymac@chromium.org> Date: Thu Jul 13 20:01:07 2017 [Windows Sandbox] New process mitigations (and tests). - Dynamic Code Disable >= Win8.1. - Thread opt-out >= Win10 RS1. - Prevents the process from generating dynamic code or modifying executable code. Second option to allow thread-specific opt-out. - VirtualAlloc with PAGE_EXECUTE_* - VirtualProtect with PAGE_EXECUTE_* - MapViewOfFile with FILE_MAP_EXECUTE | FILE_MAP_WRITE - SetProcessValidCallTargets for CFG - MS Code Signing enforcement >= Win10 TH2. - Prevents the process from loading binaries NOT signed by MS. - Image load prefer system32 >= Win10 RS1. - Forces image load preference to prioritize the Windows install System32 folder before dll load dir, application dir and any user dirs set. - Affects IAT resolution standard search path only, NOT direct LoadLibrary or executable search path. TEST= sbox_integration_tests.exe, ProcessMitigationsTest.* BUG=733739 R=forshaw@chromium.org TBR=grt@chromium.org Change-Id: I4347a9002368961e17f3f83ba39d50c469065bdc Reviewed-on: https://chromium-review.googlesource.com/566286 Commit-Queue: Penny MacNeil <pennymac@chromium.org> Reviewed-by: James Forshaw <forshaw@chromium.org> Cr-Commit-Position: refs/heads/master@{#486464} [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/base/win/windows_version.h [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/BUILD.gn [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/process_mitigations.cc [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/process_mitigations.h [add] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/process_mitigations_dyncode_unittest.cc [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/process_mitigations_imageload_unittest.cc [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/process_mitigations_unittest.cc [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/src/security_level.h [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/common/controller.h [add] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hijack_dll.cc [add] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hijack_dll.def [add] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hijack_dlls.h [add] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hijack_shim_dll.cc [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hooking_dll.h [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/hooking_win_proc.h [modify] https://crrev.com/21a5ba4cfdbafc3b0908f9af75c0de30b03d47ec/sandbox/win/tests/integration_tests/integration_tests_common.h
,
Jul 31 2017
FYI: #2 CL first landed in M61, canary branch 3157.
,
Mar 5 2018
-Enabled FORCE_MS_SIGNED in crbug/750886 (post-warmup, all child processes). -Enabled PREFER_SYS32 in https://chromium-review.googlesource.com/c/chromium/src/+/940528 and https://chromium-review.googlesource.com/c/chromium/src/+/947503
,
Aug 23
Last thing from description is to re-land PREFER_SYS32 on browser. Beware auto inheritance into child processes, and any debug/component build DLL name clashing with actual system32 DLLs. :S E.g.: "display.dll". That one has been fixed now, so one could try to reland again now. |
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, Jul 10 2017