Het data breach report van dit jaar bevatte een hoop opvallende feiten, maar er was één ding dat me in het bijzonder bijbleef: 79 procent van alle aanvallen werd aangemerkt als 'opportunistisch van aard'. In het rapport definiëren we opportunistische aanvallen als volgt: 'Het slachtoffer werd niet specifiek tot doelwit verkozen; bedrijven werden op de korrel genomen omdat ze een zwakte vertoonden waarvan de aanvallers misbruik konden maken.'
Dat zette me aan het denken. Als cybercriminelen op internet rondsnuffelen en alles aanvallen wat ook maar zwak is, moet het mogelijk zijn om deze opportunistische aanvallen te analyseren door een ‘honeypot’ (loksysteem voor hackers) op te zetten. Hiervoor maakte ik gebruik van een tamelijk simpele honeypot in de vorm van een namaak ssh-server die vastlegt welke gebruikersnamen en wachtwoorden worden gebruikt voor aanmeldingspogingen door hackers. Mijn systeem werd vrijwel direct aangevallen, waarna de aanmeldingspogingen aan de lopende band bleven binnenrollen.
We zijn inmiddels zes weken verder. In deze periode is mijn honeypot vrijwel onafgebroken in de lucht geweest. Ik verzamelde SSH 63.303 wachtwoorden en gebruikersnamen die voor aanmeldingspogingen werden gebruikt. Wat deze lijst interessant maakt, is dat er sprake is van een onderscheid tussen de wachtwoorden die reguliere gebruikers en hackers hanteren.
Het eerste wat me opviel, was dat 23,4 procent van alle wachtwoorden identiek was aan de gebruikersnaam: bob/bob, alice/alice, root/root en ga zo maar door. Ik vermoed dat dit percentage veel hoger ligt dan bij andere netwerkservices. Als mijn geheugen me niet in de steek laat, was het bij sommige Unix-varianten zo dat bij het toevoegen van een gebruiker het wachtwoord automatisch gelijk werd gesteld aan de gebruikersnaam. In plaats van een top X-lijst van ‘slechte’ wachtwoorden samen te stellen, wilde ik een paar analyses op de tekenreeksen loslaten. Iedereen kent wel het fenomeen van een wachtwoordbeperking: 'kies een wachtwoord dat hoofdletters, kleine letters, getallen en/of speciale tekens bevat', maar hoe effectief zijn deze wachtwoordbeperkingen nu eigenlijk in de praktijk? Is het mogelijk om te achterhalen welke wachtwoorden hackers voor hun brute force-aanvallen gebruiken en op basis daarvan te bepalen welk type tekenreeks we het beste kunnen gebruiken?
Mijn aanpak
Als eerste identificeerde ik de vier basistekenreeksen:
• Kleine letters (a-z)
• Hoofdletters (A-Z)
• Getallen (0-9)
• Speciale tekens (!@#$ enzovoort)
Vervolgens bestudeerde ik de wachtwoorden en bracht ik deze in categorieën onder. Op basis hiervan maakte ik een visualisatie (aard van het beestje). Ik koos voor het beproefde Venn-diagram om de relatieve omvang van elke categorie te tonen en aan te geven hoe de tekenreeksen met elkaar verband houden (elke categorie die niet van een naam is voorzien, vertegenwoordigt minder dan 1 procent).
Wat kunnen we hieruit afleiden?
Laten we eerst eens een kijkje nemen naar de omvang van de cirkels. Maar liefst 86,7 procent van de wachtwoorden die hackers uitprobeerden, is opgebouwd uit kleine letters. Ter voorkoming van brute force-aanvallen is het daarom misschien een goede strategie om een wachtwoord te gebruiken dat geen kleine letters bevat. Laten we nu eens kijken naar de cirkel voor wachtwoorden met hoofdletters: dit is de kleinste van allemaal (wie zou dat gedacht hebben).
Het wachtwoord 'password' komt met 1125 pogingen op de tweede plaats; 'Password' komt zes keer in de lijst voor en 'PASSWORD' slechts één keer (voor 'Password1' zijn overigens vijftig vermeldingen).
Laten we nu eens kijken naar de beste tekenreeksen. Welk type tekenreeks werd het minst door hackers uitgeprobeerd? Een combinatie van hoofdletters en speciale tekens lijkt de veiligste optie te zijn. Van de in totaal 63.000 uitgeprobeerde wachtwoorden omvatte slechts 78 een dergelijke combinatie, gevolgd door wachtwoorden met louter hoofdletters (105 pogingen) 'PASSWORD!' haalde de lijst niet eens.
Een paar kanttekeningen
Zoals ik eerder aangaf, hebben deze aanmeldingspogingen betrekking op de SSH-service. Het is daarom verstandig om onze conclusies te beperken tot SSH-aanmeldingen. De woordenboeken en tactieken die hackers op een RDP-server loslaten, kunnen hier volledig van verschillen. Hetzelfde geldt voor aanvallen op sociale netwerken of pogingen om offline lijsten met wachtwoorden te hacken.
Een laatste woord van waarschuwing: zelfs de sterkste tekenreeks is weerloos tegen een fenomeen zoals keyloggers (die in 41 procent van de in 2011 onderzochte incidenten werden gebruikt). Bovendien lijkt het gebruik van gestolen aanmeldingsgegevens een probleem te zijn voor zowel kleine als grote bedrijven. Met andere woorden: het is één ding om het gebruik van ‘sterke' wachtwoorden af te dwingen, maar een stuk moeilijker om ervoor te zorgen dat deze wachtwoorden uit handen van cybercriminelen blijven. Dat is iets dat we in het achterhoofd moeten houden.
Even een paar simpele hulpmiddelen om voor betere passwords te zorgen.
Ga naar http://www.freepasswordgenerator.com genereer een password met 12 tekens (minimaal grote en kleine letters en cijfers), kopieer dat in de editor en voor de paranoide onder ons, verander daar nog een aantal tekens.
Bewaar die passwords in een passwordsafe op je PC en niet leesbaar, zoals daar zijn http://passwordsafe.sourceforge.net of http://keepass.info.
Daarmee kan iedereen relatief veilige toegangen realiseren.
Dan nog een opmerking, “bij sommige Unix-varianten zo dat bij het toevoegen van een gebruiker het wachtwoord automatisch gelijk werd gesteld aan de gebruikersnaam” dat is zeker geen normaal gedrag van unix of afgeleiden, laat eens weten welke programma’s dat doen, dan kan men die meiden.
Genoemde keyloggers en gestolen aanmeldingsgegevens hebben veel te maken met het gebruikte platform. De XP gebruiker die gewoon geen ideee heeft over minimale veiligheidsaspekten zal altijd een risoko blijven.
Leuke analyse. Zeker zo interessant echter zou zijn hoe dit komt.
In mijn ogen moet er dringend een vervanging komen voor de huidige manier van werken op dit gebied.
Een kleine analyse van mijn eigen omgeving:
– op mijn werk heb ik in totaal 18 verschillende gebruiksnamen/wachtwoordcombinaties voor de diverse applicaties waarmee ik moet werken (ik wil hier even niet ingaan op de achtergrond hiervan overigens)
– voor mijn bankzaken heb ik 5 combinaties (meerdere rekeningen/creditcards)
– tot slot heb ik nog zo’n 100 combinaties voor webwinkels, ticketbureaus, diverse fora en allerhande andere websites.
Ik zie me dus ook genoodzaakt het door Jan van Leeuwen genoemde keepass te gebruiken al deze accounts te managen. Alternatief is dat ik inderdaad overal de voor de hand liggende wachtwoorden ga gebruiken omdat ik nu eenmaal niet in staat ben 100+ login-id’s met bijbehorende wachtwoorden te gebruiken.
Mooi experiment met een mooie analyse achteraf.
Een tijd geleden sprak ik met een andere systeembeheerder en die zei dat de veranderwoede binnen wachtwoordbeleid ervoor zorgt dat mensen eerder slechte wachtwoorden gebruiken.
Als je 1 keer een heel zwaar wachtwoord bedenkt:
%%D1tw4chtwo0rdzalnietsneltekr4kenzijn..$!
Het zal in het begin even wennen zijn, maar als je een tikdiploma hebt en je wend aan het wachtwoord zal je dit op termijn vrij snel kunnen tikken.
Maar het beleid definieert vaak heel anders. Om de zoveel maanden een nieuw wachtwoord bedenken, screens die na een paar minuten al op slot slaan. Resulteren in de wachtwoorden:
Wachtwoord1, Aap12345, Noot1234
en andere vrij simpele wachtwoorden.
Over UNIX wachtwoorden gesproken die gelijk staan aan de gebruikersnaam, heel vroeger heette dat een “joe”, maar dat woord is ook al helemaal in de vergetelheid geraakt. Volgens mij komt dat ook zo goed als niet meer voor.
Leuk artikel! Honeypot is inderdaad een krachtige methode om dit soort dingen te vangen. Je ziet meteen hoe het internet dus geautomatiseerd wordt afgestruind naar zwakheden.
Jammer dat bijvoorbeeld Microsoft geef 2-factor authentication aanbiedt zoals Google dit doet, daarmee ben je van veel gezeur af en het gebruikersgemak word er niet veel minder door, daarnaast is het een keuze, je hoeft niet.
Dropbox heeft in de iPhone/iPad app trouwens een pincode toegevoegd. Dit leidt ook al tot meer veiligheid.
Bedankt in ieder geval voor het delen! En ik deel de mening van technicus over het gevaar van wijzigen afdwingen (en het heeft maar een zeer beperkte opbrengst).
De kanttekening w.b. de 86,7% die ik mis: je weet niet hoe deze woordenboeken zijn gegenereerd. Als dat gebaseerd is op het huidige wachtwoordgebruik, dan zullen die lijsten gewoon mee veranderen wanneer men massaal overstapt op hoofdletters.
Ik heb uit ergernis weleens iets soortgelijks gedaan met een ftp-servertje. Omdat een reeks inlognamen en passwords vrij uniek is, had ik in no time de betreffende lijst op internet gevonden. Vervolgens een account met bijbehorend password aangemaakt die ergens op de lijst stond. Het enige bestandje wat te downloaden was en ook gedownload werd bevatte een uitgebreide scheldkannonade van mijn kant.
Concreet had ik er niets aan, maar het deed me wel plezier dat men erin tuimde.
Dit is een leuke vorm van empirische wetenschap waarbij onderzoeker en onderwerp elkaar ‘proefondervindelijk’ bezighouden. De eruit komende conclusies zijn echter niet verrassend, een open deur omdat de zwakheden van wachtwoorden niet onbekend zijn. De opportunistische hacker zal inderdaad eerst de meest voor de hand liggende combinaties proberen, al dan niet geautomatiseerd via een ‘dictionairy attack’. Deze lijsten zijn trouwens ruimschoots te vinden op Internet dus had ook een andere onderzoeksvorm gekozen kunnen worden met dezelfde uitkomsten.
Hoewel password policies het mechanisme niet veiliger maken kunnen deze wel zwakke wachtwoorden voorkomen. Voor wie zich nog L0phtCrack herinnert weet hoe snel een simpel wachtwoord was te achterhalen via een ‘brute force attack’ waarbij het niet zoveel uitmaakte of er kleine of grote letters gebruikt werden. Latere versie was trouwens nog slimmer door wachtwoorden rechtstreeks van het netwerk te halen. Naast de zorg over keyloggers zou bijvoorbeeld ook eens gekeken moeten worden naar dit probleem. Een wat minder opportunistische hacker kan namelijk ook een ‘honeypot’ opzetten met bijvoorbeeld WiFi of een fake website.
Hoewel de zwakheid van wachtwoorden dus al lang bekend is zullen we er nog niet snel van verlost zijn. Betere vormen van authenticatie kosten nu eenmaal vaak meer geld of brengen andere uitdagingen waardoor beveiliging zelf ook vaak opportunistisch is.
@ Ewout
wat praktijkervaringsverhalen is toch wel leuk, naast (helaas niet ipv) al die advertorials waar we zo “gezellig” met zijn allen zo over vallen?