Script Sandbox
uberAgent ESA’s Security & Compliance Inventory test scripts are run sandboxed according to the principle of least privilege. This page documents the sandbox security levels and all available mitigations. A script’s sandbox is configured via the IntegrityLevel
setting of the SecurityInventoryTest
stanza in the test configuration.
Mitigations & UI Limits
The following tables list the mitigations and UI limits that are available to limit the capabilities of a script sandbox.
Please note that the three integrity levels are just convenient aliases for common sets of mitigations. As described on the test configuration page, any mitigation and limit can be explicitly enabled or disabled.
Mitigations
Mitigation name | Description | Integrity Level low | Integrity Level medium | Integrity Level high | Supported OS |
---|---|---|---|---|---|
ControlFlowGuard | Enables Control Flow Guard for the started executable. | ✓ | ✓ | – | Windows 8.1 and newer |
DataExecutionPrevention | Prevents code execution from code inside a memory page marked as non-executable. | ✓ | ✓ | – | Windows 8.0 and newer |
DataExecutionForChildProcessesFromATL | Prevents code execution from code inside a memory page marked as non-executable (active template library thunk layer). | ✓ | ✓ | – | Windows 8.0 and newer |
DisableVariousUncommonDllExtensionPoints | Prevents some built-in third-party extension points from being turned on, which prevents legacy extension point DLLs from being loaded into the process. | ✓ | – | – | Windows 8.0 and newer |
DynamicCodeMustBeSigned | A process must be either signed by Microsoft, by the Windows Store, or by the Windows Hardware Quality Labs (WHQL). | ✓ | – | – | Windows 8.1 and newer |
ForceRelocateImagesRequireRelocationSection | Activates the “Address space layout randomization” technique, which loads the address space of key data areas of a process into random positions. | ✓ | ✓ | – | Windows 8.0 and newer |
HeapTerminateProtection | Causes the heap to terminate if it becomes corrupt. | ✓ | ✓ | – | Windows 8.0 and newer |
AllowChildProcesses=<NumberOfProcesses> | Sets the number of allowed child processes. | 2 | 2 | ∞ | Windows 8.1 and newer |
NonRemoteImagesBeingLoaded | Sets the types of executable images that are allowed to be mapped into the process. When turned on, images cannot be loaded from some locations, such as remote devices or files that have a low mandatory integrity label. | ✓ | ✓ | – | Windows 10 and newer |
NonSystemFontsBlocked | Blocks loading of fonts outside of the standard Windows fonts directory. | ✓ | – | – | Windows 10 and newer |
PreferSystem32InsteadOfApplicationDirectory | DLLS are preferably loaded from the System32 directory instead of the application directory. |
✓ | ✓ | – | Windows 10 and newer |
StrictHandleChecks | The process will receive a fatal error if it manipulates a handle that is not valid. | ✓ | – | – | Windows 8.0 and newer |
StructuredExceptionHandlerOverwriteProtection | Prevents the code from overwriting the structured exception handler. | ✓ | – | – | Windows 8.0 and newer |
UI Limits
UI limit name | Description | Integrity Level low | Integrity Level medium | Integrity Level high | Supported OS |
---|---|---|---|---|---|
UiLimitHandles | Prevents processes from using user handles owned by processes not associated with the same job. | ✓ | ✓ | – | Windows |
UiLimitReadClipboard | Prevents processes from reading data from the clipboard | ✓ | ✓ | – | Windows |
UiLimitWriteClipboard | Prevents processes from writing data to the clipboard. | ✓ | ✓ | – | Windows |
UiLimitSystemParameter | Prevents processes from changing system parameters by using the SystemParametersInfo function. |
✓ | ✓ | – | Windows |
UiLimitDisplaySettings | Prevents processes from calling the ChangeDisplaySettings function. |
✓ | ✓ | – | Windows |
UiLimitGlobalAtoms | Prevents processes from accessing global atoms. When this flag is used, each job has its own atom table. | ✓ | ✓ | – | Windows |
UiLimitDesktop | Prevents processes from creating desktops and switching desktops using the CreateDesktop and SwitchDesktop functions. |
✓ | ✓ | – | Windows |
UiLimitExitWindows | Prevents processes from calling the ExitWindows and ExitWindowsEx functions. |
✓ | ✓ | – | Windows |