| 1 | |
| 2 | {{{ |
| 3 | Merge Algorithm |
| 4 | output: correlated_event queue |
| 5 | global: event_scenario , MO_win_size |
| 6 | |
| 7 | 1. pull the top event |
| 8 | 2. if OO_events queue == NULL |
| 9 | 3. new OO_events as event_scenario in event queue |
| 10 | 4. OO_events inherit event |
| 11 | 5. while event-queue ≠ NULL |
| 12 | { |
| 13 | 6. pull the top event |
| 14 | 7. if event.timestamp < ( OO_events.end_time + win_size ) |
| 15 | 8. Search a correlated_event in correlated_event queue that correlated_event.{ IP_dst, |
| 16 | port_dst,signature } == event.{ IP_dst, port_dst, signature } |
| 17 | 9. correlated_event _event.endtime max(event.endtime, MO_event.endtime) |
| 18 | 10. correlated_event.reference append (event.id ) |
| 19 | 11. correlated_event.IP_src correlated_event. IP_ src ∪ event. IP_ src |
| 20 | correlated_event t.port_src correlated_event. port_src ∪ event. port_ src |
| 21 | 12. else |
| 22 | 13. new OO_events as event_scenario in event queue |
| 23 | 14. OO_events inherit event |
| 24 | } |
| 25 | 15 return correlated_event queue |
| 26 | |
| 27 | … |
| 28 | |
| 29 | }}} |
| 30 | |