Blocking Brute Force Attacks

auteur: Esheridan
Contributor(s): KirstenS, Paul McMillan, Raesene, Adedov, Dinis.Cruz, JoE, Daniel Waller, kingthorin

het blokkeren van Brute Force-aanvallen

een veel voorkomende bedreiging voor webontwikkelaars is een aanval die bekend staat als een brute force-aanval.Een brute-force aanval is een poging om een wachtwoord te ontdekken door systematisch proberen elke mogelijke combinatie van letters, cijfers en symbolen totdat u de juiste combinatie die werkt te ontdekken.,Als uw website gebruikersverificatie vereist, bent u een goed doelwit voor een brute-force aanval.

een aanvaller kan altijd een wachtwoord ontdekken door middel van een brute-force aanval, maar het nadeel is dat het jaren kan duren om het te vinden.Afhankelijk van de lengte en complexiteit van het wachtwoord, kunnen er biljoenen mogelijke combinaties zijn.

om de zaken een beetje te versnellen, zou een brute-force aanval kunnen beginnen met woordenboekwoorden of licht gewijzigde woordenboekwoorden omdat de meeste mensen die zullen gebruiken in plaats van een volledig willekeurig wachtwoord., Deze aanvallen worden woordenboekaanvallen of hybride brute-force-aanvallen genoemd.Brute-force aanvallen zetten gebruikersaccounts in gevaar en overspoelen uw site met onnodig verkeer.

Hackers starten brute-force-aanvallen met behulp van breed beschikbare tools die woordenlijsten en slimme regelsets gebruiken om op intelligente en automatische wijze gebruikerswachtwoorden te raden. Hoewel dergelijke aanvallen zijn gemakkelijk te detecteren, ze zijn niet zo gemakkelijk te voorkomen.

bijvoorbeeld, veel HTTP brute-force tools kunnen verzoeken doorsturen via een lijst met open proxyservers., Aangezien elk verzoek van een ander IP-adres lijkt te komen, kunt u deze aanvallen niet blokkeren door simpelweg het IP-adres te blokkeren address.To verder compliceren dingen, sommige tools proberen een andere gebruikersnaam en wachtwoord bij elke poging, dus je kunt niet vergrendelen een enkel account voor mislukte wachtwoordpogingen.

Accounts vergrendelen

de meest voor de hand liggende manier om brute-force aanvallen te blokkeren is door simpelweg accounts te blokkeren na een bepaald aantal onjuiste wachtwoordpogingen.,Account lockouts kunnen een bepaalde duur duren, zoals een uur, of de accounts kunnen vergrendeld blijven totdat ze handmatig worden ontgrendeld door een beheerder.

echter, Account lockout is niet altijd de beste oplossing, omdat iemand gemakkelijk de beveiligingsmaatregel kan misbruiken en honderden gebruikers kan uitsluiten accounts.In feit, sommige websites ervaring zo veel aanvallen dat ze niet in staat zijn om een lock-out beleid af te dwingen, omdat ze voortdurend zou worden ontgrendelen klantaccounts.,

de problemen met account lockouts zijn:

  • een aanvaller kan een denial of service (DoS) veroorzaken door grote aantallen accounts te blokkeren.
  • omdat u een account dat niet bestaat niet kunt vergrendelen, worden alleen geldige accountnamen vergrendeld. Een aanvaller kan dit feit gebruiken om gebruikersnamen van de site te oogsten, afhankelijk van de antwoorden op de fout.
  • een aanvaller kan een afleiding veroorzaken door veel accounts te blokkeren en de helpdesk te overspoelen met support calls.,
  • een aanvaller kan continu hetzelfde account vergrendelen, zelfs seconden nadat een beheerder het ontgrendelt, waardoor het account effectief wordt uitgeschakeld.
  • Account lockout is niet effectief tegen langzame aanvallen die slechts een paar wachtwoorden per uur proberen.
  • Account lockout is niet effectief tegen aanvallen die één wachtwoord proberen tegen een grote lijst met Gebruikersnamen.
  • Account lockout is niet effectief als de aanvaller een gebruikersnaam / wachtwoord combo lijst gebruikt en goed gist bij de eerste paar pogingen.,
  • krachtige accounts zoals administrator accounts omzeilen vaak het lockout beleid, maar dit zijn de meest wenselijke accounts om aan te vallen. Sommige systemen vergrendelen administrator accounts alleen op netwerk-gebaseerde logins.
  • zelfs als u een account vergrendelt, kan de aanval doorgaan, waardoor waardevolle menselijke en computerbronnen worden verbruikt.

Account lockout is soms effectief, maar alleen in gecontroleerde omgevingen of in gevallen waar het risico zo groot is dat zelfs continue DoS aanvallen de voorkeur hebben boven accountcompromis.,In de meeste gevallen, echter, Account lockout is onvoldoende voor het stoppen van brute-force aanvallen.

