Upload
angelika-sachs
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
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