Internet DRAFT - draft-yang-aff

draft-yang-aff






INTERNET-DRAFT                                   Yixian Yang
Expires: April 2006                              Jian Li
                                                 Xu Zhu
                        	                 Beijing University of
                                                 Posts and Telecom.
                                                 October 2005
 

 
                     Alert Filtration and Fusion(AFF) 
                     in Intrusion Management System 
                         draft-yang-aff-00.txt




Intellectual Property Rights (IPR) statement:
By submitting this Internet-Draft, each author represents that any 
applicable patent or other IPR claims of which he or she is aware 
have been or will be disclosed, and any of which he or she becomes 
aware will be disclosed, in accordance with Section 6 of BCP 79.

Status of this Memo
   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   and any of which I become aware will be disclosed, in accordance with
   RFC 3668.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.
   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Copyright Notice

   Copyright (C) The Internet Society (2005).  All Rights Reserved.

Abstract

   Alert Filtration and Fusion (AFF) is proposed to solve the problems 
   of existing IMS(Intrusion Management System).  The Alert Filtration 
   is used to filtrate original alerts and reduce the alerts which are 
   obviously unavailable.  The Alert Fusion is used to reduce redundant 
   alerts and find the relationships of alerts.  The false positive 
Yixian Yang, et al.          Expires March, 2006               [Page  1]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005

   rate and false negative rate can be reduced by Alert Filtration and 
   Fusion.


Table of contents

   Status of This Memo .........................................   1
   
   Abstract ....................................................   1
   
   1.  Introduction ............................................   3
   
   2.  AFF Location ............................................   4
   
   3.  Alert Filtration Model ..................................   6
   3.1   Alert Filtration structure ............................   6
   3.2   Alert Filtration Process ..............................   6
   3.2.1 Local Alert Filtration Process ........................   7
   3.2.2 Intranet Alert Filtration Process .....................   10

   4.  Alert Fusion Model ......................................   11
   4.1   Alert Fusion structure ................................   11
   4.2   Concept of Alert Class ................................   12
   4.3   Alert Fusion Process ..................................   12
   4.3.1 Alert Classification ..................................   13
   4.3.2 Alert Corelation ......................................   17
   4.3.3 Situation Assessment ..................................   21
   
   5.   References .............................................   22
   
   6.   Acknowledgements .......................................   24

   7.   Authors' Addresses .....................................   24
   
   Full Copyright Statement ....................................   25




















Yixian Yang, et al.          Expires March, 2006               [Page  2]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


1. Introduction
  
   This document addresses the Alert Filtration and Fusion mechanism and 
   the structure of AFF.  There are millions of alerts created by IMS 
   everyday, and the huge amount of alerts can't be processed by 
   administrators efficiently.  So Alert Filtration and Fusion is 
   proposed to be added in IMS.
   
   In this document, the structure of Alert Filtration and Fusion 
   is presented.  There are different functional modules in Alert 
   Filtration and Fusion.  The two parts can cooperate with each other 
   to reduce the false positive and false negative rate.







































 
	 

Yixian Yang, et al.          Expires March, 2006               [Page  3]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


2. AFF Location

   Large scale distributed intrusion management system should has a 
   four-layer structure.  The raw data which is prepared for detecting	  
   is collected by Collection Layer.  The raw data is analyzed in	  
   Analysis Layer.  In Fusion Layer, alerts are sorted, merged and	  
   corelated.  In the end, The senior alerts are sent to Harmonization	  
   and Management Layer.	 
	 
	 
                  +------------------------------------+
                  | Harmonization and Management Layer |
                  +------------------------------------+
                                    ^
                                    | Senior alert
                  +------------------------------------+
                  |            Fusion Layer            |
                  +------------------------------------+
                                    ^                  
                                    | Junior alert
                  +------------------------------------+
                  |           Analysis Layer           |
                  +------------------------------------+
                                    ^
                                    | Raw data
                  +------------------------------------+
                  |           Collection Layer         |
                  +------------------------------------+
 

                            
                    Figure 1:  IMS Four-Layer Structure
                     
                     
   Generally, the detecting engine of Analysis Layer is based on rule 
   database.  Although the attack can be detected, it can't be corelated 
   with local information.  So attacks which is unavailable (Such as 
   RedCode attacks Linux host) can also produce alerts.  These are false 
   positive alerts.  
   
   To solve the problem, Alert Filtration is added between Analysis 
   Layer and Fusion Layer.  The original alerts created by Analysis 
   Layer are first sent to Alert Filtration and then flow to Fusion 
   Layer.  The unavailable attacks are filtrated, so alerts in Fusion 
   Layer are fewer and more reliable.  It also reduces some burden for 
   Fusion Layer.
	 
	 






