Computernetwerken Deel 2. Beveiliging Firewall: toegang beperken IDS: inbraak detecteren en...

Post on 14-Jun-2015

216 views 1 download

Transcript of Computernetwerken Deel 2. Beveiliging Firewall: toegang beperken IDS: inbraak detecteren en...

ComputernetwerkenDeel 2

Beveiliging

• Firewall: toegang beperken• IDS: inbraak detecteren en alarmeren• Encryptie: gegevens verbergen

Firewall

• Waarom?• Filteren van pakketten• Wildcard mask: omgekeerd subnetmasker• Pakketfiltering niet altijd voldoende• Soorten firewalls• Firewall in het netwerk

Firewall: waarom?

• TCP/IP– Alle hosts bereikbaar (via IP-adres)– Kunnen met elkaar communiceren

• Pakketten zullen verwerkt worden• Bv voortdurend pingen (ICMP-bericht)

– UDP of TCP• als poortnummer van wachtend proces: ACK en start

van verwerking

Firewall: waarom?

• Poortscannen: zoeken naar open poorten• Sturen slecht geformatteerde data

– Storen lopend proces– Zaken uitvoeren die niet de bedoeling zijn

• Elke computer beveiligen?– Beveiliging concentreren in één machine

Firewall: waarom?

• Alle ip-pakketten via één bewaakte toegang– Van binnen naar buiten en Van buiten naar binnen

• Geen beveiliging voor intern verkeer• Geen beveiliging tegen virussen• Geen beveiliging tegen DNS-spoofing

– Foute dns-info om gebruiker om te leiden

• Het internet is ontworpen zonder beveiliging

Filteren van pakketten

– Coax-voorstelling?– Router:

• Voor inkomende pakketten: nagaan welke interface verder sturen

• Doorsturen van pakketten

if2if1

netwerk 1 netwerk 2

router

Filteren van pakketten

– Configuratiemogelijkheid van een router: filteren• Eigenschappen van pakket nagaan• Pakket eventueel niet verder sturen

– Via ACL (Access Control List) = lijst van regels

if2if1

netwerk 1 netwerk 2

router

Filteren van pakketten

• Eigenschappen van pakketten om op te filteren?– IP-adres (zender en ontvanger)– Protocol

• IP, IPX, ...• TCP, UDP, ICMP, ...• HTTP, FTP, ...

– Poorten– Niet op basis van inhoud van een pakket

Filteren van pakketten

• ACL– koppelen aan interface– Per interface: ACL voor in, ACL voor uit– Syntaxis hangt af van besturingssysteem van

router

Filteren van pakketten: vb1

– ACL voor if1, inkomende pakketten

if2if1

200.201.202.0/24 Naar internet

router

bron- adres

bron- poort

best.- adres

b.-poort

pro- tocol

door- laten

200.201.202.200 * * * * Neen 200.201.202.128/25 * * 80 TCP J a

200.201.202.1 * * * ICMP J a * .* .* .* * * * * Neen

Filteren van pakketten: vb1

– Van 200.201.202.200: alle pakketten weigeren– Van 200.201.202.128/25: mogen naar poort 80 (http)van elke

host– Computer 200.201.202.1 mag pingen (ICMP)– Al de rest wordt niet doorgelaten– Volgorde van belang

bron- adres

bron- poort

best.- adres

b.-poort

pro- tocol

door- laten

200.201.202.200 * * * * Neen 200.201.202.128/25 * * 80 TCP J a

200.201.202.1 * * * ICMP J a * .* .* .* * * * * Neen

Filteren van pakketten: vb2

naar Internet200.201.202.0/24

if2if1

router

200.201.203.0/24

if3

web-servermail-serverdns-server

bron- adres

bron- poort

best.- adres

b.-poort

pro- tocol

door- laten

200.201.202.200 * * * * Neen 200.201.202.128/25 * * 80 TCP J a

200.201.202.1 * * * ICMP J a * .* .* .* * * * * Neen

Naar welke servers(200.201.203.0/24)kunnen pc’s van200.201.202.0/24?

