Blockera Brute Force ” – attack

Författare: Esheridan
Bidragsgivare(s): KirstenS, Paul Davis, Raesene, Adedov, Dinis.Cruz, JoE, Daniel Waller, kingthorin

blockera Brute Force attacker

ett vanligt hot webbutvecklare ansikte är en lösenords gissningsattack som kallas en brute force attack.En brute-force attack är ett försök att upptäcka ett lösenord genom att systematiskt försöka varje möjlig kombination av bokstäver, siffror och symboler tills du upptäcker den rätta kombinationen som fungerar.,Om din webbplats kräver användarautentisering, du är ett bra mål för en brute-force attack.

en angripare kan alltid upptäcka ett lösenord genom en brute-force attack, men nackdelen är att det kan ta år att hitta den.Beroende på lösenordets längd och komplexitet kan det finnas biljoner möjliga kombinationer.

för att påskynda saker och ting lite, kan en brute-force attack börja med ordlistan ord eller något modifierad ordlista ord eftersom de flesta människor kommer att använda dem snarare än en helt slumpmässigt lösenord., Dessa attacker kallas ordbok attacker eller hybrid brute-force attacker.Brute-force attacker sätta användarkonton i riskzonen och översvämma din webbplats med onödig trafik.

hackare starta brute-force attacker med hjälp av allmänt tillgängliga verktyg som använder ordlistor och smarta regler för att intelligent och automatiskt gissa användarlösenord. Även om sådana attacker är lätta att upptäcka, är de inte så lätta att förhindra.

till exempel kan många HTTP brute-force-verktyg vidarebefordra förfrågningar via en lista med öppna proxyservrar., Eftersom varje begäran verkar komma från en annan IP-adress, kan du inte blockera dessa attacker helt enkelt genom att blockera IP address.To ytterligare komplicera saker, vissa verktyg prova ett annat användarnamn och lösenord på varje försök, så att du inte kan låsa ut ett enda konto för misslyckade lösenordsförsök.

låsa konton

det mest uppenbara sättet att blockera brute-force attacker är att helt enkelt låsa ut konton efter ett definierat antal felaktiga lösenordsförsök.,Kontolåsningar kan pågå en viss tid, till exempel en timme, eller så kan kontona förbli låsta tills manuellt låsta av en administratör.

kontolåsning är dock inte alltid den bästa lösningen, eftersom någon lätt kan missbruka säkerhetsåtgärden och låsa ut hundratals användare accounts.In faktum är att vissa webbplatser upplever så många attacker att de inte kan upprätthålla en lockout-policy eftersom de ständigt skulle låsa upp kundkonton.,

problemen med kontolåsningar är:

  • en angripare kan orsaka överbelastning (DoS) genom att låsa in ett stort antal konton.
  • eftersom du inte kan låsa ett konto som inte existerar kommer endast giltiga kontonamn att låsas. En angripare kan använda detta faktum för att skörda användarnamn från webbplatsen, beroende på felsvar.
  • en angripare kan orsaka en avledning genom att låsa ut många konton och översvämma helpdesken med supportsamtal.,
  • en angripare kan kontinuerligt låsa ut samma konto, även sekunder efter att en administratör låser upp det, vilket effektivt inaktiverar kontot.
  • konto lockout är ineffektivt mot långsamma attacker som försöker bara några lösenord varje timme.
  • Kontolåsning är ineffektiv mot attacker som försöker ett lösenord mot en stor lista med användarnamn.
  • Kontolåsning är ineffektiv om angriparen använder en Användarnamn / Lösenord kombinationslista och gissar korrekt på de första försöken.,
  • kraftfulla konton som administratörskonton bypass ofta lockout policy, men dessa är de mest önskvärda konton att attackera. Vissa system låser ut administratörskonton endast på nätverksbaserade inloggningar.
  • även när du låser ut ett konto kan attacken fortsätta och förbrukar värdefulla mänskliga och datorresurser.

kontolåsning är ibland effektiv, men endast i kontrollerade miljöer eller i fall där risken är så stor att även kontinuerliga DoS-attacker är att föredra framför kontokompromiss.,I de flesta fall är dock kontolåsningen otillräcklig för att stoppa brute force-attacker.

överväga till exempel en auktionsplats där flera budgivare kämpar över samma objekt.Om auktion webbplats verkställda konto lockouts, en budgivare kan helt enkelt låsa de andras konton i sista minuten av auktionen, hindra dem från att skicka någon vinnande bids.An angripare kan använda samma teknik för att blockera kritiska finansiella transaktioner eller e-postkommunikation.,

