Thread (22 messages) 22 messages, 5 authors, 2020-09-25

Re: [PATCH v2 0/4] [RFC] Implement Trampoline File Descriptor

From: Mickaël Salaün <mic@digikod.net>
Date: 2020-09-25 10:18:44
Also in: linux-api, linux-arm-kernel, linux-fsdevel, linux-integrity, lkml

Possibly related (same subject, not in this thread)

On 25/09/2020 00:05, Pavel Machek wrote:
Hi!
quoted
quoted
quoted
quoted
I believe you should simply delete confusing "introduction" and
provide details of super-secure system where your patches would be
useful, instead.
This RFC talks about converting dynamic code (which cannot be authenticated)
to static code that can be authenticated using signature verification. That
is the scope of this RFC.

If I have not been clear before, by dynamic code, I mean machine code that is
dynamic in nature. Scripts are beyond the scope of this RFC.

Also, malware compiled from sources is not dynamic code. That is orthogonal
to this RFC. If such malware has a valid signature that the kernel permits its
execution, we have a systemic problem.

I am not saying that script authentication or compiled malware are not problems.
I am just saying that this RFC is not trying to solve all of the security problems.
It is trying to define one way to convert dynamic code to static code to address
one class of problems.
Well, you don't have to solve all problems at once.

But solutions have to exist, and AFAIK in this case they don't. You
are armoring doors, but ignoring open windows.
FYI, script execution is being addressed (for the kernel part) by this
patch series:
https://lore.kernel.org/lkml/20200924153228.387737-1-mic@digikod.net/ (local)
Ok.
quoted
quoted
Or very probably you are thinking about something different than
normal desktop distros (Debian 10). Because on my systems, I have
python, gdb and gcc...
It doesn't make sense for a tailored security system to leave all these
tools available to an attacker.
And it also does not make sense to use "trampoline file descriptor" on
generic system... while W^X should make sense there.
Well, as said before, (full/original/system-wide) W^X may require
trampfd (as well as other building-blocks).

I guess most Linux deployments are not on "generic systems"
anyway (even if they may be based on generic distros), and W^X
contradicts the fact that users/attackers can do whatever they want on
the system.
quoted
quoted
It would be nice to specify what other pieces need to be present for
this to make sense -- because it makes no sense on Debian 10.
Not all kernel features make sense for a generic/undefined usage,
especially specific security mechanisms (e.g. SELinux, Smack, Tomoyo,
SafeSetID, LoadPin, IMA, IPE, secure/trusted boot, lockdown, etc.), but
they can still be definitely useful.
Yep... so... I'd expect something like... "so you have single-purpose
system
No one talked about a single-purpose system.
with all script interpreters removed,
Not necessarily with the patch series I pointed out just before.
IMA hashing all the files
to make sure they are not modified, and W^X enabled.
System-wide W^X is not only for memory, and as Madhavan said: "this RFC
pertains to converting dynamic [writable] machine code to static
[non-writable] code".
Attacker can
still execute code after buffer overflow by .... and trapoline file
descriptor addrsses that"... so that people running generic systems
can stop reading after first sentence.
Are you proposing to add a
"[feature-not-useful-without-a-proper-system-configuration]" tag in
subjects? :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help