39
1 Diplomverteidigu ng Peter Danielis Realisierung und Implementierung Realisierung und Implementierung eines Algorithmus zur Echtzeit- eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Mustererkennung in einem Ethernet- Datenstrom Datenstrom

1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

Embed Size (px)

Citation preview

Page 1: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

1

DiplomverteidigungPeter Danielis

Realisierung und Implementierung Realisierung und Implementierung eines Algorithmus zur Echtzeit-eines Algorithmus zur Echtzeit-Mustererkennung in einem Ethernet-Mustererkennung in einem Ethernet-DatenstromDatenstrom

Page 2: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

2

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 3: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

3

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 4: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

4

Motivation

Wachsende Bedeutung des WWW Sicherheitslücken Angriffspunkte Sicherheitsmechanismen Hardwarelösung Flexibilität: FPGA Adaptivität: Anpassung an Bedrohungen

Page 5: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

5

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 6: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

6

Intrusion Detection Systeme NIDS, HIDS Online-/Offline-Auswertung der Daten Signaturanalyse vs. Anomalieerkennung

Internet

HIDS

LAN

Firewall

NIDS

NIDS

Host

Host

Host

zunehmende Toleranz

Anzahl

FalsePositives

FalseNegatives

Wahr-nehmung ReaktionMuster-

erkennung

Muster

Page 7: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

7

Gliederung Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung

Aho-Corasick-Algorithmus Set-Horspool-Algorithmus

Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 8: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

8

Signaturanalyse mittels Mustererkennung Makro- bzw. Mikromuster

Algorithmen simultane Suche nach mehreren Mustern schnelle Suche Eignung für Hardware

Aho-Corasick stets lineare Zeitkomplexität

Set-Horspool Zeitkomplexität abhängig von Alphabetgröße, Länge und Anzahl

der Muster gut geeignet für wenige Muster bei großem Text

y1...yk...yj...yk+m-1...yn

x1...xi...xm

Page 9: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

9

Aho-Corasick-Algorithmus

Trie 6-Tupel

Zustände Alphabet goto-Funktion Fehlerfunktion Ausgabefunktion Startzustand

0 1 2 8 9

6 7

3 4 5

h e r

i s

s h e

snot{h,s}

Page 10: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

10

Aho-Corasick-Algorithmus

SuchvorgangVorwärtssuche

g(0,u) = 0

g(0,s) = 3

g(3,h) = 4

g(4,e) = 5 à output(5) = {she,he}

Eingabetext„ushers“

g(5,r) = fail à f(5) = 2g(2,r) = 8

g(8,s) = 9 à output(9) = {hers}

0 1 2 8 9

6 7

3 4 5

h e r

i s

s h e

s

{he} {hers}

{she,he}

{his}

not{h,s}

Page 11: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

11

Set-Horspool-Algorithmus

Trie Schlüsselwörter

rückwärts

0 1 2 3

4 5

7 8 9

e h s

r e

m i h

not{e,r,m}

6h

{he} {she}

{her}

{him}

Page 12: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

12

Set-Horspool-Algorithmus

Suchvorgang Rückwärtssuche Schiebefunktion shift

lmin = 2

c e h i m r s #shift(c) 1 1 1 2 2 2 2

u s h e r sy

Suchphase1. Versuch

Vergleich, ob s Nachfolger der Wurzel istMismatch à Schieben um 2 (shift[s] = 2)

u s h e r sy

2. Versuch

Vergleich, ob e Nachfolger der Wurzel istMatch à Suche im Baum à „he“ gefunden

Page 13: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

13

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs

Leistungsabschätzung Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 14: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

14

Realisierung des Designs

Frame-Check-Komponente

I/O-Block

Pattern-Matching-Komponente

In Out

I/O-Block

EDK-Block mit PowerPC-CPU & DDR-SDRAM

Xilinx ML405-Board mit Virtex4-FPGA

Suchmodul

LCDAnzahl gefundener Muster

Page 15: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

15

0100200300400500600700800

0 500 1000 1500 2000 2500 3000 3500 4000 4500

