Hvordan unngå brute force angrep

Brute force, eller prøv og feil angrep som vi kan kalle det (i mangel på et bedre alternativ) er en veldig enkel metode å knekke krypto nøkler eller passord. Angrepsmetoden er ikke sett på som en stor trussel når det gjelder kryptonøkler siden det finnes raskere og bedre metoder å angripe kryptografi på.
Når det gjelder å knekke passord, kan metoden være svært effektiv dersom man ikke tar forhåndsregler når man designer systemet.

Så hva går egentlig brute force angrep ut på?
Brute force angrep vil si at man rett og slett prøver og feiler med tilfeldige passord helt til man finner det rette. Slike automatiske programmer er temmelig enkle og lage, og kan kjøre i bakgrunnen helt til man finner rett passord. Man kan velge å generere tilfeldige passord med alle mulig kombinasjoner av tegn, eller man kan bruke ordbøker eller lister over vanlige passord. Gjerne i kombinasjon med hverandre.

Så, hvordan beskytter man seg?
Det er mange måter å begrense denne type angrep, og egentlig er det bare fantasien som begrenser deg. Her er bare noen måter.

Tidsforsinkelse
En av de første tingene man bør tenke på er tid. Jo lenger tid angriperen bruker på å kontrollere om hvert passord er riktig, jo lenger tid bruker han på å finne passordet. Dette gir deg bedre tid til å oppdage et pågående angrep, og handle deretter. Dersom en bruker skriver inn feil passord, legg inn en pause på et sekund eller to før du gir brukeren tilbakemelding om at passordet er feil.

Varsling av administrator
Dette punktet bør man vurdere litt ut i fra hvilket system det er snakk om. Men en idè er å automatisk varsle en administrator dersom en bruker skriver inn feil passord mer enn feks. tre ganger. Jo mer kritisk system, jo mer pågående varsling. SMS er et fint alternativ. Men for all del husk på at det gjerne kommer 1000 flere forsøk. Ikke send SMS for hvert trede forsøk. Da det fort blir dyrt.

Skille mennesker fra roboter
Her er det nok stoff til å skrive en hel bok. Men poenget er å prøve å skille mennesker fra roboter. Her finnes det flere metoder som jeg ikke skal gå inn på nå. Men om du bestemmer deg for feks. bildegjennkjenning husk at dete øker terskelen for at brukeren logger seg på, så det kan være et poeng å ikke dra denne frem før etter første feilede påloggings forsøk.

To-stegs autentisering
Her ligger nettbanker milevis forran de fleste. Poenget her er å be om informasjon som er veldig vanskelig å "gjette" seg frem til og som endres for hvert påloggings forsøk. Dette gjør "prøv og feil" veldig mye vanskeligere. Igjenn er det et poeng å ikke plage brukeren dersom man ikke mistenker noe snusk. Dersom en bruker logger inn etter et eller flere (her må man vurdere) misslykkede innlogginsforsøk, kan man for eksempel sende en SMS til brukeren med en engangskode man må skrive inn. Man kan også spørre etter annen informasjon man har på brukeren, som e-post adresse, postnummer eller lignende.

Låse bruker
Man kan etter x antall misslykkede påloggingsforsøk låse en bruker slik at det ikke er mulig å logge seg på med denne. Her må man være veldig forsiktig så man ikke blir sårbar for "denial of service (tjenestenekt)" angrep. Dette er ikke noe jeg ville anbefalt til for eksempel en nettside.

Hold brukernavn skjult
En annen ting er å holde brukernavn skjult, og her slurves det fryktelig mye. Men for å si det slik: skal man gjette seg til både brukernavn og passord blir alt fryktelig mye vanskeligere. E-post kan brukes til å logge seg inn med, noe som gjør ting hakket bedre.
Et annet poeng er å ikke fortelle brukeren at han har skrevet inn et brukernavn som ikke finnes. Det at kombinasjonen brukernavn og passord er feil får holde. Ellers er det lett å finne frem gyldige brukernavn.

Bekrefting av passordbytte
Dersom en angriper skulle få tilgang til en konto så er det viktig at han ikke klarer å ta over kontoen ved å bytte passordet. Her bør man kreve e-post godkjenning, eller for eksempel en engangskode på SMS før passordet byttes.

Konklusjon
De fleste av tingene beskrevet over er enkle tiltak som vil øke sikkerheten betraktelig uten å gå for mye ut over brukervennligheten. Hvert tiltak bør såklart vurderes opp mot trusselnivå for å sette en grense for når hvert tiltak skal aktiveres. Fakta er at brute force angrep blir brukt, og alt for ofte er de skrekkelig effektive.

Har du andre tiltak, eller kommentarer høre jeg gjerne fra deg i kommentarfeltet.