| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include <windows.h> | |
| 6 #include <string> | |
| 7 | |
| 8 #define TEST_INJECTION_DLL | |
| 9 #include "chrome/test/security_tests/ipc_security_tests.h" | |
| 10 #include "content/public/common/injection_test_win.h" | |
| 11 #include "sandbox/win/tests/common/controller.h" | |
| 12 #include "sandbox/win/tests/validation_tests/commands.h" | |
| 13 | |
| 14 using sandbox::TestOpenKey; | |
| 15 using sandbox::TestOpenReadFile; | |
| 16 using sandbox::TestOpenWriteFile; | |
| 17 | |
| 18 #define SECURITY_CHECK(x) (*test_count)++; \ | |
| 19 if (sandbox::SBOX_TEST_DENIED != x) { \ | |
| 20 return FALSE; \ | |
| 21 }; | |
| 22 | |
| 23 BOOL APIENTRY DllMain(HMODULE module, DWORD ul_reason_for_call, | |
| 24 LPVOID lpReserved) { | |
| 25 return TRUE; | |
| 26 } | |
| 27 | |
| 28 // Runs the security tests of sandbox for the renderer process. | |
| 29 // If a test fails, the return value is FALSE and test_count contains the | |
| 30 // number of tests executed, including the failing test. | |
| 31 BOOL __declspec(dllexport) __cdecl RunRendererTests(int *test_count) { | |
| 32 *test_count = 0; | |
| 33 SECURITY_CHECK(TestOpenReadFile(L"%SystemDrive%")); | |
| 34 SECURITY_CHECK(TestOpenReadFile(L"%SystemRoot%")); | |
| 35 SECURITY_CHECK(TestOpenReadFile(L"%ProgramFiles%")); | |
| 36 SECURITY_CHECK(TestOpenReadFile(L"%SystemRoot%\\System32")); | |
| 37 SECURITY_CHECK(TestOpenReadFile(L"%SystemRoot%\\explorer.exe")); | |
| 38 SECURITY_CHECK(TestOpenReadFile(L"%SystemRoot%\\Cursors\\arrow_i.cur")); | |
| 39 SECURITY_CHECK(TestOpenReadFile(L"%AllUsersProfile%")); | |
| 40 SECURITY_CHECK(TestOpenReadFile(L"%Temp%")); | |
| 41 SECURITY_CHECK(TestOpenReadFile(L"%AppData%")); | |
| 42 SECURITY_CHECK(TestOpenKey(HKEY_LOCAL_MACHINE, L"")); | |
| 43 SECURITY_CHECK(TestOpenKey(HKEY_CURRENT_USER, L"")); | |
| 44 SECURITY_CHECK(TestOpenKey(HKEY_USERS, L"")); | |
| 45 SECURITY_CHECK(TestOpenKey(HKEY_LOCAL_MACHINE, | |
| 46 L"Software\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon")); | |
| 47 // Test below run on a separate thread because they cannot block the | |
| 48 // renderer process. Therefore they do not return a meaningful value. | |
| 49 PipeImpersonationAttack(); | |
| 50 return TRUE; | |
| 51 } | |
| 52 | |
| 53 // Runs the security tests of sandbox for the plugin process. | |
| 54 // If a test fails, the return value is FALSE and test_count contains the | |
| 55 // number of tests executed, including the failing test. | |
| 56 BOOL __declspec(dllexport) __cdecl RunPluginTests(int *test_count) { | |
| 57 *test_count = 0; | |
| 58 SECURITY_CHECK(TestOpenWriteFile(L"%SystemRoot%")); | |
| 59 SECURITY_CHECK(TestOpenWriteFile(L"%ProgramFiles%")); | |
| 60 SECURITY_CHECK(TestOpenWriteFile(L"%SystemRoot%\\System32")); | |
| 61 SECURITY_CHECK(TestOpenWriteFile(L"%SystemRoot%\\explorer.exe")); | |
| 62 SECURITY_CHECK(TestOpenWriteFile(L"%SystemRoot%\\Cursors\\arrow_i.cur")); | |
| 63 return TRUE; | |
| 64 } | |
| OLD | NEW |