Yixian Yang, et al.          Expires March, 2006               [Page  4]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


                  +------------------------------------+
                  | Harmonization and Management Layer |
                  +------------------------------------+
                                    ^
                                    | Senior alert               
                  +------------------------------------+----+
                  |            Alert Fusion            |    |
                  +------------------------------------+    |
                                    ^                       |
                                    | Junior alert          > AFF
                +----------------------------------------+  |              
                | +------------------------------------+ |  |
                | |           Alert Filtration         | |  |
                | +------------------------------------+-|--+
                |                   ^                    |
                |                   | Original alert     |
                | +------------------------------------+ |
                | |           Detecting Engine         | |
                | +------------------------------------+ |
                |              Analysis Layer            |
                +----------------------------------------+ 
                                    ^
                                    | Raw data
                  +------------------------------------+
                  |           Collection Layer         |
                  +------------------------------------+
 
                            
               Figure 2:  Alert Filtration and Fusion Location
                   
                   























Yixian Yang, et al.          Expires March, 2006               [Page  5]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


3. Alert Filtration Model

   Alert Filtration is based on expert system.  It contains Knowledge 
   Base, Filtrating Engine and Management System.
   
3.1 Alert Filtration Structure
   
   
                Original Alert        +------------------+
                      |      +--------| Admining System  |              
                      |      |        +------------------+
                      |      |                 |
                      v      v                 v
             +-------------------+     +----------------+
             | Filtrating Engine |<----| Knowledge Base |
             +-------------------+     +----------------+
                      |
                      v
                Junior Alert
                    
               Figure 3:  Alert Filtration Structure


   Compared with common expert base, Alert Filtration doesn't have 
   explaining module.  Since there are more works for Alert Fusion,  
   explaining module is unnecessary here.  Filtrating Engine works as 
   reasoning machine.  The main part of it is a Filtrating Tree.  This 
   structure is better for extension.  And it is also independent of 
   Knowledge Base.  The Knowledge of Filtrating Engine is from Knowledge 
   Base.  Knowledge Base locates in each host.  It contains the 
   information of the host, such as security grade, operating system, 
   open service, open port, fixed vulnerability, hardware inform and 
   Agent Location.  Filtrating Engine filtrates alerts by matching the 
   information from Knowledge Base.  Knowledge Base and Filtrating 
   Engine are both controlled by Admining System.

3.2 Alert Filtration Process

   The original alerts are divided into two kinds.  One is created by 
   the data which flows in the local machine, the other one is created by 
   the data which flows out of the local machine.  The flow-in alerts 
   are sent to Local Alert Filtration Module. Some of the flow-in alerts 
   are dumped, some are turned into the Junior Alerts.  The dumped 
   alerts will be archived.  The flow-out alerts (May be caused by 
   Trojan or worm) have different targets.  They may be in intranet or 
   extranet. So the flow-out alerts whose target is intranet will be 
   sent to Intranet Alert Filtration Module.  The others are turned into 
   the Junior Alerts directly.   
   
   




Yixian Yang, et al.          Expires March, 2006               [Page  6]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


                       Original Alerts
                              |
                              v
          flow-in +-------------------------+ flow-out
               +--| Source Address Judgment |--+
               |  +-------------------------+  |
               |                               |
               v                               v
   dump +-------------+       Intranet +----------------+ Extranet
   <----| Local Alert |           +----| Target Address |------+
        |  Filtration |           |    |   Judgment     |      |
        +-------------+           |    +----------------+      |
               |                  |                            |
               |                  |                            |
               |                  |                            |
               |                  |                            |
               |                  v                            v
               |     dump +---------------+ inform       +------------+
               |    <-----| Intranet Alert|------->      |   Alert    |
               |          |  Filtration   | coordination | Generation |
               |          +---------------+ agent        +------------+
               |                  |                            |
               v                  v                            v
         Junior Alert        Junior Alert                 Junior Alert
         
                 Figure 4: Alert Filtration General Process
                 
3.2.1 Local Alert Filtration Process
	 
   Local Alert Filtration is an important module, Most of the filtration 
   work is done by it.  The alerts which flow in must be processed.  The 
   alerts which flow to extranet can't be filtrated because it is 
   difficult to get the information of hosts in extranet.
    
   Local Alert Filtration has a structure of Filtration Tree.  Original 
   Alerts first pass the Security Grade, then pass the other five tests 
   one by one.  If the alert passes all the tests, then it will become 
   Junior alert, or it will be dumped. 
	 
	 














