Firewall

advertisement
Inbraaktechnieken
Firewalls
• ten gevolge van slordigheid van beheerders: zwakke authenticatietechnieken,
slecht gekozen paswoorden, services die onbedoeld vanuit de buitenwereld zijn te
benaderen
1. Waarom, inbraaktechnieken, security-policy
2. Taken van een firewall
∗ regulering van het verkeer
∗ ondersteuning voor speciale toepassingen
∗ beheersmatige taken van een firewall
• bugs in serverprogrammatuur, bijv. in mailservers of web-servers; daarom
actief volgen van informatie hierover en tijdig installeren van patches en fixes
• denial-of-service aanval: de aanvaller probeert het systeem uit te schakelen (plat
te leggen) zonder echt in te breken. Zo’n aanval werkt meestal door het versturen
van corrupte IP-pakketten naar het aangevallen systeem, in de hoop dat het
systeem daar niet tegen kan. Mogelijkheden zijn extreem grote IP-pakketten of
IP-pakketten met inconsistente fragmentatie-informatie
3. Firewall technieken: packet filters en proxy’s
4. Architectuur van een firewall
∗ Stand-alone router
∗ Screened bastion host
∗ Demilitarized zone
∗ Servicenetwerk met publieke services
• IP spoofing of DNS spoofing: aanvallers vervalsen IP-adressen of domeinnamen
van hun systeem om op die manier bepaalde privileges te krijgen
• social engineering: onder valse voorwendsels paswoorden of andere gevoelige
informatie aan gebruikers of beheerders ontfutselen.
Waarom?
∗ Adequate beveiliging van het interne netwerk.
∗ Zonder firewall: elke machine in het netwerk moet zich afzonderlijk beschermen
tegen aanvallen
∗ bijkomend probleem: interne systemen vertrouwen elkaar verregaand
∗ Op één centraal punt : een verdedigingslinie tegen aanvallen vanuit de buitenwereld.
∗ Alle verkeer tussen buitenwereld en bedrijfsnetwerk: via firewall
en kan onder controle van de firewall worden doorgelaten of tegengehouden.
INTERNET
INTERNET
Authenticatie
Zwakke authenticatie:
1. op basis van naam/wachtwoord combinatie (is af te luisteren)
2. op basis van IP adressen of domeinnamen (is te vervalsen)
Sterke authenticatie:
1. public-key certificaten
2. hand-held authenticators (dongles)
3. challenge-response systemen (one-time paswords)
intranet
intranet
Security-policy van een organisatie
legt vast wat de gewenste functionaliteit van de Internetverbinding is en welke
bescherming de firewall moet bieden
Doel
Beperking van het verkeer van interne net naar
Internet en vice versa
Idem, met sterke authenticatie
Gecontroleerd websurfen:
bezoek aan bepaalde sites verboden
Email-adresvertaling:
aparte interne en externe email-adressen
Interne IP-adressen onzichtbaar vanuit Internet
Interne hostnamen onzichtbaar vanuit Internet
Veilige koppeling met ander bedrijf op Internet
middel
packet filter, proxy
challenge-response
systemen,
public-key certificaten
screening proxy voor web-verkeer
screening,
mail-mapper programmatuur
proxy, NAT
aparte interne en externe DNSservers
encrypted tunnels
Ondersteuning voor speciale toepassingen
Sommige toepassingen zijn zo complex dat het reguleren van het verkeer via een
firewall niet voldoende is.
Voornamelijk voor servers in het interne netwerk die vanuit het Internet benaderd
moeten kunnen worden
• electronic mail: een veilige en probleemloze email-koppeling vergt de nodige
maatregelen op de firewall
• DNS: veel organisaties willen niet al hun interne hostnamen openbaar maken op
het Internet; split DNS structuur: een externe name-server die slechts enkele
namen bekendmaakt en een interne name-server met alle namen, maar alleen
vanuit het interne netwerk te bereiken
• web-server is normaal publiek toegankelijk: extra beveiligingsmaatregelen
gewenst, vooral wanneer gebruik wordt gemaakt van CGI-programma’s.
Electronic-mail
Centrale taak van een firewall
Regulering van het verkeer
• het in ontvangst nemen van een connectieverzoek dat afkomstig is van een
(interne of externe) client en gericht is aan een (interne of externe) server;
• controleren of dit connectieverzoek gehonoreerd mag worden;
• als dat het geval is: tot stand brengen van de connectie tussen client en server.
Extra faciliteiten:
∗ afdwingen van het gebruik van sterke authenticatie bij het opzetten van een
verbinding
∗ bewaken van het applicatieprotocol na het opbouwen van de verbinding; bijv. het
toestaan van FTP-download operaties maar het verbieden van FTP-upload
operaties; of het toestaan van websurfen, maar het verbieden van het gebruik van
Active-X controls;
∗ loggen van alle gebeurtenissen die betrekking hebben op de verbinding tussen client
en server.
• complexe mailserverprogrammatuur is nogal inbraakgevoelig; extra beveiliging is
mogelijk door gebruik van een mailproxy (mailplug) die de binnenkomende mail
opvangt en deze controleert op verdachte zaken (extreem lange headers of
pogingen om post bij een programma af te leveren)
• archivering van elk passerend email-bericht
• maskerade: verbergen van interne machinenamen in de afzenderadresen van
uitgaande post
• adresvertaling: tussen interne en externe email-adressen
• blokkeren van ingaande en uitgaande post op basis van instelbare criteria, zoals
het afzender- of bestemmingsadres of attachmenttype
• vereiste beveiliging via encryptie en sterke authenticatie voor het moelijk maken
om vanuit het internet interne post te lezen
• verzorgen van virusdetectie
• herkennen van spam
Web-servers
screenen van alle inkomende HTTP-verzoeken op verdachte zaken
bijvoorbeeld: verdachte invoer die wordt aangeboden aan CGI-toepassingen
INTERNET
proxyserver
httpscreen
Firewall
intranet
webserver
data vanuit internet naar de web-server passeert eerst via httpscreen
deze screent de invoer voordat deze daadwerkelijk doorgespeeld wordt aan de web-server
voordeel: minder gevoelig voor slordig geprogrammeerde CGI-programma’s
reverse proxy: een normale proxy-server
vormt een tussenstap vanuit clients in het intranet naar servers in het Internet;
bij httpscreen is het net andersom.
Beveiliging van de firewall zelf
• hardening: processen, programma’s en bestanden die voor het functioneren van
het systeem niet strikt nodig zijn, moeten van het systeem verwijderd worden:
alles wat verwijderd is, kan geen aanvalsdoelwit meer worden
UNIX: flexibeler en gemakkelijker configureerbaar dan MS-Windows
• functies in het besturingssysteem die niet strikt nodig zijn, moeten verwijderd
worden door een nieuw en gestript systeem te maken
• toegang tot de firewall zelf beveiligd door sterke authenticatie en encryptie
Content attack: een aanval waarbij gevaarlijke data het bedrijfsnetwerk binnenkomt via
een geoorloofde verbinding, bijv. via een email-attachment.
Omdat niet de connectie zelf het probleem veroorzaakt, maar de getransporteerde data,
is dit iets dat een firewall minder goed kan beveiligen.
Toch tegenwoordig een poging door alle inkomende email en alle via het web
binnenkomende data te analyseren en te filteren.
Packet filter
Beheersmatige taken van een firewall
• logging: bijhouden van een administratie; nuttig om een inbraak te voorkomen
door het tijdig opmerken van mislukte pogingen en afdoende maatregelen nemen;
eventueel ook voor accounting
• alerting: verdachte zaken in de logging direct doorspelen aan de beheerders,
bijv. via email of sms
• system integrity checking: regelmatig controleren of essentiële processen nog
steeds actief zijn, of er nog voldoende diskruimte vrij is en of er geen cruciale
systeembestanden veranderd zijn
• aanpassen van de configuratie: zal van tijd tot tijd nodig zijn; volgens de boekjes
heb je hiervoor een goede (grafische) interface nodig die de beheerder begeleidt
en beschermt tegen elementaire fouten en inconsistenties
• continuı̈teit: mirroring en UPS-support voor hardwareproblemen,
spanningsuitval of andere onverwachte problemen, die leiden tot onvoorspelbaar
en dus onveilig gedrag.
∗ inspecteert binnenkomende pakketten
∗ laat deze al dan niet door op basis van een aantal filtercriteria



 het gebruikte protocol (TCP of UDP)