Alleen naar webserverAlleen vanaf 200.201.202.128/25

Filteren van pakketten: vb2

naar Internet200.201.202.0/24

if2if1

router

200.201.203.0/24

if3

web-servermail-serverdns-server

bron- adres

br. p.

best.- adres

b. p.

pr door

200.201.202.200 * * * * Neen 200.201.202.128/25 * * 80 TCP J a 200.201.202.0/24 * 200.201.203.0/24 25 TCP J a 200.201.202.0/24 * 200.201.203.0/24 53 UDP J a

200.201.202.1 * * * ICMP J a * .* .* .* * * * * Neen

Hoe andere servicesbereikbaar maken?

Filteren van pakketten: vb2

naar Internet200.201.202.0/24

if2if1

router

200.201.203.0/24

if3

web-servermail-serverdns-server

Hoe andere servicesbereikbaar maken?Tweede mogelijkheid?

bron- adres

bron- poort

best.- adres

b.-poort

pro- tocol

door- laten

200.201.202.200 * * * * Neen 200.201.202.128/25 * * 80 TCP J a

200.201.202.1 * * * ICMP J a * .* .* .* * * * * Neen

ACL met andere interface associëren

Filteren van pakketten: vb3

bron-adres br.p. best.-adres b.-p. pr. door

200.201.202.0/23 * * * * Nee * * 200.201.202.200 * * Nee * * 200.201.203.1 25 TCP J a * 25 200.201.203.1 >1023 TCP J a * * 200.201.203.2 53 UDP J a * 53 200.201.203.2 >1023 UDP J a * * 200.201.203.3 80 TCP J a * * 200.201.202.1 * icmp J a * * * * * Nee

naar Internet200.201.202.0/24if2if1

router

200.201.203.0/24if3

Wildcard mask

• ACL:– Bron = groep van IP-adressen– Bestemming = groep van IP-adressen

• Notatie opeenvolgende IP-adressen– Begin- en eindadres– Beginadres/aantal bits– Beginadres subnetmasker– Cisco: omgekeerd subnetmasker

Wildcard mask

• Bv 200.201.202.128 0.0.0.127• 0.0.0.127 = Wilcard Mask• Betekenis:

– 0 : bit moet gelijk zijn– 1 : bit mag om het even zijn

• Dus: 200.201.202.128 en 0.0.0.127– 11001000 11001001 11001010 10000000– 00000000 00000000 00000000 01111111– 200.201.202.128 tot 200.201.202.255

Pakketfiltering niet altijd voldoende

• TCP-intercept– Hacker stuurt geen ACK-segment

• Server wacht, veel open sessies, vals bron adres• Server plat (DoS-aanval)

– Bijhouden hoeveel half-open sessies• Maximum aantal• Sluiten na tijdsinterval

Pakketfiltering niet altijd voldoende

• Fragmentatie– Groot IP-pakket opdelen in fragmenten– Fragmenten verstuurd als aparte IP-pakketten– Hacker: pakketten zo klein maken dat TCP-

hoofding er niet volledig in kan– ACL’s op poortnummer en protocol– ACL’s niet leesbaar

Pakketfiltering niet altijd voldoende

• FTP– Gestarte sessie (poort 21) is alleen voor besturing.– Bestandsoverdracht (active mode)

• Client stuurt vraag naar poort 21 en deelt een poortnummer (random) mee waarop hij luistert (PORT commando)

• Client wacht op verbinding• Server start verbinding met client via syn, ....• Bestandsoverdracht gebeurt

Pakketfiltering niet altijd voldoende

• FTP– Bestandsoverdracht (passive mode)

• Client stuurt vraag naar poort 21 (PASV commando)• Server deelt een poortnummer mee waarop hij luistert

(random)• Client start verbinding met client via syn, ....• Bestandsoverdracht gebeurt

– Moeilijk/niet wenselijk om alle poorten op te lijsten in ACL’s

Stateful inspection

• Toestand (= State) van elke TCP-sessie wordt bijgehouden