Yixian Yang, et al.          Expires March, 2006               [Page  7]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


                           Original Alert   	                       
                                 |   	                             
                                 v   	                             
                         +----------------+       	                 
                         | Security Grade |
                         +----------------+
                             . . . . .  
                           .  .  .  .  . 
                         .   .   .   .   .                       
                       .    .    .    .    . 
                     .-----.-----.-----.---->. Ordinal And
                   .      .      .      .      .
                 .       .       .       .       .
               .        .        .        .        .
             .         .         .         .         .
           v          v          v          v          v
       +----+    +-------+   +------+  +-------------+  +----------+
       | OS |    | Open  |   | Open |  |    Fixed    |  | Hardware |
       +----+    |Service|   | Port |  |Vulnerability|  |  Inform  |
                 +-------+   +------+  +-------------+  +----------+
           
           
                  Figure 5: Filtration Tree Structure
   
   
   o Security Grade
   
      Security Grade is dynamically set by IMS and Loading the five 
      following modules is decided by security Grade.  If the traffic is 
      so heavy that system can't afford and the system isn't important, 
      the Security Grade should be reset, the too much alerts will be 
      dumped directly and the heavy pressure of system is eased.
      
      When the alert comes, Knowledge Base is checked to get Security 
      Grade.  If the grade is low, load the modules following the grade, 
      or load all the modules directly.  If the grade is "Ignore", then 
      all the modules are skipped, all the alerts are dumped.
     
   o Operating System
   	
      Local operating system and operating system which is influenced 
      are checked in this module.  If Local OS is influenced, go to the 
      next module, or the alert will be dumped.
      
      This module can identify incidents such as Red Code attacks Linux 
      host.  This module mainly deals with the attack which uses the 
      vulnerabilities of OS.  There are much more vulnerabilities than 
      OS.  So matching OS is more efficient than matching vulnerability.
      
      Since alert should contains the influenced OS, the Detecting 
      Engine needs to be rebuilt.  CVE vulnerability list will be 
      helpful. All the information of vulnerability can be found there.


Yixian Yang, et al.          Expires March, 2006               [Page  8]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


   o Open Service
   
      The attacked service in alert and local open service are checked 
      in this module.  If the attacked service is not open in local 
      host, then the alert is dumped, or the next module is launched. 
      
   o Open Port
   
      The attacked port in alert and local open port are checked in this 
      module.  If the attacked port is not open in local host, then 
      dump the alert, or go to the next module. 
      
   o Fixed Vulnerability
   
      The attacked vulnerability and the fixed vulnerability of local 
      host are checked in this module.  If the attacked vulnerability is 
      in the fixed vulnerability list of local host, the attack is 
      unavailable, the alert will be dumped. 
      
   o Hardware Inform
   			
      Some hardware may has special protecting effect, so this module is 
      for these hardware.
   	  
   	  
   	  
   	  
                          Original Alert
                                 |
                                 v
                         +----------------+ Unmatched
               +---------| Security Grade |---------->dump
               |         +----------------+
               |                 |
               |                 v
               | Control +----------------+ Unmatched
               +---------|      OS        |---------->dump
               | Message +----------------+
               |                 |
               |                 v
               | Control +----------------+ Unmatched
               +---------|  Open Service  |---------->dump
               | Message +----------------+
               |                 |
               |                 v
               | Control +----------------+ Unmatched
               +---------|   Open Port    |---------->dump
               | Message +----------------+
               |                 |
               |                 v
             



Yixian Yang, et al.          Expires March, 2006               [Page  9]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


               | Control +----------------+ Unmatched
               +---------|     Fixed      |---------->dump
               | Message |  Vulnerability |
               |         +----------------+    
               |                 |
               |                 v
               | Control +----------------+ Unmatched
               +---------| Hardware Inform|---------->dump
                 Message +----------------+     
                                 |              
                                 v 
                         +----------------+
                         |     Alert      |
                         |   Generation   |
                         +----------------+ 
                                 |
                                 v  
                            Junior Alert         
                            
                            
              Figure 6: Local Alert Filtration Process
            
            
3.2.2 Intranet Alert Filtration Process
  
   The alert created by the data which flows to Intranet is processed in 
   this module. 
   
   First, the Knowledge Base is checked to find whether the target host 
   has an agent.  If the target host has an agent, the local host dumps 
   the alert.  The target host will create the alert.  It can reduce 
   redundant alerts.  It's also a preparation for Alert Fusion.
   
   
                           Original Alert 
                                 |
                                 v
                          +--------------+ Yes
                          | Target Agent |------> dump 
                          |   Judgment   |
                          +--------------+                        
                                 | No
                                 v   
                        +------------------+ 
                        | Agent Generation |---->Inform 
                        +------------------+     Coordination Agent
                                 |
                                 v
                            Junior Alert
                            
                  
              Figure 7: Intranet Alert Filtration Process          
              
  
