Iedereen wil natuurlijk een veilige website. Het laatste wat je wilt is dat je website niet meer goed functioneert of erger nog; gehackt wordt. Straks ligt al je data voor het oprapen op straat. Daar zit bijna niemand op te wachten. Gelukkig zijn er een aantal stappen die je kan ondernemen om een veilige website in de lucht te hengelen.
Voor een veilige website is het belangrijk om gebruik te maken van de CIA-triad. C staat voor Confidentiality – ofwel vertrouwelijkheid. De I staat voor Integrity – of integriteit. Als laatste de A. Deze staat voor Availability wat beschikbaarheid betekend.
Inhoudsopgave
Het OWASP goed nalopen
Het ‘OWASP’ is een Engelse afkorting wat staat voor ‘Open Web Application Security Project’. Dit is een project dat begonnen is op 9 september 2001 door Mark Curphey. Dit verschaft alles omtrent webapplicatiebeveiliging, applicatie beveiliging en zogeheten vulnerability assessments voor een veilige website. Klinkt als een hele mond vol.
Het ‘OWASP’ publiceert jaarlijks een lijst met de top 10 meest voorkomende beveiligingszwakten met daarbij de betreffende maatregel, zodat jij een veilige website kan inrichten. Enorm handig dus.
Top 10 webapplicatie veiligheid risico’s
Hieronder is een lijst te zien van de top 10 meest voorkomende veiligheidsrisico’s. De lijst is op volgorde. De OWASP is een top 10 met daarin bewustmakingen voor ontwikkelaars voor het maken van een veilige website. Het gaat diep in op de beveiliging van webapplicaties. Het omtrent een brede consensus over de meest kritieke beveiligingsrisico’s voor webapplicaties.
- Injecties
- Slecht loginsysteem
- Gevoelige data slecht dichtgetimmerd
- XML externe entiteiten
- Gebroken toegangscontrole
- Misconfiguratie in de beveiliging
- Cross-Site Scripting (XSS)
- Onveilige deserialisering
- Plugins of componenten gebruiken met bekende kwetsbaarheden
- Onvoldoende logboekregistratie en monitoren van alles
Testen uitvoeren met Metasploit
Metasploit Project is een open source informatiebeveiligingsproject dat informatie verstrekt over kwetsbaarheden in computersystemen. Deze kunnen bijvoorbeeld worden gebruikt door hackers. Dat helpt bij het onderzoeken van systemen op mogelijke kwetsbaarheden. Zo heb jij straks een veilige website.
Vaak nauwkeurige back-ups maken
Sommige webhosting providers maken standaard back-ups van je systeem en email. Sommige maken zelfs prachtige full-domain back-ups. Het is ontzettend belangrijk dat je eens in de zoveel tijd zelf ook een goede back-up maakt.
Ontzettend belangrijk: Test je back-ups vroegtijdig!
Je wil niet weten hoe vaak het voorkomt dat een back-up niet wordt getest. Iemand maakt netjes elke week een ‘goede’ back-up van zijn of haar systeem. Opeens wordt de betreffende persoon gehackt. Gelukkig heeft hij of zij een back-up. Alleen wanneer die persoon deze uitrolt gaat er val alles mis en is het scherm gevuld met rode errors. Oh ooohw. En wat nu?
Soms kan het zijn dat er ransomware op een systeem is die nog ‘dormant’ is. Deze is dan nog niet actief. Pas wanneer er een aantal maanden voorbij zijn gegaan gaat deze virus beginnen met alles versleutelen op je systeem. Wanneer je dan een back-up terugzet zul je merken dat alles weer wordt versleuteld. Erg naar dus.
Gebruik moeilijke wachtwoorden voor al de belangrijke toegang
Zorg dat niet iedereen toegang heeft tot je veilige websitesysteem. Donald Trump zijn wachtwoord van twitter was bijvoorbeeld: maga2020 – Make America Great Again 2020 – superhandig wel. Wanneer mensen wel toegang hebben is het aangeraden om moeilijke wachtwoorden te gebruiken.
Sla deze op in een systeem die daarvoor bedoeld is zoals ‘Keepass’ of ‘Lastpass’. Zelf maken wij gebruik van Keepass, zodat we onze gevoelige gegevens afschermen van de cloud. Voor alle klanten maken wij een apart bestand aan. Mocht er eentje toch gekraakt worden, hebben niet alle klanten een probleem.
Een nadeel van moeilijke wachtwoorden zijn dat medewerkers ze niet kunnen onthouden en ze vervolgens opschrijven. Dit papiertje houden ze naast hun toetsenbord. Ook weer niet echt handig. Sterke wachtwoorden genereren doe je daarom altijd met DinoPass. Dat maakt het ook nog eens leuk.
Beveilig je website met een SSL-certificaat
Tegenwoordig is een SSL-certificaat echt een pre voor een veilige website. Hackers kunnen het internet afluisteren. Gegevens afkomstig van websites zonder SSL-certificaat
Wat is een SSL-certificaat
Een SSL-certificaat zorgt ervoor dat gegevens kunnen worden versleuteld. Het bevat een zogenoemde publieke sleutel en valideert dat het bij je domein hoort. Dit aan de hand van een hashwaarde. Het is key voor een veilige website.
Hoe werkt SSL precies?
Een veilige websiteverbinding is het beste uit te leggen aan de hand van een voorbeeldje. Stel je wilt een geheime briefjes versturen naar een vriendin die je nog nooit in het echt tegen bent gekomen, maar je weet wel waar ze woont. Eerst schrijf je op een papiertje hoe je vriendin jouw brieven in de toekomst kan ontcijferen. Dit briefje stop je vervolgens in een klein schatkistje. Om het schatkistje doe jij een slot. Vervolgens stuur je het kistje met de post naar je vriendin.
Je vriendin heeft niet jouw sleutel. Dat betekent dat zij het kistje niet open kan maken. Ze doet er vervolgens nog een slot omheen, maar dit keer haar eigen slot. Ze stuurt het kistje terug naar jou. Wanneer jij eenmaal het kistje in handen hebt haal jij jouw eigen slot ervan af en stuur je het kistje weer terug naar je vriendin. Nu kan zij hetzelfde doen en weet zij hoe ze in het vervolg jouw geheime brieven kan ontcijferen.
De sloten uit dit voorbeeld zijn hashes. Hierover wordt later in dit artikel meer uitgelegd. Op deze manier kan de ‘postbode’ nooit zien wat er in het pakketje zit.
Versleutel gevoelige informatie in je Database
Er zijn verschillende algoritmen waarmee je data kan versleutelen in een database. Sowieso is het aangeraden om toegang tot je database dermate ingewikkeld te maken. Dat kan je doen door je server goed af te schermen, zodat niemand er makkelijk fysiek bijkomt.
Google heeft hier een ontzettend goed model voor bedacht. Alleen is dit wellicht een beetje prijzig. Dit is dan ook de reden dat wij het server beheer uitbesteden. Hieronder zie je een video over de zes lagen van een veilige server.
Er zijn genoeg video’s te vinden over het versleutelen van gegevens. Let goed op dat je er snel bij bent wanneer er een beveiligingslek wordt gepubliceerd over jouw versleutelmethode. Het laatste wat je wil is dat de gegevens van jouw onderneming of klanten op straat komt.
Verschil tussen hashen en encrypten
Versleuteling – ofwel encryptie – is een tweerichtingsfunctie. Iets wat je versleutelt, kan je terug ont sleutelen als je over de juiste sleutel beschikt. Erg handig voor de gegevens op je veilige website. Hashing daarentegen is een eenrichtingsfunctie. Deze versleutelt normale tekst om een unieke berichtsamenvatting te creëren.
Er is geen manier om het hashing-proces ongedaan te maken. Zo kan je dus nooit achter het originele wachtwoord komen. Het enige wat zou kunnen werken zijn ‘Rainbow tables‘. Een wachtwoord ga je daarom altijd hashen en bijvoorbeeld een de BSN weer encrypten. Tenzij je de BSN van je gebruikers wilt gebruiken als wachtwoord natuurlijk. Alleen is ook dat weer niet handig.
Hash algoritmen
Een algoritme kan je zien als een soort recept om een probleem mee op te lossen. Wiskundig geformuleerd is het een: ‘eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt‘. Hieronder staan de top 5 hash algoritmen die tot hedendaags dermate goed zijn voor jouw next level veilige website.
- SHA-512 (512 bits)
- MD6 (512 bits)
- RIPEMD-320 (256 – 320 bits)
- Whirlpool (512 bits)
- Tiger (64 – 192 bits)
Bonus: monitoren voor een veilige website
Er zijn een aantal dingen die je in je serverruimte kan plaatsen. Een firewall, een honeypot en een IDS – ofwel inbraakdetectiesysteem. Voor alle drie de apparaten geldt dat het belangrijk is om de logbestanden regelmatig te controleren.
De securityafdeling van grote organisaties zijn soms dagen bezig met het doornemen van de logboekbestanden om erachter te komen wat er allemaal heeft plaatsgevonden. Je kan hackers nooit 100% tegenhouden, maar je kan er wel op voorbereiden en duidelijk in kaart brengen hoe je de escalatie kan verhelpen.
Firewall
Een firewall blokkeert toegang tot alle poorten die niet opengesteld zijn. Het is een soort netwerk poortwachter. Deze poortwachter controleert of internetpakketten alleen in- en uitgezonden worden wanneer dat toegestaan is. Wat hij wel of niet toe mag staan stel je van tevoren in.
Honeypot
Een honeypot – ofwel honingpot – is een soort lokfiets die de politie inzet om criminelen erin te luizen. Het maakt je website of webapplicatie niet per definitie een veilige website, maar het draagt zeker bij aan het kunnen voorspellen van een komende aanval.
IDS
Een IDS is een systeem op je netwerk dat hackpogingen opmerkt. Bijvoorbeeld iemand die een poortscan of een fingerprint scan uitvoert. Een poging tot hacken is eigenlijk niet meer dan dat iemand in wil breken op jouw netwerk, website of applicatie.