[RFC PATCH v19 0/5] Script execution control (was O_MAYEXEC)
Mickaël Salaün
mic at digikod.net
Tue Jul 16 17:31:38 UTC 2024
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:
> > 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/
>
> 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.
More information about the Linux-security-module-archive
mailing list