Enhetscookies

Du kan också överväga att låsa autentiseringsförsök från kända och okända webbläsare eller enheter separat.Den långsamma Online gissa attacker med enhet Cookies artikeln föreslår protokoll för lockout mekanism baserat på information om om specifika webbläsare har redan använts för framgångsrik inloggning.Protokollet är mindre mottagligt för DoS-attacker än vanligt konto låser ut och ändå effektivt och enkelt att genomföra.,

att hitta andra motåtgärder

som beskrivet är kontolåsningar vanligtvis inte en praktisk lösning, men det finns andra knep för att hantera brute force-attacker.För det första, eftersom framgången för attacken är beroende av tid, är en enkel lösning att injicera slumpmässiga pauser när du kontrollerar ett lösenord.Lägga till även några sekunder paus kan kraftigt bromsa en brute-force attack men kommer inte bry mest legitima användare som de loggar in på sina konton.,

Observera att även om du lägger till en fördröjning kan det sakta ner en enkeltrådad attack, är det mindre effektivt om angriparen skickar flera samtidiga autentiseringsbegäranden.

en annan lösning är att låsa ut en IP-adress med flera misslyckade inloggningar.Problemet med denna lösning är att du oavsiktligt kan blockera stora grupper av användare genom att blockera en proxyserver som används av en ISP eller stort företag.Ett annat problem är att många verktyg använder proxylistor och skickar bara några förfrågningar från varje IP-adress innan du går vidare till nästa.,

med hjälp av allmänt tillgängliga öppna proxylistor kan en angripare enkelt kringgå någon IP-blockeringsmekanism.Eftersom de flesta webbplatser inte blockerar efter bara ett misslyckat lösenord kan en angripare använda två eller tre försök per proxy.An angripare med en lista över 1,000 proxies kan försöka 2,000 eller 3,000 lösenord utan att blockeras.

trots denna metods svagheter väljer webbplatser som upplever ett stort antal attacker (särskilt vuxna webbplatser) att blockera proxy IP-adresser.,

en enkel men överraskande effektiv lösning är att designa din webbplats för att inte använda förutsägbart beteende för misslyckade lösenord.Till exempel returnerar de flesta webbplatser en ”HTTP 401 error” – kod med ett lösenordsfel, även om vissa webbplatser istället returnerar en ”HTTP 200 SUCCESS” – kod men leder användaren till en sida som förklarar det misslyckade lösenordsförsöket.Detta lurar vissa automatiserade system, men det är också lätt att kringgå.

en bättre lösning kan vara att variera beteendet tillräckligt för att så småningom avskräcka alla utom de mest hängivna hackare.,Du kan till exempel använda olika felmeddelanden varje gång eller ibland låta en användare gå igenom till en sida och sedan fråga dem igen för ett lösenord.

vissa automatiserade brute-force-verktyg gör det möjligt för angriparen att ställa in vissa trigger-strängar för att leta efter det som indikerar ett misslyckat lösenordsförsök.Om den resulterande sidan till exempel innehåller frasen ”dåligt användarnamn eller lösenord” skulle verktyget veta att autentiseringsuppgifterna misslyckades och skulle prova nästa i listan.,Ett enkelt sätt att lura dessa verktyg är att även inkludera dessa fraser som kommentarer i HTML-källan på sidan de får när de framgångsrikt autentisera.

efter ett eller två misslyckade inloggningsförsök kanske du vill fråga användaren inte bara för användarnamnet och lösenordet utan också för att svara på en hemlig fråga.Detta orsakar inte bara problem med automatiserade attacker, det hindrar en angripare från att få tillgång, även om de får användarnamn och lösenord korrekt.,

Du kan också upptäcka ett stort antal attacker över hela systemet och under dessa förhållanden uppmana alla användare för svaret på deras hemliga frågor.

andra tekniker som du kanske vill överväga är:

  • för avancerade användare som vill skydda sina konton från angrepp, ge dem möjlighet att tillåta inloggning endast från vissa IP-adresser.
  • tilldela unika inloggningsadresser till block av användare så att inte alla användare kan komma åt webbplatsen från samma URL.,
  • Använd A för att förhindra automatiska attacker
  • istället för att helt låsa ut ett konto, placera det i ett låsningsläge med begränsade funktioner.

