PIBN Security Whitepaper November 2012
1
PIBN Security Whitepaper Voorwoord Hacken van website, lekken van loginnamen en passwords, cookiewetgeving, meldplicht datalekken, debatten over privacy en nieuwe inzichten in de manier waarop computers, netwerken en gegevens moeten worden beschermd. Security is en blijft een hot topic. Met name voor iedereen die internet gebruikt. En daarbij krijgt vooral de veiligheid van websites en de privacy van bezoekers de laatste tijd veel aandacht. PIBN, de branchevereniging en kennisorganisatie van de beste internetbureaus van Nederland, heeft begin juli een infographic gepubliceerd waarbij 10 tips voor een veilige website centraal stonden1. Deze infographic bestond uit bruikbare tips voor de kleinere partijen maar vanuit PIBN leden bleek een behoefte te zijn naar verdieping. In deze whitepaper worden de belangrijkste onderdelen van een solide security strategie besproken bij de ontwikkeling en het beheer van online producten. Deze whitepaper is tot stand gekomen met behulp van Security experts van Mirabeau, eFocus, Nines en TamTam en wordt gedragen door PIBN, de brancheorganisatie voor de beste internetbureaus.
1 http://www.pibn.nl/infographic-10-tips-voor-een-veilige-website/. PIBN Security Whitepaper November 2012
2
1. Inleiding De ontwikkelingen binnen de online wereld gaan razendsnel. Van mobiel, f-commerce tot responsive webdesign: internetbureaus krijgen te maken met een steeds breder wordend scala aan producten en diensten en worden gezien als de regisseur van het online kanaal. Maar tegelijkertijd met de opkomst van deze online producten, wordt de informatie die online moet worden verwerkt steeds strakker verweven met de core processen van bedrijven. En daarmee worden ook de security risico’s steeds groter. Niet alleen omdat deze gegevens steeds belangrijker worden, maar ook omdat dit steeds meer de aandacht van kwaadwillenden trekt. Variërend van scriptkiddies die uitproberen hoe kwetsbaar een webwinkel is, tot bedrijven en overheden die aan digitale spionage en sabotage doen. Alle internetbureaus hebben bepaalde aspecten van security in hun dienstverlening geïntegreerd. Zo wordt de OWASP top-10 vaak gehanteerd om secure web applicaties op te leveren. Zeer geregeld worden (vaak door derde partijen) security testen uitgevoerd om het eindresultaten te controleren op eventueel overgebleven security risico’s. Maar nog te vaak zijn tussen opdrachtgever en internetbureau onduidelijkheden rondom security. Om hierin meer helderheid in te krijgen geeft deze whitepaper verschillende aandachtspunten voor zowel opdrachtgever als internetbureau voor verantwoorde security bij de ontwikkeling en beheer van online producten en diensten. Deze whitepaper richt zich met name op projectleiders die betrokken zijn bij het ontwikkelen en beheren van online omgevingen en web applicaties, zowel aan de kant van de opdrachtgever als aan de kant van de dienstverlener. Tevens is het document zodanig geschreven dat ook managers, developers en beheerders de whitepaper kunnen gebruiken. De whitepaper is als volgt opgebouwd. In hoofdstuk 2 wordt een korte uitleg gegeven van security of informatiebeveiliging. Vervolgens worden in hoofdstuk 3 aandachtspunten gegeven voor het ontwikkelen en beheren van secure online omgevingen. De whitepaper wordt afgesloten met een slotwoord in hoofdstuk 4.
PIBN Security Whitepaper November 2012
3
2. Security Security of informatiebeveiliging is het vakgebied dat zich bezighoudt met het beschermen van de beschikbaarheid, integriteit en exclusiviteit van informatie. Doel hierbij is het borgen van de continuïteit van informatie en informatievoorziening. Dit klinkt academisch, maar is eenvoudig door te vertalen naar de praktijk. Het aspect beschikbaarheid richt zich erop dat informatie beschikbaar is op het moment dat de informatie nodig is. Dit betekent dat de beschikbaarheid van online systemen (zowel infrastructuur als software) moet zijn afgestemd op de eisen van de opdrachtgever. Het aspect integriteit betreft het borgen van de juistheid van informatie: de informatie moet actueel en compleet zijn. Naast maatregelen om datacorruptie te voorkomen, gaat het hierbij ook om het zoveel mogelijk controleren van input (zoals een check op het formaat van een datum, telefoonnummer of een postcode), om er zeker van te zijn dat deze juist is. En dat is niet alleen belangrijk voor de integriteit van informatie, maar ook wordt hiermee het probleem van inject van code aangepakt (zie aandachtspunt #05). Exclusiviteit gaat over de toegang tot de informatie: alleen bevoegden mogen toegang hebben tot de informatie en mogen informatie toevoegen, wijzigen of wissen. Vaak wordt gewerkt met een username/password combinatie om dit te controleren, soms worden hier ook tokens (zoals de calculators bij het telebankieren) voor gebruikt. Denk hierbij niet alleen aan gebruikers van, maar zeker ook aan beheerders van online omgevingen. Het doorlopen van deze drie aspecten van informatiebeveiliging in een risicoanalyse (zie aandachtspunt #02) maakt de risico’s en de daaruit voortkomende (functionele) eisen rondom security inzichtelijk. Op basis daarvan kunnen fysieke, technische en/of organisatorische maatregelen worden genomen om deze risico’s tot acceptabel niveau terug te brengen.
PIBN Security Whitepaper November 2012
4
3. Aandachtspunten De kern van deze whitepaper omvat de aandachtspunten voor zowel opdrachtgever als internetbureau op het gebied van ontwikkelen en beheren van security. De manier waarop deze aandachtspunten worden ingevuld zal voor elk online product en omgeving en voor iedere opdrachtgever en internetbureau anders zijn.
3.1 Algemeen Zowel voor ontwikkeling als voor beheer geldt het volgende aandachtspunt. #01: Leg afspraken vast Leg requirements voor de website en beheerafspraken over de website vast, zodat voor alle betrokken partijen helder is wat de website moet doen en wie waarvoor verantwoordelijk is. Dit geldt niet alleen voor de security requirements (voortkomend uit aandachtspunt #02 en #03), maar voor alle afspraken rondom de ontwikkeling en beheer van de website. Laat alle afspraken door alle betrokken partijen goedkeuren.
3.2 Ontwikkeling Bij het ontwikkelen van een online product of omgeving zijn de volgende aandachtspunten van belang. #02: Voer een risicoanalyse uit Breng de beveiligingseisen vanuit de business voor de website in kaart. Denk aan eisen rondom de beschikbaarheid, (bijvoorbeeld: hoe lang mag de website gepland of ongepland offline zijn of welke piekbelasting moeten we aankunnen?) integriteit (bijvoorbeeld: welke eisen worden gesteld aan juistheid van gegevens?) en vertrouwelijkheid (bijvoorbeeld: wie mag wel en niet bij welke gegevens?). Maak ook een calamiteitenplan (zie punt #12) voor het geval dat één van de risico’s zich verwezenlijkt. #03: Inventariseer van toepassing zijnde wet- en regelgeving Breng in kaart welke eisen van toepassing zijn op de website en vertaal deze door naar de requirements van de website. Denk in ieder geval aan de Wet bescherming persoonsgegevens (Wbp) en de cookiewet. De Wbp gaat over het registreren van informatie over personen en de cookiewet richt zich op het plaatsen van cookies op de website. Houdt daarnaast ook rekening met eisen die branches stellen, zoals eisen aan (creditcard)betalingen of internationale eisen rondom US- en EU data privacy wetgeving. Of zaken zoals het Safe Harbor Principe, met name als men gebruik maakt van cloud diensten. #04: Hanteer een OTAP infrastructuur Maak een scheiding tussen de omgeving voor Ontwikkeling, Testen, Acceptatie en Productie (OTAP). Elke omgeving heeft zijn eigen specifieke doelen en inrichting. Door deze omgevingen van elkaar te scheiden wordt voorkomen dat de ene activiteit de andere negatief beïnvloedt. Zo geeft testen in de ontwikkelomgeving vaak geen reëel beeld over performance of functionaliteit in het echt en is testen in productie gevaarlijk voor de stabiliteit.
PIBN Security Whitepaper November 2012
5
Tevens voorkomt het hanteren van een OTAP strategie dat toegang tot klantgegevens wordt beperkt tot degene die daar toegang toe moeten hebben. Of dat kwaadwillenden toegang hebben tot de broncodes en ontwikkeltools door deze te verbieden in de Acceptatie of Productie omgeving. Zorg tijdens het werken binnen een OTAP omgeving voor goed overzicht van alle bronnen en systemen en strakke release- en data-update procedures om te voorkomen dat kopieën onbeheerd achter blijven. #05: Hanteer OWASP top-10 bij ontwikkeling Hanteer bij het ontwikkelen van de website minimaal de OWASP top-102. Deze top-10 bevat de tien grootste risico’s voor websites en geeft richtlijnen voor het tegengaan van de risico’s. Denk hierbij aan het gebruik van firewalls, beveiligde verbindingen (zoals HTTPS), het encrypted opslaan van wachtwoorden, het controleren van gebruikersinput, het beveiligen van formulieren tegen het injecteren van code, het scheiden van rechten van (systeem) users, enzovoort. Naast uitgever van de top-10 is de OWASP ook een goede bron voor meer achtergrond informatie over security. Ook leveren veel software systemen, zoals cmssen en frameworks, zogenaamde ‘hardening guides’: volg deze richtlijnen bovenop hetgeen OWASP adviseert. #06: Vang foutmeldingen af Webservers rapporteren vaak standaard foutmeldingen. Vang deze standaard foutmeldingen af in een logbestand dat bedoeld is voor de beheerders van de website. Presenteer de gebruiker met een gebruikersvriendelijke melding, die geen informatie weggeeft over de inhoud van de website. Voorkom dat de gebruiker wordt geconfronteerd met bijvoorbeeld de bug gegevens zoals te zien is in onderstaand figuur. Dit is niet alleen erg gebruiksonvriendelijk, maar een bezoeker met technische achtergrond weet bij het zien van deze foutmelding meteen dat er een probleem is met de verwerking van de invoer, wat de deur openzet voor een SQL injectie-aanval3.
#07: Voer security tests uit Laat als opdrachtgever security tests uitvoeren van de (in ontwikkeling zijnde) website, en laat verbeteringen aanbrengen op basis van het rapport met resultaten en aanbevelingen. Herhaal deze tests bij grote wijzigingen.
2 3
Zie https://www.owasp.org/index.php/Main_Page. Lees verder via http://projects.webappsec .org/w/page/13246936/ Information%20Leakage .
PIBN Security Whitepaper November 2012
6
In bijgaande figuur zijn de meest voorkomende fouten in online omgevingen getoond4. Dit zijn tevens de zaken die vanuit de OWASP top-10 worden aangepakt (zie aandachtspunt #05) en dient bij security tests rekening mee te worden gehouden. Er zijn diverse tools die de code, de website en de infrastructuur testen op veel gemaakte (programmeer)fouten en/of bekende kwetsbaarheden. Ook zijn er gespecialiseerde bedrijven die verschillende vormen van tests uitvoeren. Belangrijk is dat de slager niet zijn eigen vlees keurt, en de test dus door een onafhankelijke partij wordt uitgevoerd. Vaak voeren internetbureaus gedurende het ontwikkelingsproces interne tests uit, maar wordt het eindresultaat ook nog getoetst door een derde partij (penetratie testen).
3.3 Beheer Bij het beheer van een online product of omgeving zijn de volgende aandachtspunten van belang. #08: Installeer security patches Laat security patches zo snel mogelijk installeren. Dit voorkomt dat hackers gebruik kunnen maken van bekende fouten in software (zoals het OS, CMS, database, libraries, tools en de applicatie zelf). Als er een OTAP omgeving beschikbaar is; test patches eerst op de OTA omgeving voordat de productie omgeving geüpdatet wordt, om te voorkomen dat de patches onverwacht de applicatie verstoren. #09: Detecteer, voorkom en blokkeer misbruik. Elke website bevat lekken, hierop bestaat helaas geen uitzondering. Op basis van deze waarheid moet worden ingezien dat beveiliging op elke laag bijdraagt aan de totale veiligheid van de applicatie. Met andere woorden, het is zeer onverstandig om te vertrouwen op een enkel beveiligingslaag zoals een firewall of een sterk wachtwoord. Bijgaande figuur geeft een voorbeeld van verschillende beveiligingslagen5. Zorg er in ieder geval voor dat na een beperkt aantal inlogpogingen het account (tijdelijk) geblokkeerd wordt. Dit voorkomt dat hackers via het raden van passwords kunnen inbreken op de website. Beperk indien mogelijk de IP adressen waar vandaan beheerders en gebruikers kunnen inloggen. Of laat beheerders inloggen met 2-factor authenticatie. Hanteer indien mogelijk een Intrusion Detection System (IDS) en antivirus oplossingen.
4
http://www.marketwire.com/press-release/WhiteHat-Security-Winter-Website-Security-Statistics-Report-Finds-Average-WebsiteHas-1406925.htm
5
http://msdn.microsoft.com/en-us/library/ff648636.aspx
PIBN Security Whitepaper November 2012
7
#10: Back-ups Steeds vaker maken websites een integraal onderdeel van de core business van opdrachtgevers. Er staan vaak cruciale gegevens in de omgeving die bij verlies een grote schadepost opleveren. Zorg daarom dat er van de juiste zaken (code, configuraties en gegevens) back-ups worden gemaakt, die op een veilige plek worden opgeborgen en regelmatig worden getest. Overweeg ook om zelf back-ups van de omgeving te bewaren, en zorg ervoor dat deze back-ups tegen diefstal beveiligd zijn. Steam-hackers maakten versleutelde back-up buit6 De aanvallers die vorig jaar november bij spelontwikkelaar Valve wisten in te breken, hebben zeer waarschijnlijk een versleutelde back-up met allerlei privégegevens buitgemaakt. Dat zegt Valve's Gabe Newell in een verklaring voor Steam-gebruikers. Steam is een digitaal distributiesysteem waar mensen online spellen kunnen kopen.
#11: Zorg dat monitoring op orde is. Het is in veel gevallen niet mogelijk om aanvallen geheel geautomatiseerd te detecteren en te blokkeren. Proactieve (applicatie-) monitoring zorgt ervoor dat de beheerder wordt gealarmeerd wanneer er verdachte activiteit is, zoals vreemde logmeldingen, ongewoon veel netwerkverkeer of onbeschikbaarheid van de applicatie. Maak met de beherende partij afspraken over het (zo snel mogelijk) detecteren van aanvallen, zodat er direct actie kan worden ondernomen. Na inspectie kan de beheerder - om te voorkomen dat informatie wordt gelekt - de website offline halen of de bron die de website met informatie overspoelt blokkeren (Denial-of-Service of DoS). Vergeet niet om de correcte werking van de monitoring regelmatig te testen7. #12: Calamiteitenplan Zorg dat duidelijk is wat er moet gebeuren als het fout gaat (zie ook punt #11). Wat moet er gebeuren als zich een technische storing voordoet. Of als een hacker toegang heeft gekregen tot de website. Moet deze dan offline gehaald worden? Staat er een storingspagina klaar? Zorg er ook voor dat er een communicatieplan is en dat iedereen en vooral gebruikers worden geïnformeerd over acties, consequenties en uitgevoerde oplossingen om te zorgen dat problemen zich op die manier niet meer voordoen. Een solide calamiteitenplan en/of een communicatieplan, zorgt ervoor dat duidelijk is wie wat moet doen in geval van incidenten. #13: Voer security tests uit Security staat nooit stil. Ook binnen een online omgeving die eerst veilig word geacht, kunnen nog kwetsbaarheden zitten (zie aandachtspunt #07). Er bestaan kwetsbaarheden die nog niet ontdekt zijn, of door nieuwe ontwikkelingen opeens misbruikt kunnen worden. Daarom is het noodzakelijk ook omgevingen die in beheer zijn regelmatig te testen. Daarbij moet worden gekeken of back-ups terug te zetten zijn (zie aandachtspunt #10) en of calamiteitenplannen in de praktijk wel werken (zie aandachtspunt #12). Maar het belangrijkste aandachtspunt hierbij is het herhaaldelijk en periodiek security scans uitvoeren op een beheeromgeving waar niet veel gewijzigd wordt. Mogelijk zijn er nieuwe exploits ontdekt, is de onderliggende tooling niet ge-update (openssl, .net-omgeving of IIS) of zijn er netwerkpoorten of firewalls open blijven staan. Denk er ook aan om bij periodieke security tests zaken als zwakke wachtwoorden, testbestanden, bestandsrechten, oude- of test-users en debugopties op te sporen. Hiervoor is actuele 6 7
http://www.security.nl/artikel/40300/1/Steam-hackers_maakten_versleutelde_back-up_buit.html http://searchsecurity.techtarget.com/tip/Application-logging-is-critical-in-detecting-hack-attacks
PIBN Security Whitepaper November 2012
8
documentatie nodig, zorg dat deze informatie aan het beheerteam wordt overgedragen. Houd oude omgevingen niet onnodig online, want de security van deze verouderde omgevingen zal vroeg of laat gevaar opleveren.
4. Slotwoord Security is zowel een verantwoordelijkheid voor opdrachtgever als internetbureau. De aandachtspunten uit deze whitepaper geven een goed handvat voor beide partijen om de basis van security voor online omgevingen te creëren en beheren. Helaas is er geen bulletproof aanpak voor security te bedenken. Elke omgeving is anders, waardoor er telkens op een net andere manier naar security gekeken moet worden. Daarnaast worden er continu nieuwe aanvallen bedacht en kan wat vandaag veilig lijkt morgen weer achterhaald zijn. Desalniettemin zijn er een aantal belangrijke aandachtspunten die niet over het hoofd gezien mogen worden rondom online omgevingen. Deze whitepaper geeft vanuit de praktijk een 13-tal aandachtspunten voor het ontwikkelen en beheren van online diensten en producten. Het nalopen van deze aandachtspunten bij de uitvoering van projecten en beheer zorgt er in ieder geval voor dat er geen belangrijke zaken over het hoofd worden gezien. Mocht een uitgebreidere lijst van security aandachtspunten nodig blijken, dan zijn er een aantal standaarden en richtlijnen beschikbaar in de markt. Zo is er de NEN/ISO 27000 standaard (waaronder de code voor informatiebeveiliging) die een beschrijving geeft wat best practices zijn voor informatiebeveiliging8. Ook heeft het Nationale Cyber Security Centrum richtlijnen opgesteld voor veilige webapplicaties9. Tot slot: security is geen eenmalige activiteit. Er zal continu aandacht moeten worden besteed aan het veilig maken en houden van online diensten en producten. Niet in de laatste plaats omdat er steeds meer delen van de core business van bedrijven en organisaties op online omgevingen wordt afgehandeld, hetgeen kwaadwillenden op Internet niet ontgaat...
8 9
http://www.nen.nl/web/Normshop/Normen/Normoverzichten/Onderwerpen/Informatiebeveiliging.htm https://www.ncsc.nl/dienstverlening/expertise-advies/kennisdeling/whitepapers/ict-beveiligingsrichtlijnen-voorwebapplicaties.html
PIBN Security Whitepaper November 2012
9
PIBN Security Whitepaper November 2012
10