Hacker News new | ask | show | jobs
by libeclipse 3321 days ago
Could someone more knowledgeable than me comment on what Selfrando is, how it's useful, and how it works.
2 comments

selfrando contributor here. it is correct that selfrando is intended as an improvement over ASLR by randomizing code at the function level (vs. module level). this improves resilience to information leaks somewhat, but with mitigations like these, there are no silver bullets.

selfrando github repo: https://github.com/immunant/selfrando feel free to open an issue or write us at team@immunant.com

cheers!

I recommend reading the linked blog post about it. [0]

[0] https://blog.torproject.org/blog/selfrando-q-and-georg-koppe...

There is also a research paper [1] and accompanying video [2].

[1] https://people.torproject.org/~gk/misc/Selfrando-Tor-Browser...

[2] https://www.youtube.com/watch?v=IikpczzNyas

That blog post is pretty much useless in terms of information, but that linked presentation is pretty informative. Cheers.
tl;dr seems to be a more advanced form of ASLR?
i think it's ASLR with more entropy by skimming through the paper, but most exploits have read primitives or infoleaks anyways so i don't see how more entropy affects them. If i am right it protects against attackers guessing the ASLR slide, but that's very unreliable and no FBI grade exploit should ever do that.
See "Real-world Exploits against the Tor Browser" pages 9-10 where they conclude,

> The reason is that these function pointers are only accessed through an indirection layer, i.e., memory objects on the heap contain a pointer to a virtual table which is located in the code or data section of the application and contains a number of pointers to virtual functions. Since the attackers can only disclose the virtual table pointer, but not the virtual table itself, as it is not on the heap, they cannot disclose gadget addresses. Note that, when only ASLR is applied, the address of the virtual table is randomized with the same offset as the ROP gadgets. Therefore, such an attack can bypass ASLR but not selfrando.

> We therefore conclude that selfrando can thwart most real-world exploits. Attackers can only succeed in rare cases where they can disclose the complete heap and data section.

[1] : https://people.torproject.org/~gk/misc/Selfrando-Tor-Browser...