Hello.
> This reasoning makes no sense. If you are *sure* that it is a malicious
> process, then either kill it, or block its access. Why is it necessary
> to screw around with letting it exec something other than what it asked
> for, when you could do something much stronger if you are *sure*?
If I kill the hijacked process, I can't get information from the process.
For example, I can get environment variable information using something like
----- Logging program -----
#! /bin/sh
echo "DOMAIN=" $1
shift
echo "You don't have permission to call ""$@"
env
exit 1
----- Logging program -----
and if " touch /etc/f* " is denied because the security policy doesn't allow
execution of /usr/bin/touch ,
I can get the following information of process.
----- Output from logging program -----
DOMAIN= <kernel> /sbin/getty /bin/login /bin/bash
You don't have permission to call /usr/bin/touch /etc/fdmount.conf /etc/fonts
/etc/fstab /etc/fstab~
HZ=100
TERM=linux
SHELL=/bin/bash
HUSHLOGIN=FALSE
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/root/ccstools
MAIL=/var/mail/root
PWD=/root
LANG=C
HOME=/root
SHLVL=2
LANGUAGE=ja_JP:ja:en_GB:en
LOGNAME=root
_=/usr/bin/env
----- Output from logging program -----
The above program is just an example.
You can just kill the process using the above program if you wish.
If I got remote IP address from hijacked server process, I can ban that IP
address.
Executing other program that is not asked for is just a trigger.
You can use the trigger for either no-operation or defense against attackers.
> > The administrator knows that
> > "execve("/bin/sh") is not needed by server_process() to operate properly"
> Does the administrator know that? What if the server process wants to
> run a shell script?
Because the administrator can see the source code of program.
If the server process needs to run a shell script,
the administrator will give execute permission of /bin/sh
and this execute-something-else feature won't be triggered.
The administrator can't use this execute-something-else feature
if the process runs arbitrary command.
> I see no room for substituting /bin/true for the original exec request.
> It has all of the negative consequences of just blocking the exec, and
> fewer advantages.
I tested that I can stop CPU consumption caused by Samba's trans2open exploit.
If I utilize the trigger (i.e. execute something other than /bin/true ),
I can do more defense action.
This is an advantage that can't be obtained by just killing the process.
-
To unsubscribe from this list: send the line "unsubscribe
linux-security-module" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html