Re: [RFC PATCH v19 0/5] Script execution control (was O_MAYEXEC)
Mickaël Salaün <[email protected]> Tue, 16 Jul 2024 19:31:38 +0200
| Newsgroups | com.openwall.lists.kernel-hardening,org.kernel.vger.linux-api,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-integrity,org.kernel.vger.linux-kernel,org.kernel.vger.linux-security-module |
|---|---|
| Message-ID | <[email protected]> |
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/[email protected]/ > > 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.