Hello.

MAC can prevent execution of programs that are not
permitted by security policy.

Some exploits sends shellcodes containing execve("/bin/sh") like

  while (1) {
    update_condition();
    if (condition_is_met) execve("/bin/sh");
  };

and the victim server process executes

  while (1) {
    update_condition();
    if (condition_is_met) execve("/bin/sh");
  };

while execve("/bin/sh") is denied by security policy.

The result is that the victim server process eats
100% of CPU resource and will affect other normal processes.

May be there is a daemon that is monitoring CPU usage and
the daemon kills processes eating 100% CPU.
But just eating 100% CPU is not a good criteria for killing.

So, I wonder somehow we can avoid eating CPU resource
without external monitoring process.
For example, parry attacker's demand by replacing
the current process's image with different program (e.g. /bin/true)
rather than just returning an error code.
For example, sleep for a few seconds before returning an error code.

There are some LSM hooks that are related with do_execve().
I thought I can replace execve("/bin/sh") by execve("/bin/true")
like what load_script() in fs/binfmt_script.c is doing.
/bin/true can be any program (e.g. dummy-shell or /usr/bin/logger
or /bin/mail to collect attacking information and share with other hosts).

Any opinions?
-
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

Reply via email to