diff options
author | Penny MacNeil <pennymac@chromium.org> | 2016-02-03 09:33:31 -0800 |
---|---|---|
committer | Penny MacNeil <pennymac@chromium.org> | 2016-02-03 17:36:13 +0000 |
commit | 441d852dbcb7b9b31328393c7e31562b1e268399 (patch) | |
tree | d1ae86ec80bc2b28d7b2dfbfa55c32db30a4edb7 /base/win | |
parent | 5afc367d65356a8681ad1ae74eee38a18a545f76 (diff) | |
download | chromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.zip chromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.tar.gz chromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.tar.bz2 |
[Win10 sandbox mitigations] Four new Win10 mitigations added.
1. Disable non-system font loading on >= WIN10 (MITIGATION_NONSYSTEM_FONT_DISABLE).
2. Disable image loads from remote devices on >= WIN10_TH2 (MITIGATION_IMAGE_LOAD_NO_REMOTE).
3. Disable loading images that are labelled low integrity mandatory on >= WIN10_TH2 (MITIGATION_IMAGE_LOAD_NO_LOW_LABEL).
4. Extra disabling of child process creation on >= WIN10_TH2. In BrokerServicesBase::SpawnTarget(), if JobLevel <= JOB_LIMITED_USER, set PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY to PROCESS_CREATION_CHILD_PROCESS_RESTRICTED via UpdateProcThreadAttribute().
This CL enables all four mitigations on every Chrome process except for
browser. sbox_integration_tests have also been updated appropriately.
base::win::VERSION_WIN10_TH2 has been added to identify
Threshold 2/1511/10586.
BUG=504006
R=jschuh@chromium.org, wfh@chromium.org
Review URL: https://codereview.chromium.org/1626623003 .
Cr-Commit-Position: refs/heads/master@{#373265}
Diffstat (limited to 'base/win')
-rw-r--r-- | base/win/windows_version.cc | 6 | ||||
-rw-r--r-- | base/win/windows_version.h | 15 |
2 files changed, 13 insertions, 8 deletions
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc index 35cdbb3..7a8b8fd 100644 --- a/base/win/windows_version.cc +++ b/base/win/windows_version.cc @@ -65,7 +65,11 @@ OSInfo::OSInfo() break; } } else if (version_number_.major == 10) { - version_ = VERSION_WIN10; + if (version_number_.build < 10586) { + version_ = VERSION_WIN10; + } else { + version_ = VERSION_WIN10_TH2; + } } else if (version_number_.major > 6) { NOTREACHED(); version_ = VERSION_WIN_LAST; diff --git a/base/win/windows_version.h b/base/win/windows_version.h index c9bbd4f..676bd97 100644 --- a/base/win/windows_version.h +++ b/base/win/windows_version.h @@ -24,13 +24,14 @@ namespace win { enum Version { VERSION_PRE_XP = 0, // Not supported. VERSION_XP, - VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2. - VERSION_VISTA, // Also includes Windows Server 2008. - VERSION_WIN7, // Also includes Windows Server 2008 R2. - VERSION_WIN8, // Also includes Windows Server 2012. - VERSION_WIN8_1, // Also includes Windows Server 2012 R2. - VERSION_WIN10, // Also includes Windows 10 Server. - VERSION_WIN_LAST, // Indicates error condition. + VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2. + VERSION_VISTA, // Also includes Windows Server 2008. + VERSION_WIN7, // Also includes Windows Server 2008 R2. + VERSION_WIN8, // Also includes Windows Server 2012. + VERSION_WIN8_1, // Also includes Windows Server 2012 R2. + VERSION_WIN10, // Also includes Windows 10 Server. + VERSION_WIN10_TH2, // Threshold 2: Version 1511, Build 10586. + VERSION_WIN_LAST, // Indicates error condition. }; // A rough bucketing of the available types of versions of Windows. This is used |