genpolicy: harden CreateSandboxRequest checks

Hooks are executed on the host, so we don't expect to run hooks and thus
require that no hook paths are set.

Additional Kernel modules expand the attack surface, so require that
none are set. If a use case arises, modules should be allowlisted via
settings.

Signed-off-by: Markus Rudy <mr@edgeless.systems>
This commit is contained in:
Markus Rudy 2024-07-19 14:34:09 +02:00
parent aee23409da
commit bce5cb2ce5
2 changed files with 27 additions and 1 deletions

View File

@ -15,7 +15,7 @@ default AddSwapRequest := false
default CloseStdinRequest := false default CloseStdinRequest := false
default CopyFileRequest := false default CopyFileRequest := false
default CreateContainerRequest := false default CreateContainerRequest := false
default CreateSandboxRequest := true default CreateSandboxRequest := false
default DestroySandboxRequest := true default DestroySandboxRequest := true
default ExecProcessRequest := false default ExecProcessRequest := false
default GetOOMEventRequest := true default GetOOMEventRequest := true
@ -1117,6 +1117,9 @@ CreateSandboxRequest {
print("CreateSandboxRequest: input.guest_hook_path =", input.guest_hook_path) print("CreateSandboxRequest: input.guest_hook_path =", input.guest_hook_path)
count(input.guest_hook_path) == 0 count(input.guest_hook_path) == 0
print("CreateSandboxRequest: input.kernel_modules =", input.kernel_modules)
count(input.kernel_modules) == 0
i_pidns := input.sandbox_pidns i_pidns := input.sandbox_pidns
print("CreateSandboxRequest: i_pidns =", i_pidns) print("CreateSandboxRequest: i_pidns =", i_pidns)
i_pidns == false i_pidns == false

View File

@ -5,5 +5,28 @@
"request": { "request": {
"sandbox_pidns": false "sandbox_pidns": false
} }
},
{
"description": "pidns",
"allowed": false,
"request": {
"sandbox_pidns": true
}
},
{
"description": "kernel modules",
"allowed": false,
"request": {
"sandbox_pidns": false,
"kernel_modules": [{"name": "evil.ko"}]
}
},
{
"description": "guest hooks",
"allowed": false,
"request": {
"sandbox_pidns": false,
"guest_hook_path": "/attacker/controlled/path"
}
} }
] ]