 
 
 
 
 
 
   
 Next: Combining Multiple Techniques using
 Up: Detecting and Countering System
 Previous: Sequence-based Techniques
To evaluate the intrusion detection wrappers with respect to their ability
to detect attacks, we tested the ID wrappers with several existing attacks. 
These attacks exploit vulnerabilities in security-critical programs that 
possess privileges to obtain a shell running as root.
We describe the programs and the attacks below.
   
Figure 4:
Composing Two ID techniques
|  | 
 
- imapd
- Some versions of the Internet Mail Access Protocol (IMAP) server 
contain a number of buffer-overflow bugs that allow a remote user to obtain 
a shell running as root (CERT Advisory CA-97.09). We obtained an exploitation 
script to
one of the bugs from RootShell (www.rootshell.com).  The exploit script 
carefully crafts the input to imapd that exceeds the size of a 
special stack buffer and presents the name to the IMAP server to overwrite the saved 
instruction pointer and execute the planted machine code. 
The code then executes a shell running with root.  We wrapped imapd 
using a specification-based ID wrapper Imapd_id specific to 
imapd and a sequence-based ID wrapper separately. Both wrappers were 
able to detect the exploit script's attack.
- lpr
- Due  to  insufficient  bounds  checking  on  arguments  which  are
supplied by users, it is possible to overwrite the internal  stack
space of some versions of the lpr  program while it is  executing.  
This can  allow an  intruder  to cause  lpr  to  execute  arbitrary  
commands by supplying a carefully designed argument 
to lpr (AUSCERT Advisory AA-96.12).  These  commands
will be run with the privileges of the lpr program.  When lpr is setuid 
root it may allow intruders to run arbitrary commands with root privileges.
We simulated the attack using a script from RootShell.
We wrapped lpr using a specification-based wrapper tailored for
lpr and the wrapper was able to detect the attack.
- lprm
- The program lprm is part of the printing subsystem. The program is
used to remove a job in the printer queue. There is a buffer-overflow
vulnerability in some versions of this program that allows a local user 
to execute arbitrary commands with root privileges.  We obtained a script 
from Security Bugware (https://161.53.42.3/crv/security/bugs/list.html) and
tested a specification-based wrapper written for lprm with the script.
The specification-based wrapper detected the attack when lprm was
tricked to execute the Bourne shell. 
- binmail
- The binmail program is the back-end mailer that delivers mail messages 
to users' mailboxes. It does so by appending the messages to the mailbox 
files directly.  In some old versions, binmail changes the ownership 
of a user's mailbox (usually /var/spool/mail/<username>) 
back to the user after it appends a message if the mailbox file is not owned 
by the user initially. 
In particular, the binmail program (/bin/mail) 
in 4.2 BSD Unix fails to reset the setuid bit of the mailbox file 
after it appends a message and changes the owner of the file [5].
An attacker, who creates a mailbox file with the setuid bit on for the 
superuser, can trick binmail into making the file to be setuid root
by invoking binmail to send a mail message to root.
We deployed the Mailstat wrapper and tested the wrapper with
an exploitation script we created.  The wrapper detected the intrusion 
immediately.
 
 
 
 
 
 
   
 Next: Combining Multiple Techniques using
 Up: Detecting and Countering System
 Previous: Sequence-based Techniques
Calvin Ko
2000-06-13