Re:Making Rust supply chain attacks harder with Cackle
by throwfaraway398 on Friday October 13, 2023 @04:37PM
(#37875342)
Something like the JVM security manager ? https://docs.oracle.com/javase/8/docs/api/java/lang/Security...
I wonder if anyone tried to use it to limit dependency risk in that way.
Re:Making Rust supply chain attacks harder with Cackle
by fiddlerwoaroof on Friday October 13, 2023 @05:30PM
(#37875853)
My impression was that the SecurityManager was ACLs. I’m thinking more of capabilities as found in the E language and various protocols like CapTP. The idea is that there is no “ambient authority” in a program: to be able to interact with the outside world, you need to be have a token that the runtime guarantees cannot be created by any program. All the tokens would be passed to the main function at startup and then passed down the call stack explicitly to code that wants these feature.
The whole paradigm is to avoid needing to check permissions by making it impossible in principle to do anything you’re not allowed to do.
Re:Making Rust supply chain attacks harder with Cackle
by ufmace on Saturday October 14, 2023 @03:23PM
(#37883431)
It's a neat idea, but you'd probably have to build it into the OS from ground-up to work. And then a whole ecosystem of development languages and tools built around it. Quite a lot of work to have something anywhere near as functional as what's around today.
Re:Making Rust supply chain attacks harder with Cackle
by fiddlerwoaroof on Saturday October 14, 2023 @05:07PM
(#37884285)
I don’t think so, a language by default doesn’t really have any access to the environment (ignoring side channels like Rowhammer attacks) aside from access to memory and the CPU. Ensuring the security properties I’m talking about is mainly a matter of designing the runtime’s OS interfaces from the ground up with a capability model.
This sort of capability-based approach to security would make untrusted code relatively safe to execute because the worst it could do without the explicit cooperation of the developer is an infinite loop.