logoalt Hacker News

saint-evan • today at 8:21 AM • 5 replies • view on HN

Failfs is a pretty cool pseudo-filesystem where every path lookup fails. So if yu place a statically-linked process into failfs with ONLY pre-allocated file-descriptors at process birth, close down unneeded sockets and enforce a default-deny firewall discipline, compromised applications are effectively isolated and unable to access local files or spawn shells during an exploit. An attacker can NOT move adjacently from the exploited process to other parts of the system because to do so they'll need to navigate from root and that would fail since yu set root as failfs and you've got yourself a pure, isolated data-processing pipe that can only interact via the exact file descriptors it was given!!

Unfortunately, yu can't use dynamically-linked apps anyway since failfs would break absolute path resolution loading system libraries.

EDIT:: But I guess yu could put a statically linked app on the socket, wrap it in failfs and gave it proxy requests to a dynamically-linked app process if your app must use something like python.


Replies

yonatan8070 • today at 5:00 PM

How is that different from putting an app in a chroot jail or container?

wpyoga • today at 8:33 AM

Is it possible to load the dynamic libraries before fork()ing and somehow prevent the path lookup and library loading? This will open up new possibilities for hardened security models.

➕ show 1 reply
dhx • today at 10:45 AM

Is it different from using seccomp with SECCOMP_RET_ERRNO and return code of EOPNOTSUPP for all filesystem syscalls?

jack_pp • today at 8:49 AM

idk if it's just me but deliberately using "yu" instead of "you" is annoying and makes me not really take whatever you say seriously

➕ show 3 replies
pandemic_region • today at 8:44 AM

Sorry man I've been out of the loop with the hip crowd for a good while, but is "yu" now a thing like "thru" once was?

➕ show 1 reply