Criteria:
IP-adres van afzender en/of bestemming van het pakket



poortnummer van de gebruikte toepassing (telnet, ftp, http, smtp)
deels transparant
intern
netwerk
firewall
INTERNET
De meeste routers kunnen geconfigureerd worden om pakketten te filteren.
UNIX of MS Windows met meerdere netwerkverbindingen en speciale software kunnen
als packet filteraar optreden.
Definiëren van de juiste filters
Voorbeelden van security-maatregelen
• packet filter als diode:
machines op het lokale netwerk mogen contact zoeken met het internet, maar het
omgekeerde is niet toegestaan
Voorbeeld: uitgaand telnet verkeer is toegestaan, maar inkomend telnet-verkeer
niet.
• packet filter als selectief filter:
bepaalde machines op het lokale netwerk mogen contact zoeken met bepaalde
machines op het internet en bepaalde machines op internet mogen contact zoeken
met bepaalde machines in het lokale netwerk.
Hierbij kunnen ook restricties gesteld worden aan de gebruikte programma’s: van
buiten naar binnen mag vanaf bepaalde machines contact gezocht worden, maar
alleen met bepaalde servers, bijv. telnet-server en ftp-server.
+ verkeer van buiten naar binnen beperken tot email- en DNS toegang
+ doorlaten van poortnummers 25 (smtp) en 53 (dns): te beperkend
+ rekening houden met het retourverkeer van interne clients die contact zoeken met
externe servers
+ interne clients gebruiken doorgaans poortnummers boven de 1024 om webservers
op het internet te benaderen
+ twee mogelijke oplossingen:
∗ alle hoge poortnummers worden opengezet: niet goed omdat er veel te veel
poorten worden opengezet, maar ook omdat er in het interne netwerk
misschien serverprocesen zijn die luisteren op hoge poorten en hierdoor
aanvalbaar worden;
∗ dynamische packet filtering of stateful inspection: de packet filter houdt bij
welke verbindingen er zijn en dus welk retourverkeer verwacht wordt: de
packet zet zelf de poorten waarop retourverkeer verwacht wordt, open en
achteraf weer dicht.
Soms ook inspectie van applicatiedata (toch beperkt tov proxy servers).
Voor- en nadelen van een packet-filter
Proxy-server
+ transparant: geen aanpassingen nodig voor gebruiker en applicatiesoftware
+ hoge performantie en meestal duidelijk hoger dan een proxy-server.
(Proxy-server kan via het gebruik van caching ook een performantieverbetering
realiseren.)
+ er wordt NIET aan autorisatie van gebruikers gedaan; deze ligt geheel op de
bestemmingscomputer van het interne netwerk: moet zeer zorgvuldig gekozen en
beheerd worden
+ definitie van juiste filters en het schrijven van foutloze filtertabellen is niet
eenvoudig: lastige syntax en moeilijke foutcontrole
+ filteren op basis van informatie in het netwerkpakket: niet 100% veilig
controle op de geldigheid van het afzenderadres in een netwerkpakket is niet
mogelijk omwille van IP-spoofing (gebruik van een oneigenlijk adres)
+ geringe logging-faciliteiten: geen uitgebreide mogelijkheden om speciale
gebeurtenissen in logfiles bij te houden: inbraakpogingen zijn relatief moeilijk te
detecteren.
een proces dat een tussenstap vormt tussen de client en de server
geblokkeerd
intern
netwerk
firewall
INTERNET
• klassieke proxy’s: gebruikers die een bepaalde dienst willen benaderen, moeten
zich eerst melden bij de proxy op de firewall (dus niet transparant)
∗ doorgeefluik van binnen naar buiten: bijv. toegang geven tot het web aan
interne gebruikers
∗ doorgeeflijk van buiten naar binnen: bijv. externe gebruikers die via telnet op
het bedrijfsnetwerk willen inloggen
• transparante proxy’s: gebruiker kan de gewenste server rechtstreeks benaderen.
Klassieke proxy: werkwijze
1. Gebruikers melden zich bij de proxy op de firewall (een bastion host die van
proxy’s voorzien is)
Transparante proxy’s
2. proxy bepaalt of het verzoek van de gebruiker gehonoreerd mag worden: een
web-proxy kan het recht tot web-surfen voorbehouden aan specifieke interne
gebruikers die dat voor hun werk nodig hebben
authenticatie technieken: IP-adres, domeinnaam, naam-paswoord, public-key
certificaat, challenge-reponse systeem
1. De client kan de gewenste server rechtstreeks benaderen.
3. proxy-server bouwt een verbinding met echte server; er zijn twee aparte
verbindingen:
client ↔ proxy-server en proxy-server ↔ server.
De client merkt dit niet: er is een transparante verbinding tussen client en server
(proxy treedt op als byte-kopieerder).
4. De automatisch geactiveerde proxy gedraagt zich als
∗ applicatiebewuste proxy: de aanwezigheid van de proxy zal niet altijd
transparant blijven voor de gebruiker: deze kan geconfronteerd worden met
eventuele door de proxy opgelegde beperkingen of met de eis dat sterke
authenticatie plaatsvindt;
∗ applicatie-onafhankelijke proxy (transparant voor gebruiker).
4. De communicatie tussen de client en de server kan al dan niet verder bewaakt
worden:
∗ een web-proxy verbiedt toegang tot bepaalde sites of het gebruik van Java
∗ een ftp-proxy blokkeert bepaalde FTP-commando’s.
Voor- en nadelen
Een proxy-server is een doorgeefluik voor één bepaalde applicatie:
+ de proxy heeft kennis van de applicatie en kan desgewenst voor specifieke
beveiligingsmaatregelen zorgen (protocolscreening), bijv. tegenhouden van
ftp-uploads of verbieden van het gebruik van Java-applets in web-pagina’s
+ gedetailleerde applicatiespecifieke logging
+ Network Address Translation (NAT) vindt automatisch plaats: het interne
IP-adres van een interne client is onzichtbaar; men ziet alleen het IP-adres van
de proxy-server in de buitenwereld
+ per applicatie is een aparte proxy server nodig (een packet filter is voor alle
applicaties bruikbaar)
+ ofwel de client ofwel (het gedrag van) de gebruiker moet aangepast worden: er
moet een tussenstap op de proxy worden gemaakt.
Beschikbaar: HTTP, HTTPS, FTP, telnet, rsh, SSH
2. De firewall onderschept deze poging tot verbindingsopbouw en start automatisch
de juiste proxy.
3. De proxy bouwt een verbinding op met de aangegeven server; client weet niet dat
hij geen rechtstreekse verbinding met de server heeft.
Authenticatie in proxy servers
∗ authenticatie op basis van het IP-adres van de client; dit is geen authenticatie van
een gebruiker maar van een systeem; daarnaast is de techniek zwak vanwege het
gevaar voor aanvallen op IP-niveau (IP-spoofing)
∗ authenticatie op basis van de hostnaam; dit is weer geen authenticatie van een
gebruiker; bovendien nog zwakker vanwege het gevaar voor DNS-spoofing
∗ authenticatie via naam-paswoord: ook een zwakke vorm: het paswoord kan in vele
gevallen afgeluisterd worden via sniffing; vele paswoorden kunnen gemakkelijk
geraden worden en er bestaat de mogelijkheid om met behulp van programma’s
paswoorden te kraken (crack)
∗ authenticatie via naam-paswoord gecombineerd met challenge-response zodat het
paswoord niet over de lijn moet gestuurd worden (bijv. APOP bij POP): niet
gevoelig voor sniffing maar het nadeel van relatief gemakkelijk te raden of kraken
van paswoorden blijft
∗ authenticatie via public-key certificaten
∗ authenticatie via challenge-response systemen zoals one-time passwords of
(hand-held) authenticators
Screened bastion host
Challenge-response systeem
Combinatie van een router als packet filter en een computersysteem met proxy’s
behoort tot de sterkste hedendaagse authenticatietechnieken
∗ combinatie van iets dat de gebruiker weet (bijv. een paswoord) met iets dat de
gebruiker bezit (bijv. een list met codes of een apparaatje)
∗ deze methode herhaalt zichzelf niet: bescherming tegen replay-attack: aanval
waarbij de aanvaller een afgeluisterde sessie naspeelt in de hoop zo ook binnen te
komen
Voordelen van beide technieken worden op die manier gecombineerd.
verboden
interne
netwerk
bastion
host
router
INTERNET
deels toegestaan
Voorbeeld:
1. de firewall stuurt als challenge het getal 12345679
2. de response wordt door de gebruiker gegenereerd door middel van een hand-held
authenticator (dongle):
∗ gebruiker activeert de dongle via een PIN-code
∗ gebruiker voert de challenge in
∗ dongle berekent de response en toont deze aan de gebruiker
∗ gebruiker geeft de response (21ac789b) aan de proxy terug.
De router wordt geconfigureerd zodat hij alleen verkeer toestaat tussen de bastion host
en het internet.
Beter onderhoudbaar omdat de router tabellen statischer kunnen blijven.
Door het inzetten van proxy-servers : een hogere mate van beveiliging.
Voor protocollen waarvoor geen proxy-server bestaat:
∗ specifiek poortnummer openzetten (een gat in de firewall)
∗ gebruik maken van een transparante proxy.
Stand-alone router
Eenvoudig: alle beveiliging wordt gerealiseerd door één enkele router
client
client
Demilitarized zone
extra beveiliging door het gebruik van een apart netwerk met de publieke servers: een
stuk niemandsland tussen de bastion host en de router
router
INTERNET
client
Vanuit het internet is toegang mogelijk tot de publieke servers maar niet tot het interne
netwerk, dat wordt afgeschermd door de bastion host.
Voor- en nadelen van packet filtering:
+ goedkoop en transparant voor de gebruiker en applicaties
client
+ geen mogelijkheden voor protocolscreening en sterke authenticatie
+ een beperkte logging
client
+ zeer onderhoudsintensief: elke verandering vergt het aanpassen van (complexe)
filtertabellen
client
+ systemen met publieke services (email, DNS, web) moeten apart beveiligd
worden.
bastion
host
HTTP
server
DMZ
externe
router
INTERNET
Servicenetwerk met publieke services
De bastion host is uitgebreid met een derde netwerk interface, die verbonden is met een
apart netwerk, het servicenet met alle publieke services: email, web, anonymous-ftp, ...
intern net
interne
netwerk
interne
router
FTP
server
bastion
host
HTTP
server
Secure socket layer: SSL
Techniek voor het versleutelen van het verkeer tussen
browser en server en voor sterke authenticatie
SSL: vormt een programmeerinterface tussen de applicatie en TCP/IP laag.
SSL kan ook toegepast worden in combinatie met
FTP, POP, SMTP, ...
SSL-laag
TCP/IP-laag
Web-server benaderen via het HTTPS protocol:
servicenetwerk
http://
externe
router
applicaties
HTTP, FTP
INTERNET
extern
netwerk
Voordelen:
⇒
https://
HTTPS is niets anders dan HTTP boven SSL, met poortnummer 443.

 versleuteling van de websessie,
Faciliteiten van SSL:
 authenticatie van de web-server en optioneel van de client.
+ de publieke servers zijn beter beveiligd
Belangrijkste browsers en web-servers ondersteunen SSL versie 3.
+ veel betere logging voor het verkeer van en naar het servicenetwerk.
Transport Layer Security (TLS) is de opvolger van SSL.
HTTPS/SSL
• Browser benadert web-server via
HTTPS: https://
• Web-server stuurt zijn certificaat naar de browser
• Browser controleert of hij dit certificaat accepteert, door te kijken of het
ondertekend is door een CA die hij vertrouwt.
Browsers hebben een lijst van bekende CA’s ingebouwd.
Als de browser de CA die het servercertificaat ondertekend heeft, niet kent, dan
kan de gebruiker kiezen: ofwel de sessie afbreken ofwel doorgaan.
• Optioneel (afhankelijk van de instellingen in de web-server) kan ook
clientauthenticatie plaatsvinden: de browser stuurt zijn certificaat op en de
web-server zal verifiëren of dit certificaat in orde is.
• Browser en web-server onderhandelen over het te gebruiken encryptie-algoritme.
• De client genereert een random (bijv. RC4-)session key waarmee deze sessie zal
beveiligd worden. Deze session key wordt versleuteld met de public key van de
server en zo naar de server gestuurd.
• De sessie tussen browser en server wordt versleuteld met de session key.
Beveiliging van email
• Een bericht kan bij transport over het internet afgeluisterd worden. De privacy
van de verzonden data waarborgen kan via encryptie: data versleutelen.
• De inhoud van een bericht kan onderweg door derden veranderd worden. Om de
integriteit van berichten te waarborgen kan gebruik gemaakt worden van message
digests.
• Het is een koud kunstje om een email-bericht te spoofen door rechtstreeks via het
SMTP-protocol een mailserver aan te spreken. Om de authenticiteit van een
bericht te verifiëren kan gebruik gemaakt worden van digitale handtekeningen en
certificaten.
Twee mogelijke oplossingen:
• PGP (Pretty Good Privacy): ontstaan in de UNIX-omgeving, maar geen officiële
standaard geworden;
• S/MIME (Secure MIME): wel een internet standaard en ondersteund door de
meeste mailprogramma’s.
Secure DNS
• beveiligen van DNS transacties, bijv. DNS dynamic updates
alleen geauthoriseerde partijen mogen wijzigingen aanbrengen in de DNS
databank
• verzekeren van correcte naam-adresvertaling aan applicaties en gebruikers
VB: vertaling voor www.bank.be
− antwoord niet van de name-server van bank.be
− maar van een andere NS, uit zijn cache
− indien cache gecorrumpeerd door een hacker: terugkrijgen van onjuist
IP-adres
− browser maakt verbinding met dit onjuist IP-adres
− hackers hebben daar een nagemaakte web-site van de bank staan
(sprekend gelijkend op de echte web-site)
− niets vermoedende gebruiker geeft vertrouwelijke informatie (zoals
rekeningnummer) door
S/MIME
• een applicatieprotocol dat de vorm van versleutelde en digitaal ondertekende
email-berichten vastlegt
• gebruikt RSA als public-key algoritme en (naar keuze) RC2, DES en 3DES als
symmetrische algoritmen
• bij het maken van een bericht kan de gebruiker aangeven dat hij het bericht
wenst te coderen en/of te ondertekenen
• voor het coderen van een bericht is een certificaat van de ontvanger nodig.
Content-Type: application/x-pcks7-mime
Content-Transfer-Encoding: base64
• om een bericht te ondertekenen is een eigen certificaat nodig
Content-Type: multipart/signed
Content-Type: text/plain
Content-Type: application/x-pcks7-signature
Content-Transfer-Encoding: base64
Oplossing: DNSSEC
• elke zone heeft een public key en een bijhorende private key
public key van de zone wordt gepubliceerd via een KEY resource-record
• alle resource-records worden digitaal ondertekend (met de private key)
bij ieder gewoon resource-record hoort een bijhorende SIG resource-record
• een DNS-pakket (bijv. bij een dynamic update) dat over het netwerk gaat kan
digitaal ondertekend worden via shared secrets of public key cryptografie.
IPsec
• Geheimhouding op de netwerklaag: encryptie op IP-niveau (en dus ook alle
hogere lagen);
• Verificatie van de bronnen: controleren of het IP-datagram inderdaad door de
host met het IP-bronadres is gegenereerd (onmogelijk maken om IP-adressen te
spoofen);
• transparant voor de eindgebruiker;
• twee basisprotocollen:
∗ Authentication Header AH-protocol:
bronverificatie, gegevensintegriteit, maar geen geheimhoudig;
∗ Encapsulation Security Payload ESP-protocol:
bronverificatie, gegevensintegriteit, én geheimhoudig.
Virtual Private Network
secure tunnel tussen twee gateways om twee netwerken via internet te koppelen in
plaats van een huurlijn.
Internet
LAN 1
IPSec
Gateway
IPSec Tunnel
IPSec
Gateway
LAN 2
Download