Proxi-Annotated control flow graphs: deterministic context-sensitive monitoring for intrusion detection

  • Authors:
  • Samik Basu;Prem Uppuluri

  • Affiliations:
  • Dept of Computer Science, Iowa State University, Ames, IA;Dept of Computer Science and Electrical Engineering, University of Missouri, Kansas City, MO

  • Venue:
  • ICDCIT'04 Proceedings of the First international conference on Distributed Computing and Internet Technology
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Model or specification based intrusion detection systems have been effective in detecting known and unknown host based attacks with few false alarms [12, 15] In this approach, a model of program behavior is developed either manually, by using a high level specification language, or automatically, by static or dynamic analysis of the program The actual program execution is then monitored using the modeled behavior; deviations from the modeled behavior are flagged as attacks In this paper we discuss a novel model generated using static analysis of executables (binary code) Our key contribution is a model which is precise and runtime efficient Specifically, we extend the efficient control flow graph (CFG) based program behavioral model, with context sensitive information, thus, providing the precision afforded by the more expensive push down systems (PDS) Executables are instrumented with operations on auxiliary variables, referred to as proxi variables These annotated variables allow the resulting context sensitive control flow graphs obtained by statically analyzing the executables to be deterministic at runtime We prove that the resultant model, called proxi-annotated control flow graph, is as precise as previous approaches which use context sensitive push-down models and in-fact, enhances the runtime efficiency of such models We show the flexibility of our technique to handle different variations of recursion in a program efficiently This results in better treatment of monitoring programs where the recursion depth is not pre-determined.