Anzahl der Speicherzugriffe für Aho-Corasick für einen maximal langen Frame

Dur

chsa

tz in

Mbi

t/s

Speicherzugriffszeitt = 290 ns

Speicherzugriffszeitt = 100 ns

Speicherzugriffszeitt = 50 ns

Speicherzugriffszeitt = 30 ns

Leistungsabschätzung Leistungsfähigkeit durch Speicherzugriffszeit begrenzt Geringer Durchsatz Puffer voll Verwerfen von Frames

Page 16: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

16

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Page 17: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

17

Verifikation durch Simulation

system_tb.vhdsystem_th.vhd

Empfangs-ClientSende-ClientTestfall 1:

Frame ohne Bedrohung

Testfall 2:Frame mit

Bedrohung beim 35. Byte

Testfall 3:Frame mit

Bedrohung beim 760. Byte

Shared variable(in system_tb_pack.vhd

definiert)

Sende-Server Empfangs-Server

BFM senden() BFM empfangen()

DUTErzeugung von

Takten, Reset und Timebomb

Boolean-Signale

BFM fürDDR-SDRAM-

Chip1

BFM fürDDR-SDRAM-

Chip2

Testfall 4:Frame mit

Bedrohung beim 1480. Byte

Testfall 5:100 Frames mit zufälliger Länge

und Payload

Page 18: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

18

Gliederung Motivation Sicherheit in Computernetzwerken Intrusion Detection Systeme Realisierung des Designs Verifikation durch Simulation Ergebnisse

Simulationsergebnisse Testergebnisse

Zusammenfassung

Page 19: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

19

0

100

200

300

400

500

600

700

0 200 400 600 800 1000 1200 1400

Position der Bedrohung

Durc

hsat

z M

bit/s

2 Bedrohungsmuster 8 Bedrohungsmuster 16 Bedrohungsmuster

Simulationsergebnisse (AC)

Aho-Corasick: keine verworfenen Frames

Page 20: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

20

0

100

200

300

400

500

600

0 200 400 600 800 1000 1200 1400

Position der Bedrohung

Durc

hsat

z M

bit/s

2 Bedrohungsmuster 8 Bedrohungsmuster 16 Bedrohungsmuster

Set-Horspool: bis zu 33 verworfene Frames

Simulationsergebnisse (SH)

Page 21: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

21

0,00%10,00%20,00%30,00%40,00%50,00%60,00%70,00%80,00%90,00%

100,00%

2 8 16

Anzahl vogespeicherter Bedrohungsmuster

Anz

ahl n

icht

ver

wor

fene

r Fra

mes

/An

zahl

ges

ende

ter F

ram

es

Testfall 1 (AC) Testfall 2 (AC) Testfall 3 (AC)Testfall 1 (SH) Testfall 2 (SH) Testfall 3 (SH)

Testergebnisse

Testfall 1: 10.000 TCP-Frames (1314 Byte) Testfall 2: 10.000 TCP-Frames (1314 Byte) Testfall 3: 10.000 UDP-Frames (132 Byte)

Page 22: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

22

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

Ausblick

Page 23: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

23

Zusammenfassung

Frame-Check-KomponenteI/O-Block

Pattern-Matching-Komponente

In OutI/O-Block

EDK-Block mit PowerPC-CPU & DDR-SDRAM

Xilinx ML405-Board mit Virtex4-FPGA

SuchmodulAnzahl gefundener Muster

LCD

EMAC SYNC FIFO

SYNC FIFO EMAC

Page 24: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

24

Ausblick

Hybride Architektur WildCards MD5-Hashes Muster-

erkennung

Datenquelle

Profilerstellung

Anomalie-erkennung

Reaktion

Muster

Signaturanalyse

Page 25: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

25

Vielen Dank für Ihre Aufmerksamkeit!

Page 26: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

26

ISO-OSI und Ethernet

Länge mindestens 64 Byte, maximal 1518 (1522 mit VLAN)

Präambel FCSNutzdaten mit PAD-FeldTyp-FeldMAC-

QuelladresseMAC-

