uberAgent

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= 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
Script Sandbox