Yixian Yang, et al.          Expires March, 2006               [Page 10]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


4. Alert Fusion Model
   
   The Alert Fusion composes of Alert Classification, Alert Corelation 
   and Situation Assessment. 
   
4.1 Alert Fusion structure


                                      ^
                        senior Alert  | 
       +------------------------------+-----------------------------+
       |                              |            Alert Fusion     |
       |                     +--------+--------+                    |
       |                     |    Assessing    |                    |
       |                     +-----------------+                    |
       |                      ^               ^                     |
       | Corelated Alert      |               |                     |
       |                      |               |                     |
       |             +--------+---+         +-+----------+          |
       |             | Corelating |   ...   | Corelating |          |
       |             +------------+         +------------+          |
       |               ^       ^                     ^              |
       | Alert Class   |       |                     |              |
       |               |       |                     |              |
       |    +----------+--+ +--+----------+        +-+-----------+  |
       |    | Classifying | | Classifying |  ...   | Classifying |  |
       |    +-------------+ +-------------+        +-------------+  |
       |           ^                ^                    ^          |
       |           |                |                    |          |
       +-----------+----------------+--------------------+----------+
      Junior Alert |                |                    |
            +------+------+---------+----------+---------+-----+
            |             |                    |               |          
        +--------+    +--------+           +--------+      +--------+
        |Analysis|    |Analysis|    ...    |Analysis|      |Analysis|
        +--------+    +--------+           +--------+      +--------+


               Figure 8: The Alert Fusion Structure
                        in Large-scale Distribute IMS
                        
                        
   The Junior Alert was sent to Alert Classification module by Alert 
   Filtration in Analysis Layer.  The alerts are classified there.  Then 
   the Alert Class is sent to Alert Corelation module.  The Alert 
   Classes are corelated with each other.  Then the corelated alerts 
   are sent to Alert Assessment module.  The reliability is given to 
   each alert.  The alert with low reliability could be dumped or 
   kept as reference information for administrators.                    
                        




Yixian Yang, et al.          Expires March, 2006               [Page 11]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


4.2 Concept of Alert Class

   Alerts are used to be classified by methods of attack, such as the 
   class of Trojan, Worm, and so on.  In this way of classifying, each 
   attack has to be arranged to build the attacking scene for alert 
   fusion.  When another scene is needed, attacks must be rearranged. 
   Even in the same attacking scene, if one or more attacks can be 
   replaced by some others, the scene must be rebuilt along with the 
   changing of attacks.  So it's a hard way of building attacking scene, 
   and when the sequence of attacks changes, it can't be recognized. 
   
   To solve the problem above, a new classifying way is proposed in this 
   document.  Alerts can be classified into three classes: Invalidation, 
   Scan and Penetrate by intensions of attacks.
   
   Class of Invalidation: Land, Smurf, Syn-Flood, some other 
   vulnerabilities of buffer overflow and so on are in this class.  The 
   intention of these attacks is paralyzing the system and making it 
   invalid.
   
   Class of Scan: nmap and some other scanning tools are usually used to 
   detect the active hosts ,get information of hosts, such as operating 
   system type, username, password and so on.  The intention of attacks 
   is getting the information and preparing for the real attack 
   following. 
   
   Class of Penetrate: Breaking into others' computers is the final 
   intention of all attacks.  Attacks of this class are to finish the 
   final work.  They are mainly Trojans and some vulnerabilities of  
   getting privileges.
   
   Nearly all the attacks can be classified into these three classes. 
   Through finding the corelation of the classes, we can find out the 
   complicated attacks from millions of alerts. 
   
4.3 Alert Fusion Process


                       Junior Alert
                             |
                             v
                  +----------------------+
                  | Alert Classification |
                  +----------------------+ 
                             |
                             v
                    +------------------+
                    | Alert Corelation |
                    +------------------+    
                             |
                             v    



Yixian Yang, et al.          Expires March, 2006               [Page 12]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


                  +----------------------+
                  | Situation Assessment |
                  +----------------------+  
                             |
                             v
                       Senior Alert
                       
               Figure 9: Alert Fusion Process
         

   There are three modules in Alert Classification.  Alert Fusion Time, 
   Alert Property Classification and Alert Class Clustering.
   
   There are two modules in Alert Corelation.  Basic Corelation and 
   Advanced Corelation.
   
   Situation Assessment is an independent part.  It is removable.
   