denk bijvoorbeeld aan een veilingsite waarop verschillende bieders vechten om hetzelfde item.Als de veiling website afgedwongen account lockouts, een bieder kan gewoon vergrendelen de rekeningen van de anderen in de laatste minuut van de veiling, hen te voorkomen van het indienen van een winnende bids.An aanvaller kan dezelfde techniek gebruiken om kritieke financiële transacties of e-mailcommunicatie te blokkeren.,

Apparaatcookies

u kunt ook overwegen om verificatiepogingen van bekende en onbekende browsers of apparaten afzonderlijk uit te sluiten.De vertragen Online raden aanvallen met apparaat Cookies artikel stelt protocol voor lockout mechanisme op basis van informatie over als specifieke browser al zijn gebruikt voor een succesvolle login.Het protocol is minder gevoelig voor DoS aanvallen dan gewone account vergrendelen en toch effectief en eenvoudig te implementeren.,

andere tegenmaatregelen vinden

zoals beschreven, zijn account lockouts meestal geen praktische oplossing, maar er zijn andere trucs om met brute force aanvallen om te gaan.Ten eerste, omdat het succes van de aanval afhankelijk is van de tijd, is een eenvoudige oplossing om willekeurige pauzes te injecteren bij het controleren van een wachtwoord.Het toevoegen van zelfs een paar seconden pauze kan sterk vertragen een brute-force aanval, maar zal de meeste legitieme gebruikers niet storen als ze inloggen op hun accounts.,

merk op dat hoewel het toevoegen van een vertraging een aanval met één threaded kan vertragen, het minder effectief is als de aanvaller meerdere simultane authenticatieverzoeken verstuurt.

een andere oplossing is om een IP-adres met meerdere mislukte aanmeldingen te vergrendelen.Het probleem met deze oplossing is dat je per ongeluk grote groepen gebruikers kunt blokkeren door een proxyserver te blokkeren die wordt gebruikt door een ISP of groot bedrijf.Een ander probleem is dat veel tools gebruik maken van proxy lijsten en stuur slechts een paar verzoeken van elk IP-adres voordat u naar het volgende.,

met behulp van breed beschikbare open proxy lijsten, kan een aanvaller gemakkelijk om het even welk IP-blokkeringsmechanisme omzeilen.Omdat de meeste sites niet blokkeren na slechts een mislukt wachtwoord, kan een aanvaller twee of drie pogingen per proxy.An aanvaller met een lijst van 1.000 proxy ‘ s kan proberen 2.000 of 3.000 wachtwoorden zonder te worden geblokkeerd.

desondanks, ondanks de zwakke punten van deze methode, kiezen websites die een groot aantal aanvallen ervaren (met name volwassen websites) ervoor om proxy-IP-adressen te blokkeren.,

een eenvoudige maar verrassend effectieve oplossing is om uw Website niet te ontwerpen om voorspelbaar gedrag te gebruiken voor mislukte wachtwoorden.Bijvoorbeeld, de meeste websites retourneren een “HTTP 401 error” code met een wachtwoord failure, hoewel sommige websites in plaats daarvan een “HTTP 200 succes” code retourneren, maar de gebruiker naar een pagina verwijzen waarin de mislukte wachtwoordpoging wordt uitgelegd.Dit dwazen sommige geautomatiseerde systemen, maar het is ook gemakkelijk te omzeilen.

een betere oplossing zou kunnen zijn om het gedrag voldoende te variëren om uiteindelijk alle behalve de meest toegewijde hackers te ontmoedigen.,U kunt bijvoorbeeld elke keer verschillende foutmeldingen gebruiken of soms een gebruiker doorlaten naar een pagina en hem dan opnieuw vragen om een wachtwoord.

sommige geautomatiseerde brute-force tools staan de aanvaller toe om bepaalde trigger strings in te stellen om te zoeken naar die wijzen op een mislukte wachtwoordpoging.Bijvoorbeeld, als de resulterende pagina bevat de zin “slechte gebruikersnaam of wachtwoord,” de tool zou weten dat de referenties mislukt en zou proberen de volgende in de lijst.,Een eenvoudige manier om deze tools voor de gek te houden is om ook die zinnen als commentaar op te nemen in de HTML-bron van de pagina die ze krijgen wanneer ze succesvol authenticeren.

na een of twee mislukte aanmeldpogingen, wilt u de gebruiker niet alleen vragen om de gebruikersnaam en het wachtwoord, maar ook om een geheime vraag te beantwoorden.Dit veroorzaakt niet alleen problemen met geautomatiseerde aanvallen, het voorkomt dat een aanvaller toegang krijgt, zelfs als ze de gebruikersnaam en het wachtwoord correct krijgen.,

u kunt ook een groot aantal aanvallen in het hele systeem detecteren en onder die omstandigheden alle gebruikers vragen om het antwoord op hun geheime vragen.

