orchids on the value of rigor in intrusion detection
play

OrchIDS: on the value of rigor in intrusion detection Jean - PowerPoint PPT Presentation

OrchIDS: on the value of rigor in intrusion detection Jean Goubault-Larrecq CPS, Grenoble, July 08 2014 vendredi 11 juillet 14 Outline 1.A few scary stories about computer security 2. ORCHIDS : an intrusion prevention system 3. Semantics and


  1. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) Orchids threads: (none) vendredi 11 juillet 14

  2. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=57, euid=500, tgt=58 vendredi 11 juillet 14

  3. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  4. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  5. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  6. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  7. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  8. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  9. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  10. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  11. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  12. How it works Flow of events: open (”/etc/passwd”, ”r”, pid =58, euid =500) ptrace ( SYSCALL , pid =100, 101) ptrace ( ATTACH , pid =57, euid =500, 58) ptrace ( GETREGS , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exec ( prog =”modprobe”, pid =101) ptrace ( POKETEXT , pid =100, 101) ptrace ( ATTACH , pid =100, euid =500, 101) ptrace ( POKETEXT , pid =100, 101) exit ( pid =58) ptrace ( DETACH , pid =100, 101) logged events: ptrace Orchids threads: (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=57, euid=500, tgt=58 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) logged events: pid=100, euid=500, tgt=101 ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 ε (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) pid=100, euid=500, tgt=101 vendredi 11 juillet 14

  13. Related work • P-Best [Lindqvist-Porras 1999] • Statl [Eckmann-Vigna-Kemmerer 2000] • Chronicles [e.g., Morin-Debar 2003] • Lambda [Cuppens-Miege 2002] • Sutekh [Pouzol-Ducassé 2002] • Blare [George-VietTriemTong-Mé 2009] • RV-Monitor [Rosu et al. 2008, 09, 12, 14] • ... and probably many others vendredi 11 juillet 14

  14. Outline 1.A few scary stories about computer security 2. ORCHIDS : an intrusion prevention system 3. Semantics and algorithms 4. NetEntropy : detecting subverted cryptographic flows 5.Conclusion vendredi 11 juillet 14

  15. Outline 1.A few scary stories about computer security 2. ORCHIDS : an intrusion prevention system 3. Semantics and algorithms 4. NetEntropy : detecting subverted cryptographic flows 5.Conclusion vendredi 11 juillet 14

  16. Semantics, and detection algorithms • Semantics: what should Orchids detect? • Algorithm: how should I detect it? (This is what I showed you.) • Semantics dictates the algorithm. • ... somehow opposite to the average coding attitude • we like to think algorithmically • we are eager to code http://www.sadgrin.com/wp-content/uploads/2013/03/geek-300x300.jpg vendredi 11 juillet 14

  17. Semantics, and detection algorithms • Semantics: what should Orchids detect? • Algorithm: how should I detect it? (This is what I showed you.) • Semantics dictates the algorithm. • ... somehow opposite to the average coding attitude • we like to think algorithmically • we are eager to code http://www.sadgrin.com/wp-content/uploads/2013/03/geek-300x300.jpg vendredi 11 juillet 14

  18. Semantics, 1 • ORCHIDS looks for subsequences of events (« runs ») A A A ptrace ( ATTACH , ...) B ptrace ( DETACH , ...) ptrace ( GETREGS , ...) B B A B A exec (...) B ptrace ( SYSCALL , ...) A ptrace ( POKETEXT , ...) A ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 � (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) vendredi 11 juillet 14

  19. Semantics, 1 • ORCHIDS looks for subsequences of events (« runs ») A A A ptrace ( ATTACH , ...) B ptrace ( DETACH , ...) ptrace ( GETREGS , ...) B B A B A exec (...) B ptrace ( SYSCALL , ...) A ptrace ( POKETEXT , ...) A ptrace (GETREGS, ptrace exec ptrace Pid,Tgt ) ptrace ptrace 1 2 3 4 5 6 7 � (ATTACH, ( Tgt ) (SYSCALL, (POKETEXT, (DETACH, Pid,Euid,Tgt ) Pid,Tgt ) Pid,Tgt ) Pid,Tgt ) vendredi 11 juillet 14

  20. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events • In this (simple) example, many possible runs (even by fixing the start event) Here is one: A A A A A A A A A A A A A A A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A A 1 2 3 vendredi 11 juillet 14

  21. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events • In this (simple) example, many possible runs (even by fixing the start event) Another one: A A A A A A A A A A A A A A A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A A 1 2 3 vendredi 11 juillet 14

  22. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events • In this (simple) example, many possible runs (even by fixing the start event) Yet another: A A A A A A A A A A A A A A A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A A 1 2 3 vendredi 11 juillet 14

  23. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events • In this (simple) example, many possible runs (even by fixing the start event) A A A A A A A A A A A A A A A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time A A 1 2 3 vendredi 11 juillet 14

  24. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an (Here, .) iff 1 2 A A A A A A A A A A A A A A A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time starting A run is minimal iff is minimal (w. fixed) and ... ws i 1 . < i k iff A A 1 2 3 vendredi 11 juillet 14

  25. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an Another example: iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time 3 starting A run is minimal iff 1 2 3 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  26. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices starting ws i 1 < i 2 < . . . < i k an This one, stops at minimal (=8): iff . < i k iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time 3 starting A run is minimal iff 1 4 5 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  27. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an And this one too: iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time 3 starting A run is minimal iff 1 4 7 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  28. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an And again this one! iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time 3 starting A run is minimal iff 1 2 3 4 5 6 7 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  29. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 8 but take indices instead of letters... 3 1 2 3 8 D C 1 2 5 8 1 2 7 8 A B • and let’s sort in increasing order 1 2 4 1 4 5 8 1 4 7 8 1 6 7 8 1 2 3 4 5 8 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 4 5 6 7 8 1 2 3 4 5 6 7 8 vendredi 11 juillet 14

  30. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 8 but take indices instead of letters... 3 1 2 3 8 D C 1 2 5 8 1 2 7 8 A B • and let’s sort in increasing order 1 2 4 1 4 5 8 1 4 7 8 1 6 7 8 1 2 3 4 5 8 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 4 5 6 7 8 1 2 3 4 5 6 7 8 vendredi 11 juillet 14

  31. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 8 but take indices instead of letters... 3 1 2 3 8 D C 1 2 5 8 1 2 7 8 A B • and let’s sort in increasing order 1 2 4 1 4 5 8 1 4 7 8 1 6 7 8 1 2 3 4 5 8 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 4 5 6 7 8 1 2 3 4 5 6 7 8 vendredi 11 juillet 14

  32. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 5 8 D C 1 2 7 8 1 4 5 8 A B • and let’s sort in increasing order 1 2 4 1 4 7 8 1 6 7 8 1 2 3 4 5 8 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 4 5 6 7 8 1 2 3 4 5 6 7 8 1 8 vendredi 11 juillet 14

  33. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 5 8 D C 1 2 7 8 1 2 3 4 5 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 4 5 6 7 8 1 2 3 4 5 6 7 8 1 8 vendredi 11 juillet 14

  34. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 5 8 D C 1 2 7 8 1 2 3 4 5 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 2 3 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 4 5 6 7 8 1 8 vendredi 11 juillet 14

  35. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 5 8 D C 1 2 7 8 1 2 3 4 5 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 2 3 4 5 6 7 8 1 4 5 8 1 4 7 8 1 4 5 6 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  36. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 5 8 D C 1 2 7 8 1 2 3 4 5 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 7 8 1 2 3 6 7 8 1 2 5 6 7 8 1 2 3 4 5 6 7 8 1 4 5 8 1 4 7 8 1 4 5 6 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  37. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 5 8 1 2 7 8 1 2 5 6 7 8 1 2 3 4 5 6 7 8 1 4 5 8 1 4 7 8 1 4 5 6 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  38. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 5 6 7 8 1 2 5 8 1 2 7 8 1 2 5 6 7 8 1 4 5 8 1 4 7 8 1 4 5 6 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  39. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 5 6 7 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 7 8 1 4 5 6 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  40. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 5 6 7 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  41. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 5 6 7 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  42. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 4 5 6 7 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  43. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 4 5 6 7 8 1 2 3 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 6 7 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  44. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 4 5 6 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 8 1 2 5 6 7 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  45. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 4 5 6 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 8 1 4 5 6 7 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  46. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 4 5 6 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  47. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 7 8 D C 1 2 3 4 5 6 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  48. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 5 6 7 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  49. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 8 but take indices instead of letters... 3 1 2 3 4 5 6 7 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  50. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  51. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  52. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  53. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  54. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 The largest 1 4 5 6 7 8 1 4 5 8 1 4 7 8 1 6 7 8 1 8 vendredi 11 juillet 14

  55. The lexicographic ordering A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • ... or dictionary order 1 2 3 4 5 6 7 8 but take indices instead of letters... 3 1 2 3 4 5 8 D C 1 2 3 4 7 8 1 2 3 6 7 8 A B • and let’s sort in increasing order 1 2 4 1 2 3 8 1 2 5 6 7 8 1 2 5 8 1 2 7 8 The largest The smallest 1 4 5 6 7 8 1 4 5 8 1 4 7 8 ... and most informative 1 6 7 8 1 8 vendredi 11 juillet 14

  56. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time The minimal run: 3 starting A run is minimal iff 1 2 3 4 5 6 7 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  57. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time The minimal run: 3 starting A run is minimal iff 1 2 3 4 5 6 7 8 is minimal (w. fixed) and ... ws i 1 . < i k D C iff A B 1 2 4 vendredi 11 juillet 14

  58. Semantics, 2: «shortest runs» • ORCHIDS looks for subsequences of events ching subsequences starting • A run is an increasing sequence of indices ws i 1 < i 2 < . . . < i k an iff A C D C D C D B A A C B D C A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 We would like to be warned at the earliest possible time The minimal run: 3 starting A run is minimal iff 1 2 3 4 5 6 7 8 is minimal (w. fixed) and ching subsequences starting ws i 1 . < i k D C the sequence ws i 1 < i 2 < . . . < i k an iff is lexicographically minimal iff A B 1 2 4 vendredi 11 juillet 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend