woensdag 7 september 2011

Gecertificeerd hacker - Doe het zelf DigiD

In mijn laatste blog heb ik het gehad over een groep hackers die bijna alles wat ze deden openbaar maakte op het internet, met de vraag wat er door andere personen allemaal nog verborgen wordt. Deze week is daar een antwoord op gekomen. Een manier om al het internetverkeer van iedereen te onderscheppen.


Mensen die het nieuws gevolgd hebben de laatste tijd weten natuurlijk dat ik het (grotendeels) heb over DigiNotar, de gehackte Certification Authority (CA). Maar niet iedereen zal meteen weten wat een CA is, en wat ze precies doen, dus eerst een kleine uitleg.

Normale websites die men bezoekt zijn niet versleuteld. Dat houdt in dat alle tekst zoals hij te zien is op een website, ook zo over het internet van de webserver naar de opvragende computer gaat. Iemand die dit verkeer kan zien, kan dus ook meekijken met de inhoud van alle websites die iemand bezoekt. Omdat dit bij sommige websites niet bepaald gewenst is (Denk aan dingen als internetbankieren, DigiD, enzovoort), worden "gevoelige" sites beveiligd met een SSL versleuteling.

Hoe herken je een versleutelde websites? Zoals tegenwoordig zelfs de overheid aan mensen vertelt, het alom bekende "Slotje" op een website:




Dit slotje houdt in dat al het verkeer tussen de webserver en de internetbrowser is versleuteld met een certificaat. Als je (In de meeste browsers) op het gedeelte met het slotje klikt, krijg je meer informatie te zien over de website en het gebruikte certificaat:


Hier staat dat de verbinding is gecodeerd met een 256-bits TLS codering, en dat er gebruik wordt gemaakt van een VeriSign Class 3 certificaat. Ook al zou iemand dit verkeer dus onderscheppen, is het onleesbaar. Iemand kan het wel onderscheppen, decoderen, lezen en weer coderen voordat het doorgestuurd wordt, maar dan zal het certificaat dat gebruikt wordt voor de codering niet meer geldig zijn, en zal de browser hier een waarschuwing voor geven.

Maar waarom is het certificaat niet meer geldig? Een certificaat is een certificaat? Dat klopt, iedereen kan certificaten generen. Daarom worden er in browsers gebruik gemaakt van zogenaamde "Root certificaten". Deze certificaten laten de browser (En andere applicaties) weten welke bedrijven geautoriseerd zijn om certificaten uit te geven. Elk certificaat wat door zo'n bedrijf wordt uitgegeven is voor de browser dus automatisch een goed certificaat, en zal een groene balk / tekst met een slotje opleveren. Als iemand dus zelf een certificaat uitgeeft, zal deze door de browser niet gezien worden als authentiek certificaat en zal er een waarschuwing verschjinen:


Een belangrijk punt in deze beveiligingsmethode is dus vertrouwen. We moeten de bedrijven welke certificaten uitgeven (De CA's) vertrouwen alleen goed gecontroleerde certificaten uit te geven, aan mensen die ook het recht hebben deze certificaten te gebruiken..

DigiNotar is één van deze CA's. Helaas voor DigiNotar, en een hoop andere mensen, is een Iraanse hacker achter het Amdministrator wachtwoord gekomen van de server die dit bedrijf gebruikt om de certificaten uit te geven. Met dit wachtwoord is / was het mogelijk voor deze hacker om voor elke website een geldig certificaat uit te geven, en dat heeft hij/zij ook gedaan. In totaal zijn er zelfs 531 "valse" certificaten uitgegeven (Bron). Waaronder ook certificaten voor veelgebruikte diensten als Windows Update en GMail, waardoor het voor deze hacker dus mogelijk is dit verkeer te onderscheppen zonder dat een gebruiker hier iets van door heeft, en waar geen enkele beveiliging tegen opgewassen is.

Dus wat is dan de oplossing? Het root certificaat van DigiNotar intrekken. De grote browsers (Mozilla Firefox, Google Chrome) hebben dit ondertussen ook gedaan. Dit houdt wel in dat ALLE certificaten uitgegeven door DigiNotar nu ongeldig zijn in die browsers. En helaas voor ons gebruikt de Nederlandse overheid DigiNotar certificaten voor websites als DigiD, en de belastingdienst.

Het gevolg is dat zelfs websites als DigiD en de belastingdienst veiligheidswaarschuwingen opleverde in sommige browsers. En dit is het puntje waar veel mensen en nieuwssites de mist in gaan. Deze websites zijn op geen enkele manier gehacked, en er is geen onversleutelde verbinding. Alle data wordt nog steeds verzonden over een SSL versleutelde verbinding tussen de webserver en de browser. Alleen als iemand het verkeer kan omleiden door bijvoorbeeld de DNS server (De server die de computer vertelt naar welk adres de verbinding gelegd moet worden bij een bepaald website adres) te hacken. Maar de kans dat dit kan gebeuren is heel klein. Toch?

Blijkbaar is die kans groter dan gedacht. Een nieuwskop van afgelopen maandag: "Hackers kapen dns-systeem NetNames en bekladden bekende sites". Oeps. Een combinatie van deze twee hacks houdt in dat een kwaadwillende hacker AL het internetverkeer kan omleiden naar waar hij/zij dan ook wil, zonder dat een gebruiker hier IETS van merkt. Een scenario met gevolgen zo groot, dat het de fundamenten van internetbeveiliging kan laten schudden. Maar goed dat men hier uiteindelijk toch achter gekomen is, anders zouden de gevolgen niet te overzien zijn.

Of zouden er toch nog steeds dingen niet boven zijn gekomen? Als we dit bericht van de hacker (volgens eigen zeggen) van DigiNotar moeten geloven heeft hij/zij nog 4 andere CA's onder controle: "You know, I have access to 4 more so HIGH profile CAs, which I can issue certs from them too which I will, I won't name them" (http://pastebin.com/1AxH30em). Dat zou dus betekenen dat er potentiëel honderden websites op dit moment niet veilig zijn. Iedereen spreekt over de "hack van DigiD" terwijl we blij moeten zijn dat men het van die partij doorheeft. Wie weet wat er op dit moment door hackers gelezen wordt? Ik wil er niet eens over nadenken. Dan liever alle gegevens van gehackte bedrijven op straat.

vrijdag 22 juli 2011

Hackers Wanted

De laatste tijd is er een hoop gedoe over allerlei hacks bij bedrijven. Uiteraard is dit compleet de schuld van de hackers, en moeten ze levenslang worden opgesloten. Toch?


Voordat ik begin met mijn verhaal, wil ik even meegeven dat ik niet per definitie alle hack-acties van de afgelopen tijd goedkeuring geef. Ik vraag me echter af of het allemaal wel zo zwart-wit is als dat de media ons doet geloven.

Ons verhaal begint bij een kleine website gestart door iemand die aan het licht wilde brengen wat er echt gebeurt achter gesloten deuren. Vanaf 2006 brengt WikiLeaks geregeld "geheime" documenten en informatie naar buiten over het hoe en waarom bij verschillende overheden en dergelijke. Totdat er op 25 Juli 2010 een setje Amerikaanse documenten naar buiten werd gebracht over de oorlog in Afghanistan.

In plaats van zich af te vragen waar deze documenten vandaan kwamen, stortte de Amerikaanse overheid zich op het permanent kapot maken van WikiLeaks. Op dit moment heeft de oprichter van WikiLeaks, Julian Assange, huisarrest, nadat hij een maand na het lekken van de documenten (20 Augustus) werd opgepakt op verdenking van verkrachting. Toevallig, dat wel. Ondertussen werd WikiLeaks op alle computers van (in ieder geval) de US Air Force geblokkeerd:


Dit was het begin van de cyber-burgeroorlog (want dat is het) waar we ons op dit moment in bevinden. Tot op dit moment was er wel spanning tussen de die-hard internetgebruikers en de overheden, maar er gold een soort Status Quo, "Jullie laten internet met rust, wij laten jullie je ding doen op internet". Met de arrestatie van meneer Assange is daar verandering in gekomen.

Op dit moment heeft het idee "Anonymous" vorm gekregen. Anonymous is geen hackersgroep, zoals veel sites beweren, maar het idee dat het Internet (net als de maan) van iedereen is, maar ook van niemand. Een vrije deling van informatie, zonder censuur (Censuur zoals bijvoorbeeld de regering van China, die voor zijn inwoners beslist welke sites er wel of niet bezocht mogen worden).

Amerika heeft het WikiLeaks voorval echter aangegrepen om zoveel mogelijk controle over het internet in handen te krijgen. Onder het mom van "Terrorisme" en "Kinderporno" zijn er ideeën naar voren gekomen als:

  • Een internet killswitch, waarmee Amerika "het internet" met één druk op de knop kan uitschakelen.
  • Backdoors in encryptiesoftware zodat elke vorm van encryptie ten alle tijden kan worden ontcijferd kan worden.
  • Backdoors in communicatie software als Skype, zodat alle Skype gesprekken af te luisteren zijn.
  • etc, etc.
En al deze informatie wordt natuurlijk door de Amerikanen zelf opgeslagen, in een geheim datacentrum ergens. Wat gebeurt er met deze gegevens? Wie heeft toegang tot deze gegevens? Hoe lang worden deze gegevens opgeslagen? Irrelevant, volgens de US, als we terrorisme en kinderporno maar bestrijden.

Deze twee kanten botsen dus op dit moment, met alle hacks en aan de andere kant arrestaties tot gevolg. En hoewel het inbreken per definitie slecht is, toont het wel een paar fundamentele fouten aan waar veel mensen niet bij stil staan:
  • Als een groepje jongeren (Volgens de meeste mensen) dit al kunnen, wat kunnen 'echte' black-hat hackers dan wel niet?
  • Waarom worden de bedrijven niet op de vingers getikt voor de falende beveiliging?
  • De hacks van AntiSec en LulzSec komen uitgebreid in het nieuws, maar wie zegt dat zij de eerste zijn die hebben ingebroken bij de verschillende bedrijven? Wie weet hebben sommige groeperingen al jaren toegang ZONDER hier melding van te maken.
  • Waarom wordt er naast aangifte, nooit melding gedaan van de getroffen maatregelen?
Combineer de bovenstaande vier punten, met een (fictief) Amerikaans bedrijf waar de wat gevoeligere informatie staat van jou als Amerikaanse burger.

Dan heb ik het niet over datingsites, maar over jouw internetgebruik van de afgelopen jaren, jouw medische gegevens, uitgebreide rapporten van uitgevoerde militaire acties en, nog belangrijker, nog uit te voeren acties, jouw telefoongesprekken, noem maar op. Is het dan beter om aan het licht te brengen dat deze gegevens voor derden toegankelijk zijn, of willen we doen alsof er niks aan de hand is? Dit is slechts een voorbeeld. Zoals te zien was in de afgelopen weken zijn er veel grote bedrijven die niet eens de moeite nemen om de opgeslagen gegevens goed te beveiligen / versleutelen.

Geen wonder dat het volgende masker gebruikt wordt bij veel nieuwsartikelen, als logo van het idee Anonymous:


De kenners herkennen dit masker natuurlijk als het gezicht van hoofdpersoon "V" uit de film "V for Vendetta" uit 2006. Een film die als je het mij vraagt veel overeenkomsten heeft met de gebeurtenissen van de afgelopen tijd, en zeker het kijken waard als je hem nog niet gezien hebt. Het beschrijft ook de strijd tussen een overheid verslaafd aan macht, en een bevolking welke het uiteindelijk niet meer pikt.

Het blijft natuurlijk vervelend dat de onschuldige burger hier het slachtoffer van wordt, want deze gegevens komen uiteindelijk op straat te liggen. Maar vergis je niet, ze komen niet alleen op straat te liggen door de hackers van LulzSec en vrienden. Dit is simpelweg de eerste keer dat men erachter komt DAT het gebeurt. Wat kan je er aan doen? Weinig, behalve hopen dat de site waar jij je op inschrijft goed omspringt met beveiliging. Natuurlijk helpt het om met tootljes als KeePass een willekeurig wachtwoord te genereren voor elke site, en op te slaan.. Mochten die gegevens dan lekken, kan het wachtwoord in ieder geval niet misbruikt worden op andere sites.

Tot slot: dit is geen aanval van verwende kinderen tegen de maatschappij, dit is een wake-up call. Het is tijd om IT beveiliging serieus te nemen, en persoonsgegevens hetzelfde (zo niet voorzichtiger) te behandelen dan de portemonnee.




vrijdag 18 februari 2011

IPv6 en Security - of - Waarom er meer firewalls nodig zijn nu internet op is

"Laatste IPv4-blocks zijn toegewezen". Zo verscheen er een artikel op tweakers.net op 3 februari. Dus, tijd om langzaam aan over te stappen op IPv6. Maar, wat voor gevolgen heeft die overstap voor de internettende thuisgebruiker?


Voordat we die vraag kunnen beantwoorden, is het misschien niet onverstandig om uit te leggen wat "IPv4" en "IPv6" zijn.

IPv4:
IPv4 staat voor "Internet Protocol version 4", en is een protocol dat op dit moment wereldwijd gebruikt wordt voor alle communicatie via het internet. Het protocol viert dit jaar zijn 30ste verjaardag, het stamt namelijk uit 1981. Het idee is dat elk systeem dat verbinding maakt met internet een zogenaamd "IP Adres" heeft, net als dat elk huis en bedrijf in de wereld een normaal adres heeft. Met dit adres kunnen systemen elkaar vinden, en met elkaar communiceren.

Het probleem is dat na 30 jaar, de spreekwoordelijke rek een klein beetje uit IPv4 is. Toen het verzonnen werd in 1981 hebben er enkele mensen over nagedacht, en die kwamen waarschijnlijk tot de conclusie dat: "Internet vast nooit zo groot zal worden". Over klassieke uitspraken gesproken.

In ieder geval, de address range (alle beschikbare adressen) ligt tussen de 0.0.0.0 en de 255.255.255.255. De snelle hoofdrekenaar komt dan uit op zo'n 4,294,967,296 beschikbare adressen. Dit klinkt als heel veel, maar als je bedenkt dat er eind 2010 ongeveer 6,500,000,000 aardbewoners waren, zie je al dat er in ieder geval niet genoeg is om iedere wereldbewoner één IP adres te geven. Helaas hebben sommige mensen meerdere computers, en ook dingen als telefoons en tablets die allemaal internet hebben.

Daarnaast zijn lang niet alle adressen daadwerkelijk beschikbaar. Sommige zijn gereserveerd voor systeemgebruik, voor interne netwerken, en zelfs sommige grote bedrijven hebben complete blokken gereserveerd.

NAT
Oké, dus er zijn niet genoeg IP adressen beschikbaar om elk apparaat een uniek adres te geven, dus hoe gaat dat dan op dit moment? Met een systeem dat men "Network Address Translation" (NAT) noemt. Wat doet NAT? In een notenschilletje, zorgt het ervoor dat meerdere apparaten gebruik kunnen maken van één IP adres (door bijvoorbeeld een router te gebruiken).

Veel mensen hebben dit thuis (zonder het te weten, vaak) draaien, om de computer en de laptop tegelijk op het internet te krijgen. Deze computer en laptop hebben dan IP adres 192.168.1.10 en 192.168.1.11 (bijvoorbeeld). Deze adressen hebben ze van de router gekregen, en zijn alleen voor intern gebruik. De router combineert het verkeer van beide computers en stuurt het onder één IP adres naar buiten. In de andere richting werkt dit omgekeerd. Of, om Wikipedia te citeren: "Network Address Translation (NAT, ook wel Network masquerading of IP-masquerading) is het vertalen van IP-adressen en vaak ook TCP/UDP-poortnummers uit de ene gescheiden reeks in de andere. Een veel gebruikt doel is het toelaten van meerdere gebruikers van een thuisnetwerk tot het internet via één IP-adres.". Zie ook: hier.


Hoe een router dit kan doen, zonder dat het verkeer in de war raakt? Elke computer met internetaansluiting heeft niet één opening (port) naar het internet, maar heeft er 65535 (65536 als je port 0 meetelt). Dat zijn dus 65535 in- en uitgangen van en naar het systeem. Deze opbouw wordt gebruikt om de verschillende soorten communicatie gescheiden te houden. Zo gaat bijvoorbeeld internet over port 80, SSL versleuteld internet over port 443, en e-mail (onder andere) over de poorten 25, 110, etc. Zonder firewall zijn deze ook allemaal bereikbaar als een computer eenmaal aan het internet hangt.

Stel, er hangt één computer aan het internet, zonder firewall, zonder router, met het IP adres "1.2.3.4". Deze computer is dan overal ter wereld te benaderen over elke willekeurige poort, omdat alle communicatie naar IP adres "1.2.3.4" automatisch bij die computer uitkomt. Nu komt er in dat huishouden een tweede computer bij, en hierdoor wordt er ook een router in het netwerk geïnstalleerd. Nu komt al het internetverkeer eerst binnen op de router, die vervolgens beslist of het doorgestuurd mag worden naar een computer in het netwerk. Ook al is het nooit zo bedoeld, zorgt dit toch voor een basis vorm van beveiliging, omdat je niet zomaar elke port van een systeem meer kan benaderen via het internet, ongeacht of het systeem een firewall draait of niet.

IPv6
Met de komst van IPv6, worden routers in prnicipe overbodig (het bedrijfsleven even buiten beschouwing gelaten). IPv6 heeft namelijk een andere structuur voor adressen. Waar een standaard IPv4 adres er zo uit ziet: "123.123.123.123", ziet een IPv6 adres er zo uit: "3ffe:6a88:85a3:08d3:1319:8a2e:0370:7344". Door deze nieuwe notatie komen er veel meer adressen beschikbaar. In plaats van de ~4,300,000,000 adressen van IPv4, biedt IPv6 de ruimte voor 50,000 quadriljoen adressen.. ..per gebruiker. Met een onuitspreekbaar totaal van: 3,4 × 1038.


Geweldig natuurlijk, dat betekent dat elk apparaat met internetverbinding met zijn eigen adres met het internet kan communiceren. Of niet?

IPv6 heeft naast dit grote voordeel ook een aantal nadelen. Eén daarvan is dat IPv4 hardware niet compatible is met IPv6. Iedereen die dit wil gebruiken zal dus veranderingen aan moeten brengen in zijn / haar netwerk. En dit geldt voor iedereen, dus ook voor alle Internet Providers. Dit is één van de voornaamste redenen dat IPv6 nog niet wereldwijd geïmplementeerd is.

Als het eenmaal zover is, betekent dit voor de (meeste) thuisgebruikers dus dat ze de router kunnen weghalen, deze is immers toch niet compatible met IPv6, en alle systemen direct aan het internet kunnen hangen. En dan zijn opeens alle systemen weer volledig bereikbaar vanaf elke locatie ter wereld, op elke poort. Tenzij er een (goede) firewall op het systeem wordt geïnstalleerd.

Prima, dan doen we dat toch? En daar zit een probleem. Lang niet elke gebruiker beschikt over de kennis om een firewall ( goed ) te kunnen configureren, waardoor je vaak één van de volgende situaties tegenkomt:

  • Er wordt geen firewall geïnstalleerd, want dat is te moeilijk. Gevolg: computer is open en bloot voor de buitenwereld.
  • Er wordt een firewall geïnstalleerd, maar niet goed ingesteld. Gevolg: er zijn nog steeds beveiliginsrisico's aanwezig
  • Er wordt een firewall geïnstalleerd, maar te strak afgesteld. Gevolg: internet werkt slecht / niet.
De slimme lezer heeft natuurljik allang bedacht: "Jamaar, Windows heeft toch standaard een ingebouwde firewall". Klopt, maar dit is een hele simpele firewall. Of deze sterk genoeg is tegen de steeds groter wordende gevaren op internet is maar de vraag. Een vraag die alleen de tijd kan beantwoorden.

"Dus we zijn gewoon de spreekwoordelijke pineut met IPv6?" Nee, dat niet. Het zal nog wel enige tijd duren voordat het ingevoerd is, en wie weet welke ontwikkelingen er dan al zijn. Time will tell. Het is in ieder geval een feit dat met deze vooruitgang (met als elke vooruitgang) er goed moet worden nagedacht over de beveiliging.