Next: Intrusion Detection Wrappers
Up: Detecting and Countering System
Previous: Abstract
Intrusion detection is a retrofit approach to enhancing the security of
computer systems. It utilizes various audit data to identify activities that
could compromise the security of a system.
Traditionally, intrusion detection systems (IDS) are user-space applications
that utilize audit data generated by audit systems (e.g., Solaris Basic
Security Module (BSM)) or network sniffers to detect intrusive activities.
The capabilities of these user-space IDSs are restricted by the quality of the
audit data and the services provided by the operating systems.
For instance, audit systems do not provide all the data required by IDSs,
thus limiting the attacks that can be detected by the IDSs.
In addition, audit systems offer rudimentary methods for selecting data to
be logged. In particular, most audit systems do not support selection of a
particular program to audit.
Also, as the data is generated in the kernel, every time a system
action has to be logged or analyzed, the information has to be transferred
from kernel space to user space, causing a context switch, and increasing
the load imposed on the system by the IDS.
Thus, user-space IDSs suffer from high overheads and low efficiency, as well
as long delay (in CPU cycles) in detecting intrusions.
Lastly, user-space IDSs are not sufficiently protected by operating systems
and cannot completely protect themselves.
Our goal is to integrate ID functions into the kernel to remedy
some of the problems arise in user-space intrusion detection.
Specifically, we exploit the execution environment provided by Generic Software
Wrappers [4] to enhance the intrusion detection and response
capability of a system.
An ID logic implemented as an ID wrapper can 1)
selectively examine any parameters of system calls and the entire system
state, 2) analyze a system call before or immediately after the call is
executed, 3) analyze system calls inside the kernel, thus avoiding the
overhead of transferring audit data from kernel space to user space, and
4) protect itself by denying intrusive operations.
We have implemented several intrusion detection techniques, tested the
ID wrappers using several existing attacks, and measured the performance of
the ID wrappers. Our conclusion is that intrusion detection algorithms
can be easily
encoded as wrappers that perform efficiently inside the kernel. Also,
ID wrappers can be configured and managed easily to support a coherent
global intrusion detection and response policy. We envision that ID wrappers
can be used individually to protect a system or as components of a large-scale
intrusion detection system.
The rest of the paper is organized as follows.
Section 2 presents an overview of ID wrappers, focusing on the capability of
ID wrappers provided by the Generic Software Wrapper Toolkit and our
extensions to the toolkit for supporting intrusion detection.
In section 3, we present how we implement various ID
techniques--specification-based, signature-based, and sequence-based
techniques--using wrappers.
In section 4, we present our experiments for testing ID wrappers with
simulated attacks. We also describe a composition experiment in which two
ID wrappers employing two different techniques cooperate with another
abstract wrapper that combines the findings of the two ID wrappers.
In addition, we present the performance results of the ID wrappers,
showing that intrusion detection functions can be executed, managed,
and coordinated in the kernel with a minimal observed application performance
penalty. Section 5 discusses related work. In section 6, we discuss
the pros and cons of the kernel-resident intrusion detection approach
as well as our experience in realizing this approach using Generic Software
Wrappers. Section 7 provides the conclusion and suggests future research.
Next: Intrusion Detection Wrappers
Up: Detecting and Countering System
Previous: Abstract
Calvin Ko
2000-06-13