1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit-...

Post on 06-Apr-2016

216 views 0 download

Tags:

Transcript of 1 Diplomverteidigung Peter Danielis Realisierung und Implementierung eines Algorithmus zur Echtzeit-...

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

2

Gliederung

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

3

Gliederung

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

4

Motivation

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

5

Gliederung

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

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

7

Gliederung Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung

Aho-Corasick-Algorithmus Set-Horspool-Algorithmus

Realisierung des Designs Verifikation durch Simulation Ergebnisse Zusammenfassung

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

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}

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}

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}

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

13

Gliederung

Motivation Intrusion Detection Systeme Signaturanalyse mittels Mustererkennung Realisierung des Designs

Leistungsabschätzung Verifikation durch Simulation Ergebnisse Zusammenfassung

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

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

16

Gliederung

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

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

18

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

Simulationsergebnisse Testergebnisse

Zusammenfassung

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

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)

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)

22

Gliederung

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

Ausblick

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

24

Ausblick

Hybride Architektur WildCards MD5-Hashes Muster-

erkennung

Datenquelle

Profilerstellung

Anomalie-erkennung

Reaktion

Muster

Signaturanalyse

25

Vielen Dank für Ihre Aufmerksamkeit!

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

27

Sicherheit in Computernetzwerken

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

Internet

HIDS

LAN

Firewall

NIDS

NIDS

Host

Host

Host

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

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

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

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

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

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

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'

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

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“)

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)

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)

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