Cisco Security IINS 210-260 – Study Notes – Deel 1/2
Cisco’s 210-260 certificering is onderdeel van CCNA en de logische vervolgstap voor iedereen die CCNA gecertificeerd is. Cisco Security (IINS) zorgt ervoor dat de CCNA kennis uitgebreid wordt zodat Cisco-netwerken afdoende beveiligd kunnen worden. Met de CCNA-beveiligingscertificering heeft een netwerkprofessional de vaardigheden die nodig zijn om de beveiligingsinfrastructuur te ontwikkelen, bedreigingen en kwetsbaarheden in netwerken te herkennen en beveiligingsrisico’s te beperken. De 210-260 certificering legt eveneens de nadruk op belangrijke veiligheidstechnologieën, de installatie, het oplossen van problemen en het bewaken van netwerkapparatuur om de integriteit, vertrouwelijkheid en beschikbaarheid van data en apparaten te waarborgen.
Study Notes
Omdat ik tijdens mijn studie altijd mijn notities netjes noteer wil ik deze met jullie delen. Dit doe ik in 2 delen waarvan dit het eerste deel is. Dit zijn dus mijn persoonlijke studie notities. Geen uitleg of verduidelijking dus. Gewoon de belangrijkste notities uit de boeken. Interessante stof… en voor iedereen die Cisco 210-260 nog gaat leren…. enjoy!
Terminologie
Confidentiality
Vertrouwelijkheid. Er zijn 2 soorten data. Data in rusttoestand en data die in beweging is (van punt A naar punt B). Personen moeten erop kunnen vertrouwen dat hun data veilig blijft en alleen toegankelijk is door vertrouwde personen. In rusttoestand betekend dit het hanteren van de juiste credentials om de data te benaderen en encryptie is een methode om bewegende data vertrouwelijk te houden.
Integrity
Integriteit. Dit betekend dat data alleen gemodificeerd mag worden door geautoriseerde personen of systemen.
Availability
Beschikbaarheid van data. Het niet beschikbaar hebben van data kan catastrofaal zijn voor bedrijven die hiervan afhankelijk zijn. Het niet beschikbaar hebben van data kan leiden tot grote financiele gevolgen en reputatieschade.
-Afkorting bovenste 3 netwerk security termen: CIA
Risk Management
Het in kaart brengen van de risico’s en hun waarde zodat prioriteiten ontstaan om te beschermen. Je moet nooit meer financiële middelen inzetten ter bescherming van een asset (zie onder) dan dat deze asset waard is.
Asset
Dit is alles dat waarde heeft voor een bedrijf zoals mensen, computers en data.
Vulnerability
Dit is een zwakheid in een systeem, netwerk of omgeving welke door een kwaadwillende gebruiker te misbruiken is.
Threat
Dit is een potentieel gevaar van een asset.
- Latent threat
Gevaar welke nog niet ontdekt is en dus onbekend is - Realized thread
Gevaar welke misbruikt wordt of misbruikt is - Threat vecor
Het pad welke de malafide gebruiker genomen heeft om de threat te misbruiken (ook wel threat agent genoemd)
Countermeasure
Dit is een veiligheidssysteem of actie om om een risico (threat) veilig te stellen. Dit kan betekenen dat de vulnerability gemaakt wordt of dat het exploiten van deze vulnerability onmogelijk gemaakt wordt. Veel voorkomende countermeasure maatregelen zijn APL maatregelen:
- Administrative
Geschreven policies, procedures, richtlijnen en standaarden. - Physical
Fysieke beveiliging zoals b.v. afgesloten deuren en brandwerende kluizen - Logical
Logische (technische) toegangsbeveiligingen zoals b.v. firewalls en VPN’s
Algemene informatie:
Attack methodes:
- Man in the middle
Een man-in-the-middle (MitM) attack is een malafide apparaat tussen punt A en punt B. Dit malafide apparaat kan bepaalde zaken manipuleren zodat andere computers geloven dat dit device de ontvanger van de data is (of dat data via dit device gestuurd moet worden) waardoor het apparaat de data kan lezen. Enkele voorbeelden:
>ARP Poisoning (MAC spoofing) – Layer 2
>STP manipulation – Layer 2
>Rogue AccessPoint – Layer 3 - Covert Channel
Een covert channel is het misbruiken van programma’s en communicatiemiddelen. Als de policies b.v. P2P verkeer niet toestaan maar HTTP verkeer wel dan kan de gebruiker zijn P2P verkeer tunnelen binnen het HTTP verkeer waardoor het P2P verkeer niet opvalt. - Trust Exploitation
Het (met opzet) omzeilen van “in-place” veiligheidsmaatregelen. Als een bedrijf een firewall heeft met 3 interfaces waarbij er een outside interface is welke verkeer doorstuurt naar de DMZ interface welke op zijn beurt het verkeer weer doorstuurt naar de inside interface dan zou een malafide gebruiker direct met de DMZ kunnen verbinden om de filtering en policies tussen de outside interface en DMZ interface te omzeilen. - Brute Force
Een Brute Force aanval is een methode om het wachtwoord te raden door vele wachtwoordcombinaties af te “schieten” op het apparaat tot het moment dat het wachtwoord geraden wordt. - Botnet
Een Botnet is een verzameling van geïnfecteerde apparaten welke samenwerken om een grote aanval uit te voeren zoals een DDOS aanval. - Social Engineering
Social engineering is gebaseerd op het “menselijke aspect” binnen een netwerk. Social engineering is een zeer gevaarlijke aanvalsmethode waar technische beveiliging vrijwel altijd machteloos staat. Social Engineering kan tegengehouden worden middels policies en bedrijfsregels maar bovenal door de oplettendheid van werknemers en is het dus zaak van de werkgever om de werkgevers te voorzien van een goede awareness training. Social Engineering voorbeelden zijn:Phishing – het versturen van legitiem lijkende e-mails waarin de gebruiker om gevoelige gegevens gevraagd wordt.
Malvertising – het insluiten van malafide advertenties op legitieme websites om zo de bezoeker van deze websites “in de val” te laten lopen.
Phone scams – het opbellen van een werknemer waarbij de beller zich voordoet voor een vertrouwd persoon zoals de helpdesk van het bedrijf of een Microsoft engineer.
- DoS, DDoS & RDDoS
DoS staat voor “Denial-of-Service” en is een aanval die vanuit 1 apparaat gestuurd wordt met als doen om de service “plat” te leggen. Een Distributed Denial-of-Service” aanval is hetzelfde maar dan wordt de aanval gestuurd door meerdere apparaten (Botnet). Er bestaat ook nog een RDDoS (Reflected Distributed Denial-of-Service) aanval waarbij de aanvallerDDOS aanvallen kunnen in 3 categorieën geschaald worden:
1. Direct – wanneer de verzender de pakketten maakt en direct stuurt naar het slachtoffer
2. Reflected – wanneer de pakketten die de verzender verstuurd gespoofd zijn en afkomstig lijken te zijn van het slachtoffer waardoor ook retourverkeer naar het slachtoffer gestuurd wordt.
3. Amplification – hetzelfde als een “reflected” DDOS aanval maar dan wanneer de retourpakketten veel groter in formaat zijn dan de source pakketten waardoor de ontvanger (en dus het slachtoffer) overspoeld wordt met grote pakketten. Geen goed voorbeeld hiervan zijn DNS query’s.
Netwerk Security Guidelines (basic):
- Least Privilege
Zorg ervoor dat toegang tot network resources beperkt is voor de personen die hier echt gebruik van moeten maken en zeker niet meer. - Defence in dept
Dit concept gaat ervan uit dat je beveiligingsmaatregelen hebt geïmplementeerd op vrijwel alle netwerk resources zodat de veiligheid nog steeds gegarandeerd is mocht er 1 veiligheidsmechanisme falen. Denk aan beveiliging op de router, firewall, server en cliënt beveiliging. - Separation of duties
Hierbij gaan we ervan uit dat verschillende personen ook verschillende taken toegewezen krijgen binnen “netwerk security”. Door deze taken / rollen periodiek te rouleren kun je ervoor zorgen dat er controle is op elkaars werk. - Auditing
Het bijhouden van zaken die op het netwerk gebeuren. Deze logs kunnen weggeschreven worden op een speciale “accounting server”.
Netwerk typologieën:
- Campus Area Network (CAN)
Een campus Area Network (CAN) is een netwerk van meerdere onderling verbonden lokale netwerken (LAN’s) in een beperkt geografisch gebied. Een CAN is kleiner dan een Wide Area Network (WAN) of een Metropolitan Area Network (MAN). - Cloud, Wide Area Network (WAN)
Het WAN netwerk (en Cloud netwerk) bieden een logische en fysieke locatie voor applicaties en data die de organisatie off-site wilt hosten. - Data Center
Het data center netwerk is een fysieke locatie met vele soorten servers (en dus diensten) voor meestal meerdere bedrijven. - Small Office/Home Office (SOHO)
Het SOHO netwerk bestaat meestal uit een simpele router welke verbinding maakt met het bedrijf over het WAN.
Network Threat motivatie
- Financieel:
Het hacken van bankrekeningen of het verkopen van belangrijke informatie zoals persoonsgegevens en bedrijfsstrategieën. - Disruption / verstoring
Het puur verstoren van de core werkzaamheden gebeurt uit verschillende overwegingen zoals protest tegen de acties en motivaties van het bedrijf, als afleiding voor een grotere aanval of puur voor media aandacht. - Geopolitiek
Landen kunnen aangevallen worden via het internet door individuen en groeperingen vanuit geopolitieke overwegingen. Deze aanvallen zijn dan vanuit geopolitieke overwegingen en de personen achter de aanval hebben geen directe binding met de netwerken die ze voor de aanval misbruiken.
Verdedigingen tegen social engineering aanvallen:
- Awareness blijven trainen van gebruikers
- Password management waarbij er regels worden gesteld aan de lengte, het formaat en de geldigheidsduur van het wachtwoord
- Two-factor authentication – inloggen met 2 verschillende identificatiemiddelen zoals een wachtwoord en een vingerafdruk
- Antivirus en antiphisihing – Meerdere lagen van antivirus en anti-malware beveiliging
- Change management – Een document waarin bijgehouden wordt wanneer en door wie bepaalde zaken aangepast worden en waarom.
- Classificatie van informatie – Door informatie op te delen in klassen is het ook mogelijk om slechts bepaalde rollen te koppelen en toegang te verlenen aan deze informatie.
- Document vernietiging – Gevoelige documenten (papier) moeten zorgvuldig vernietigd worden en niet klakkeloos in de prullenbak gegooid worden.
- Fysieke beveiliging – Denk aan bezoekerlogs, begeleiding van bezoekers en achtergrond controles.
Tools voor Malware identificatie:
- Packet captures – pakket analyse is een goede methode maar een zeer tijdrovende klus
- Snort – Snort is een open source “Intrusion Detection & Prevention” systeem gemaakt door de oprichter van Sourcefire welke nu onderdeel is van Cisco
- Netflow – De Cisco Netflow tool maakt het verkeer inzichtelijk. Waar “Pacet captures” is micro analyze daar is Netflow macro analyse. Minder secuur maar wel duidelijker en sneller
- IPS events – Intrusion Prevention Systems hebben de mogelijkheid om een alarm te genereren als een “vreemd verkeer” gedetecteerd wordt
- Advanced Malware Protection (AMP) – Dit een onderdeel van de Cisco FirePOWER netwerk security devices. AMP maakt het mogelijk om geavanceerde, doelgerichte, zero-day en hardnekkige malware gevaren tegen te houden.
- Next-Generation Intrusion Prevention System (NGIPS) – NGIPS wordt centraal beheerd door het Cisco FireSIGHT Management Center. NGIPS biedt meerdere lagen van beveiliging van geavanceerde “threat management” en doet zijn controles op een hoge snelheid.
Interessante informatie voor Hackers
- Itellectual property (IP) ofwel bedrijfsinformatie
- Personally Identifiable Information (PII) ofwel persoonsgegevens
- Credit/Debit card zoals creditkaartinformatie en informatie op de magnetische strips en in de chip van de creditkaart.
Protocollen
Traffic Light Protocol – TLP:
Dit protocol ontwikkeld door de US-CERT division en wordt gehanteerd om data te classificeren. Dit protocol kent 4 classificatie levels.
-
-Kleur:
Rood-Wanneer moet deze gebruikt worden:
Wanneer gevoelige informatie een risico vormt wanneer deze gedeeld wordt buiten de betrokken organisatie en er niet op geacteerd kan worden.-Wanneer MAG het gedeeld worden:
Deze informatie mag nooit gedeeld worden buiten de groep waarin deze opgemaakt is. -
-Kleur:
Amber-Wanneer moet deze gebruikt worden:
Wanneer gevoelige informatie support nodig heeft om goed op te acteren en een risico vormt wanneer deze gedeeld wordt buiten de betrokken organisatie.-Wanneer MAG het gedeeld worden:
Deze informatie mag alleen gedeeld worden met medewerkers binnen het eigen bedrijf die deze informatie nodig hebben voor hun werk. -
-Kleur:
Groen-Wanneer moet deze gebruikt worden:
Informatie die waardevol is voor de community of sector en die dus geen bedrijfs- of persoons specifieke informatie bevat.-Wanneer MAG het gedeeld worden:
Alleen met bedrijven en personen binnen de sector / community maar niet openbaar. -
-Kleur:
Wit-Wanneer moet deze gebruikt worden:
Informatie waarin geen gevoelige gegevens staan en een minimale waarde hebben als deze publiekelijk bekend zouden worden.-Wanneer MAG het gedeeld worden:
Mag altijd en met iedereen gedeeld worden zonder restricties of copyright controle.
Remote authentication
ACS – Access Control Server
ACL biedt de beheerder een gecentraliseerde manier om te gebruikers toegang te geven tot Cisco apparatuur en om te bepalen wat deze gebruikers op de Cisco apparatuur kunnen doen. Dit is van toepassing op administrators om de Cisco apparatuur te beheren en voor gewone gebruikers die services vragen van de Cisco apparatuur zoals toegang tot het internet. ACS servers kunnen hun eigen user database gebruiken maar ACS kan ook koppelen met een gedistribueerde database zoals Active Directory. De ACS server is in dit geval de AAA server (de Authentication, Authorization, en Accounting server) welke de gebruikersgegevens controleert of welke deze doorstuurt naar een gedistribueerde database om deze te daar te laten controleren. ACS zelf draait meestal op een virtuele machine (VMWare ESXi) of op een fysieke appliance. De ouder versies draaien nog als applicatie op een Windows systeem.
Communicatie tussen ACS en de ACS client (routers en switches) gebeurt middels 2 veel voorkomende protocollen. Namelijk:
- TACACS+ – Terminal Access Controller Access-Control System
- RADIUS – Remote Authentication Dial In User Service
TACACS+ – Terminal Access Controller Access-Control System
Eerdere versies van TACACS+ waren o.a. XTACACS en TACACS. TACACS+ is een Cisco protocol. Als een Cisco apparaat praat met een Cisco ACS server dan worden de AAA pakketjes verstuurd middels het TACACS+ protocol. Alle pakketjes worden met TACACS+ volledig versleuteld. Bij TACACS+ zijn alle AAA functies werkelijk verschillende elementen en TACACS+ werkt op “command by command authorization”. TACACS+ gebruikt het TCP protocol.
RADIUS – Remote Authentication Dial In User Service
RADIUS is een open standaard protocol en wordt door meerdere vendors gebruikt als primair protocol voor AAA pakketten en services. RADIUS versleuteld alleen wachtwoorden binnen de pakketten maar niet het gehele pakket, dit in tegenstelling tot TACACS+. RADIUS gebruikt het UDP protocol en combineert alle AAA functies tezamen en heeft gedetailleerdere Accounting eigenschappen dan TACACS+.
Setup router voor AAA authentication
Als je een router wilt configureren voor AAA auhtenticatie moet je wel weten wat je gaat maken. Stel dat we een router willen instellen met AAA authenticatie tegen een TACACS+ server. We willen dat toegang tot de VTY lijnen (Telnet en SSH) geauthenticeerd worden tegen de TACACS+ server en dat geauthenticeerde gebruikers geautoriseerd moeten zijn om een command-line interface (CLI) (EXEC) sessie te starten. Ook dit gebeurt via de TACACS+ server:
>enable #configure terminal -----schakel AAA in----- (config)aaa new-model -----#Stel "group tacacs+" in als eerste authenticatiemethode voor de "login" actie en "local" als fallback----- (config)#aaa authentication login AUTHEN_via_TACACS group tacacs+ local -----#Stel "group tacacs+" in als eerste autorisatiemethode voor de "execute" / CLI actie en "local" als fallback----- (config)#aaa authorisation exec Author_Exec_via_TACACS group tacacs+ local -----#Maak 1 local user als fallback voor als de ACS server niet reageert----- (config)#username admin privilege 15 secret cisco -----#Maak een ACS server aan welke het apparaat probeert te benaderen en configureer het wachtwoord welke ook op de ACS server geconfigureerd is----- (config)#tacacs-server host 192.168.1.250 key cisco123 -----#Ping eventueel de TACACS+ server om te controleren----- (config)#do ping 192.168.1.250 -----#Stel vervolgens de gemaakte authenticatie en autorisatie regels in op de 5 VTY lijnen----- (config)#line vty 0 4 (config-line)#authorisation exec Author-Exec_via_TACACS (config-line)#login authentication ANTHEN_via_TACACS |
Vervolgens is het zaak om de ACS server te configureren zodat deze met de router kan communiceren. ACS servers hebben duizenden opties welke geconfigureerd kunnen worden dus zorg ervoor dat je eerst went aan de GUI. ACS wordt ook geconfigureerd via de GUI dus zorg dat je hier je weg in weet. De belangrijkste componenten binnen ACS zijn:
- Network Device Groups
Dit zijn groepen van apparaten zoals routers en switches welke door dezelfde administrators beheerd worden
Network Resources > Network Device Groups > Device Type - Network Devices / ACS Clients
De individuele devices welke in de Device Groups geplaatst worden
Network Resources > Network Devices and AAA Clients - Identity Groups
Groepen van Administrators. Deze groepen worden meestal zo samengesteld met gebruikers welke gelijke rechten tot dezelfde apparaten nodig hebben (b.v. een admin groep per device groep)
Users and Identity Stores > Identity Groups - User Accounts
De individuele account welke in de Identity Groups geplaatst worden
Users and Identity Stores > Internal Identity Stores > Users - Authorization Profiles
Het profiel welke de rechten bepaald. Het profiel wordt geassocieerd met een Device Group en een Identity Group
Access Policies > Access Services > Default Device Admin > Authorization
De ACS server benader je via de URL:
https://192.168.1.250/acsadmin
Het standaard wachtwoord van de ACS server is “default”.
ISE – Identity Services Engine
ISE is een “Identity en Control Policy Platform” welke kan valideren of een computer voldoet aan de eisen van het bedrijf alvorens deze toegang krijgt tot het netwerk. Denk aan updates, service packs, virus definities etc. ISE wordt vaak naast ACS gebruikt en is geen vervanging voor ACS.
Bring Your Own Device (BYOD)
BYOD is een uitdaging voor iedere organisatie. Er zijn verschillende leveranciers, waaronder Cisco met diverse corporate oplossingen om BYOD scenario’s te beheren en managen. De volgende redenen worden genoemd als geldige redenen om BYOD oplossingen in het netwerk te plaatsen:
- Grote variëteit van consumer devices welke niet allen op dezelfde wijze te managen zijn
- De lijnen tussen werk en vrije tijd worden kleiner
- Men wil altijd en overal toegang tot het werk en andersom
Het BYOD netwerk bestaat uit:
- Bring Your Own Devices (privé apparatuur)
- Wireless Access Points (AP) om de cliënts toegang tot het interne netwerk en/of het WAN te geven
- Wireless LAN (WLAN) Controllers (Cisco WLAN Controllers / WLC). Dit zijn centrale WLAN controllers die gebruikt worden om Cisco WLAN oplossingen te configureren, beheren en monitoren. WLC’s worden gebruikt om beveiligingsregels te controleren en af te dwingen waar BYOD aan moeten voldoen alvorens ze het corporate netwerk op mogen. De WLC werkt samen met de ISE om authenticatie en autorisatie af te dwingen.
- Cisco ISE. De ISE wordt gebruikt om de AAA (Authentication, Authorisation en Accounting) requirements af te dwingen bij BYOD.
- Cisco AnyConnect Secure Mobile Cliënt is de mobiele cliënt die geïnstalleerd wordt op BYOD om middels 802.1X (port-based Network Access Control (PNAC)) toegang te krijgen tot het corporate netwerk maar biedt ook VPN connectie incl. Posture Checking (Network Access Control / NAC) om vanaf het WAN te verbinden met het corporate netwerk.
- Integrated Services Router (ISR) zorgt voor WAN en internet toegang voor de satelliet kantoren en internet toegang voor de thuiswerkers. ISR kan eveneens ook VPN toegang verlenen.
- Aggregation Services Router (ASR) zorgt voor WAN en internet toegang op de corporate campus en heeft vaak een hogere bandbreedte dan ISR Routers. ISR routers hebben vaak weer meer beveiligingsfuncties.
- Cisco Cloud Web Security (CWS) biedt verbeterde beveiliging voor clients die met het internet verbinden over publieke hotsports en 3G/4G verbindingen
- Adaptive Security Appliance (ASA) is het VPN Termination Point voor VPN gebruikers en biedt geavanceerde beveiligingsopties zoals Firewall en IPS
- RSA SecurID Server geeft de gebruikers eenmalige code’s (One-Time Passwords / OTP) indien 2-factor authenticatie gebruikt wordt
- Active Directory fungeert als credential authenticatie directory
- Certificate Authority (CA) biedt o.a. certificaten en controle op die certificaten voor gebruikers die het corporate netwerk willen benaderen
Mobile Device Management / MDM
Mobile Device Managers zijn apparaten die gebruikt worden bovenstaande apparaten, dus de apparaten die het BYOD netwerk creëren uit te rollen, te beheren en te monitoren. MDM apparaten beheren o.a. het volgende:
- Afdwingen van een PIN lock na X aantal keer invoeren foutief wachtwoord
- Afdwingen van sterke en complexe wachtwoorden
- Detectie op poging tot “jailbreaken” of “rooten” van een device en als dit succesvol was kan MDM het apparaat op het netwerk weigeren
- Afdwingen van data encryptie en op basis van deze encryptie apparaten toegang geven of weigeren op het netwerk
- Device Wipe functie zodat het apparaat indien deze gestolen wordt compleet op afstand gewist kan worden.
- Beheren hen uitvoeren van Data Loss Prevention (DLP) zodat zelfs geautoriseerde gebruikers geen malicious zaken kunnen uitvoeren
MDM kan op 2 manieren ingezet worden, namelijk on-premise en in de cloud. Bij een On-Premise MDM Deployment wordt MDM geïnstalleerd op servers die beschikbaar zijn binnen het corporate netwerk en deze wordt dan ook onderhouden en beheerd door de netwerkbeheerders van het bedrijf. Met een on-premise MDM installatie is er een grotere flexibiliteit en grotere mate van beveiliging omdat de beheerders van het bedrijf beter op de hoogte zijn van wetten en eisen die gelden binnen het bedrijf. De Cloud-Based MDM Deployment wordt geïnstalleerd en beheerd door een hosted service provider. Dit is makkelijk voor de beheerders en kost minder FTE maar het uit handen geven van beveiliging kan nogal tegenstrijdig zijn. Een cloud-based oplossing geeft een hogere mate van schaalbaarheid, flexibiliteit en snelheid van deployment.
VPN Technologieën en Cryptografie
VPN staat voor Virtual Private Network en is een virtuele (niet fysiek bekabeld) verbinding tussen 2 entiteiten waarbij confidentiallity, data integrity gebruikt worden om ervoor te zorgen dat de verbinding niet afgeluisterd wordt en dat data niet gemodificeerd is. Er zijn verschillende typen VPN’s. Namelijk:
- IPSec
IPSec wordt gebruikt voor site-to-site (network-to-network) VPN’s en voor remote-access (1 entiteit toegang tot netwerk) VPN’s. IPSec staat voor Internet Protocol Security en beveiligd IP pakketten op layer 3 (network) van het OSI model. - SSL
SSL staat voor Secure Socket Layer en versleuteld de VPN sessies middels SSL. SSL VPN’s wordem voornamelijk gebruikt voor remote-access VPN’s. - MPLS
Multiprotocol Label Switching Layer 3 VPN is een VPN verbinding die tot stand gebracht wordt tussen 2 fysieke locaties door tussenkomst van een service provider welke deze netwerken aan elkaar verbindt. De afkorting voor deze methode is MPLS L3VPN. Dit type verbinding kent standaard geen versleuteling van data omdat het dedicated door de service provider verzorgd wordt. MPLS L3VPN kan wel versleuteld worden middels IPSec.
Zoals al gezegd kent een VPN een aantal voordelen. Deze zijn:
- Confidentiality
Confidentiality betekend dat alleen de juiste partijen de data kunnen interpreteren en lezen. De data is dus vertrouwelijk. Mocht iemand de lijn afluisteren dan ziet deze de pakketjes wel maar omdat de pakketjes versleuteld (cipher text) zijn kunnen deze niet gelezen worden. Deze versleuteling gebeurt middels een sleutel. Vaak een privé en een publiek sleutel. Dit is afhankelijk van de versleuteling. Indien men “symmetric” versleuteling gebruikt dan wordt er 1 sleutel gebruikt om te versleutelen en te ontsleutelen. Als “Asymmetric” versleuteling gebruikt wordt dan gebruiken we een privé en een publieke sleutel welke rekenkundig met elkaar samenwerken. Als gebruiker A data verzend naar gebruiker B dan versleuteld deze de data middels de publieke sleutel van gebruiker B. Als gebruiker B de data ontvangt kan alleen hij deze data ontsleutelen omdat hij hiervoor alleen zijn eigen privé sleutel kan gebruiken. Asymmetrische versleuteling kost veel CPU kracht.Voorbeelden van Symmetrische versleutel methodes zijn:
>Advanced Encryption Standard – AES
>Tripple Digital Encryption Standard (3DES)
>Blowfish
>Digital Encryption Standard (DES)
>International Data Encryption Algorithm (IDEA)Voorbeelden van Asymmetrische versleutel methodes zijn:
>RSA – Rivest, Shamir, Adleman – Kan een sleutelomvang hebben van 512 tot 2048 bits en wordt ook gebruikt voor Public Key Cryptography Standard (PKCS)
>DH – Diffie-Hellman – Asymetrische methode welke symetrische sleutels genereerd tijdens uitwisseling waardoor 3DES en AES gebruikt kan worden
>ElGamal – gebasseerd op DH
>DSA – ontwikkeld door de NSA
>ECC – Elliptic Curve CryptographyMet asymetrische versleutelingen kunnen sleutels gemaakt worden tussen de 2048 en 4096 bits. Kortere sleutellengtes kunnen ook maar worden als onveilig beschouwd.
- Data Integrity
De data integriteit werkt middels een checksum. De checksum faalt als data niet binnenkomt zoals deze verwacht werd. Als de checksum faalt dan kan data dus gemodificeerd zijn gedurende transport en dus worden de pakketten gedropt. - Authentication
Middels authenticatie verifieren we dat we een VPN tunnel maken met de juiste personen en niet per ongeluk met de computer van een hacker. Authenticatie gebeurt op verschillende manieren waaronder pre-shared keys, public en private key pairs of d.m.v. user authentication. - Antireplay protection
Replay is een proces waarbij de hacker data onderschept en deze pakketten later “afspeelt” om zo de VPN peer te foppen zodat de hacker toch succesvol een “trusted” VPN sessie kan opzetten. Antireplay protection zorgt ervoor dat dit niet mogelijk is.
Hash
Confidentiality is onderdeel van “encryptie”. Data Integrity is een onderdeel van “hashing”. Bij hashing wordt data via een algoritme veranderd in onleesbare data. Dit algoritme gebruikt vaak “willekeurige nummers” om de hash te maken welke gebaseerd zijn op een specifieke waarde zoals b.v. het MAC adres, de systeemtijd of de CPU Instruction Pointer. De hash methode zorgt ervoor data datablok 1 altijd dezelfde hash krijgt wanneer dezelfde hash methode gebruikt is maar het is vrijwel onmogelijk om dezelfde hash te krijgen van een ander datablok, zelfs al verschilt deze met slechts 1 bit. Een hash is definitief en niet meer terug te draaien. Een hash noemen we ook wel “message digest” of “digest”. Zo kan zender A een data pakket sturen incl. bijbehorende hash. Ontvanger B gebruikt dezelfde hash methode en vergelijkt de hashes met elkaar. Als deze overeenkomen is het data pakket geldig en onaangetast. Er zijn een aantal verschillende hash methodes waaronder:
- Message Digest 5 (MD5) = 128-bits sleutel
- Secure Hash Algorithm 1 (SHA-1) = 160-bits sleutel
- Secure Hash Algorithm 2 (SHA-2) = 224 t/m 512 bits sleutel
Vervolgens is er nog een methode welke gebruikt maakt van hashing maar nog veiliger is. Voor deze methode moeten beide partijen op de hoogte zijn van een secret sleutel. Deze secret sleutel wordt gebruikt tijdens het hashen en zonder de secret sleutel is de hash nooit te bereken. Deze methode noemen we “Hashed Message Authentication Code” ofwel “HMAC”. Dus zelfs al zou men de hash kunnen kraken dan nog kan men met HMAC gehashte bestanden helemaal niets als men niet beschikt over de secret key.
Ciphers en Keys
Een cipher is een set met regels met hoe encryptie en decryptie moeten plaatsvinden, ofwel een algoritme. Er zijn wel honderden algoritmes beschikbaar en de meeste gebruiken de volgende methodes:
- Substitution
Dit type cipher speelt met karakters door b.v. ieder karakter te vervangen voor een karakter welke 5 posities later in het alfabet voorkomen. - Polyalphabetic
Deze methode is gelijk aan “substitution” maar kan gebruikt maken van meerdere alfabetten waar tussen geswitched kan worden d.m.v. een trigger karakter in het versleutelde bericht. - Transposition
Transposition gebruikt vele methodes door elkaar. Schrijf b.v. de letters van het woord van boven naar beneden in paren van 3 en schrijf het vervolgens achterstevoren.
Om te weten hoe de cipher geïnterpreteerd moet worden is er een sleutel nodig, ofwel de “key”. Naar de key wordt ook weleens gerefereerd als “pad”. Ciphers kunnen hun werk doen op individuele bits en bytes of op blokken van data.
Block Cipher
Een block cipher is een versleutel methode welke de versleuteling toepast op blokken van data. Zo kan de encryptie een 64-bits blok data omzetten naar een 64-bits blok cipher data. Dit is een symetrische versleuteling.Stream Cipher
Een andere symetrische cipher methode is de “stream Cipher”. Omdat hierbij de versleuteling bit-voor-bit wordt toegepast (op de stroom van data die voorbij komt) zorgt deze methode voor iets minder overhead aan data dan een block cipher omdat block siphers hun blokken vullen met loze ruimte indien deze niet geheel gevuld kunnen worden.Digital Signatures
Digitale handtekeningen maken gebruik van alle hiervoor besproken elementen zoals encryptie, hashing en sleutelparen. Digitale handtekeningen zijn onderdeel van Data Integrity omdat ze gebruikt worden om te bewijzen dat we zijn wie we zijn. Digitale signatures zijn eigenlijk versleutelde hashes. Om gebruik te maken van digital signatures moet de gebruikers (verzender en ontvanger) beschikken over een geldig certificaat verkregen uit een CA. De public key van deze gebruikers is bekend omdat deze gegeven is tijdens het aanvragen van het certificaat. Wat er gebeurt is dat data voorzien wordt van een hash welke versleuteld wordt met de private key van de verzender. Dit noemen we de digital signature. Deze data wordt meegezonden met het originele pakket. De ontvanger decrypt de hash met de de publieke sleutel van de verzender en vervolgens controleert de ontvanger de hash. Als de hash overeenkomt weet de ontvanger dat de data alleen afkomstig kan zijn van de verzender (wie heeft immers nog meer zijn private key) en dat data onaangetast is verzonden.
IPSec
IPSec bestaat uit een verzameling protocollen en algoritmes om pakketten te beveiligen op level 3. IPSec zorgt voor confidentiality middels encryptie, data integrity middels hashing en HMAC en authenticatie door gebruik van digitale handtekeningen, pre-shared keys en HMAC (als beide apparaten de secret weten). Ook heeft IPSec Antireplay protection. Pakketten worden namelijk genummerd zodat wanneer een pakket later nogmaals wordt afgespeeld deze niet meer in de volgorde past en wordt gedropt.
De primaire methodes voor het implementeren van IPSec zijn Encapsulating Security Payload (ESP) en Authentication Header (AH). ESP zorgt voor alle facetten van een VPN verbinding terwijl AH vrijwel alle facetten faciliteert behalve de encryptie van data.
IPSec gebruikt de volgende encryptie algoritmes:
- 3DES
- DES
- AES
IPSec gebruikt de volgende methodes voor hashing:
- MD5
- SHA
De volgende authenticatiealgoritmes worden door IPSec gebruikt:
- RSA Digitale certificaten
- Pre-shared keys
IPSec gebruikt het IKE protocol (Internet Key Exchange Protocol) om een veilige remote access of site-to-site VPN tot stand te brengen. IKE is een framework welke ontwikkeld is door ISAKMP – Internet Security Association and Key Management Protocol en bestaat uit 2 key management protocollen, namelijk Oakley en SKEME (Secure Key Exchange MEchanism).
Het negotiation proces van IKE bestaat uit 2 fases (Phase1 en Phase2) en er zijn 2 versies van IKE die door de Cisco ASA ondersteund worden, namelijk IKEv1 en IKEv2. IKEv2 verbeterd het dynamisch uitwisselen van sleutels en het authenticatie proces t.o.v. IKEv1.
IKEv1 proces
Het opzetten van een veilig kanaal middels IKEv1 gaat als volgt:- Routers negotiate een IKE Phase1 tunnel. Dit kan middels main mode en agressive mode (minder pakketten en minder veilig). Deze eerste tunnel tussen de routers wordt opgezet om met elkaar te kunnen praten (Management Traffic zoals keep-alive messages) en niet om uiteindelijke pakketten te verzenden.
- De router die het IKE verzoek verstuurd, stuurt de parameters mee welke hij nodig heeft om Phase2 te starten. De 5 belangrijkste parameters kun je onthouden met het ezelsbruggetje “HAGLE”. H = Hash zoals MD5 of SHA. A = Authentication Method om de andere peer te kunnen authenticeren d.m.v. Pre-Shared Keys of RSA Signatures. G = Group ofwel Diffie-Hellman Group. Hier wordt de sleutellengte bepaald voor de DH Key Exchange. Groep = 768-bits, group 2 = 1024-bits, group 5 = 1536-bits, group 14 & 24 = 2048-bit, group 15 & 16 = 3072 & 4096-bit, group 19 & 20 = 256 & 384 ECDH (Elliptic Curve Diffie–Hellman). Het versleutelproces van DH is asymmetrisch (CPU belastend) waarbij symmetrische sleutels worden gegenereerd waardoor de uiteindelijke encryptie symmetrisch is (AES). L = Lifetime tot de tunnel plat gaat. Beide routers hanteren de parameter met de kortste levensduur van de tunnel. E = Encryptie Algoritme welke gebruikt moet worden om de sessie te versleutelen zoals 3DES of AES. IPSec kent ook 2 methodes namelijk Tunnel en Transport mode. Tunnel mode is worden de IP Header en de Payload van het originele pakket versleuteld en bij Transport mode alleen de Payload.
- Als alle waardes overeenkomen (waar alleen de lifetime parameter mag afwijken) kan het Diffie-Hellman Key Exchange proces gestart worden. De DH group en key-length worden gebruikt zoals ingesteld. Aan het einde van dit proces hebben de apparaten beide een symmetrische sleutel om te gebruiken met symmetrische encryptiemethodes.
- Authenticatie. De laatste stap in het proces is authenticatie. Als ook deze stap slaagt van is Phase1 geslaagd en kunnen de routers veilig met elkaar communiceren.
- Nu wordt Phase 2 gestart om een 2e tunnel te maken welke gebruikt gaat worden voor gebruikersverkeer. De IKE Phase 2 Tunnel noemen we ook wel de IPSec tunnel en kent gelijk, maar soms afwijkende parameters van de IKE Phase 1 tunnel. Zo zal het sleutelmateriaal van DH gemaakt in phase 1 hergebruikt worden. Als je dit niet wilt dan wordt DH groep 1,2 of 5 opnieuw uitgevoerd. Dit noemen we PFS – Perfect Foreward Secrecy.
Beide tunnels samen noemen we ook wel de Security Associations (SA) tussen de routers. Tijdens het versturen van verkeer over de tunnel hebben de pakketten een Destination address van de doel router en een Source address van de bron router. Binnen deze VPN pakketten zitten de originele pakketten met originele Source en Destination adressen maar deze pakketten zijn gedurende transport versleuteld.
VPN Tunnels opzetten
Het opzetten van VPN Tunnels gebeurt voor IINS middels de CCP (Cisco Configuration Professional) tool. De CLI commando’s hoeven dus niet perse onthouden te worden.Om een IPSec tunnel op te zetten moeten de volgende protocollen doorgelaten worden:
- UDP 500 – IKEv1 Phase1
- UDP 4500 – NAT-T(raversal)
- Layer 4 protocol 50 – ESP
- Layer 4 protocol 51 – AH
Let er ook op dat de date en tijden op de routers goed staan. Zeker als er certificaten gebruikt gaan worden binnen het proces. Je kunt b.v. NTP gebruiken om de tijd in te stellen. B.v.
-----Controleer of router een NTP gebruikt----- ()#show ntp status -----Controleer de NTP koppeling----- ()#show ntp association
De eerste stap is om de juiste protocollen te plannen. Bijvoorbeeld:
IKE1
Hash – MD5
Authentication – PSK
Group – DH Group 2
Lifetime – 21600 seconden (6 uur)
Encryption – 128-bits AESIKE2
Hash – SHA
Lifetime – default
Encryption – 256-bits AESSetup VPN IKE1 + IKE2
1. Configure – Security – VPN – Site-to-Site VPN – Create a Site-to-Site VPN > Launch the selected taskVolg vervolgens de stap-voor-stap wizard om de instellingen goed te zetten. Let op, wanneer na IKE1 gevraagd wordt om een “Transform Set” te selecteren of aan te maken bedoelen ze hiermee de IKE2 policy. Om te vertellen welk verkeer de router moet versleutelen (over de tunnel moet gooien) maak je een ACL (Crypto ACL) (dus van Subnet A naar Subnet B versleutelen). Als beide routers een ACL hebben waarbij ze verkeer naar elkaar versleutelen noemen we dat een symmetrische ACL.
Bovenstaande proces kost slechts +/- 6 stappen in de CCP. De ACL commandline ziet er als volgt uit:
-----Maak een IKE1 policy aan met ID 2 omdat de CCP automatisch een ID 1 aanmaakt (welke hoger is en voor gaat)----- (config-isakmp)#crypto isakmp policy 2 (config-isakmp)#authentication pre-share (config-isakmp)#encr aes 128 (config-isakmp)#hash md5 (config-isakmp)#group 2 (config-isakmp)#lifetime 21600 (config-isakmp)#exit -----Zet de pre-shared key----- (config)#crypto isakmp key cisco123 address 43.0.0.2 -----Maak de Crypto ACL----- (config)#access-list 100 permit ip 10.0.0.0 0.0.0.255 172.16.0.0 0.0.0.255 -----Maak IKE2 Transform Set----- (config)#crypto ipsec transform-set MIJN-SET esp-sha-hmac esp-aes 256 -----Zet de modus (tunnel is default en transit is direct van endpoint naar endpoint)----- (cfg-crypto-trans)#mode tunnel (cfg-crypto-trans)#exit -----De crypto map is een policy die het verbindingsproces automatiseerd. Hier specificeren we sequence 1 voor peer 1----- (config)#crypto map SDM_CMAP_1 1 ipsec-isakmp -----Kijk naar policy 100 om te weten of verkeer over de tunnel moet gaan----- (config-crypto-map)#match address 100 -----Gebruik voor de IKE2 tunnel mijn transform set en specificeer endpoint peer----- (config-crypto-map)#set transform-set MIJN-SET (config-crypto-map)#set peer 43.0.0.2 (config-crypto-map)#exit -----Tenslotte moet de crypto map nog toegevoegd worden aan de interface zodat het apparaat het verkeer kan machen aan de ACL----- (config)#interface GigabitEthernet1/0 (config-if)#crypto-map SDM_CMAP_1 (config-if)#exit
Ter info. De IPSec Header heeft een ESP (Encapsulated Security Payload) en wordt aangeduid met ID 50. Nadat je een VPN config middels CCP gemaakt hebt kun je de “Mirror” button gebruiken waarmee een config wordt gecreëerd die je kunt importeren op de router aan de overkant waarmee de juiste VPN instellingen meteen worden ingevoerd. Zorg er wel voor dat je refreshed of dat je een rediscover uitvoert via CCP als je de config via CLI hebt ingeladen. Als alles werkt moet natuurlijk de config ook opgeslagen worden.
Nog een aantal handige CLI commando’s:
Bekijk de IKE Phase 1 policy:
show crypto isakmp policy
Bekijk de details van de crypto map en waar deze is toegepast. Dit toont o.a. de inhoud van de IKE phase 2 transform sets en de ACL’s:
show crypto map
Bekijk de details van een actieve IKE phase 1 tunnel:
show crypto isakmp sa detail
Bekijk de details van een actieve IKE phase 2 tunnel:
show crypto ipsec sa
Bekijk of de encryptie en decryptie goed werken (bekijk de huidige verbindingen):
show crypto engine connections active
Bekijk de status van de interfaces om te zien welke interfaces up zijn en een IP adres hebben toegewezen gekregen.
show ip int brief
Extra help commando’s op een Cisco ASA (Adaptive Security Appliance):
-----Laat IKEv1 en IKEv2 transaties zien----- show crypto isakmp stats -----Laat IKEv1 transaties zien----- show crypto ikev1 stats -----Laat IKEv2 transaties zien----- show crypto ikev2 stats -----Laat de IKEv1 en IKEv2 phase 1 runtime security association (SA) database zien----- show iskmp sa -----Laat de IKEv1 en IKEv2 phase 2 runtime security association (SA) database zien----- show crypto ipsec sa -----Laat alle verbroken VPN verbindingen zien in de sessieDB----- show vpn-sessiondb
Secure Socket Layer – SSL
Er zijn andere momenten dat we willen dat data veilig over het internet reist waarbij IPSec niet mogelijk is. Denk b.v. aan het doen van bankzaken terwijl de bank een andere pre-shared key gebruikt of niet beschikt over een certificaat uit een trusted CA. Voor deze toepassingen waarbij encryptie en authentication ook belangrijk zijn kunnen we SSL gebruiken. SSL is ontwikkeld door Netscape en wordt door de meeste browsers ondersteund. SSL werkt op de sessie laag (of hoger) in het OSI model. SSL werkt als volgt:
1. De client vraagt data op van serverA en vraagt of serverA zich bekend maakt. Dit doet hij via poort 443. De sourceport welke meegestuurd wordt is een random ongebruikte poort boven poortnummer 1023.
2. De 3-way-handshake vindt plaats.
3. De server zend een kopie van zijn digitale certificaat retour (het SSL certificaat) welke de publieke sleutel van de server bevat.
4. De browser controleerd of dit certificaat geldig en veilig is
5. Als de browser het certificaat accepteerd dan heeft de browser toegang tot de publieke sleutel van de server. Nu start het proces om data te versleutelen.
6. De cliënt maakt een shared secret (pre-master key) welke deze wilt gebruiken voor encryptie en versleuteld deze met de publieke sleutel van de server.
7. De server kan de pre-master key alleen ontsleutelen met zijn privé sleutel. De pre-master key is nu bekend bij beide partijen. Beide partijen voegen nog data toe en uiteindelijk zijn ze beide in bezit van de master key. Met de master key worden 2 sessiesleutels gemaakt voor hashing en encryptie).
8. Data wordt versleuteld tussen beide partijen verstuurd. Beide partijen beschikken namelijk over de juiste sessiesleutels om data te encrypten en decrypten.TLS is de voorloper van SSL en is over het algemeen veiliger maar minder breed uitgerold dan SSL. TLS heeft als voordeel dat deze kan praten over een onveilige verbinding en dynamisch kan wisselen naar een veilig kanaal terwijl voor SSL altijd een veilig kanaal opgebouwd moet worden. We refereren nog altijd naar SSL terwijl op de achtergrond vaan de opvolger, TLS gebruikt wordt. Cisco SSL VPN’s zijn in de achtergrond ook eigenlijk TLS VPN’s. Keep this in mind…
Public Key Infrastructure (PKI)
Een Public Key Infrastructure is een netwerk van systemen waarmee de uitgifte van een digitaal certificaat geregeld kan worden. In een klein netwerk bestaat de PKI uit slechts 1 server welke alle componenten faciliteert (Single Root CA) maar deze kan ook bestaan uit meerdere systemen en hiërarchien. Zo is er een “Hierarchical CA” waarbij er 1 top-level CA is die bestaat welke zijn onderliggende CA’s faciliteert welke de cliënts weer voorzien van certificaten. Cliënts moeten hierbij alle CA’s in de hiërarchie vertrouwen. Een andere vorm is de Cross-Certifying CA waarbij er een horizontale trust relatie tussen CA’s bestaat en waarbij cliënts alleen de eerste hoeven te vertrouwen. De PKI bestaat ook uit verschillende onderdelen waaronder de CA (Certificate Authority).
Een Certificate Authority is een instantie die certificaten verstrekt, beheerd en monitort. Er zijn een aantal onafhankelijke (global) CA’s. Deze instanties controleren de partij die deze aanvraagt en genereren voor de aanvragen een certificaat. Deze global CA’s zijn “bekend” bij browsers en instanties en kunnen door iedereen worden geraadpleegd. Je kunt ook zelf een CA opzetten en certificaten uitdelen. Dit zijn dan self-signed certificates en deze worden (zonder handmatige acceptatie) niet herkend en goedgekeurd door andere browsers en computers. Als we het hier over een CA hebben dan refereren we altijd aan een global CA.
Een certificaat wordt gegenereerd middels de aangeleverde publieke sleutel van het apparaat en bevat bepaalde gegevens waaronder:
- Vervaldatum
- Apparaat ID gegevens zoals IP adres en FQDN
- Public Key van het apparaat
- Serienummer van CA
- Locatie van de CRL (Certificate Revocation List)
- Digitale handtekening om bovenstaande gegevens te waarborgen. Dit is een samenvatting van bovenstaande welke gehashed is en versleuteld met een geheime sleutel van de certificate authority.
Root CA – Certificate Chain
Een computer (of browser) zal een certificaat proberen te valideren zodat hij een pre-master key aan kan maken. Dit doet hij door te kijken wie de uitgevende CA is. Dit kan er slechts 1 zijn. Dan is dit de root CA (basiscertificeringsinstantie). Maar het kunnen er ook meer zijn. Het kan ook zijn dat de Root CA een volgende CA vertrouwd en die vertrouwd weer de CA die jouw certificaat uitgegeven heeft. Alle tussenliggende certificeringsinstanties noemen we “Intermediate CA’s”.
Certificate ChainBovenstaande noemen we de “certificate chain”. De computer of browser zal eerst kijken of hij de uitgevende CA vertrouwd. Zo niet dan probeert hij de bovenliggende CA. Als hij een CA in de certificate chain vertrouwd zal de verbinding opgezet worden. Als geen enkele CA vertrouwd wordt dan wordt de verbinding verbroken.
Standaard zijn computers en browsers voorzien van een archief met de digitale certificaten van vertrouwde certificeringsinstanties. Je kunt je eigen self-signed digitale certificaten dus vertrouwen door je eigen (CA) certificaat te importeren in het juiste archief (Vertrouwde basiscertificeringsinstanties).
Root CA’s bestaan o.a. uit de volgende eigenschappen:
- Vervaldatum
- Uitgever (zelfs een root CA)
- Certificaat onderwerp met gegevens als Organizational Unit (OU), Organization (O), Country (C)
- Public Key
- Serienummer (gegenereerd door uitgevende CA)
- Thumbprint aogorithm en thumbprint (dus de certificaat hash)
Bij een root CA kun je de hash controleren door een telefoontje te plegen en de gekregen hash te controleren. We noemen dit een “out-of-band” verificatie.
Identity Certificate
Een Identity Certificate is een certificaat welke een apparaat identificeert. B.v. een webserver welke SSL wilt gebruiken of een Router welke een digital signature wilt gebruiken voor het opzetten van een VPN tummel.Hoe werkt certificaat authenticatie?
In de basis werkt certificaat authenticatie als volgt:1. Je vraagt een certificaat aan met een CSR (Certificate Signing Request) welke door je eigen publieke sleutel ondertekend is bij een CA (je moet de CA al wel vertrouwen)
2. De CA controleert je identiteit en tekent je CSR met zijn publieke sleutel
3. De ontvangen CSR wordt toegevoerd aan de data op de eigen server en vormt het volledige certificaat
4. GebruikerA vraagt data op bij gebruikerB en vraagt zijn certificaat op om er zeker van te zijn dat gebruikerB ook werkelijk gebruikerB is en geen hacker
5. GebruikerB stuurt zijn certificaat met publieke sleutel naar gebruikerA en gebruikerA stuurt deze naar de CA om te controleren
6. De CA decrypt de sleutel en controleerd deze op authenticiteit
7. Het akkoord wordt doorgestuurd naar gebruikerA
8. GebruierA heeft nu de authenticiteit vastgesteld en kan gaan communicerenX.500 en X.509v3 Certificaten
X.500 is een standaard toegelicht op de opbouw en indeling van directory services. Zo gebruikt b.v. Microsoft Active Directory ook de X.500 standaard. De X.500 standaard is een pyramide-achtige standaard waarbij een boomstructuur ontstaat van hoofditems en subitems. Denk aan CN (Common Name), OU (Organizational Unit) en O (Organization). X.509v3 certificaten zijn certificaten die gebaseerd zijn op deze structuur.Public Key Cryptography Standards (PKCI)
Deze cryptografische standaarden beschrijven het gebruik van certificaten en het formaat van deze certificaten. Een aantal bekende PKCI standaarden zijn:- PKCS#10 – Aanvraag van b.v. Identity Certificate(s) bij CA
- PKCS#7 – Het formaat van de response van de CA op een PKCS#10 verzoek
- PKCS#1 – RSA cryptografy standaard
- PKCS#12 – Formaat waarin de publieke en prive sleutel samen worden opgeslagen waarbij een symetrische sleutel gebruikt wordt om deze te unlocken
- PKCS#3 – Diffie-Hellman key exchange
Certificate Revocation
Een certificaat kan teruggetrokken worden waarna deze niet meer geldig is. Er zijn 3 manieren waarop een computer de geldigheid van een certificaat kan controleren:- Certificate Revocation List (CRL) – Lijst met serienummers van teruggetrokken certificaten
- Online Certificate Status Protocol (OCSP) – Laat serienummer door OCSP controleren waardoor niet de hele CRL lijst doorlopen hoeft te worden
- Authentication, Authorisation and Accounting (AAA) – Cisco only protocol (vergelijkbaar met ACSP) maar is de minst gebruikte methode
In de praktijk
Cisco ASA gebruikt een self-signed certificate voor HTTPS verbindingen naar de webinterface en voor eventuele SSL VPN verbindingen naar de ASA toe. Dit genereerd in een waarschuwing bij het openen van de ASA webinterface. Je kunt ook een certificaat aanschaffen. Als je dit doet moet je eerst de root certificaten van de CA importeren en vervolgens een “Identity Certificate” aanvragen.
In de ASDM (grafische interface) kun je certificaten vinden onder “Configuration” – “Certificate Management”. Je kunt certificaten handmatig importeren of meteen een Identity Certificate aanvragen tijdens het genereren van een nieuwe key-pair. Dit d.m.v. SCEP. Het commando om een New Key Pair aan te maken is:
(config)#crypto key generate rsa label Mijn-Nieuwe-Key-Pair modulus 2048 noconfirm
Het hele process bestaat uit de commando’s:
-----Genereer een naam voor de CA----- (config)#crypto ca trustpoint Nieuwe-CA -----Specificeer het sleutelpaar welke gebruikt mag worden voor het publieke gedeelte in het certificaat----- (config-ca-trustpoint)#keypair Nieuw-Sleutelpaar -----Waar mag het voor gebruikt worden (IPSec / SSL)----- (config-ca-trustpoint)#id-usage ssl-ipsec -----Is de FQDN benodigd Ja / Nee?----- (config-ca-trustpoint)#no fqdn -----Specificeer de X.500 common name (CN)----- (config-ca-trustpoint)#subject-name CN=ciscoasa -----Specificeer hoe de CA bereikt kan worden (de CA moet wel HTTP Aanvragen ondersteunen)----- (config-ca-trustpoint)#enrollment url http://caurl.com (config-ca-trustpoint)#exit -----Onvang en installeer het Root Certificaat----- (config)#crypto ca authenticate Nieuwe-CA nointeractive -----Vraag het Identity Certificate aan en installeer deze----- (config)#crypto ca enroll Nieuwe-CA noconfirm
SSL VPN verbindingen
IPSec is veel moeilijker te implementeren dan SSL omdat de meeste browsers standaard al SSL ondersteunen. IPSec daarentegen is over het algemeen wel veiliger. SSL wordt voornamelijk gebruikt voor remote access VPN’s. SSL VPN’s kunnen op verschillende manieren opgebouwd worden.
- SSL clientless VPN – VPN via browser-based authenticatie – Verkeer is proxied (Port Address Translation)
- SSL Thin Client – Klein softwarepakket – Verkeer is proxied (Port Address Translation)
- Cisco AnyConnect Secure Mobility Cliënt (SACSMC) SSL VPN Client – Volledige VPN suite welke verkregen kan worden via de clientless optie – Geen NAT, gebruikers krijgen eigen virtuele IP
SSL gebruikt meerdere soorten encryptie algoritmes, een beetje vergelijkbaar met IPSec.
- Symmetrisch – bulk encryptie
- Asymmetrisch – voor authenticatie en uitwisselen van sleutels
Het instellen van clientless SSL VPN via de ASA gebeurt als volgt:
- Ga naar Wizards en kies voor VPN Wizard en selecteer “Clientless SSL VPN Wizard”
- Maak een profiel aan met een profielnaam, de interface (meestal Outside) en specificeer de Connection Group waarmee toegestane resources worden aangegeven waar men toegang toe heeft bij gebruik van deze VPN. Selecteer ook het certificaat (PKI of Self-Signed)
- Geef aan hoe gebruikers zichzelf mogen authenticeren. Lokale database, of via AAA server zoals ACS (ISE) via RADIUS
- Maak een group policy waarmee je aangeeft tot welke resources de user lid heeft als deze inlogd. Als gebruikers tot meerdere groepen behoren wint de groep waar de gebruiker expliciet aan toegewezen is en verliest dus de default group.
- Maak eventueel bepaalde bookmarks die beschikbaar zijn voor de gebruikers
Om via de ASA te zien welke VPN verbindingen actief zijn ga je naar “Monitoring” > “VPN” > “VPN Statistics” > “Sessions”.
Via de CLI gaat dit proces als volgt:
-----Maak een lokale groep aan----- (config)#group-policy Jarno-Policy internal -----Gebruik een self-signed certificaat----- (config)#ssl trust-point ASDM_TrustPoint0 outside -----Enable SSL VPN op de outside interface----- (config)#webvpn (config-webvpn)#enable outside -----Maak de protocollen en bookmarks aan voor de lokale groep----- (config-webvpn)#group-policy JB-Policy attributes (config-group-policy)#vpn-tunnel-protocol ssl-clientless (config-group-policy)#webvpn (config-group-webvpn)#url-list value IntranetSite (config-group-webvpn)#exit (config-group-policy)#exit -----Specificeer een tunnel group aan voor remote-access toegang----- (config)#tunnel-group JB-connection-profile type remote-access -----Specificeer attributen voor het connectie profiel incl. de group policy welke gebruikt moet worden----- (config)#tunnel-group JB-connection-profile general-attributes (config-tunnel-general)#default-group-policy JP-Policy -----Specificeer the URL welke gebruikt wordt en wanneer gebruikt welk group profiel gebruikt moet worden----- (config-tunnel-general)#tunnel-group JB-connection-profile webvpn-attributes (config-tunnel-webvpn)#group-alias JarnoBaselier enable (config-tunnel-webvpn)#group-url https://100.100.10.10/jarnobaselier enable
Let op dat als je het apparaat vanuit buiten beheerd de URL veranderd naar:
https://100.100.10.10/admin.Het configureren van de Cisco AnyConnect Secure Mobility Cliënt (CACSMC) noemen we ook wel een “Full-Tunnel SSL VPN”. Hiervoor voeren we in de ASA de volgende stappen uit:
- Wizards – VPN Wizards – Cisco AnyConnect Secure Mobility Client Wizard
- Maak een profiel aan met een profielnaam en specificeer de interface (meestal Outside)
- Vervolgens geef je aan welke protocollen (SSL / IPSec) je wilt ondersteunen en welke certificaat je wilt gebruiken.
- Vervolgens geef je aan welke SACSMC cliënt packages je wilt deployen naar de gebruikers. Nieuwe ASA’s hebben al een ASA cliënt in de flash opgeslagen, maar de cliënts kunnen ook gedownload worden van Cisco.com
- Geef aan hoe gebruikers zichzelf mogen authenticeren. Lokale database, of via AAA server zoals ACS (ISE) via RADIUS
- Maak een IP adres pool aan met interne IP adressen welke je wilt uitdelen aan de gebruikers
- Configureer DNS instellingen zoals DNS server, DNS naam of WINS server
- Controleer of je bestaande NAT regels wilt omzeilen of dat je NAT wilt toelaten. Meestal wil je niet NATTEN en vink je dus NAT Exempt aan zodat het verkeer naar de VPN users niet vertaald wordt door NAT regels.
Via de CLI gaat dit proces als volgt:
----Maak een IP pool met adressen om uit te geven aan de clients----- ip local pool anyconnectPool 192.168.20.1-192.168.20.200 mask 255.255.255.0 -----Maak een group policy aan----- group-policy SSL-AnyConnect-GP -----Maak de Group Policy en vermeld daarin het gebruikte protocol en de DNS instellingen----- group-policy SSL-AnyConnect-GP attributes vpn-tunnel-protocol ssl-client dns-server value 192.168.20.250 wins-server none default-domain value voorbeeld.nl exit -----Enable SSL op de outside interface----- webvpn enable outside -----Geef aan welke package beschikbaar is voor deployment----- anyconnect image disk0:/anyconnect-macosx-4.1-k9.pkg 1 -----Enable AnyConnect en geef aan dat men de groep mag selecteren----- anyconnect enable tunnel-group-list enable -----Maak een tunnel groep enm specificeer het type----- tunnel-group AnyConnect-SSL-Group type remote-access -----Geef aan welke group policy deze groep gebruikt en welke IP pool er gebruikt moet worden----- tunnel-group AnyConnect-SSL-Group general-attributes default-group-policy SSL-AnyConnect-GP address-pool anyconnectPool -----Enable URL Alias om te gebruiken om met de server te verbinden----- tunnel-group SSL_AnyConnectwebvpn-attributes group-alias SSL_AnyConnectenable -----Enable NAT Exemption vanuit het inside netwerk naar de VPN clients----- nat (inside,outside) 3 source static inside interface destination static NETWORK_OBJ_10.1.1.0_25 NETWORK_OBJ_10.1.1.0_25 no-proxy-arp route-lookup
Split Tunneling
Normaliter wordt al het verkeer van de cliënt na het opzetten van een VPN tunnel over de tunnel gestuurd. Er is echter een methode om alleen het verkeer over de tunnel te sturen welke voor een bepaald subnet bestemd is. Als het andere verkeer gaat niet over de tunnel. Op die manier kunnen de interne servers alsmede de publieke servers benaderd worden. Dit noemen we Split Tunneling. Dit scheelt veel internet traffic over de tunnel en de Cisco ASA om te verwerken. Een Split Tunnel is echter wel minder veilig omdat een hacker over het internet controle over de machine kan nemen en via de machine over de tunnel op het zakelijke netwerk kan. Om een Split Tunnel op te zetten ga je naar:- Configuration > Remote Access VPN > Network(Client) Access > Group Policies
- Edit de juiste Group Policy
- Ga in de Policy naar Advanced > Split Tunneling en specificeer hier de netwerken waarvan het verkeer over de tunnel moet gaan
SSL VPN troubleshooten doen we als volgt:
SSL negotiation mislukt, voer dan het volgende commando uit om te kijken of SSL encryptie geconfigureerd is:
show running all | include ssl
Om debug messages te analyseren gebruik je:
debug webvpn svc -----In nieuwere versies:----- debug webvpn anyconnect
SVC logging inschakelen en bekijken doen we als volgt:
(config)#logging on (config)#logging class svc buffered debugging (config)#exit #show logging
Layer 2 beveiligen
Note: Meer informatie over de basisprinmcipes van dit hoofdstuk zijn te vinden in mijn CCNA document!
VLAN
Een VLAN is een Layer 2 Broadcast Domain. VLAN’s worden beheerd door de switch en welke poorten toegang hebben tot een specifiek VLAN. Default VLAN is altijd VLAN 1. Hier zijn standaard alle poorten lid van.Een nieuw VLAN maken (of de config van een VLAN bewerken als deze als bestaat)
(config)#vlan10
Interface lid maken van VLAN
(config)#vlan10 (config-vlan)#interface fa0/1 (config-if)#switchport mode access (config-if)#switchport access vlan 10
VLAN’s bekijken:
(config-if)#do show vlan brief
Om verkeer tussen VLAN’s over meerdere switches te versturen gebruik je trunk poorten. Trunk poorten maken gebruik van het 802.1Q protocol. Dit protocol voorziet pakketten o.a. van een VLAN ID.
Het is mogelijk om verkeer tussen VLANs te routeren door een 2 switchpoorten te configureren. 1 als accessport in VLAN A en 1 als accessport in VLAN B. Als beide switchpoorten een eigen IP adres hebben kan de switch tussen beide routeren. Een andere manier om verkeer tussen VLAN’s te routeren is middels een router welke verbonden is met een van de switches. We noemen dit principe “Router-On-A-Stick.
Maak een trunkpoort:
(config)#interface range fa0/23-24 (config-if-range)#switchport trunk encapsulation dot1q (config-if-range)#switchport mode trunk
Verifieer de trunk poorten:
(config-if-range)#do show interface trunk
Spanning-Tree Protocol (STP)
Het Spanning Tree protocol voorkomt loops op layer2 niveau. Loops zorgen voor continue verkeer binnen een VLAN wat veel system resources vraagt en ervoor zorgt dat pakketten niet afgeleverd kunnen worden. Denial of Service dus. Om Cisco devices is het STP standaard op alle interfaces geactiveerd. Elk VLAN heeft zijn eigen STP instance. Cisco noemt dit PVST+ ofwel Per-VLAN Spanning Tree Plus.
Het STP protocol werkt door de switch met het laagste BridgeID de root-bridge te maken, ofwel de hoofd switch. Vervolgens worden alle parallelle paden met de root switch geblokkeerd behalve 1 waardoor een loop niet meer voorkomt. De paden worden berekend aan de hand van een formule. Ook deze paden krijgen een waarde welke we STP Path Cost noemen. De poort die het dichtste bij de root bridge is en dus de laagste SPT Path Cost heeft wordt de root poort. De poorten die het meest efficiënt de BPDU (Bridge Protocol Data Unit = STP Data Units) voor een specifiek VLAN kunnen versturen zijn “designated” poorten en “Nondesignated” poorten zijn poorten die geen pakketjes versturen en dus eventuele loops voorkomen.
Wanneer een poort up gaat (omdat er een apparaat op aangesloten wordt) heeft STP 30 seconde nodig om te kijken of data wel doorgelaten wordt en dat er dus geen loop is. 15 seconden in de listening state waarin STP kijkt of er andere BPDUs binnen komen en 15 seconde in de learning mode waarin STP de dynamische MAC table gaat maken. Als de poort eerst disabled was kan het nog 20 seconde langer duren. Meestal is dit te lang en worden de tijden aangepast naar kortere waardes en vaak kiest men ervoor om de listening en learning state over te slaan. Ook de PortFast feature kan worden gebruikt. PortFast zorgt ervoor dat STP de gekozen poort niet meeneemt in de STP topologie. Hierdoor is het een stuk sneller. PortFast is standaard niet geactiveerd maar kan prima geactiveerd worden als er end-devices op gepatched worden en geen andere routing apparatuur. PortFast schakelen we als volgt in:
(config)#interface fa0/2 (config-if)#spanning tree portfast
Om PortFast op alle poorten (default) toe te passen gebruik je:
(config)#spanning-tree portfast default
Cisco kent ook een nieuwer STP protocol genaamd RSTP ofwel Rapid Spanning Tree Protocol (802.1w). Deze versie heeft nog meer features waarmee heel veel zaken een stuk sneller gaan dan met de traditionele STP.
Spanning-Tree troubleshooten:
Spanning Tree configuratie op VLAN 10 bekijken:
show spanning-tree vlan 10
Blocked en Forewarding poorten bekijken van de Spanning Tree:
show interfaces trunk
Cisco Discovery Protocol (CDP) en Link Layer Discovery Protocol (LLDP)
CDP is Cisco’s eigen discovery protocol en LLDP (802.1AB) is een nieuwer meer algemeen discovery protocol (werkt voor meer vendors). LLDP heeft ook een variant die gespecialiseerd is voor voice applicaties. Dit is LLDB-MED (Link Layer Discovery Protocol – for Media Endpoint Devices). Een discovery protocol zoekt en herkent automatisch nieuwe devices. Zoals al vermeld is het verstandig om CDP of LLDP uit te schakelen op interfaces die verbonden zijn met een vertrouwd netwerk omdat hackers via deze protocollen informatie over het netwerk kunnen verkrijgen.
CDP op 1 interface uitschakelen:
(config)#interface fa0/20 (config-if)#no cdp ?
CDP op 1 interface inschakelen:
(config)#interface fa0/20 (config-if)#no cdp enable
CDP globaal (op de switch) uitschakelen:
(config)#no cdp run
CDP status bekijken:
(config)#do show cdp
LLDP globaal (op de switch) uitschakelen:
#conf t (config)#no lldp run
LLDP status bekijken:
#show lldp
DHCP Snooping
DHCP Snooping is een beveiligingsmaatregel die fungeert als firewall tussen vertrouwde DHCP servers en onvertrouwde clients. Met DHCP Snooping wordt het netwerk dus beveiligd tegen ongeautoriseerde DHCP servers. DHCP Snooping regelt de volgende zaken:
- Valideerd DHCP berichten van onvertrouwde bronnen en filtert de foute berichten
- Rat-Limits DHCP verkeer van vertrouwde naar onvertrouwde bronnen
- Bouwt en beheerd de DHCP Snooping Binding Database welke informatie bevat van onvertrouwde hosts met een leased IP
- Valideert veelvoudige DHCP verzoeken van onvertrouwde hosts
DHCP Snooping kan op VLAN-Basis geactiveerd worden maar staat standaard uitgeschakeld. DHCP Snooping wordt als volgt ingeschakeld. Let op dat de DHCP server al geconfigureerd moet zijn en verbonden moet zijn met een vertrouwde interface op de switch.
-----Enable DHCP Snooping Feature----- (config)#ip dhcp snooping -----Enable DHCP Snooping op 1 VLAN----- (config)#ip dhcp snooping vlan 10 -----Configureer interface als vertrouwde interface (verbonden met DHCP server)----- (config)#interface fa1/0/24 (config-if)#ip dhcp snooping trust -----Configureer de DHCP Snooping database agent om bindings in een database op te slaan----- (config-if)#exit (config)#ip dhcp snooping database tftp://192.168.1.1/dhcp-database/db (config)#exit ----Bekijk de DHCP Snooping configuratie----- #show ip dhcp snooping
Dynamic ARP Inspection
Dynamic ARP Inspection beschermt het netwerk tegen ARP Poisoning. ARP Poisoning is wanneer een onvertrouwde host zijn MAC adres koppeld aan het IP adres van een andere host en op die manier het verkeer onderschept. Dynamic ARP Inspection inspecteerd het pakket op een valide IP-to-MAC binding en gebruikt hiervoor de DHCP Snooping Database. Niet-valide pakketten worden gedropt. Op Dynamic ARP Inspection in te schaken volg je onderstaande voorbeeld:
#conf t -----Enable DAI op 1 VLAN----- (config)#ip arp inspection vlan 10 -----Configureer interface als vertrouwde DAI interface----- (config)#interface fa1/0/24 (config-if)ip arp inspection trust (config-if)exit (config)#exit -----Bekijk algemene ARP Inspecti1 configuratie----- #show ip arp inspection interfaces -----Bekijk ARP Inspectie config op VLAN 10----- #show ip arp inspection vlan 10
Cisco Layer2 beveiling best practices
- Gebruik een ander VLAN dan de default VLAN1 als Native VLAN. Pas dit VLAN niet toe op de access-ports en gebruik dit hetzelfde Native VLAN op alle trunk poorten. Gebruik sowieso nergens VLAN1
-----Verander Native VLAN----- (config-if)#switchport trunk native vlan 3
- Selecteer poorten waarop eindgebruikers werken altijd als access-ports en nooit als trunk poorten. Gebruik ook geen pas hier ook geen dynamische trunk protocollen op toe
-----Zorgt ervoor dat het DTP (Dynamic Trunking Protocol) uitgeschakeld wordt. Deze is standaard altijd aan----- (config-if)#switchport nonegotiate
- Gebruik Port-Security om het aantal MAC adressen welke met een poort kan verbinden te beperken. Dit voorkomt een CAM table overflow attack. CAM = Content-addressable memory. Ook worden hiermee DHCP servers beveiligd omdat een aanvaller welke verschillende MAC adressen uitstuurt om een IP adres bij een DHCP server op te vragen hiermee geblokkeerd wordt. Port Security kan een poort in 3 statussen zetten. Shutdown is de default actie. Een andere actie is “protect”. Hiermee wordt het verkeer van niet toegestane MAC adressen tegengehouden. De laatste status is “Restrict” welke hetzelfde is als “Protect” maak ook nog een syslog melding maakt.
-----Enable Port Security----- (config)#interface fa 0/2 (config-if)#switchport port-security (config-if)#switchport port-security maximum 5 (config-if)#switchport port-security violation protect -----De sticky optie zorgt ervoor dat de MAC adressen opgeslagen worden in de startup config en dus ook na een reboot blijven bestaan----- (config-if)#switchport port-security mac-address sticky
- Gebruik BPDU Guard (Als een BPDU binnenkomt op een access-port (wat een normale PC niet genereert) wordt de poort geblokkeerd).
-----Enable BPDU----- (config)#interface fa 0/2 (config-if)#spanning-tree bpduguuard enable
Als een poort down gaat omdat BPDU guard geactiveerd wordt komt deze in de err-disabled state. Om de poort weer up te krijgen moet je deze handmatig down (shutdown) en weer up (no shutdown) schakelen. Om ervoor te zorgen dat de switch dit zelf doet dan configureer je het volgende:
(config)#errdisable recovery cause bpduguard (config-if)#errdisable recovery interval 30
- Gebruik Root Guard (Controleert welke poorten op remote switches geen root poorten mogen worden) om te voorkomen dat STP gemanipuleerd kan worden
(config)#interface fa 0/24 (config-if)#spanning-tree guard root
- Poorten die verbonden zijn met onbekende of onbetrouwbare netwerken hebben het CDP (Cisco Discovery Protocol) niet nodig. Deze mag op deze poorten uitgeschakeld worden
- Sluit alle switch poorten op een nieuwe switch en koppel ze daarna aan een VLAN welke gebruikt worden als “parkeerplaats”. Voeg de poorten pas aan het juiste VLAN toe als deze gebruikt gaan worden
- Gebruik Dynamic ARP Switching. Dit voorkomt dat hosts layer 2 informatie spoofen
- Gebruik IP Source Guard. Dit voorkomt dat hosts layer 3 informatie spoofen
- Gebruik 802.1X. Dit zorgt ervoor dat gebruikers zich eerst moeten authenticeren alvorens ze data kunnen versturen
- Gebruik DHCP Snooping welke voorkomt dat rogue DHCP servers het netwerk beheren
- Gebruik Storm Control, dit beperkt het broadcast en multicast verkeer op de switch
Troubleshooting
De status van port-security bekijken:
show port-security
De status van port-security op een specifieke poort bekijken:
show port-security interface fa0/2
Dit is het einde van het eerste deel. Op naar deel 2!
- Data Integrity