Intrusion Detection using Sequences of System Calls

January 18, 2018 | Author: Anonymous | Category: Science, Health Science, Immunology
Share Embed Donate


Short Description

Download Intrusion Detection using Sequences of System Calls...

Description

Intrusion Detection using Sequences of System Calls

By S. Hofmeyr & S. Forrest

Overview Focus: privileged processes Discriminator: system call sequences Building a database: defining “normal” Detecting anomalies: how to measure Results: promising numbers Concerns: remaining doubts Extensions of research: Jones, Li & Lin

Inspiration Human immune system Recognition of self Rejection of nonself

How would we describe “self” for a software system, or a program?

Focus and Motivation Focus on privileged processes Exploitation can give a user root access They provide a natural boundary e.g. telnet daemon, login daemon

Privileged processes are easier to track Specific, limited function Stable over time Contrast with the diversity of user actions

Where do we look? Need to distinguish when: Privileged process runs normally Privileged process exhibits an anomaly

The discriminator is the observable entity used to distinguish between these two Use sequences of system calls as the discriminator, the signature

How much detail? Discriminator is sequences of system calls Simple temporal ordering is chosen Ignore parameters Ignore specific timing information Ignore everything else!

Why? As much as possible, work with simple assumptions Is it “enough”?

Is it enough detail? Does the discriminator include enough detail for this hypothesis to hold? Answer seems to be yes !

Extra complication: due to the variability in configuration and use of individual systems, the set of “normal” sequences of system calls will be different on different systems

Design Decisions Remember temporal ordering of calls Not total sequence, but sequences of length k

What size should k be? Long enough to detect anomalies, short as possible Empirical observation: length 6 to 10 is sufficient

So “self” is a database of (unordered) short call sequences

Building the “normal” database Synthetic Assurance that the normal database contains no intrusions; reproducible But does not reflect any particular real user activity

Actual use Necessary to generate from actual use in order to have a unique “self” How long to accumulate? Is it clean?

The normal database Database of normal sequences does not contain all legal sequences If it did, anomalies would not be detected Some rare sequences will not be used during database initialization

Database is stored as a forest to save space

Signature Database Structure (length 3) fopen

fread

fopen

fread

strcmp

fread

strcmp

strcmp

strcmp

strcmp

fopen

strcmp

fopen

fread

strcmp

strcmp

fopen

fopen fread

fread

fread

strcmp

strcmp

strcmp strcmp

strcmp strcmp

fopen

fopen fread

Derive Robust Signature Database Robust Signature Database 600

Database Size

500 400 300 200 100 0 0

2000

4000

6000

Total Seqences Scanned

8000

10000

Detecting anomalies A call sequence not in the database is an anomalous sequence Strength of that anomalous sequence is measured by “Hamming distance” to the closest normal sequence (called dmin) Any call trace with an anomalous sequence is an anomalous trace

Detecting anomalies Strength of an anomalous trace is the maximum dmin of the trace normalized for the value of k (length of sequences in the database): ŜA = max{dmin values for the trace} / k Value is between 0 and 1

By adjusting the threshold value for ŜA, false positives can be reduced

Efficiency Complexity of computing dmin O(k(RAN + 1))

k is sequence length, RA is ratio of anomalous to normal sequences, N is the number of sequences in the database

dmin is calculated after every system call The constant associated with this algorithm is very important Not yet running in real time

Results (synthetic) Sanity test: If different programs are not distinguishable, anomalies within one program will certainly not be either Easy to distinguish between programs; mismatches on well more than 50% of the instruction sequences (and ŜA >= 0.6) All intrusions (both attempted & successful) produced anomalies of varying strengths

Results (real environment) The conjecture of unique normal databases Experiments in two configurations (at UNM and MIT) had very different databases for the same program (lpr) Is this typical?

Closing concerns False positives vs false negatives If forced to choose, UNM prefers to have false negatives because layering can mitigate

Saw 1 per 100 print jobs (lpr) Due to system problems

Is ŜA a good measure?

It could help generate false positives Single extra system call might make ŜA = 0.5

Annex Material

Some UVa experiments S. Li, Y. Lin, and A. Jones

Illustrated by two attacks on Apache Varied sequence length from 2 to 30 We chose length 10 to have margin of error

Normalized Anomaly Signal

Signature Length Has Little Effect 1.2 1 0.8 0.6 0.4 0.2 0 0

10

20 30 Sequence Length

40

Effectiveness: Buffer Overflow High normalized #Mismatch %Mismatc Normalized Anomaly anomaly signals es hes indicate attacks Signal

Stack Overwrite

467

3.5

0.7

Realpath Vulnerability

569

2.7

0.6

Successfully detected buffer overflow attacks against wu-ftpd Work well because attacker code adds new sequences of library calls

Effectiveness: Denial of Service  Simulated DOS attack that uses up all available memory

 As attack progresses, library calls requesting memory return abnormally and are re-issued  DOS attack caused application to invoke new library call, fsync Program - vi

#Mismat ches

Normal Run

0

DOS Attack

101

No intrusion detected %Mismat Normalized Anomaly

ches

Signal

0 2.6normalized High anomaly signal indicates attack

0 0.6

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF