Firewalls
De juiste firewall kiezen
Over het algemeen zijn er 3 soorten firewalls: stateless, stateful en next-generation.
De stateless en stateful firewalls inspecteren beide de packet headers voordat ze een beslissing nemen. Ze kijken dus enkel naar het IP-adres en de poort, bron en bestemming. Stateful firewalls slaan daarnaast informatie op over actieve verbindingen. Bij een open verbinding houdt de firewall een intern statusrecord bij dat bijgewerkt wordt wanneer nieuwe pakketten worden geïnspecteerd. Dat biedt de mogelijkheid om afwijkingen te detecteren. Bijvoorbeeld een DNS-respons zonder bijhorend verzoek.
We raden dus altijd aan een stateful firewall te gebruiken in plaats van een stateless.
Een Next-Generation Firewall (NGFW) daarentegen kan de payload van meeste pakketten inspecteren. De verwerkingscapaciteit en dus de prijs hiervan zijn natuurlijk hoger. Maar dit is momenteel de beste firewalltechnologie op de markt.
System
Als vuistregel geldt dat we de blootstelling van onze systemen aan risico's zoveel mogelijk willen verkleinen en dat alles wat toegankelijk blijft streng gecontroleerd moet worden.
We kijken dus vooral naar de configuratie en het onderhoud van de firewall zelf. We adviseren dan ook het gebruik van accounts op naam, idealiter geverifieerd via een directoryservice die gebruikt maak van het LDAP-protocol, met multifactor authenticatie en een geldig certificaat voor goede beveiliging.
Lees ons artikel over Multi-Factor Authenticatie: https://www.cert.be/nl/paper/accounts-beter-beschermen-met-multifactorauthenticatie
Het serviceaccount die wordt gebruikt om de actieve directory te bevragen moet zo min mogelijk rechten hebben.
Alle accounts op naam moeten ingericht zijn volgens het principe van least privilege. Zo krijgt een analist enkel leesrechten, terwijl een beheerder over lees- en schrijfrechten beschikt. Dit wordt best ingesteld via groepen van rollen in de directoryservice, om een wildgroei aan rechten te voorkomen. De inloggegevens van de lokale beheerder moeten veilig worden bewaard in een kluis en mogen nooit worden gebruikt, tenzij er geen andere keuze mogelijk is.
De lijst met accounts die toegang hebben tot de firewall moet worden bijgewerkt als werknemers worden aangeworven, de organisatie verlaten of een andere functie krijgen. Deze lijst moet minstens één keer per jaar worden herzien.
Qua netwerkconfiguratie moeten we absoluut een fysieke interface van de firewall toewijzen voor beheerstoegang in het beheers-VLAN. Netwerkinterfaces die niet gebruikt worden, moeten worden uitgeschakeld, de blootstelling aan veiligheidsrisico's zoveel mogelijk te beperken.
Het is ook belangrijk dat de firewall over statische routes beschikt voor alle interne netwerken die niet rechtstreeks verbonden zijn met de firewall. Dit om eventuele DNS- en spoofing-aanvallen te voorkomen.
Filterbeleid
Bij het instellen van het filterbeleid raden we aan om expliciete regels te gebruiken. Dit betekent dat u alles opschrijft wat u wilt doen, in een logische volgorde. Dit zonder uit te gaan van impliciete regels die misschien in de firewall zijn ingebouwd. Dit maakt het voor u en toekomstige beheerders ook gemakkelijker om het beleid te begrijpen en bij te werken. Het is ook eenvoudiger om specifieke parameters voor een regel te verfijnen. Kies er bijvoorbeeld voor om verkeer niet te loggen als bekend is dat er veel ruis op zit.
Pas ook het principe van de least privileges toe: open alleen de poorten die nodig zijn voor het goed functioneren van het bedrijf en de werknemers, en niet meer. Weiger ook niet om elke poort te openen, maar volg liever het principe van de "goede huisvader".
Alles wat niet expliciet wordt toegestaan door het filterbeleid moet ook expliciet worden geblokkeerd. Daarom is het belangrijk dat de instelling eindigt met een laatste regel die alles blokkeert en logt.
We zullen de logische volgorde van de regels van dichterbij bekijken, waardoor ze efficiënter, gemakkelijker te lezen en te onderhouden zijn. We onderverdelen deze in drie types:
- De firewallbeveiliging:
- Verkeer naar de firewall (meestal voor beheersdoeleinden) en verkeer gegenereerd door de firewall zelf (meestal voor updates) toestaan en loggen.
- Al het netwerkverkeer met de firewall als bestemming blokkeren. Bij deze regel hoort natuurlijk ook loggen en we moeten ervoor zorgen dat elke interface van de firewall hierdoor gedekt wordt.
- De bedrijfsregels:
- Laat alle netwerkverkeer dat verband houdt met de bedrijfsvoering zo specifiek mogelijk toe en dit moet gelogd worden.
- De regels inzake ruis:
- Indien nodig, schakel het loggen van bekende ruis uit.
- Al de rest blokkeren (final block)
- Blokkeer en log alles wat niet is toegestaan. Bij sommige configuraties kan deze blokkering ook aan het begin worden toegepast. Dan wordt alles geblokkeerd behalve de gevallen die vervolgens worden toegestaan, maar in dat geval wordt al het verkeer gelogd. Het principe is echter hetzelfde.
Hier ziet u een beknopte weergave van hoe dit eruit zou zien:
Bron | Bestemming | Dienst van bestemming | Actie |
Toegestaan verkeer naar de firewall |
[ADMIN_NET] | admin_interface | HTTPS | Toestaan + loggen |
[DISTANT_OFFICE] | external_interface | IPSEC | Toestaan + loggen |
Toegestaan verkeer vanuit de firewall |
internal_interface | [UPDATE_SERVERS] | HTTPS | Toestaan + loggen |
external_interface | [DISTANT_OFFICE] | IPSEC | Toestaan + loggen |
Firewallbeveiliging |
alles | [ALL_INTERFACES] | alles | Blokkeren + loggen |
Toegestaan bedrijfsverkeer |
proxy | internet | HTTPS | Toestaan + loggen |
[USERS_NET] | [ADDS_SERVERS] | AD | Toestaan + loggen |
[MAIL_SERVERS] | internet | SMTP | Toestaan + loggen |
Regels inzake ruis: |
[USERS_NET] | users_net_broadcast | SMB_BROADCASTS | Blokkeren |
Final block |
alles | alles | alles | Blokkeren + loggen |
Forward Proxies
We willen de uitgaande internetverbindingen in de hand houden om verkeer van het type "Command & Control" (C2) of geheime kanalen te detecteren en de toegang tot malware of kwaadaardige websites te blokkeren. Daarvoor dient een proxy.
Positie en encryptie
De proxy moet voldoende performant zijn om verkeer te ontsleutelen en analyseren. De proxyserver is dus een gateway tussen de gebruiker en de bestemmingsserver. De server behandelt alle verzoeken en reacties namens de gebruiker. In deze rol kan de proxy de inhoud van elke verbinding lezen en de gewenste filters toepassen.
Een proxy moet ook zorgen voor een veilige verbinding tussen zichzelf en de andere betrokken actoren. Men gebruikt hiervoor best TLS 1.3. Zorg ervoor dat er nooit toestemming wordt gegeven voor een downgrade van de versleutelingsmethoden. Met andere woorden, we willen expliciete proxies gebruiken in plaats van "bump-in-the-wire" (of transparante) proxies, die tekort schieten bij versleuteld verkeer.
De proxy moet ook beschikken over alle moderne protocolanalysemogelijkheden: HTTPv3, QUIC, DoT, DoH, DoQ, media streaming, enz.
We willen netwerktelemetrie kunnen volgen om anomalieën te identificeren (zeer waardevol bij exfiltratiedetectie) en ook netwerk captures (PCAP) om toekomstige bedreigingen op te sporen. Het loggen van HTTP-headers is ook interessant om gegevenslekken te vinden. Dit valt buiten het bestek van dit artikel, maar als u meer informatie of implementatiemethoden wilt, kunt u het volgende artikel raadplegen: https://cqr.company/web-vulnerabilities/information-leakage-via-http-headers/.
Authenticatie van gebruikers
Hiermee bepaalt u hoe apparaten van gebruikers worden gevalideerd als ze toegang willen tot het internet. De authenticatie van proxies moet ingeschakeld worden, om nieuw beleid te kunnen maken voor gebruikers of groepen.
Er kunnen twee methoden worden gebruikt om een gebruiker te verifiëren, via het IP-adres van het apparaat of via een gebruikersnaam en wachtwoord. De tweede optie is uiteraard de beste, maar is niet mogelijk voor elk onderdeel van het netwerk, bijvoorbeeld servers. Vervolgens maken we een lijst met toegestane bronhosts en bestemmingen op basis van technische behoeften (updateservers). Servertoegang tot het internet is het gemakkelijkst te misbruiken door aanvallers om gegevens te stelen. Elke toegang die niet geauthenticeerd is of niet op de lijst staat, moet worden geblokkeerd.
Door gebruikers te verifiëren moet de proxy in staat zijn om lokale of domeinbeheerders, bevoorrechte accounts of serviceaccounts te detecteren en hun toegang tot het internet te blokkeren.
Configuratie van de host
Bij een expliciete proxy gebruiken we meestal een Proxy Auto-Configuration (PAC) bestand of Web Proxy Auto-Discovery (WPAD). Dit beschrijft aan de client host hoe men toegang krijgt tot bronnen, afhankelijk van de URL, hostnaam of IP. Dit bestand moet worden opgeslagen op een manier die gemakkelijk en snel toegankelijk is voor de gebruikers, maar niet van buitenaf. Enkel gebruikers met de juiste privileges kunnen het wijzigen.
Met dit bestand is het mogelijk om bepaalde verbindingen te configureren zodat ze de proxy (DIRECT) omzeilen, maar de risico's die dit met zich meebrengt moeten zorgvuldig worden afgewogen.
Configuratie van de proxy
Binnen het kader van dit beleid moet de proxy worden geconfigureerd om:
- Uitvoerbare bestanden, bibliotheken, scripts, installatieprogramma's of andere toepassingen te beperken tot een vooraf goedgekeurde lijst.
- De mogelijkheid te beperken om niet-goedgekeurde bestandstypen te downloaden.
- Actieve of niet scanbare inhoud te blokkeren, zoals bestanden met macro's of versleutelde bestanden.
- Gebruik te maken van de categorieën van websites. Deze informatie wordt meestal aangeleverd door de leverancier. Zo verleent men enkel toegang tot websites afhankelijk van de behoeften van de rol van de gebruiker. Aangezien er steeds nieuwe malwaresites bijkomen, is het verstandig om nieuwe websites of websites die niet tot een categorie behoren, te blokkeren.
- Malware via heuristiek, reputatie en handtekening te detecteren en blokkeren.
Network Access Control (NAC)
Als we het risico willen beperken dat een malafide apparaat fysiek verbonden wordt met het netwerk is Network Access Control (NAC) een goede oplossing. Met de NAC-oplossing kan de toestemming en het toegangsniveau van elk apparaat of elke gebruiker worden gecontroleerd alvorens deze verbinding maakt met het netwerk. Het apparaat of de gebruiker wordt eerst in een apart VLAN geplaatst en als de authenticatie en autorisatie zijn gevalideerd, wordt deze op het netwerk aangesloten.
De invoering van dergelijke oplossingen valt buiten het bestek van dit document, maar hier volgen enkele basisaanbevelingen:
- Aangezien MAC-authenticatie gemakkelijk te omzeilen valt met MAC-spoofing zetten we prioritair in op 802.1x-authenticatie.
- Bepaalde apparaten zoals printers ondersteunen het 802.1x protocol doorgaans niet. Ze moeten dus in een ander netwerk geplaatst worden.
- Omdat een aanvaller een hub zou kunnen plaatsen en de authenticatie van een legitiem apparaat zou kunnen gebruiken om het netwerk binnen te dringen, is het beter dat apparaten zich sneller opnieuw moeten authenticeren.
- Alle ongebruikte netwerkpoorten moeten worden uitgeschakeld.
- Het beschikbaar maken van informatie zoals IP-adressen of MAC-adressen kan het leven van een aanvaller makkelijker maken. Daarom moet deze informatie streng worden bewaakt.
- Werknemers moeten leren om kritisch te zijn en de juiste mensen in te lichten als ze nieuwe of verdachte apparaten zien die ergens zijn aangesloten.
- Er zijn een paar dingen die gecontroleerd kunnen worden via de NAC oplossing en die kunnen wijzen op een aanval:
- Ongebruikelijke link up and link downs
- Wijzigingen in de netwerksnelheid en -duplex
- Wijzigingen in framegrootte
- Wijzigingen in TTL's
Een NAC kan niet alleen de gebruiker authenticeren, maar ook de beveiligingsconfiguratie van de client host valideren om te zien of deze voldoet aan het beveiligingsbeleid. Bijvoorbeeld beschikken over een up-to-date antivirusprogramma, enz.
Virtual Private Networks (VPN)
VPN's worden gebruikt om gescheiden hosts of netwerken via het internet op een beveiligde en vertrouwelijke manier met elkaar te verbinden.
Er zijn meerdere soorten VPN's. We zullen ons hier beperkten tot de twee belangrijkste: IPsec en SSL VPN-oplossingen. Het belangrijkste verschil is het protocolniveau: IPSec is ingebed in TCP/IP terwijl SSL/TLS een laag bovenop TCP/IP is.
Welke VPN-technologie er ook gekozen wordt, het is belangrijk om de gebruikelijke beveiligingsadviezen te volgen, afhankelijk van wat er beschikbaar is: goede authenticatie, goede toegangscontrole en goede logging. Dit valt buiten het bestek van dit document en zullen we in andere publicaties behandelen.
IPsec
IPsec VPN's bestaan uit drie hoofdprotocollen: Internet Key Exchange (IKE), Authentication Header (AH) en Encapsulating Security Payload (ESP).
- IKE wordt eerst gebruikt voor de authenticatie van beide partijen door middel van een uitwisseling van sleutels. Dit creëert een zogenaamde 'security association' tussen twee apparaten. IKE ondersteunt zowel PSK (Pre-Shared Keys) als certificaatverificatie. Voor een betere beveiliging moeten we certificaten gebruiken die zijn ondertekend door een vertrouwde certificaatautoriteit.
- AH slaat op de twee uiteinden van de communicatie en garandeert dat er niet geknoeid is met pakketten tijdens het transport.Bij de bron wordt het berekeningsresultaat, Integrity Check Value (ICV) genoemd, in een speciale header gezet. De bestemming voert dezelfde berekening uit en vergelijkt het resultaat met de ICV-waarde om de integriteit van het pakket te controleren. AH levert geen encryptie.
- ESP is verantwoordelijk voor de encryptie. Dankzij de eerder uitgewisselde symmetrische sleutels wordt de inhoud van het bericht versleuteld.
Als u een VPN-concentrator gebruikt, raden we het gebruik aan van Dead Peer Detection (DPD). Dat is een mechanisme waarmee de twee peers van een IPsec-tunnel kunnen detecteren of de andere peer niet meer bereikbaar is. De IKE security association vervalt dan.
Om nog verder te gaan, kunnen we een up-to-date state-of-the-art referentie hebben voor alles wat te maken heeft met de encryptiemechanismen in de NIST Special Publication 800-77.
SSL VPN
SSL VPN's werken grotendeels op dezelfde manier als andere SSL/TLS-technologieën, zoals HTTPS. Concreet betekent dit dat de tunnel tot stand komt via vier stappen (de befaamde "four-way handshake"), namelijk de initiële controle, de serverauthenticatie, de encryptie-onderhandeling en dan de sleuteluitwisseling. De gegevens worden dan doorgestuurd in de tunnel die is gemaakt voor de eindpunten of netwerken waarvoor de VPN is geconfigureerd met de encryptiemechanismen en sleutels die zijn uitgewisseld.
Aangezien dit allemaal vrij standaard is, is de invoering en het onderhoud van dergelijke tunnels vrij eenvoudig.
Vergeet echter niet om een certificaat van redelijke grootte te kiezen (RSA 2048-bits voor een Let's Encrypt-certificaat is meer dan voldoende). Dit prachtige hulpmiddel van de Mozilla Foundation zou u veel moeten helpen: https://ssl-config.mozilla.org/
Het voorkomt het maken van fouten wanneer je een SSL-configuratie nodig hebt voor een dienst waar je niet veel vanaf weet.
Hieronder volgt de gebruikelijke minimale aanbeveling voor het gebruik van versleutelingsalgoritmen in SSL VPN op het moment van publicatie:
Instelling | Aanbeveling |
Cipher | AES-GCM, AES-CTR, AES-CBC, AES-CCM (128, 192, 256-bits sleutels) |
Handshake | RSA, DSA, ECDSA met 128-bits beveiliging: minimaal RSA of DSA met 3072-bits sleutel of ECDSA met 256-bits sleutel |
Hash authentication | HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 |
Perfect Forward Secrecy (PFS) | DH14 tot DH21 |
Bron: ANSSI - Agence Nationale de la Sécurité des Systèmes d’Information. (2020, 1 januari). Guide des mécanismes cryptographiques. ANSSI. https://www.ssi.gouv.fr/uploads/2021/03/anssi-guide-mecanismes_crypto-2.04.pdf
Verkeer monitoren
IDS/IPS
IDS (Intrusion Detection Solution) en IPS (Intrusion Protection Solution) zijn oplossingen die bedreigingen in het netwerk kunnen opsporen en uiteindelijk blokkeren. Meer details hierover leest u in een van onze toekomstige artikelen.
WAF
WAF's (Web Application Firewalls) zijn apparaten die voor een webserver wordt geplaatst om de webservices te beschermen tegen aanvallen op applicatieniveau. Deze technologie wordt in een ander artikel besproken.