DANDRO PHOTOGALERIE

Transcription

DANDRO PHOTOGALERIE
WIMS – WLAN Intrusion Detection and Monitoring System
- WLAN INTRUSION DETECTION AND
MONITORING SYSTEM -
KONZEPT
Autoren:
Datum:
Status:
Version:
Institution:
Verteiler:
09.07.2004
Daniel Walther, Sandro Dähler
9. Juli 2004
Fertig gestellt
1.0
Hochschule für Technik und Informatik Biel, Telscom AG
Franz Meyer, Gerhard Schwab, Sathya Rao (Telscom AG), Daniel Walther, Sandro Dähler
1/27
WIMS – WLAN Intrusion Detection and Monitoring System
INHALTSVERZEICHNIS
Inhaltsverzeichnis.........................................................................................................................................2
1. Einleitung ..................................................................................................................................................3
2. Systemanforderungen ..............................................................................................................................4
3. Systemarchitektur.....................................................................................................................................4
3.1 Detaillierter Aufbau........................................................................................................................4
3.2 Subsysteme ......................................................................................................................................4
4. Prototyp.....................................................................................................................................................9
4.1 Access Point Service ....................................................................................................................11
4.2 Wireless IDS..................................................................................................................................13
4.3 Betriebssystem ..............................................................................................................................15
4.4 Serial Port ......................................................................................................................................15
4.5 Netzwerk Interface 1 ...................................................................................................................15
4.6 Netzwerk Interface 2 ...................................................................................................................15
4.7 Soekris Net4521............................................................................................................................15
4.8 Management Service ....................................................................................................................16
4.9 Integration in NetWACS.............................................................................................................18
5. Anhang ....................................................................................................................................................20
5.1 Skript Root Zertifikat...................................................................................................................20
5.2 Skript Server Zertifikat ................................................................................................................21
5.3 Skript Client Zertifikat.................................................................................................................22
5.4 Settings xpextensions...................................................................................................................22
5.5 Firewall...........................................................................................................................................23
5.6 UML Diagramm Integration NetWACS Datasource .............................................................24
5.7 UML Diagramm Integration NetWACS OC2TabIn..............................................................25
6. Abbildungsverzeichnis ..........................................................................................................................26
7. Referenzen ..............................................................................................................................................27
09.07.2004
2/27
WIMS – WLAN Intrusion Detection and Monitoring System
1. EINLEITUNG
Dieser Bericht zu der Phase Konzept dient zur Verfeinerung des gewählten Lösungsvorschlages. Dies ermöglicht eine genaue Beurteilung des Lösungsvorschlags.
In den Dokumenten Fertigprodukte und Marktanalyse gehen wir tiefer auf die verwendeten
Produkte und die auf dem Markt erhältlichen Produkte ein.
09.07.2004
3/27
WIMS – WLAN Intrusion Detection and Monitoring System
2. SYSTEMANFORDERUNGEN
Die im Dokument „Proposal“ definierten Anforderungen werden mit dieser Systemarchitektur
abgedeckt.
3. SYSTEMARCHITEKTUR
3.1 Detaillierter Aufbau
RADIUS Server
NetWACS
Monitoring, Controling, Alerting
IDS,
MGMT
Service,
Access
Point
WLAN
IDS,
MGMT
Service,
Access
Point
IDS,
MGMT
Service,
Access
Point
IDS,
MGMT
Service,
Access
Point
Abb. 1: Detaillierter Aufbau
3.2 Subsysteme
Die diversen Möglichkeiten unseres Systems können in folgende Subsysteme unterteilt und
beschrieben werden.
ƒ
Access Point
Der Access Point Service übernimmt die Anbindung der Wireless Clients an das Wireless
Netzwerk. Durch eine Authentifizierung am Wireless Netzwerk kann die Sicherheit dieses
Netzwerkes erhöht werden und ungebetene Gäste können nicht auf das Wireless Netzwerk
zugreifen.
Weiter bietet das System auch die Möglichkeit den Einsatz in einer IPv4 und IPv6
Umgebung. Es kann weiter noch in Erwägung gezogen werden, ob der Access Point auch
ein IPv6-to-IPv4 Tunneling durchführen soll. Dies würde ermöglichen, dass alle Wireless
09.07.2004
4/27
WIMS – WLAN Intrusion Detection and Monitoring System
Clients IPv6 Adressen bekommen, der Access Point aber noch an einem IPv4 Netzwerk
angeschlossen ist. Sollte dieses Tunneling nicht aktiviert sein, haben die Wireless Clients
keine Möglichkeit auf das IPv4 Netzwerk zuzugreifen.
o Authentifizierung und Authorisierung
Um eine gewisse Sicherheit und Schutz vor ungebetenen Gästen zu bieten ist es ein
Muss die Wireless Clients authentifizieren zu können. In unserem System geschieht
dies mit der Hilfe vom IEEE 802.1x Standard. Daraus verwenden wir die Methode
EAP/TLS. Dies bedeutet, die Wireless Clients werden anhand eines zuvor
verteilten Zertifikates authentifiziert. Dieses Zertifikat wird dabei vom Radius
Server überprüft. Wird dieses Zertifikat als Korrekt eingestuft, wird dem Wireless
Client den Zugang zum Wireless Netzwerk gewährt (Authorisierung).
Abb. 2: Authorisierungsvorgang EAP/TLS
09.07.2004
5/27
WIMS – WLAN Intrusion Detection and Monitoring System
Da im Juni 2004 der neue IEEE 802.11i Standart abgesegnet und veröffentlicht
wird, werden wir zukünftig die Authentifizierung mit diesem Standart durchführen.
Bei diesen Standart basiert die Verschlüsselung auf dem AES Algorithmus und ist
daher sicherer gestaltet werden.
Abb. 3: 802.11i
Bei dem genauen Studium vom IEEE Standart 802.11i fällt einem sofort auf,
dass die Änderung der Authentifizierung nur gering ist. Der wohl grösste
Unterschied die Entfernung von der schwachen RC4 Implementation. Wie schon
erwähnt wurde dieser mit dem AES Algorithmus ausgetauscht.
ƒ
Intrusion Detection System
Da die Sicherheit bei einem Wireless Netzwerk das grösste Problem ist, enthält unser
System auch ein Intrusion Detection System. Dieses System ermöglicht es dem
Administrator das Wireless Netzwerk genau zu überwachen. Ein solches System muss
mindestens folgende Probleme erkennen:
-
Falsche Access Point (Rogue Access Points)
-
Einbruchversuche (Attacken, DoS)
-
Entdecken von Wardrivern
Umso mehr ein solches System entdecken kann umso sicherer kann dieses eingestuft
werden. Da die Angriffe von ungebetenen Gästen sehr rasch entdeckt werden und darauf
reagiert werden kann.
09.07.2004
6/27
WIMS – WLAN Intrusion Detection and Monitoring System
ƒ
Management Service und Konsole
Ein Management Dienst ist in heutigen grösseren Wireless Netzwerken nicht mehr
wegzudenken. Dieser Dienst ermöglicht es uns zu jedem Zeitpunkt den Status des Wireless
Netzwerkes abzufragen. Darunter fallen Informationen wie „angeschlossene“ Clients,
Überwachung und Administration der Access Points (Konsole). Darüber hinaus bestünde
auch die Möglichkeit weitere Informationen von Clients zu erhalten (z.B. installierte
Patches, Firewallsoftware, Anti-Viren Software, usw.).
Die dazugehörende Managementkonsole soll ebenso einfach wie möglich als auch
unabhängig sein. Dies heisst, dass diese Konsole als Standalone Applikation betrieben
werden kann, aber auch die Möglichkeit bietet, diese ins Netwacs-System einzubinden. So
ist es Möglich beide System auch getrennt laufen zu lassen.
ƒ
Logging
Da bei all diesen Aufgaben sehr viele Daten anfallen werden, ist es unmöglich diese Daten
alle lokal auf dem Access Point zu speichern. Daher wird für alle Log-Files und Alerts ein
externes System benötigt. Diese Daten werden dazu in einer Datenbank gespeichert und
können von dort aus weiterverwendet werden (z.B. Netwacs). Ausserdem ermöglicht ein
zentrales Logging das korrelieren der gesammelten Daten. Daher kann jederzeit eine
komplette Analyse und Statusberichte vom gesamten Wireless Netzwerk erstellt werden.
ƒ
Optionales Security feature: Quarantäne
Um die Sicherheit eines Wireless Netzwerkes nochmals zu erhöhen, wäre es möglich einen
Nessus oder NMAP Scanner auf unserem Access Point zu installieren. Ein solcher Scanner
würde jeden Client vor der Verbindung mit dem Wireless Netzwerk auf gewissen
Schwachstellen bzw. offene Ports prüfen. Besteht der Client die Überprüfung dieser
„Security Policy“ wird ihm Zugang zum Wireless Netzwerk gestattet, andernfalls nicht.
Folgendes Beispiel soll dieses Feature kurz beschreiben:
Abb. 4: Integration einer Quarantäne
1. Der Wireless Client nimmt die Verbindung zum Access Point auf und authentifiziert
sich.
2. Nach erfolgreicher Authentifizierung erhält der Wireless Client vom Access Point eine
IP Adresse. Diese IP Adresse wird dynamisch mittels IPTables auf dem Access Point
gesperrt. So wird verhindert, dass der Wireless Client auf das Netzwerk zugreifen kann.
3. Der Access Point überprüft mit Nessus oder NMAP den Wireless Client und stellt fest
ob der Wireless Client der gegebenen Security Policy genügt. Ist diese Überprüfung
09.07.2004
7/27
WIMS – WLAN Intrusion Detection and Monitoring System
erfolgreich, wird die IP Adresse wieder dynamisch aus den IPTables gelöscht und damit
wird der Weg frei um auf das Netzwerk zugreifen zu können.
4. Der Wireless Client hat die Security Policy Überprüfung erfolgreich überstanden und hat
nun vollen Zugang zum Netzwerk.
09.07.2004
8/27
WIMS – WLAN Intrusion Detection and Monitoring System
4. PROTOTYP
In diesem Kapitel wird die genaue Implementation und Funktionsweise des Access Points
beschrieben. Im folgenden Bild wird der Access Point dargestellt und nachfolgend werden alle
Funktionen des Access Point und dessen Software Implementation beschrieben.
3
7
1
2
6 5
4
Abb. 5: WimS Access Point
4.1. Access Point Service
4.2. Wireless IDS
4.3. Betriebssystem
4.4. Serial Port
4.5. Netzwerk Interface 1
4.6. Netzwerk Interface 2
4.7. Soekris Net4521
09.07.2004
9/27
WIMS – WLAN Intrusion Detection and Monitoring System
Weiter wird hier auch die Software Implementation von WimS beschrieben. Hier wird auch die
Implementation von WimS in das bestehende NetWACS Projekt beschrieben.
WimS Server
LAN
NetWACS Database
WLAN
NetWACS Server
OC2
Abb. 6: WimS Integration
4.8 Management Service
4.9 Integration in NetWACS
09.07.2004
10/27
WIMS – WLAN Intrusion Detection and Monitoring System
4.1 Access Point Service
Diese Wireless Karte basiert auf dem PRISM-Chipsatz. Dies ermöglicht uns die Open Source
Software HostAP zu gebrauchen. Diese Software erlaubt uns einen Access Point zu erstellen. Mit
der Hilfe des HostAP Daemon, haben wir ausserdem die Möglichkeit unser Wireless LAN vor
fremden zugriffen zu schützen. Wie schon erwähnt basiert unsere Authentifizierung auf dem
EAP/TLS Prinzip. Durch dieses Verfahren wird ein dynamischer WEP Key generiert welcher
alle 300 Sekunden erneuert wird.
Hier ein Beispiel der Konfiguration vom Hostap Daemon (Auszug):
...
##### IEEE 802.1X (and IEEE 802.1aa/D4) related configuration #################
# Require IEEE 802.1X authorization
ieee8021x=1
# Use internal minimal EAP Authentication Server for testing IEEE 802.1X.
# This should only be used for testing since it authorizes all users that
# suppot IEEE 802.1X without any keys or certificates.
minimal_eap=0
# Optional displayable message sent with EAP Request-Identity
eap_message=hello
# WEP rekeying (disabled if key lengths are not set or are set to 0)
# Key lengths for default/broadcast and individual/unicast keys:
# 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits)
# 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits)
wep_key_len_broadcast=13
wep_key_len_unicast=13
# Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once)
wep_rekey_period=300
# EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if
# only broadcast keys are used)
eapol_key_index_workaround=0
##### RADIUS configuration ####################################################
# for IEEE 802.1X with external Authentication Server, IEEE 802.11
# authentication with external ACL for MAC addresses, and accounting
# The own IP address of the access point (used as NAS-IP-Address)
own_ip_addr=147.87.70.60
# Optional NAS-Identifier string for RADIUS messages. When used, this should be
# a unique to the NAS within the scope of the RADIUS server. For example, a
# fully qualified domain name can be used here.
#nas_identifier=ap.example.com
# RADIUS authentication server
auth_server_addr=147.87.70.184
auth_server_port=1812
auth_server_shared_secret=secret
...
Dazu gebrauchen wir ausserdem noch einen RADIUS Server und eine Certification Authority
(CA). Beide Dienste sind auf einem externen Server. Dies ermöglicht uns eine zentrale
09.07.2004
11/27
WIMS – WLAN Intrusion Detection and Monitoring System
Verwaltung Der RADIUS Server ist mit FreeRadius (Version 0.9.3) und die CA mit OpenSSL
(Version 0.9.7d) implementiert. Um die Zertifikate schnell und einfach zu erstellen, haben wir
drei verschiedene Skripts welche uns dies ermöglichen. Diese Skripts sind im Anhang angefügt.
Weiter ist bei der Erstellung der Zertifikate darauf zu achten, dass bei jedem Zertifikat der
Common Name (CN) einzigartig ist, ansonsten können die Zertifikate nicht Ordnungsgemäss
erstellt werden.
Sobald sich ein Client an unserem Wireless LAN anmelden will, wird das Client Zertifikat mit
dem Server Zertifikat überprüft. Weiter wird auf dem Client das Server Zertifikat des RADIUS
Servers überprüft. Stimmen beide dieser Zertifikate überein, wird dem Client der Zutritt zum
Wireless LAN gewährt. Die Authentifizierungsmethode EAP/TLS ist ziemlich sicher, da sich der
Client am Server wie auch umgekehrt authentifiziert.
Hier ein Beispiel der Konfiguration vom RADIUS Server um eine EAP/TLS
Authentifizierung machen zu können (Auszug):
modules {
...
#
For all EAP related authentications
eap {
#
Invoke the default supported EAP type when
#
EAP-Identity response is received.
#
The incoming EAP messages DO NOT specify which EAP
#
type they will be using, so it MUST be set here.
#
For now, only one default EAP type may be used at a time.
default_eap_type = tls
#
Default expiry time to clean the EAP list, It is
#
maintained to correlate the EAP-Response for each
#
EAP-request sent.
timer_expire
= 60
# Supported EAP-types
...
## EAP-TLS is highly experimental EAP-Type at the moment.
# Please give feedback on the mailing list.
tls {
private_key_password = whatever
private_key_file = /usr/local/openssl-certgen/lausanne.pem
#
If Private key & Certificate are located in
#
the same file, then private_key_file &
#
certificate_file must contain the same file name.
certificate_file = /usr/local/openssl-certgen/lausanne.pem
#
Trusted Root CA list
CA_file = /usr/local/openssl-certgen/root.pem
dh_file = /usr/local/openssl-certgen/DH
random_file = /usr/local/openssl-certgen/random
09.07.2004
#
This can never exceed the size of a RADIUS
#
packet (4096 bytes), and is preferably half
#
that, to accomodate other attributes in
#
RADIUS packet.
On most APs the MAX packet
12/27
WIMS – WLAN Intrusion Detection and Monitoring System
#
length is configured between 1500 - 1600
#
In these cases, fragment size should be
#
1024 or less.
fragment_size = 1024
...
#
include_length is a flag which is
#
by default set to yes If set to
#
yes, Total Length of the message is
#
included in EVERY packet we send.
#
If set to no, Total Length of the
#
message is included ONLY in the
#
First packet of a fragment series.
include_length = yes
}
}
...
}
Um den Status der Access Points verfolgen zu können werden alle Syslog Daten auf einem
externen Syslog Server in einer Datenbank (PostgreSQL) gespeichert. So können Fehlverhalten
und Meldungen der Access Points untersucht werden. Diese Daten werden nicht mit dem
„normalen“ Syslog gespeichert. Dies aus dem Grund weil Syslog über UDP kommuniziert und so
die Daten leicht gefälscht und eingesehen werden können. Daher kommt hier der SyslogNG zum
Einsatz. Dieser Daemon erstellt die Verbindung via TCP.
4.2 Wireless IDS
Diese Wireless Karte wird im Monitor Mode betrieben. Dies ermöglicht uns allen vorhandenen
Traffic in der Luft zu erfassen. Daher haben wir die Möglichkeit diverse Unstimmigkeiten in
unserem Wireless Netzwerk zu entdecken (Wardrivers, Rouge Access Point, usw.) und können
dementsprechend handeln.
Dazu gebrauchen wir das Open Source Projekt Snort Wireless. Dieses Intrusion Detection
System ermöglicht uns eine genaue Analyse des Netzwerktraffics. Da Snort Wireless schon eine
Menge an Patterns anbietet und die Erstellung neuer Patterns sehr einfach ist, ist dies die ideale
Lösung für uns.
Konfigurationsfile Snort-Wireless (Auszug):
...
# Configure your wireless AP lists.
This allows snort to look for attacks
# against your wireless network, such as rogue access points or adhoc wireless
# networks. Also specify what channels your access points are setup on.
# Ex:
# var ACCESS_POINTS XX:XX:XX:XX:XX:XX
# var CHANNELS X OR
# var ACCESS_POINTS [XX:XX:XX:XX:XX:XX, YY:YY:YY:YY:YY:YY, ....]
# var CHANNELS [X, Y, ....]
var ACCESS_POINTS FF:FF:FF:FF:FF:FF
var CHANNELS 11
...
09.07.2004
13/27
WIMS – WLAN Intrusion Detection and Monitoring System
# RogueAP
#--------------------------------------------# RogueAP detects rogue APs and AdHoc networks
# Arguments:
# scan_flag [0 | 1]
=> toggles scanning of multiple channels *NOT IMPLEMENTED*
# scan_timeout [num]
=> time in seconds between channel scans *NOT IMPLEMENTED*
# expire_timeout [num] => time in seconds before a BSSID is removed from the rogue list
preprocessor rogue_ap: $ACCESS_POINTS, $CHANNELS, scan_flag 1, scan_timeout 1800,
expire_timeout 3600
# AntiStumbler
#--------------------------------------------# AntiStumbler detects possible Netstumbler activity
# Arguments:
# probe_reqs [num]
=> number of probe requests that triggers an alert
# probe_period [num]
=> time period in seconds that NULL SSID probe requests are counted
# expire_timeout [num] => time in seconds before a STA is removed from the stumbler list
preprocessor antistumbler: probe_reqs 90, probe_period 30, expire_timeout 3600
...
include $RULE_PATH/wifi.rules
...
Rules Snort-Wireless (Auszug):
...
alert wifi any -> any (msg:"Association Request"; stype:STYPE_ASSOCREQ;)
alert wifi any -> any (msg:"Association Response"; stype:STYPE_ASSOCRESP;)
alert wifi any -> any (msg:"Reassociation Request"; stype:STYPE_REASSOC_REQ;)
alert wifi any -> any (msg:"Reassociation Response"; stype:STYPE_REASSOC_RESP;)
alert wifi any -> any (msg:"Probe Request"; stype:STYPE_PROBEREQ;)
alert wifi any -> any (msg:"Probe Response"; stype:STYPE_PROBERESP;)
alert wifi any -> any (msg:"Beacon"; stype:STYPE_BEACON;)
alert wifi any -> any (msg:"ATIM"; stype:STYPE_ATIM;)
alert wifi any -> any (msg:"Disassociation"; stype:STYPE_DISASSOC;)
alert wifi any -> any (msg:"Authentication"; stype:STYPE_AUTH;)
alert wifi any -> any (msg:"Deauthentication"; stype:STYPE_DEAUTH;)
...
Diese Regeln können ohne weiteres editiert und erweitert werden. Da diese Rules in einem
separaten File gespeichert sind, ist eine solche Änderung problemlos.
Um die anfallenden Alerts ohne Probleme speichern und verwalten zu können, werden die
Daten in einer externen Datenbank gespeichert. Diese Datenbank wird so zentral wie möglich
gehalten, so dass alle vorhandenen Access Points die Alerts dort speichern können. Dieser Server
wird wie schon erwähnt auch für die Syslog Daten der Access Points gebraucht. Durch die
Korrelation der Alerts in der Datenbank, kann ein konkretes Bild des Problems gemacht werden.
09.07.2004
14/27
WIMS – WLAN Intrusion Detection and Monitoring System
4.3 Betriebssystem
Unser Access Point wird von einem Mini Linux (80 MegaByte) betrieben. Da unsere Hardware
eine PC ähnliche Struktur hat, ist es nicht nötig jeweils ein Cross-Compiling zu machen. Unser
Linux basiert auf der Debian Distribution und enthält den Kernel 2.4.26.
Wir haben uns für diese Kernel Version entschieden, weil die momentan erhältliche Software
auf dieser Kernel Version problemlos betrieben werden kann. Wir haben unser System auch mit
der Kernel Version 2.6.5 getestet. Dabei mussten wir jedoch feststellen, dass die Kompatibilität
und die Stabilität noch nicht so ausgereift ist, wie bei der Kernel Version 2.4.26.
Weiter wird unser Linux nur in einem Read-Only Modus betrieben. Dies bedeutet, dass das
gesamte Filesystem vor Schreibzugriffen geschützt ist. Dies wurde uns durch ein Tutorial von
http://www.ultimeth.net/linux/ ermöglicht. Da es für diverse Programme dennoch nötig ist,
diverse Daten während dem Betrieb in Log-Files zu schreiben, wird beim booten des Systems
dynamisch eine RAM-Disk mit der Grösse von 10 MegaByte erstellt. Da auf unserem System
diverse Applikationen wie zum Beispiel gcc nicht installiert ist, ist es nötig sämtliche Software auf
einem externen Computer statisch zu kompilieren. Bei der statischen kompilierung werden
jeweils alle verwendeten Bibliotheken auch mit kompiliert. Weiter kann auf unserem System mit
dem „apt-get“ Befehl diverse Software nachinstalliert werden.
Das gesamte Linux wird auf einer Compact Flash Speicherkarte gespeichert und wird von
unserem System als Harddisk erkannt. Den Zugriff auf unser System wird jeweils mittels SSH
getätigt.
4.4 Serial Port
Der Serial Port ermöglicht es uns, auf das BIOS des System zuzugreifen. Weiter kann dadurch
auch auf unser Linux System zugegriffen werden. Dies ist meistens der Fall wenn nicht alle
Module korrekt geladen wurden oder beim booten ein Fehler auftritt. Ist dies der Fall, könnten
wir bei einem solchen Fehler mit SSH nicht mehr auf unser System zugreifen.
4.5 Netzwerk Interface 1
Dieses Interface verbindet das Netzwerk mit dem Wireless Netzwerk. In diesem
Netzwerksegement ist weiter auch der RADIUS Server installiert welcher uns die
Authentifizierung erlaubt. Um den Traffic vom Wireless Netzwerk ins interne Netzwerk
weiterleiten zu können haben wir ein IPTables Skript geschrieben, welches das Forwarding und
auch gerade diverse Firewall Rules implementiert hat. Dieses Skript ist im Anhang zu finden. Es
wird jeweils beim booten des Systems ausgeführt.
Weiter unterstützt dieses Netzwerk Interface „Power over Ethernet“ (PoE). Dies bedeutet für
uns, dass wir den nötigen Strom direkt mit dem Netzwerkkabel einspeisen können und nicht
noch ein weiteres Netzteil benötigen.
4.6 Netzwerk Interface 2
Dieses Netzwerk Interface ist momentan noch ohne Funktion. Dies könnte aber als DMZ
dienen. Dies bedeutet, dass diverse Dienste welche kleineren Schutz als das interne Netzwerk
nötig haben, in dieser DMZ platziert werden könnten.
4.7 Soekris Net4521
Als Hardware Grundlage haben wir uns für den Mini Computer von der Firma Soekris
(http://www.soekris.com) entschieden. Dieses System bietet uns die nötige Infrastruktur und
verzichtet auf den überflüssigen Schnickschnack. Da dieses System ausserdem auf einem AMD
Prozessor aufbaut und nicht auf einem ARM, haben wir bei der Linux Wahl schon viel mehr
Möglichkeiten, da das Cross-Compiling wegfällt.
09.07.2004
15/27
WIMS – WLAN Intrusion Detection and Monitoring System
Hier noch die genauen Spezifikationen:
•
•
•
•
•
•
•
•
•
100/133 Mhz AMD ElanSC520
64 Mbyte SDRAM, on board
1 Mbit BIOS/BOOT Flash
CompactFLASH Type I/II socket, 8 Mbyte FLASH to 1Gbyte IBM Microdrive
2 10/100 Mbit Ethernet ports, RJ-45
1 Serial port, DB9.
Mini-PCI type III socket.
2 PC-Card/Cardbus slots, for wireless adapters
Supports Power over Ethernet according to the 802.3af standard
4.8 Management Service
Der Management Service ermöglicht ein zentrales Management sämtlicher Access Point im
Netzwerk.
Bei einer solchen zentralen Managementstation ist es nötig folgende Einstellungen der Access
Points ändern zu können:
Einstellung
Allgemein Individuell
Channel
X
SSID
X
MAC Filter
X
Gruppen
X
IEEE 802.1x / 802.11i enable
X
WEP Key length
X
Rekeying period (IEEE 802.1x)
X
1. RADIUS Server (Auth)
X
(X)
1. RADIUS Server (Acc)
X
(X)
2. RADIUS Server (Auth)
X
(X)
2. RADIUS Server (Acc)
X
(X)
IP Adresse
X
X
Subnetzmaske
X
(X)
Gateway
(X)
X
DNS Server
X
(X)
DHCP Server Einstellung
(X)
(X)
(Access Point Dienst aktivieren)
(X)
Diese Einstellungen können mit einem GUI (Java basierend) editiert und übermittelt werden.
Dieses GUI wird in verschiedene Tab’s unterteilt um eine klare Trennung der verschiedenen
Einstellungen zu machen. Weiter wird im ersten Tab dieses GUI eine Übersicht aller registrierten
Access Points mit deren Status (aktiv, inaktiv, usw.) zu sehen sein. Weiter existiert neben allen
Tab’s welche für die Einstellungen da sind, auch ein Tab’s welche die Daten des Intrusion
09.07.2004
16/27
WIMS – WLAN Intrusion Detection and Monitoring System
Detection System und die Daten von den Syslogmeldungen darstellt. So hat man ein komplettes
zentrales Verwaltungsinstrument des gesamten Wireless Netzwerkes.
Weiter bietet die Managementkonsole die Möglichkeit, verschiedene Access Points in Gruppen
zusammenzufassen. Dies ermöglicht die getrennte Konfiguration der verschiedenen Gruppen. So
kann zum Beispiel eine Gruppe von Access Points für das interne Wireless Netzwerk konfiguriert
werden und eine weitere Gruppe kann als HotSpots konfiguriert werden.
Um eine sichere Verbindung zu den Access Points zu haben, wird ein SSL Tunnel über eine
TCP - Verbindung aufgebaut. Der Management Service der Access Points erstellt bei sich ein
Server Socket welches auf dem TCP Port 9467 zu erreichen ist. Bei einer Änderung der
Einstellungen werden die Daten mit einem Client Socket auf der zentralen Managementstation zu
den Access Points gesendet. Es werden bei einer Änderung immer alle Einstellungen zum Access
Point übertragen. So kann verhindert werden, dass diverse Änderungen verloren gehen. Dies
heisst für den Management Service auf dem Access Point, dass dieser jeweils die wirklichen
Änderungen an den Config Files vornehmen muss. Die betroffenen Config Files werden jeweils
noch den gewünschten Einstellungen abgesucht und dort eingetragen. Nach der Änderung der
Einstellungen, wird der Status an die zentrale Managementstation gesendet. Erst nach dem Erhalt
dieser Meldung wird das Socket wieder geschlossen. Um keine Probleme mit den Verbindungen
zu erhalten, werden die Änderungen nicht allen Access Points zusammen übertragen, sondern
nacheinander.
Nachfolgend ein kleines Beispiel wie die Managementkonsole aussehen könnte. Dies ist
allerdings nur eine Studie die unsere Ideen veranschaulichen soll.
WimS Management
WimS Overview
AP Settings
Security Settings
Groups
Management
WimS Overview
Name
WimS_AP_01
IP Address
192.168.111.10
Status
Online
WimS_AP_02
192.168.111.11
WimS_AP_03
Change Status
On
Off
Online
On
Off
192.168.111.12
Online
On
Off
WimS_AP_04
192.168.111.13
Online
On
Off
WimS_AP_05
192.168.111.14
Offline
On
Off
Confirm
Cancel
Abb. 7: GUI Managementkonsole
09.07.2004
17/27
WIMS – WLAN Intrusion Detection and Monitoring System
4.9 Integration in NetWACS
Das vorher beschriebene GUI wird so transparent wie möglich implementiert. Dies ermöglicht
eine problemlose Einbindung in das bestehende Projekt NetWACS.
Um alle Daten auch mit dem NetWACS System zu verwalten wird eine oder mehrere
zusätzlich Datasources im NetWACS Server nötig. Diese Datasources enthalten die
Verbindungsdaten zu den entsprechenden Datenquellen (Wireless IDS, Management). Sobald
eine solche Verbindung erstellt worden ist, kann NetWACS die Daten vom WimS System
erhalten. Diese werden durch die verschiedenen Rule Engines verarbeitet und generieren je nach
Fall einen Alert im NetWACS System.
Alle erhaltenen Daten in der WimS Datasource werden in ein NetWACS kompatibles Format
gebracht. Diese Form wird in NetWACS „Event Mapping Table“ genannt. Um alle Events bzw.
Alerts richtig verwalten zu können, werden mindestens zwei Datasources gebraucht. Eine
Datasource ist für die Syslog Daten der WimS Access Points zuständig und die zweite
Datasource ist für die Wireless-Snort Daten zuständig.
Event Mapping Table WimS-Syslog-Datasource:
ID
Name
0
Time
1
Date
2
Host
3
Program
4
Msg
5
Facility
6
Priority
Event Mapping Table WimS-Snort-Datasource:
Die Folgende Tabelle zeigt, wie die Daten von Snort Wireless in der Datenbank gespeichert
werden. Da die Analyse von einem IEEE 802.11 im Layer 2 vorgenommen wird, widerspricht es
eigentlich dem Grundsatz von Snort da dieses IDS auf dem Layer 3 aufbaut. Daher ist es beim
momentanen Entwicklungsstand nicht möglich die Daten „korrekt“ in die Datenbank zu
speichern.
Sig_id
1
2
3
4
5
6
7
8
sig_name
Rogue AP detected (BSSID 00:A0:C5:B6:FC:18)
Management Frame
Beacon
Probe Response
Probe Request
Detected Netstumbler traffic from 00:02:8A:4A:D9:F2
Detected Netstumbler traffic from 00:02:2D:61:1B:0E
Data Frame
sig_class_id
sig_priority
2
sig_rev
1
sig_sid
1
2
2
1
1
1
1
Um diese Daten korrekt in eine Datenbank schreiben zu können ist es nötig, dass wir die
Daten, welche wir von Wireless Snort erhalten, neu zu strukturieren. Dazu werden wir ein
eigenes Datenbank Plug-In für Wireless Snort entwickeln um die gewünschte Datenstruktur zu
haben.
09.07.2004
18/27
WIMS – WLAN Intrusion Detection and Monitoring System
ID
Name
1
Time
2
Date
3
Sensor
4
Source (MAC Adress)
5
Additional information
6
Signature
7
Priority
Um das Management GUI komplett in das OC2 von NetWACS einbinden zu können, muss
das gesamte GUI von der NetWACS Klasse „OC2TabIn“ abgeleitet werden. Da beim GUI für
die verschiedenen Möglichkeiten auch einzelne Tab’s erstellt wurden, besteht in NetWACS die
Möglichkeit diese mit Benutzerrechten zu verknüpfen.
Siehe Anhang für die UML Diagramme der Integration in NetWACS.
Abb. 8: Integration NetWACS
09.07.2004
19/27
WIMS – WLAN Intrusion Detection and Monitoring System
5. ANHANG
5.1 Skript Root Zertifikat
Dieses Skript ermöglicht uns die schnelle und einfache Erstellung eines Root Zertifikates.
#!/bin/sh
SSL=/usr/local/openssl-certgen
export PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}
export LD_LIBRARY_PATH=${SSL}/lib
# needed if you need to start from scratch otherwise the CA.pl -newca command doesn't copy the
# new
# private key into the CA directories
rm -rf demoCA
echo
echo
echo
echo
echo
"*********************************************************************************"
"Creating self-signed private key and certificate"
"When prompted override the default value for the Common Name field"
"*********************************************************************************"
# Generate a new self-signed certificate.
# After invocation, newreq.pem will contain a private key and certificate
# newreq.pem will be used in the next step
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -passin pass:whatever -passout
pass:whatever -days 365
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
#
#
#
#
"*********************************************************************************"
"Creating a new CA hierarchy (used later by the "ca" command) with the certificate"
"and private key created in the last step"
"*********************************************************************************"
"newreq.pem" | /etc/ssl/misc/CA.pl -newca >/dev/null
"*********************************************************************************"
"Creating ROOT CA"
"*********************************************************************************"
Create a PKCS#12 file, using the previously created CA certificate/key"newreq
The certificate in demoCA/cacert.pem is the same as in newreq.pem. Instead of
using "-in demoCA/cacert.pem" we could have used "-in newreq.pem" and then omitted
the "-inkey newreq.pem" because newreq.pem contains both the private key and certificate
openssl pkcs12 -export -in newreq.pem -inkey newreq.pem -out root.p12 -cacerts -passin
pass:whatever -passout pass:whatever
# parse the PKCS#12 file just created and produce a PEM format certificate and key in root.pem
openssl pkcs12 -in root.p12 -out root.pem -passin pass:whatever -passout pass:whatever
# Convert root certificate from PEM format to DER format
openssl x509 -inform PEM -outform DER -in root.pem -out root.der
#Clean Up
rm -rf newreq.pem
09.07.2004
20/27
WIMS – WLAN Intrusion Detection and Monitoring System
5.2 Skript Server Zertifikat
Dieses Skript erlaubt uns die Erstellung eines Serverzertifikats.
#!/bin/sh
SSL=/usr/local/openssl-certgen
export PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}
export LD_LIBRARY_PATH=${SSL}/lib
echo
echo
echo
echo
echo
"*********************************************************************************"
"Creating server private key and certificate"
"When prompted enter the server name in the Common Name field."
"*********************************************************************************"
# Request a new PKCS#10 certificate.
# First, newreq.pem will be overwritten with the new certificate request
openssl req -new -keyout newreq.pem -out newreq.pem -passin pass:whatever -passout
pass:whatever -days 365
# Sign the certificate request. The policy is defined in the openssl.cnf file.
# The request generated in the previous step is specified with the -infiles option and
# the output is in newcert.pem
# The -extensions option is necessary to add the OID for the extended key for server
#authentication
openssl ca -policy policy_anything -out newcert.pem -passin pass:whatever -key whatever extensions xpserver_ext -extfile xpextensions -infiles newreq.pem
#openssl ca -policy policy_anything -out newcert.pem -passin pass:whatever -key whatever infiles newreq.pem
# Create a PKCS#12 file from the new certificate and its private key found in newreq.pem
# and place in file specified on the command line
openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out $1.p12 -clcerts -passin
pass:whatever -passout pass:whatever
# parse the PKCS#12 file just created and produce a PEM format certificate and key in
#certsrv.pem
openssl pkcs12 -in $1.p12 -out $1.pem -passin pass:whatever -passout pass:whatever
# Convert certificate from PEM format to DER format
openssl x509 -inform PEM -outform DER -in $1.pem -out $1.der
# Clean Up
rm -rf newert.pem newreq.pem
09.07.2004
21/27
WIMS – WLAN Intrusion Detection and Monitoring System
5.3 Skript Client Zertifikat
Dieses Skript erlaubt uns die Erstellung eines Client Zertifikats.
#!/bin/sh
SSL=/usr/local/openssl-certgen
export PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}
export LD_LIBRARY_PATH=${SSL}/lib
echo
echo
echo
echo
echo
echo
"*********************************************************************************"
"Creating client private key and certificate"
"When prompted enter the client name in the Common Name field. This is the same"
" used as the Username in FreeRADIUS"
"*********************************************************************************"
# Request a new PKCS#10 certificate.
# First, newreq.pem will be overwritten with the new certificate request
openssl req -new -keyout newreq.pem -out newreq.pem -passin pass:whatever -passout
pass:whatever -days 365
# Sign the certificate request. The policy is defined in the openssl.cnf file.
# The request generated in the previous step is specified with the -infiles option and
# the output is in newcert.pem
# The -extensions option is necessary to add the OID for the extended key for client
#authentication
openssl ca -policy policy_anything -out newcert.pem -passin pass:whatever -key whatever extensions xpclient_ext -extfile xpextensions -infiles newreq.pem
#openssl ca -policy policy_anything -out newcert.pem -passin pass:whatever -key whatever #infiles newreq.pem
# Create a PKCS#12 file from the new certificate and its private key found in newreq.pem
# and place in file specified on the command line
openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out $1.p12 -clcerts -passin
pass:whatever -passout pass:whatever
# parse the PKCS#12 file just created and produce a PEM format certificate and key in
#certclt.pem
openssl pkcs12 -in $1.p12 -out $1.pem -passin pass:whatever -passout pass:whatever
# Convert certificate from PEM format to DER format
openssl x509 -inform PEM -outform DER -in $1.pem -out $1.der
# clean up
rm -rf newcert newreq.pem
5.4 Settings xpextensions
Diese Settings warden jeweils ins Server und ins Client Zertifikat eingebunden. Dies ist nötig
weil es ansonsten Windows Clients nicht möglich ist, diese Zertifikate zu gebrauchen.
[xpclient_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
[xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
09.07.2004
22/27
WIMS – WLAN Intrusion Detection and Monitoring System
5.5 Firewall
Mit diesem Skript ermöglich wir das Forwarding zwischen dem Ethernet und dem Wireless
Netzwerk Interface. Ausserdem haben wir hier bereits diverse Rules, welche diversen Traffic
unterbinden.
#!/bin/bash
#Firewall Script for WimS Access Point
#Restricting access from the Wireless LAN to the wired LAN
LAN_IP="147.87.70.60"
LAN_IFACE="eth0"
WLAN_IP="192.168.89.1"
WLAN_IFACE="wlan0"
WLAN_NET_ADDR="192.168.89.0/24"
WLAN_BCAST_ADDR="255.255.255.0"
IPTABLES="/sbin/iptables"
#enable forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
#Chain policies gets set up before any bad packets gets trough
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#Clear all chain rules
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F -t nat
#ICMP Rules, used in Forward chain
echo "ICMP Rules"
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
-A
-A
-A
-A
-A
-A
FORWARD
FORWARD
FORWARD
FORWARD
FORWARD
FORWARD
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
-A
-A
-A
-A
-A
-A
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
-A
-A
-A
-A
-A
-A
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
icmp
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
--icmp-type
0 -j ACCEPT
8 -j ACCEPT
3 -j ACCEPT
4 -j ACCEPT
11 -j ACCEPT
12 -j ACCEPT
0 -j ACCEPT
8 -j ACCEPT
3 -j ACCEPT
4 -j ACCEPT
11 -j ACCEPT
12 -j ACCEPT
0 -j ACCEPT
8 -j ACCEPT
3 -j ACCEPT
4 -j ACCEPT
11 -j ACCEPT
12 -j ACCEPT
#Postrouting chain in the nat table
#Enable IP masquerading, WLAN -> LAN
echo "nat and Postrouting"
$IPTABLES -A POSTROUTING -t nat -o $LAN_IFACE -s $WLAN_NET_ADDR -j MASQUERADE
#Loopback interface
echo "Loopback rules"
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#Forward chain
echo "FORWARD chain"
$IPTABLES -A FORWARD -t filter -i $WLAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
09.07.2004
23/27
WIMS – WLAN Intrusion Detection and Monitoring System
$IPTABLES -A FORWARD -t filter -i $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
#DNS
echo "DNS1"
$IPTABLES -A
echo "DNS2"
$IPTABLES -A
$IPTABLES -A
$IPTABLES -A
$IPTABLES -A
$IPTABLES -A
$IPTABLES
$IPTABLES
$IPTABLES
$IPTABLES
-A
-A
-A
-A
OUTPUT -p udp -o $LAN_IFACE --dport 53 --sport 1024:65535 -j ACCEPT
INPUT -p udp -i $LAN_IFACE --sport 53 --dport 1024:65535 -j ACCEPT
OUTPUT -p udp -o $LAN_IFACE --dport 1813 --sport 1024:65535 -j ACCEPT
OUTPUT -p udp -o $LAN_IFACE --dport 1812 --sport 1024:65535 -j ACCEPT
INPUT -p udp -i $LAN_IFACE --sport 1813 --dport 1024:65535 -j ACCEPT
INPUT -p udp -i $LAN_IFACE --sport 1812 --dport 1024:65535 -j ACCEPT
OUTPUT -p tcp -o $LAN_IFACE --dport 1813 --sport 1024:65535 -j ACCEPT
OUTPUT -p tcp -o $LAN_IFACE --dport 1812 --sport 1024:65535 -j ACCEPT
INPUT -p tcp -i $LAN_IFACE --sport 1813 --dport 1024:65535 -j ACCEPT
INPUT -p tcp -i $LAN_IFACE --sport 1812 --dport 1024:65535 -j ACCEPT
#SSH to AP
$IPTABLES -A OUTPUT -o $LAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "ssh1"
$IPTABLES -A INPUT -p tcp -i $LAN_IFACE --dport 22 --sport 1024:65535 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
5.6 UML Diagramm Integration NetWACS Datasource
Abb. 9: UML NetWACS Datasource
09.07.2004
24/27
WIMS – WLAN Intrusion Detection and Monitoring System
5.7 UML Diagramm Integration NetWACS OC2TabIn
Abb. 10: UML NetWACS TabIn
09.07.2004
25/27
WIMS – WLAN Intrusion Detection and Monitoring System
6. ABBILDUNGSVERZEICHNIS
Abb. 1: Detaillierter Aufbau .......................................................................................................................4
Abb. 2: Authorisierungsvorgang EAP/TLS.............................................................................................5
Abb. 3: 802.11i..............................................................................................................................................6
Abb. 4: Integration einer Quarantäne .......................................................................................................7
Abb. 5: WimS Access Point........................................................................................................................9
Abb. 6: WimS Integration .........................................................................................................................10
Abb. 7: GUI Managementkonsole...........................................................................................................17
Abb. 8: Integration NetWACS .................................................................................................................19
Abb. 9: UML NetWACS Datasource......................................................................................................24
Abb. 10: UML NetWACS TabIn.............................................................................................................25
09.07.2004
26/27
WIMS – WLAN Intrusion Detection and Monitoring System
7. REFERENZEN
- WimS Project Proposal
- WimS Projektantrag
- WimS Projekthandbuch
- WimS Fertigprodukte
- NetWACS Design Guide
09.07.2004
27/27