Next: Conclusion and Future Work
Up: Detecting and Countering System
Previous: Related Work
The idea of moving intrusion detection functions into the kernel is not
new and has been hinted at in the literature. Balasubramaniyan et. al.
discussed the advantages and disadvantages of integrating intrusion detection
agents inside the kernel [1].
In-kernel intrusion detection has several advantages.
First, overhead due to extra context switching is
avoided - a system call is analyzed by the ID logic at the same kernel
context at which the system call executes.
In addition, information is registered and processed at or near the place
where it is produced, reducing the time and resources for
transferring the information to the analysis engine.
Also, this proximity allows prompt detection and reduces the possibility of the
information being modified by an attacker before it gets to the ID analysis
engine. Lastly, it is harder for an intruder to tamper with the ID system as
the attacker would have to modify the kernel (e.g., by defeating
the kernel's memory-protection mechanism).
However, the kernel-resident implementation strategy also has its
disadvantages.
First, kernel-resident ID systems are not portable across
platforms. Second, a misbehaving ID system can do much more damage if it is
running in the kernel rather than in user space because it has full access to the system.
Third, entities in the kernel can have a large impact in the host behavior by slowing
down fundamental operations (e.g., kernel data structures, accesses to memory,
disk). Fourth, entities inside the kernel are very difficult to manage and
configure. Finally, kernel programming is at a low level of abstraction, where the resources available provide very limited functionality when compared to the higher-level abstractions available in user space.
Our work essentially illustrates that in-kernel intrusion detection is
feasible and practical provided that the kernel-resident ID system is designed
and coded carefully. With minimal adjustment, many intrusion detection techniques can be implemented
to run inside the kernel efficiently without
impacting the host behavior. By using the Generic Software Wrapper Toolkit
as the basis for implementing kernel-resident intrusion detectors, our
approach inherits the advantages of in-kernel intrusion detection
while avoiding the problems of portability, manageability, and
the low-level nature of kernel programming.
We strongly believe that further investigation of in-kernel intrusion
detection is worthwhile and necessary.
Next: Conclusion and Future Work
Up: Detecting and Countering System
Previous: Related Work
Calvin Ko
2000-06-13