Nieuws

Het verkleinen van je attack surface

Een logische stap in IT security is het verkleinen van de attack surface (attack surface reduction). Het begrijpen en beheren van je attack surface – het aantal mogelijke manieren waarmee een aanvaller in een apparaat of netwerk kan komen en data kan ophalen – zal je helpen het risico op een aanval te verlagen. Hoe kleiner je attack surface, hoe veiliger je in de regel bent.

Het verkleinen van je attack surface vormt een onderdeel van security by design. Een beter begrip krijgen van jouw IT-omgeving en de elementen in jouw attack surface die risico’s vertegenwoordigen, zijn goede stappen in de richting van een proactieve verdediging.

Waaruit bestaat de attack surface?

De attack surface van een applicatie bestaat uit:

  1. Het totaal van alle poorten/commands in en uit de applicatie
  2. De code die deze poorten beschermt (inclusief resource connection en authenticatie, autorisatie, activiteit logging, data validation en encoding)
  3. Alle waardevolle data die gebruikt wordt in de applicatie, waaronder secrets en keys, intellectuele eigendom, bedrijfskritische data en persoonsgegevens
  4. De code die deze data beschermt (inclusief encryptie en checksums, toegangs audits, data integratie en operationele security controls)

Potentiële zwakke plekken in operating systems en software zijn factoren die de attack surface vergroten. Denk aan ransomware. Niet alleen kan ransomware de controle overnemen en losgeld vragen, maar moderne ransomware kan ook als een virus werken. Dan blijft het niet bij 1 besmet apparaat of systeem, maar dan kan het virus zich snel verspreiden over het gehele netwerk.

Wil je weten hoe Cyso jou kan helpen om de attack surface te verkleinen? Neem contact met ons op!

Best practices om je attack surface te verkleinen

Om je attack surface te verkleinen kan je diverse stappen nemen. Begin met het identificeren en het in kaart brengen van de attack surface.

Identificeren en in kaart brengen van de attack surface

Neem eens de tijd om een uitwerking van de attack surface te maken. Kijk naar het design en documenten over de architectuur vanuit het oogpunt van een aanvaller. Bekijk de broncode en identificeer toegangs- en exitpunten:

  • API’s
  • Databases
  • Andere lokale opslag mogelijkheden
  • UI forms en velden
  • HTTP headers en cookies
  • Runtime arguments
  • Jouw punten van toegang en exit

Waarschijnlijk is je lijst erg lang. Het is daarom aan te raden om je lijst in te delen per type gebaseerd op functie, design en techniek zoals: admin interfaces, login toegangspunten, transactionele interfaces/API’s, zoekfuncties etc.

Rangschikken van de attack surface risico’s

Als je de lijst hebt ingedeeld, ga dan kijken wat de hoogste risico’s zijn. Richt je daarbij op toegangspunten van buitenaf en waar het systeem anonieme toegang toestaat.

  • Custom API’s
  • Web forms
  • Bestanden van buiten het netwerk
  • Security code: alles wat te maken heeft met cryptografie, authenticatie, autorisatie en sessiebeheer
  • Backwards compatible interfaces met andere systemen
  • Network-facing code

Deze plekken zijn waar je het meest vatbaar bent voor een aanval. Ga dan kijken wat je voor mitigerende maatregelen in plaats hebt, zoals WAF of intrusion detection systemen die je applicatie helpen te beschermen. Vul deze maatregelen aan waar nodig.

Het beheren van je attack surface

Helaas blijft het niet bij het eenmalig in kaart brengen en maatregelen nemen. Een applicatie of systeem is niet een product wat nooit verandert. Vraag jezelf af bij wijzigingen:

  • Wat is er veranderd?
  • Wat doe ik nu anders? (Een andere aanpak of andere techniek gebruikt)
  • Welke gaten kan ik nu gemaakt hebben?

Veranderingen in authenticatie en password management beïnvloeden direct de attack surface en moeten (opnieuw) worden beoordeeld. Dit geldt ook voor autorisatie en toegangsrechten, specifiek het toevoegen of veranderen van (admin) rollen. Ook veranderingen in code of architectonische veranderingen vallen hieronder.

Zo’n risico assessment kan periodiek gedaan worden, of als onderdeel van development projecten. Normaliter zal een attack surface met de tijd toenemen als er meer interfaces, integraties met andere systemen en user types bij komen. Ga op zoek naar manieren om de attack surface te verklein door te versimpelen, bijvoorbeeld door het aantal gebruikersniveaus te verminderen of door geen vertrouwelijke gegevens op te slaan als dat niet nodig is. Schakel functies en interfaces uit die je niet gebruikt. Gebruik tools zoals een WAF om direct te detecteren als er een aanval gaande is.

Voeg niet zomaar features toe aan je applicatie of systeem