• Bij TCP of UDP is poortnummer van bron willekeurig: geen vaste regels in firewall mogelijk

• Oplossing: dynamische ACL’s

Dynamische ACL’s: vb1

• 200.201.202.17 start Telnet-sessie met 34.45.67.89

• Clientpoort: 1234 (willekeurig > 1023)• Serverpoort: 23• Dynamische ACL:

– Tijdens init (syn, syn/ack, ack): regel toegevoegd aan ACL

– Firewall houdt status bij– Bij opheven verbinding: schrappen regel

Dynamische ACL’s: vb1

• ACL voor if2, inkomende pakketten

naar het Internet200.201.202.0/24if2if1

router

bron- adres

bron- poort

best.- adres

b.-poort

pro- tocol

door- laten

... ... ... ... ... ... 34.45.67.89 23 200.201.202.17 1234 TCP J a

... ... ... ... ... ... * .* .* .* * * * * Neen

Dynamische ACL’s: vb2

• Bij UDP en ICMP: geen init, hoe status bijhouden, wanneer schrappen?– Na timeout

• Gebruik van virtuele verbinding– Uitgaande verzoeken worden geregistreerd– Alleen inkomende berichten doorlaten die een

antwoord zijn op een geregistreerd verzoek

Dynamische ACL’s: vb3

• FTP:– Firewall houdt status van sessie bij

• Toevoegen, weglaten lijn in ACL

– Firewall met Inspection engine (software in firewall)

• Firewall kent het toepassingsprotocol (FTP)• Herkent PORT, PASV commando• Voegt dynamisch regels toe aan ACL = sessiefiltering

Soorten firewalls

• Pakketfilters: filteren per pakket• Sessiefilter: filteren per sessie• Toepassings-proxy• Statefull packet inspection• Persoonlijke firewall

Toepassings-proxy

• Werkt op toepassingslaag (web-proxy, ftp-proxy, ...)

• Is een programma– Mag gebruiker sessie starten?– Maakt verbinding met server– Inspecteert pakketten– Inspecteert (hele) inhoud van berichten

Statefull packet inspection

• State = toestand van de verbinding• Voortdurende inspectie van

– De toestand van de verbinding– Inhoud van pakketten

• Voordeel tov Proxy: geen extra verbindingen

Persoonlijke firewall

• Software op client• Regels op applicatieniveau

Firewall in het netwerk

• Doel firewall: alle pakketten filteren tussen eigen netwerk en internet

• Verschillend beleid– Bedrijfsnetwerk– Servers die voor buitenwereld bereikbaar moeten

zijn

• Firewall met meerdere interfaces– Per interface een apart beleid– Alle hosts aan een interface hebben zelfde eisen

Firewall in het netwerk3 interfaces

Firewall in het netwerk2 interfaces

bedrijfsnetwerk

buitenafgeschermd netwerk

server2

server1

router

firewall

Firewall in het netwerk2 interfaces

• Bedrijfsnetwerk– Eigen gebruikers, vertrouwd– Achter de firewall– Alle pakketten van en naar bedrijfsnewerk:

controle door Firewall

• Afgeschermd netwerk (DMZ)– Beperkte beveiliging door router– Beveiliging op niveau van server (Bastion Hosts)

Firewall in het netwerk2 interfaces

• Waarom bv server 1 niet achter Firewall?– Beleid: iedereen van buiten af moet aan servers

kunnen– Dus moet voorbij Firewall kunnen– Servers kunnen fouten bevatten: mogelijks

uitbuiting

Firewall in het netwerk3 interfaces

• Firewall controleert ook de toegang tot de servers

• DMZ: gebied met ander, milder beleid• Router

– Pakketfiltering– Verschillende netwerkinterfaces (ethernet,

fiber, ...)

IDS: intrusion detection system

• Bekijken netwerkverkeer voorbij de firewall• Opsporen verdacht verkeer:

– Ping door zelfde host naar meer dan 5 adressen– Poortscanning– ...

• Alleen signaleren• IPS (Intrusion Prevention System): gaat ook

acties ondernemen, regels toevoegen