Re: [RFC PATCH v19 0/5] Script execution control (was O_MAYEXEC)
From: Mickaël Salaün <mic@digikod.net>
Date: 2024-07-16 17:31:53
Also in:
linux-api, linux-fsdevel, linux-integrity, lkml
From: Mickaël Salaün <mic@digikod.net>
Date: 2024-07-16 17:31:53
Also in:
linux-api, linux-fsdevel, linux-integrity, lkml
On Tue, Jul 16, 2024 at 12:12:49PM -0400, James Bottomley wrote:
On Tue, 2024-07-16 at 17:57 +0200, Roberto Sassu wrote:quoted
But the Clip OS 4 patch does not cover the redirection case: # ./bash < /root/test.sh Hello World Do you have a more recent patch for that?
Bash was only partially restricted for CLIP OS because it was used for administrative tasks (interactive shell). Python was also restricted for user commands though: https://github.com/clipos-archive/clipos4_portage-overlay/blob/master/dev-lang/python/files/python-2.7.9-clip-mayexec.patch Steve and Christian could help with a better Python implementation.
How far down the rabbit hole do you want to go? You can't forbid a shell from executing commands from stdin because logging in then won't work. It may be possible to allow from a tty backed file and not from a file backed one, but you still have the problem of the attacker manually typing in the script.
Yes, that's why we'll have the (optional) SECBIT_EXEC_DENY_INTERACTIVE: https://lore.kernel.org/all/20240710.eiKohpa4Phai@digikod.net/ (local)
The saving grace for this for shells is that they pretty much do nothing on their own (unlike python) so you can still measure all the executables they call out to, which provides reasonable safety.
Exactly. Python is a much more interesting target for attacker because it opens the door for arbitrary syscalls (see the cover letter). If we want to have a more advanced access control (e.g. allow Bash but not Python), we should extend existing LSMs to manage the appropriate securebits according to programs/subjects.