Angripare kan man ofta kringgå många av dessa tekniker av sig själva, men genom att kombinera flera tekniker, kan du avsevärt begränsa brute-force attacker.Det kan vara svårt att stoppa en angripare som är fast besluten att få ett lösenord specifikt från din webbplats, men dessa tekniker kan säkert vara effektiva mot många attacker, inklusive de från nybörjare hackare.,Dessa tekniker kräver också mer arbete på angriparens del, vilket ger dig mer möjlighet att upptäcka attacken och kanske till och med identifiera angriparen.

Även om en ”brute force” – attack är svårt att sluta helt, de är lätta att upptäcka eftersom varje misslyckat inloggningsförsök records HTTP 401 statuskod på din webbserver-loggar.Det är viktigt att övervaka dina loggfiler för brute force-attacker – i synnerhet samsas 200 statuscodes som innebär att angriparen finns ett giltigt lösenord.,program med en hänvisande URL av någon post eller IRC-klient

  • Refererande Webbadresser som innehåller användarnamn och lösenord i det format <http://user:/login.htm&gt.
  • Om att skydda en vuxen webbplats, refererande Webbadresser kända lösenord-dela platser
  • Inloggningar med misstänkt lösenord hackare använder ofta, såsom ownsyou (ownzyou), washere (wazhere), fanatiker, hacksyou, och liknande
  • Brute force-attacker är förvånansvärt svårt att sluta helt, men med noggrann design och flera motåtgärder, kan du begränsa din exponering för dessa attacker.,

    i slutändan är det enda bästa försvaret att se till att användarna följer grundläggande regler för starka lösenord: använd långa oförutsägbara lösenord, undvik ordlistor, undvik att återanvända lösenord och ändra lösenord regelbundet.

    en helt automatiserad Offentlig Turing test för att berätta datorer och människor isär, eller , är ett program som låter dig skilja mellan människor och datorer.Först används ofta av Alta Vista för att förhindra automatiserade sökinlagor, s är särskilt effektiva för att stoppa någon form av automatiserat missbruk, inklusive brute-force attacker.,

    de arbetar genom att presentera ett test som är lätt för människor att passera men svårt för datorer att passera.därför kan de med viss säkerhet avgöra om det finns en människa i andra änden.

    för att en ska vara effektiv måste människor kunna svara på testet korrekt så nära 100 procent av tiden som möjligt.Datorer måste misslyckas så nära 100 procent av tiden som möjligt.Forskare vid Carnegie Mellons School of Computer Science arbetar kontinuerligt med att förbättra och introducera nya s.,

    om du utvecklar din egen , kom ihåg att det inte är hur svårt frågan är som betyder något-det är hur troligt det är att en dator får rätt svar.Jag såg en gång en som presenterar användaren med en bild av tre zebror, med en flervalsfråga som frågade hur många zebror som var i picture.To svara på frågan, du klickar på en av tre knappar.

    även om det skulle vara mycket svårt för ett datorprogram att både förstå frågan och tolka bilden, kan programmet bara slumpmässigt gissa något svar och få det rätt en tredjedel av tiden., Även om detta kan tyckas vara en tillfredsställande risknivå, är det inte på något sätt en effektiv .Om du kör en gratis e-posttjänst och använder en sådan för att förhindra spammare från att skapa konton i bulk, allt de behöver göra är att skriva ett skript för att automatiskt skapa 1000 konton och förvänta sig i genomsnitt att 333 av dessa försök kommer att lyckas.

    ändå kan en enkel fortfarande vara effektiv mot brute-force attacker.,När du kombinerar chansen att en angripare skickar ett korrekt användarnamn och lösenordsgissning med chansen att gissa rätt, kombinerat med andra tekniker som beskrivs i detta kapitel, kan även en enkel visa sig effektiv.

    Figur 1: fördröjning av lösenordsautentisering: C #

    Figur 2: fördröjning av lösenordsautentisering: VB.NET

    Public Sub AuthenticateRequest(ByVal obj As Object, ByVal ea As System.EventArgs) Dim objApp As HttpApplication Dim objContext As HttpContext Dim ran As Random objApp = obj objContext = objApp.Context ' If user identity is not blank, pause for a random amount of time If objApp.User.Identity.Name <> "" Then ran = New Random Thread.Sleep(ran.Next(ran.Next(minSeconds, maxSeconds) * 1000)) End IfEnd Sub

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

    Hoppa till verktygsfältet