Bruteforce og dictionary-angreb

Vi har gennem den seneste tid set en væsentlig stigning i antallet af bruteforce- og dictionaryangreb mod kunders hjemmesider, og vil her forklare hvad det betyder.

Særligt CMS-systemer som Joomla og WordPress sider bliver for tiden bombarderet med angreb fra hackere. Årsagen skal findes i at systemerne dels er så udbredte som de er, dels i at rigtig mange brugere af systemerne er relativt uerfarne indenfor IT-sikkerhed – simpelt hen fordi systemerne netop gør det muligt at lave sin egen hjemmeside uden at være IT-ekspert. Det betyder at helt grundlæggende sikkerhedsprincipper ofte overses, og det er en af de ting der lige nu bliver udnyttet af hackere.

Langt størstedelen af alle de wordpress og joomla installationer der findes på nettet, er installeret med en administratorkonto der har navnet “admin”. Det gør det relativt nemt at komme igennem med et angreb på selve brugersystemet, fordi en hacker ved at der er omkring 80-90% sandsynlighed for at der eksisterer en bruger med det brugernavn… Så mangler han bare et kodeord.

Et bruteforce-angreb betyder groft oversat et råstyrke-angreb. Det betyder altså et angreb mod en hjemmeside som ikke er særlig sofistikeret. I bund og grund forsøger hackerne simpelt hen alle tænkelige passwords, altså starter med at prøve “a”, så “b”, “c”, […] “aa”, “ab”, “ac” osv. Et sådant angreb tager naturligvis rigtig mange forsøg uanset om man kan prøve 1000 gange i sekundet, og uanset at det korrekte password måske ikke er specielt stærkt.

Derfor er bruteforce-angreb ikke så almindelige som de såkaldte dictionary-angreb. I teknikken er de to angrebstyper identiske, det er et spørgsmål om at prøve igen og igen indtil det lykkes. Dictionaryangrebet (ordbogsangrebet) er dog som navnet antyder baseret på en ordbog – ikke i bogstavelig forstand – men en liste over de mest udbredte kodeord. Klasikere er selvfølgelig “abc123”, “qwerty” og tilsvarende passwords som enten er nemme at huske eller nemme at indtaste; men ordbøgerne omfatter meget lange lister over mindre udbredte passwords, og bliver konstant forbedret af hackernes systemer. Hvis dit password ikke er genereret tilfældigt vil det med stor sandsynlighed findes i hackernes ordbøger.

Der er sket en voldsom udvikling i antallet af maskiner hackerne har til rådighed og også i maskinernes styrke. En del af skylden for det bæres af de mange uerfarne brugere af CMS-systemerne. Hvis ingen valgte det samme brugernavn eller den samme kode ville et bruteforce eller dictionary angreb være næsten umuligt og denne opblomstring af hackerangreb ville formentlig ikke være sket… men sådan er virkeligheden desværre ikke.

Det store problem består i at når hackerne først har opnået adgang til en enkelt hjemmeside, så kan de overtage hele webhotellet (eller serveren hvis den ikke er godt beskyttet), hvilket betyder at de nu kan bruge den maskine til at angribe andre. Det er altså en viral effekt, lidt som de klassiske computer-vira, der kan sprede sig til meget store netværk. Jo flere hjemmesider hackerne kommer ind i, desto hurtigere og hårdere kan de angribe endnu flere.

Du kan sikre dig imod at din hjemmeside bliver en del af hackernes netværk ved:

1. At vælge et andet brugernavn end “admin” til dit CMS-system

2. At vælge en stærk kode – en tilfældigt genereret kode er langt bedst, men kan være meget svær at huske. Hvis du selv finder på en kode så sørg for at den er mindst 8 tegn lang, indeholder både store og små bogstaver og tal, og at disse ikke bare er delt op efter det mest udbredte mønster: Et stort bogstav, nogle små bogstaver og et tal, f.eks. “Henrik22″… En langt stærkere kombination er “hEn22rIk”, “hE2nr2Ik” eller “h3Nr1K22”. Det behøver ikke være svært at huske hvis du bare laver din egen “systematiske tilfældighed” i dit password.

