-
Notifications
You must be signed in to change notification settings - Fork 55
Description
(preface: totally understand if this is out of scope but could be a cool feature)
Invisible Sandboxing of Applications
One of the fun and innovative things that could be done since metaparticle is in charge of handling the users code and running the specific function passed, is an automatic generation of a seccomp profile for their application/function being run.
Background
Seccomp is "secure computing with filters." It allows developers to write BPF programs that determine whether a given system call will be allowed or not.
It has support in container runtimes as well as k8s.
Integration with metaparticle
Since metaparticle knows the go code that it needs to run, it could generate a list of syscalls required for that, and then automatically apply it to the kubernetes config.
In laymans terms, metaparticle would automatically perfectly sandbox your application so even if a malicious individual cracked the application running, they would only be allowed to execute the syscalls required by the application in the container. This would reduce the attack surface substantially.
Go makes parsing the syscalls easy because of the design. I had personally made a POC of this with the go compiler in the past :)
Just an idea. You could do it with the other languages as well, but I don't know enough about their runtime internals to know how difficult or complex it would be.