Live data from Hacker News

Malicious libraries can steal all your application secrets in Elixir

peterullrich.com

11–13 of 13 posts

Re: Malicious libraries can steal all your application secrets in Elixir

#11
post #5

Earlier quoted context omitted.

Not quite every language. Giving libraries access to every capability by default is a language design decision, not a law of nature.

Do you mind highlighting languages that have avoided making similar decisions?

I used E in the 90s: http://erights.org/

I haven't kept up with newer systems but I've heard of https://github.com/endojs/endo and just came across http://reports-archive.adm.cs.cmu.edu/anon/home/anon/isr2017... (which says "in the style of the E programming language" -- that's as far as I've read) while looking that up.

WebAssembly was designed to follow the same capability security principles. CHERI too as someone else just brought up.

Yet another newer capability system in progress -- I don't know what it can do today or if it tackles this particular problem but it sounds cool: https://spritelyproject.org/

Re: Malicious libraries can steal all your application secrets in Elixir

#12
post #5

Earlier quoted context omitted.

Do you mind highlighting languages that have avoided making similar decisions?

Don't programs runnign in iOS and perhaps Android (and macOS) have to put up modal dialogs requesting the person running the program for access to things it could screw up? Is that an example?

That's not nothing, but it's not a usable and flexible enough solution -- people end up giving far too coarse-grained authority because that's seemingly the only way that's easy.

Re: Malicious libraries can steal all your application secrets in Elixir

#13
post #5

Earlier quoted context omitted.

Do you mind highlighting languages that have avoided making similar decisions?

I used E in the 90s: http://erights.org/ I haven't kept up with newer systems but I've heard of https://github.com/endojs/endo and just came across http://reports-archive.adm.cs.cmu.edu/anon/home/anon/isr2017... (which says "in the style of the E programming language" -- that's as far as I've read) while looking that up. WebAssembly was designed to follow the same capability security principles. CHERI too as someone…

WASM is great in that you can sandbox code and give it limited permissions to run. Actually I do hope wasm becomes more widespread as a base for app development, however, when importing library code into your own native code base, it's going to run with the same perms as that code base. Sandboxing a library would have the effect of making it probably slower and more annoying to interact with.
Post reply on HN