andere technieken die u zou kunnen overwegen zijn:

  • voor gevorderde gebruikers die hun accounts willen beschermen tegen aanvallen, geef ze de optie om alleen inloggen toe te staan vanaf bepaalde IP-adressen.
  • wijs unieke login-URL ‘ s toe aan blokken van gebruikers, zodat niet alle gebruikers toegang hebben tot de site vanaf dezelfde URL.,
  • gebruik a om geautomatiseerde aanvallen te voorkomen
  • plaats een account in een lockdown-modus met beperkte mogelijkheden.

aanvallers kunnen vaak veel van deze technieken zelf omzeilen, maar door meerdere technieken te combineren, kunt u brute-force aanzienlijk beperken attacks.It het kan moeilijk zijn om een aanvaller die vastbesloten is om een wachtwoord specifiek te verkrijgen van uw website te stoppen, maar deze technieken kunnen zeker effectief zijn tegen vele aanvallen, met inbegrip van die van beginnende hackers.,Deze technieken vereisen ook meer werk aan de kant van de aanvaller, wat je meer kans geeft om de aanval te detecteren en misschien zelfs de aanvaller te identificeren.

hoewel brute-force-aanvallen moeilijk volledig te stoppen zijn, zijn ze gemakkelijk te detecteren omdat elke mislukte aanmeldpoging een HTTP 401-statuscode op uw webserver registreert logs.It is belangrijk om uw logbestanden te controleren op brute-force aanvallen – in het bijzonder, de gemengde 200 statuscodes die betekenen dat de aanvaller een geldig wachtwoord gevonden.,ins met een verwijzende URL van iemand de e-mail of IRC-client

  • Verwijzende Url ‘ s met de gebruikersnaam en het wachtwoord in, in het formaat <http://user:/login.htm>
  • Als de bescherming van een site voor volwassenen, verwijzende Url ‘ s van bekende wachtwoord-sharing sites
  • Logins met verdachte wachtwoorden die hackers vaak gebruiken, zoals ownsyou (ownzyou), washere (wazhere), zeloten, hacksyou, en de like –
  • Brute-force-aanvallen zijn verrassend moeilijk om helemaal te stoppen, maar met een zorgvuldig ontwerp en meerdere maatregelen, kunt u beperk uw blootstelling aan deze aanvallen.,

    Uiteindelijk is de enige beste verdediging ervoor te zorgen dat gebruikers de basisregels voor sterke wachtwoorden volgen: gebruik lange onvoorspelbare wachtwoorden, vermijd woordenboekwoorden, vermijd hergebruik van wachtwoorden, en verander wachtwoorden regelmatig.

    een volledig geautomatiseerde publieke Turing test om computers en mensen van elkaar te onderscheiden, of , is een programma dat u toelaat om onderscheid te maken tussen mensen en computers.Eerst op grote schaal gebruikt door Alta Vista om geautomatiseerde zoekopdrachten te voorkomen, s zijn bijzonder effectief in het stoppen van elke vorm van geautomatiseerd misbruik, met inbegrip van brute-force aanvallen.,

    ze werken door een test te presenteren die voor mensen gemakkelijk te slagen is, maar voor computers moeilijk te slagen; daarom kunnen ze met enige zekerheid concluderen of er een mens aan de andere kant is.

    om effectief te zijn, moeten mensen in staat zijn de test zo dicht mogelijk bij 100% van de tijd correct te beantwoorden.Computers moeten zo dicht mogelijk bij 100 procent van de tijd uitvallen.Onderzoekers van Carnegie Mellon ‘ s School Of Computer Science werken voortdurend aan het verbeteren en introduceren van nieuwe s.,

    Als u uw eigen computer aan het ontwikkelen bent , houd er dan rekening mee dat het niet gaat om hoe moeilijk de vraag is-het is hoe waarschijnlijk het is dat een computer het juiste antwoord krijgt.Ik zag eens een die de gebruiker een foto van drie zebra ’s presenteert, met een meerkeuzevraag die vraagt hoeveel zebra’ s er in de picture.To beantwoord de vraag, je klikt op een van de drie knoppen.

    hoewel het erg moeilijk zou zijn voor een computerprogramma om zowel de vraag te begrijpen als het beeld te interpreteren, kon het programma willekeurig elk antwoord raden en het een derde van de tijd correct krijgen., Hoewel dit een bevredigend risiconiveau lijkt, is het geenszins effectief .Als u een gratis e-mail service en gebruik maken van een dergelijke om te voorkomen dat spammers van het maken van accounts in bulk, alles wat ze hoeven te doen is het schrijven van een script om automatisch te maken 1.000 accounts en verwachten gemiddeld dat 333 van deze pogingen succesvol zal zijn.

    Niettemin kan een eenvoudige nog steeds effectief zijn tegen brute-force aanvallen.,Wanneer u de kans van een aanvaller het verzenden van een juiste gebruikersnaam en wachtwoord raden combineren met de kans van het Raden van de juiste, gecombineerd met andere technieken beschreven in dit hoofdstuk, zelfs een eenvoudige kan effectief blijken.

    figuur 1: Wachtwoordvertraging: C#

    Figuur 2: Wachtwoordvertraging: 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

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

    Spring naar toolbar