4.3.1 Alert Classification

   1) Alert Fusion Time
   
      Createtime is a property of alert.  It describes the time when the 
      alert is created.  Alert Fusion Time is a scope.  The alerts are 
      picked up in this scope based on createtime.
      
   2) Alert Property Classification
   
      Classification is a property of a alert.  The alerts are 
      classified into Invalidation Class, Scan Class or Penetrate Class 
      by this property.
      
   3) Alert Class Clustering
   
      There are different alerts in Alert Class.  It is necessary to 
      cluster the alerts.
      
      a) Repeated Alerts Merging
       
         Many of alerts are repeated, such as a hacker attacks a host 
         with Syn-Flood.  Host will get many Syn-Flood alerts with the 
         same source and target address.  These are redundant alerts. 
         They will be merged as one alert and the amount will be 
         recorded as the parameter of the alert priority. 
         
      b) Same Target Alerts Merging
       
         After the merging of redundant alerts, there are still some 
         alerts with the same source address or target address.  The 
         reason why merging the alerts that have the same target 
         address is that target of attack is the key of corelation, and 
         attack sources are usually much more than targets.  So the 
         alerts in the class are clustered by target addresses.
        
Yixian Yang, et al.          Expires March, 2006               [Page 13]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


         In the end, the alerts are rearranged from high to low by 
         priority.  This can improve the efficiency of the corelation. 
      
      The Process:
      
         Input: Junior Alert
         
         Output: Alert Class (Invalidation, Scan, Penetrate)
      
         Step1  Search for the alerts with the same source and target 
                address, the alert priority adds the times which is 
                repeated.
     
         Step2  Merge the redundant alerts and delete the redundancies.
         
         Step3  Search for alerts with the same target address, merge 
                them as a cluster.  The cluster is treated as an alert, 
                but it keeps all its source addresses.
                
         Step4  After the merging, delete the single alerts that have 
                been merged.
                
         Step5  Rearrange the alerts in the cluster from high to low by 
                priority.  Compute the cluster priority.
                
         Step6  Rearrange the clusters and alerts in the alert class.
         
         Step7  Output the alert class.
      
      The process in C code:
      
       Repeated Alerts Merging

         Step1: 
         for (i=1;i<=m;i++) 
         {
           if( Alert[i].mark==0)            
                           // repeat mark is 0, it's not repeated
           {
             for(k=i+1;k<=m;k++)
             {
               if(Alert[i].source_address==Alert[k].source_address&&
                      Alert[i].target_address==Alert[k].target_address) 
                      
                           // find repeated alert
               {
                 Alert[k].mark=1;           
                 
                           // mark repeated alert, prepare for deleting
                           
                           
                           
                           

Yixian Yang, et al.          Expires March, 2006               [Page 14]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


                 repeat_num++;           
                 
                           // counter of repeated alert adds 1
                           
                 Alert[i].priority++;       
                           
                           // priority adds 1 
               }
             }
           }
         }
         
         Step2:
         for(i=1;i<=m;i++)          // delete repeated alerts
         {
           if(Alert[i].mark==1)     // find a repeated alert
           { 
             for(k=i+1;k<=m;k++)            
             
                                    // search for the unrepeated alert 
                                    // following the repeated one
                                   
             {
               if(Alert[k].mark==0) // find unrepeated alert
               {
                 Alert[i]=Alert[k];     
                                  // copy unrepeated one to the repeated
                 Alert[k].mark=1; 
                                    // mark it after copying
               }
             }
           }
         }
         for(i=m-repeat_num+1;i<=m) // delete repeated alerts behind
         {
           delete(Alert[i]);
         }

         The unrepeated alerts are picked out, the number is 
         m-repeat_num

       Same Target Alerts Merging
         
         Step3:
         n=m-repeat_num;    
         repeat_num=0;              // counter resets
         for(i=1;i<=n;i++)
         {
           if(Alert[i].mark==0)     // work on unmerged alerts
           {
             for(k=i+1;k<=n;k++)
             {


Yixian Yang, et al.          Expires March, 2006               [Page 15]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


               if(Alert[i].target_address==Alert[k].target_address) 
             
                                   // find an alert with the same target
             
               {
                 Alert[i]=combine(Alert[i],Alert[k]); 
                               
                                   // merge the alerts
                                   // keep the source addresses
                         
                 Alert[i].combine_num++;
                  
                               // record the number of alerts in cluster 
                 
                 Alert[k].mark=1;  // mark the alerts       
                 
                 repeat_num++;	   // counter adds 1
           
                 Alert[i].combine_flag=1; // mark merged alert
               }
             }
           }
         }
         
         Step4:
         for(i=1;i<=n;i++)          // delete merged alert
         {
           if(Alert[i].mark==1)     // find a merged alert
           {
             for(k=i+1;k<=n;k++)    // search for unmerged alert behind
             {  
                                
               if(Alert[k].mark==0) // find unmerged alert
               {
                 Alert[i]=Alert[k]; // copy unmerged one to the merged
               
                 Alert[k].mark=1;   // mark it after copying
               }
             }
           }
         }
         for(i=n-repeat_num+1;i<=n) // delete merged alerts behind
         {
           delete(Alert[i]);
         }

         Step5:
         for(i=1;i<=n-repeat_num;i++)  
         {
           if(Alert[i].combine_flag==1) //find cluster
           {
             for(k=1;k<=Alert[i].combine_num;k++) 
                              // arrange the high priority alert before

Yixian Yang, et al.          Expires March, 2006               [Page 16]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


             {
               Alert[i].priority=Alert[i].priority+Alert[i][k].priority;
                   
                               // compute cluster priority
               
               for(j=k+1;j<=Alert[i].combine_num;j++)     
               {
                 if(Alert[i][k].priority<Alert[i][j].priority)              
                 {
                   
                  cup=Alert[i][k];
                  
                  Alert[i][k]=Alert[i][j];
                  
                  Alert[i][j]=cup; 
                 }
               }
             }
           }
         }

         Step6:
         for(i=1;i<=n-repeat_num;i++)  
         {
           for(k=i+1;k<=n-repeat_num;k++)  
           {
             if(Alert[i].priority<Alert[k].priority)
             {
               cup=Alert[i];Alert[i]=Alert[k];Alert[k]=cup;                 
             }
           }
         }