ZieladresseSFD

Header Payload Trailer

VLAN-Tag

OSI-Schicht Protokollbeispiel7

23456

1

Anwendung ApplicationPresentation

SessionTransportNetworkData LinkPhysical

PräsentationSitzung

TransportVermittlungSicherung

Bitübertragung

HTTP

Ethernet

TCPIP

Page 27: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

27

Sicherheit in Computernetzwerken

Bedrohungen: Viren, Würmer, Trojaner Gegenmaßnahmen: Firewalls, IDS, Antivirenprogramme

Internet

HIDS

LAN

Firewall

NIDS

NIDS

Host

Host

Host

Page 28: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

28

Pattern-Top-Komponente

Anschluss an PLB über PLB-IPIF-Schnittstelle Adressierbar für Empfang von Lesedaten

Frame-Check-Komponente

EMAC1SYNC FIFO

Pattern-Matching-Komponente

search_enEMAC0 SYNC FIFO

MII Client Interface Data Interface Transmission Interface Client Interface MII

read_en wr_enackack

Suchkomponente IPIF-PLB-Interface

Suchmodul

LCDLCD InterfaceAnzahl gefundener Muster

Page 29: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

29

EDK-Block

Erstellung mit Xilinx EDK Präprozess durch PPC405-CPU ready-Signal Speicherung des Tries in DDR-SDRAM

PLB-DDR-Controller

PPC405-CPU

ready

CPU Interface

Memory Interface

PLB

64Mx32DDR-SDRAM

EDK-Block

Page 30: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

30

ID Depth Fail Output

Next(0) Next(1) Next(3) Next(4)

Next(252) Next(253) Next(254) Next(255)

…...

Bit

Wort

0 16 32 4815 31 47 63

0

1

64

Software-Präprozess

Aho-Corsasick Trie in Speicher schreiben ready-Signal senden

Set-Horspool Tabelle mit

Verschiebungswerten, lmin und Trie in Speicher schreiben

ready-Signal senden

ID Depth Output

Next(0) Next(1) Next(3) Next(4)

Next(252) Next(253) Next(254) Next(255)

…...

Bit

Wort

0 16 32 4815 31 47 63

0

1

64

Page 31: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

31

EMAC-Komponenten

100 Mbit/s Physikalisches Interface

4 Bit Empfangs- und Sendedaten Client Interface

8 Bit Empfangs- und Sendedaten Kontinuierlicher Datenstrom beim Senden von Frames

ack-Signal

EMAC1

EMAC-Wrapper

Sendeeinheit

Empfangs-einheit

PhysikalischesMII-Interface(100 Mbit/s)

ClientInterface

AusgehendeFrames

ack

EMAC0

EMAC-WrapperEmpfangs-

einheit

Sendeeinheit

PhysikalischesMII-Interface(100 Mbit/s)

ClientInterface

EingehendeFrames

ack

Page 32: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

32

SYNC-FIFO-Komponenten

Umsetzung Emac-Interface Datenpfadtyp

Zwischenspeichern der Frames Data-Interface: Synchronisation

mit Design-Takt Client-Interface: Synchronisation

mit EMAC-Takten read-enable-Signal zur Verzögerung

des byteweisen Auslesens byteweises Auslesen kompletter

Frames

Umsetzung Datenpfadtyp Emac-Interface

Zwischenspeichern der Frames Transmission-Interface:

Synchronisation mit Design-Takt Client-Interface: Synchronisation

mit EMAC-Takten write-enable-Signal zur Verzögerung

des byteweisen Schreibens kontinuierlicher Datenstrom zur EMAC

1 ack-Signal

SYNC-FIFO 0Empfangs-

FIFO

Sende-FIFO

ClientInterface

DataInterfaceread_en

ack

SYNC-FIFO 1

Sende-FIFO

Empfangs-FIFO

ClientInterfacewr_en

TransmissionInterface ack

Page 33: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

33

DDR-SDRAM 2 Chips Aufbau

Spalten Reihen

Strobe-Signale RAS CAS

64Mx32 DDR-SDRAM