Hoe minder contactoppervlak er met het internet is, hoe minder er aangevallen kan worden en hoe kleiner de kans op misbruik. Developers moeten elke feature van een applicatie of systeem die ze maken onderwerpen aan de volgende vragen:

  1. Is het proces van ontwikkeling en deployment rondom deze feature zo veilig mogelijk?
  2. Als ik een cybercrimineel was hoe zou ik deze feature kunnen misbruiken?
  3. Moet deze feature standaard zijn ingeschakeld en/of publiekelijk beschikbaar zijn? Zo ja, zijn er limieten of opties die het risico van deze feature kunnen helpen verminderen?

5 Tips voor het verkleinen van je attack surface

We geven je 5 korte tips om je attack surface te verkleinen.

1. Hou je software up to date en patch op tijd

Kwetsbaarheden komen helaas nog vaak voor. Gelukkig zijn daar patches en updates voor. Zorg dat je een vast updateproces hebt om te voorkomen dat je systemen of applicaties te lang niet worden bijgewerkt. Lees ook: Voorkom onnodige risico’s en patch op tijd

2. Beperk toegang met het internet

Hoe minder contactoppervlak er met het internet is, hoe minder er aangevallen kan worden en hoe kleiner de kans op misbruik. Zet je diensten en (beheer)interfaces die geen publieke toegang vereisen achter een (SSL) VPN of plaats ze in een niet-publiek VLAN. Firewalls dienen ook voor het verkleinen van de attack surface en kunnen zowel globaal als lokaal ingezet worden om alleen noodzakelijke communicatiekanalen open te zetten. Een andere keuze die vaak gemaakt wordt is om een load balancer als reverse proxy in te zetten en daarmee een extra scheiding te creëren tussen de applicatie en het publieke internet.

3. Installeer of run geen features die je niet nodig hebt

Een open deur, maar we melden hem toch. Wat je niet nodig hebt, installeer dat dan ook niet. Hiermee vergroot je alleen maar je attack surface terwijl je dat niet wilt. Hoe kleiner je attack surface, hoe veiliger je in de regel bent.

4. Voer applicaties niet uit als admin of root

Open deur nummer 2, maar toch gebeurt het vaak. Een applicatie die als root wordt uitgevoerd heeft overal toegang toe. Zo zou het de firewall kunnen openen, nieuwe services uitvoeren, gevoelige informatie lezen en zo verder. Als de applicatie een zwakke plek heeft, is alles op die host volledig geopenbaard. In het algemeen wil je dat jouw applicatie met zo min mogelijk rechten wordt uitgevoerd.

5. Check de OWASP top 10

De OWASP top 10 wordt wereldwijd door developers erkend als de eerste stap naar veiligere code. De lijst vertegenwoordigt een brede consensus over de meest kritieke security risico’s voor webapplicaties. De OWASP top 10 geeft per risico een overzicht van typische kwetsbaarheden in applicaties, voorbeelden van hoe deze misbruikt worden en manieren om dat te voorkomen.

Bekijk hier de OWASP top 10.

Er zijn natuurlijk nog veel meer manieren om je attack surface te verkleinen. Wij kunnen je er meer over vertellen en helpen je graag. Neem contact met ons op!

Ben jij je bewust van jouw attack surface en de cyberrisico’s?

Het security landschap is continu in beweging. De uitdagingen nemen toe als je het risico van menselijke fouten en awareness meeneemt. Met kennis van de juiste security maatregelen die nodig zijn kunnen organisaties hun attack surface verkleinen en daarmee een sterk, kosteneffectief security beleid implementeren.

Cyso kan je helpen met het nemen van de juiste security maatregelen. Check hiervoor onze security diensten. Heb je hulp nodig bij het proces inrichten van security bij het ontwikkelen van je applicaties en systemen? Kijk dan eens bij DevOps on Demand

Wil je op de hoogte blijven van de laatste ontwikkelingen op IT gebied. Meld je dan hier aan voor de nieuwsbrief.

Benieuwd naar de mogelijkheden? Let’s talk!

Cyso stories

16/08/2018

10 vragen over beveiliging die u iedere provider zou moeten stellen

Elke provider kan u vertellen hoe zij de beveiliging van systemen en netwerken hebben ingericht. Maar misschien heb je wel extra vragen over de security hiervan.
19/11/2019

Persistent data in Kubernetes: permanente gegevensopslag voor jouw containerplatform

Kubernetes is een dynamisch en schaalbaar containerplatform. Maar hoe zit het met data en gegevens die je langer beschikbaar moet houden?
5 valkuilen van kubernetes k8s cyso
18/06/2020

De vijf valkuilen van Kubernetes

Past Kubernetes bij jouw organisatie? We lichten 5 valkuilen van Kubernetes uit waar je niet in moet trappen.

Interesse in een van onze diensten?

Wat is je vraag? Neem nu contact met ons op.

Wil je dat wij contact met jou opnemen? Laat je gegevens achter en wij bellen je terug.

Cyso contact