4.3.2 Alert Corelation
   
   1) Basic Corelation
      
      The basic corelation is mainly realized by searching for alerts in 
      the different classes which have the same source and target 
      addresses.
      
      First, hacker scans the net, the alert in scan class is 
      created.  Then hacker chooses target, tries to get in the host by 
      vulnerability, the alert in penetrate class is created.  If the 
      penetrating loses, hacker may invalidated the host, the 
      alert in invalidation class is created.
      
      So the three alerts with the same source and target addresses can 
      be corelated.  An intermediate alert is created.
      
      The process:
      
      Input: Alert Class (Invalidation, Scan, Penetrate)
      
Yixian Yang, et al.          Expires March, 2006               [Page 17]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


      Output: Intermediate Alert
      
      Step1: traverse scan class, alert is called A.
      
      Step2: traverse invalidation class, alert is called B.  
      
      Step3: traverse scan penetrate class, alert is called C.
      
      Step4: If there are two alert in different class having the same 
             source and target address, then they should be corelated. 
             The intermediate alert is created.
             
      The process in C code
      
      for(i=1;i<=scan.target_num;i++)
      {
        for(j=1;j<=invalidation.target_num;j++)
        {
          for(k=1;k<=penetrate.target_num;k++)
          {
            if(scan[i].target_address==invalidation[j].target_address 
         && penetrate[k].target_address==invalidation[j].target_address) 
               
               // three alerts(A,B,C) have the same target
            {
              if(scan[i].source_address==invalidation[j].source_address 
         && penetrate[k].source_address==invalidation[j].source_address) 
              
               // A, B, C have the same source too
               
              connect(scan[i],invalidation[j],penetrate[k]); 
                                 
               // corelate A, B, C                                           
            }           
          elseif(scan[i].target_address==invalidation[j].target_address)  
                
               // A and B has the same target
            {
              if(scan[i].source_address==invalidation[j].source_address)     
                 
               // A and B has the same source
               
              connect(scan[i],invalidation[j]);    
                                           
               // corelate A and B
            }
            elseif(scan[i].target_address==penetrate[k].target_address)      
               
               // A and C has the same target
            {
              if(scan[i].source_address==penetrate[k].source_address)  
                       
               // A and C has the same source
               
Yixian Yang, et al.          Expires March, 2006               [Page 18]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


              connect(scan[i],penetrate[k]);    
                                              
               // corelate A and B
            }
            
            elseif(penetrate[k].target_address==
                   invalidation[j].target_address) 
      
               // C and B has the same target
            {
              if(penetrate[k].source_address==
                   invalidation[j].source_address)   
              
               // C and B has the same source
               
              connect(penetrate[k],invalidation[j]);               

               // corelate C and B
            }
          }
        }
      }   
      
   2) Advanced Corelation
   
      Basic Corelation is only used as a simple method, the direct 
      attack can be corelated by it.  But there are more and more 
      complicated attacking methods, such as distribute and reflect 
      attack.  So the Advanced Corelation is needed.
      
      IPspoofing is one of the complicated attacks.  It composes of 
      a series attacks.  Hacker(A)'s target is the server(C), and 
      host(B) is trusted by C.  So A will imitate B to get into C. 
      
      The process of IPspoofing:
      
       a. A invalidates B, B is paralyzed.
      
       b. A connects to C, guesses ISN.
      
       c. A imitates B to connect to C, and sends commands.
      
      The Alerts created:
      
       a. A->B, Invalidation Class.
      
       b. A->C, Scan Class.
      
       c. B->C, Penetrate Class.
      
      These attacks can't be corelated by basic corelation.  So the 
      Advanced Corelation is needed.
      