3. At sørge for at dit CMS-system altid er fuldt opdateret.

4. At låse din administratormappe med vores værktøj i kundelogin.

Disse typer angreb har eksisteret siden det første password-beskyttede system i computernes spæde ungdom, men lige nu er der et “peak” som betyder at rigtig mange hjemmesider og sågar offentlige systemer bliver påvirket af det. I gamle dage sad en hacker med sin egen computer og var begrænset af sin overføselshastighed og egen computers styrke. Derfor kunne et angreb muligvis nok lykkes til sidst efter mange forsøg, men det var usædvangligt at det system han angreb ville blive alvorligt påvirket af selve de fejlede forsøg der ledte op til.

Det er ikke længere tilfældet.

De computere som hackerne i dag overtager er typisk webservere som har en ekstremt kraftig internetforbindelse, og som også har rigtig mange resurser i forhold til en almindelig PC. Det betyder at hvor hackerens egen computer måske kunne lave 1000 forsøg i sekundet, kan en webserver måske lave 100.000 (disse tal er grebet ud af den blå luft for at illustrere princippet). Samtidig med at hver computer kan lave mange flere forsøg har hackeren også mange computere til sin rådighed. De største netværk af kompromitterede computere kan indbefatte adskillige millioner maskiner.

Når alle disse maskiner kan styres af hackerne kan angrebene koordineres så de rammer så hårdt at mål-serveren øjeblikkeligt går ned. En server der modtager flere tusind forespørgsler indenfor et par sekunder ikke kan nå at behandle dem, og ligesom din computer derhjemme, bliver den først langsom og går til sidst helt i stå når den overbelastes. Kommer det dertil er en genstart som regel den eneste udvej.

Den type angreb kaldes populært for DDOS-angreb, hvilket står for “Distributed Denial Of Service”, altså et distribueret angreb (som sker velkoordineret, men fra mange forskellige computere) og udelukkende går ud på at få mål-maskinen til at “dø”. Den slags angreb ser vi ikke ret ofte, men det er ikke usandsynligt at kompromitterede wordpress og joomla hjemmesider ender med at være med til at udøve dem.

Den distribuerede angrebsmetode er dog noget vi ser rigtig meget af lige for tiden. Det er distribuerede dictionary-angreb på wordpress og joomla som kommer særdeles velorganiseret. En computer, f.eks. i USA prøver at logge ind med passwordet “aa”, et halvt sekund efter prøver en computer i Afrika at logge ind med “ab”, et halvt sekund efter er det en computer i Asien der prøver “ac” osv.

Dette er relativt nyt, i hvert fald når vi taler om almindelige menneskers hjemmesider, og det gør at de sikkerhedsmekanismer man tidligere har brugt er mere eller mindre til at skrotte.

Typisk har man holdt øje med bestemte computere der angreb, og kunne blokere et angreb ved blot at blokere en enkelt computer. Det virker selvsagt ikke.

Vi har også tidligere haft en firewall som ganske enkelt blokerede store områder i verden hvor der stortset ikke kom andet en misbrug fra. Det virker heller ikke mere.

Samtidig er det blevet væsentligt mere kompliceret overhovedet at registrere angrebene, dels fordi man ikke bare kan holde øje med specifikke computere, dels fordi hackerne er blevet meget bedre til simpelt hen at “holde sig under radaren”. Deres systemer registrerer f.eks. automatisk hvor mange forespørgsler de kan lave fra hver computer før de bliver blokeret, og justerer så automatisk resten af netværket efter denne grænse.

Hvis du bare vælger stærke brugernavne og passwords og holder dit CMS opdateret kan du sagtens forhindre hackere i at få adgang til dit system. Men for at forhindre at serveren alligevel skal bruge oceaner af resurser på at behandle de fejlede forsøg (hackerne ved jo ikke at du har et stærkt password, så de prøver alligevel), er det nødvendigt helt at blokere deres computere fra at tilgå din login-side. Det kan du gøre med funktionen “Lås mapper” under “Sikkerhed” i kundelogin.