PLB-DDRMemory

Controller DATA[0:31]

32

ADDR[0:12]

13

(Zum PLB)

...

...

... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-2

213-1

29-1

Interner Reihenspeicher...

Superzellen (2,1)

4 5 6 7

...

...... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-2

213-1

29-1

Interner Reihenspeicher...

4 5 6 7

16

16

Page 34: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

34

DDR-SDRAM RAS = ‘1‘ Reihe

Reihenspeicher

64Mx32 DDR-SDRAM

PLB-DDRMemory

Controller DATA[0:31]

32

ADDR[0:12]

13

(Zum PLB)

...

...

... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-2

213-1

29-1

Interner Reihenspeicher...

4 5 6 7

...

...... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-2

213-1

29-1

Interner Reihenspeicher...

4 5 6 7

16

16

RAS=’1'

Page 35: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

35

DDR-SDRAM64Mx32 DDR-SDRAM

PLB-DDRMemory

Controller DATA[0:31]

32

ADDR[0:12]

13

(Zum PLB)

...

...

... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-1

29-1

Interner Reihenspeicher...

4 5 6 7

...

...... ...

64Mx16 HYB25D256160BT-7-ChipSpalten

Rei

hen

0 1 2 3 29-20

1

2

3

213-1

29-1

Interner Reihenspeicher...

4 5 6 7

16

16

CAS=’1'

Superzelle(2,1)

Superzelle(2,1)

CAS = ‘1‘ Superzelle

PLB

Page 36: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

36

Frame-Check-Komponente

Klassifizierung der Ethernet-Frames Basic-/Tagged Frame IPv4

TCP ICMP UDP

search-enable-Signal an Pattern-Matching-Komponente für Untersuchung der Payload

wait-sof

check-type

IP

TCP

ICMP

forward

UDP

reset

sof = ´1´

endofframe

sof = ´0´

eof = ´1´

eof = ´0´cnt < 15

ethtype = X“0800“

not(ethtype = X“0800)

cnt < 21

search_en = ´1´

search_en = ´1´

cnt < 9

cnt < 5

cnt < 21

cnt = 9

cnt = 5

cnt = 21type = X“06“

type = X“01“

type = X“11“

type = other

VLAN

ethtype = X“8100“

cnt < 5

not(ethtype = X“0800“or ethtype = X“8100“)

Page 37: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

37

Aho-Corasick-Komponente Präprozess

ready = ‘1‘ Laden der

direkten Nachfolger der Wurzel

Datenbyte = Nachfolger der Wurzel Suchvorgang in

Payload Match

LCD-Ausgabe

idle

load-reg wait

load-reg

presearch

search-next wait

search

search-wait

search-next

reset

ready = ´1´

if data = nachf_wurzel

if output=´1´ then show pattern-cnt++

search_en = ´1´

if data ≠ nachf

search_en = ´1´

if reg loadedif

not(reg loaded)

Page 38: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

38

Set-Horspool-Komponente Präprozess

ready = ‘1‘ Laden von lmin und

direkten Nachfolgern der Wurzel

Datenbyte = Nachfolger der Wurzel Suchvorgang in

Payload Sonst

Verschiebungslänge holen

Match LCD-Ausgabe

idle

load-reg wait

load-reg

presearch

search-next wait

search

search-wait

search-next

reset

ready = ´1´

if data = nachf_wurzel

if output=´1´ then show pattern-cnt++

search_en = ´1´

if data ≠ nachf

search_en = ´1´

load-min wait

load-min shift

shift wait

if reg loaded

ifnot(reg loaded)

Page 39: 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit- Mustererkennung in einem Ethernet- Datenstrom

39

Testaufbau

Virtex 4-FPGA mit PowerPC-CPU

DDR SDRAM

DDR SDRAM

100 MHz-Oszillator 16x32 Zeichen LCD

100 Mbit/s EMAC

RJ-45

XilinxML405-Evaluation Board

100 Mbit/s EMAC

RJ-45

Windows-Rechner mit Wireshark

Linux-Rechner mit packETH