Yixian Yang, et al.          Expires March, 2006               [Page 19]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


      The process of Advanced Corelation:
       
       Input: Alert Class(Invalidation, Scan, Penetrate) and the single 
              alerts.
              
       Output: Senior Alerts
       
       Step1: Traverse invalidation class.  The target address is called 
              B.
       
       Step2: Traverse source addresses of B, the source is called A.
       
       Step3: Search for source A in scan class.
       
       Step4: Traverse scan class.  Search for the alert with source A, 
              Its target is called C.
              
       Step5: Traverse penetrate class.  Search for target C.
       
       Step6: Find the alert with target C.
       
       Step7: Traverse sources of the alert with target C in penetrate 
              class.  Search for source B.
              
       Step8: Find B, A->B, A->C, B->C can be corelated.  Senior alert 
              is created.
      
      The process in C code:

       for(i=1;i<=invalidation.target_num;i++)   
       {
         for(j=1;j<=invalidation[i].source_num;j++)   
         {
           for(k=1;k<=scan.source_num;k++)          
           {
           if(scan[k].source_address==invalidation[i][j].source_address)   
             {
              for(l=1;l<=penetrate.target_num;l++)              
               {
                if(scan[k].target_address==penetrate[l].target_address)  
                 {
                  for(a=1;a<=penetrate.source_num)     
                   {
                    if(penetrate[l][a].source_address==
                       invalidation[i].target_address) 
                       
                    connect(invalidation[i][j],scan[k],penetrate[l][a]);      
                     
                   }
                 }
               }
             }
           }

Yixian Yang, et al.          Expires March, 2006               [Page 20]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


         }
       }
       
4.3.3 Situation Assessment
   
   The Dempster-Shafer decision theory is considered a generalized 
   Bayesian theory.  It is proposed here to calculate the belief of 
   senior alerts.  The alerts will be judged by expert system based on 
   the belief.
   
   This is the example of IPspoofing:
   
    Assume situations of the senior alert is A1(IPspoofing) and A2.
   
    On t1, there is an alert in invalidation class(A->B).  This is state 
    S1.  Based on expert experience, probability mass function 
    m1(A1,A2)=(0.4,0.6).
   
    On t2, there is an alert in scan class(A->C).  This is state S2. 
    Based on expert experience, probability mass function 
    m2(A1,A2)=(0.5,0.5).
   
    On t3, there is an alert in penetrate class(B->C).  This is state 
    S3.  Based on expert experience, probability mass function 
    m3(A1,A2)=(0.8,0.2).
   
    On t3, there is an alert in penetrate class(B->C).  This is state 
    S4.  Based on expert experience, probability mass function 
    m4(A1,A2)=(0.8,0.2).
   
   Combine the data:
   
    m=m1¨’m2=(0.4,0.6)
   
    m=m¨’m3=(0.73,0.26)
   
    m=m¨’m4=(0.92,0.08)
   
















Yixian Yang, et al.          Expires March, 2006               [Page 21]
INTERNET-DRAFT           Alert Flitration and Fusion      September,2005


5. References

   [1]  Denning, D.E. An intrusion detection model[J], IEEE 
        Transactions on Software Engineering, 1987, 13(2):222-23.
   
   [2]  Bass-Intrusion detection systems and multisensor data fusion 
        [J], Communications of the ACM, 2000, 43(4):99-105.
        
   [3]  H.Debar, A.Wespi, "Aggregation and Correlation of Intrusion-
        Detection Alerts", In Proceedings of the Fourth International 
        Symposium on the Recent Advanced in Intrusion Detection
        (RAID'2001), LNCS2 212, pp.85-1032001.
        
   [4]  F.Cuppens, Managing Alerts in a Multi-Intrusion Detection 
        Environment, In 17th Annual Computer Security Applications 
        Conference New-Orleans, New-Orleans, USA, December 2001.
        
   [5]  Stuart Staniford etc. Practical Automated Detection of Stealthy 
        Portscans. Silicon Defense, 
        http://www.silicondefense.corn/software/spice/index.htm.
        
   [6]  S.Kumar and E.Spaford. An Application of Patern Matchingin 
        Intrusion Detection. Department of Computer Sciences, Purdue 
        University, CSD-TR-94-013, Coast TR 94-07, 1994.
        
   [7]  S.Kumar. Classification and Detection of Computer Intrusions. 
        PhD thesis, Department of Computer Sciences, Purdue University, 
        August 1995.
        
   [8]  Slagell,M. The Design and Implementation of MAIDS (Mobile Agent 
        Intrusion Detection System) . Master's thesis, Computer Science 
        Department, Iowa State University, 2001.

   [9]  G.Helmer, J.Wong, M.Slagell, V.Honavar, L.Miller and R.Lutz. 
        Software Fault Tree and Colored Petri Net Based Specification, 
        Design and Implementation of Agent-Based Intrusion Detection 
        Systems. Submited to ACM Transactions on Information and System 
        Security (TISSEC). 
        
   [10] Jain, K. and Sekar, R. User-Level Infrastructure for System Call 
        Interposition: A Platform for Intrusion Detection and 
        Confinement. In Proceedings of the Year 2000 Network and 
        Distributed Systems Security Symposium (NDSS 2000).

   [11] Warrender, C., Forrest, S., and Pearlmutter, B.Detecting 
        Intrusions Using System Calls: Alternative Data Models. In 
        Proceedings of the 1999 IEEE Symposium on Security and Privacy.
        
   [12] Helmer, G., Wong, J., Honavar, V., and Miller, L. Automated 
        Discovery of Concise Predictive Rules for Intrusion Detection. 
        Technical Report TR99-01, Department of Computer Science, Iowa 
        State University.


Yixian Yang, et al.          Expires March, 2006               [Page 22]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


   [13] Hofmeyr, S.A.,Forrest, S., and Somayaji, A. Intrusion Detection 
        Using Sequences of System Calls. Journal of Computer 
        Security, 6(3):151180,1998. 

   [14] T.Tidwell, R.Larson, K.Fitch and J.Hale. "Modeling Internet 
        Attacks". Proceedings of System Calls. Journal of Computer 
        Security, 6(3):151180,1998. the 2001 IEEE Workshop on 
        Information Assurance and Security, pp .54-59,2001.
        
   [15] Ming-Yuh Huang, Thomas M.Wicks. A Large-scale Distributed 
        Intrusion Detection Framework Based on Attack Strategy Analysis. 
        Technical Report, Boeing Company, Seattle, WA,U.S.A.

   [16] C.Geib and R.Goldman. Plan Recognitionin Intrusion Detection 
        Systems. In DARPA Information Survivability Conference and 
        Exposition(DISCEX), June 2001.
   
   [17] C.Geib and R.Goldman. Probabilistic Plan Recognition for Hostile 
        Agents. In Florida 115 AI Research Symposium (FLAIR), Key-West, 
        USA, 2001.

   [18] Ulf Lindquist and Philip Porras. Detecting Computer and Network 
        Misuse Through the Production-Based Expert System Toolset (P-
        Best). In IEEE Symposium on Security and Privacy, Oakland, USA, 
        1999.

   [19] A.Mounji and B.Le Charlier. Continuous Assessment of a Unix 
        Configuration: Integrating Intrusion Detection and Configuration 
        Analysis. In ISOC'97 Symposium on Network and Distributed System 
        Security, San Diego, USA, February1997.
        
   [20] DEMPSTER A P. Upper and lower probabilities induced by a 
        multivalued mapping [J]. Annals of Mathematical Statistics, 
        1967(38): 77-87.
        
   [21] SHAFER G. A mathematical theory of evidence [M].Princeton: 
        Princeton University Press, 1976.
        
















Yixian Yang, et al.          Expires March, 2006               [Page 23]
INTERNET-DRAFT           Alert Filtration and Fusion      September,2005


6. Acknowledgement

   The authors gratefully acknowledge the contributions of Ming Cao, 
   Xiuling Zhu, Huayi Rao, Xinliu Wang and Shuai Zeng.

7. Authors' Addresses

   Yixian Yang
   Information Security Center,
   Beijing University of posts and telecom.(BUPT),
   Beijing, China,100876
   Phone:8610-62283366
   Email:yxyang@bupt.edu.cn

Full Copyright Statement

   Copyright (C) The Internet Society (2005).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

Yixian Yang, et al.          Expires March, 2006               [Page 24]