Gebruikerstelling
Twee verschillende fouten vertellen een aanvaller welke e-mails echt zijn.
Wat is Gebruikerstelling?
Gebruikersopsomming is uw toepassing die bevestigt welke adressen accounts hebben. Er is één waarneembaar verschil nodig: een andere foutreeks, een andere statuscode, een langzamere reactie. U verzendt twee aanmeldingstests en krijgt 'Geen account gevonden' tegen 'Onjuist wachtwoord', plus een latentiegat, omdat bcrypt alleen wordt uitgevoerd als er een hash is om mee te vergelijken. De oplossing retourneert één algemene fout en voert altijd de vergelijking uit, tegen een vaste dummy-hash als er geen gebruiker bestaat. Aanmelden en wachtwoord opnieuw instellen geven hetzelfde antwoord weg.
Wat je leert in Gebruikerstelling
- Erken dat elk verschil tussen de geregistreerde en niet-geregistreerde codepaden (fouttekst, statuscode, latentie, bijwerking) een opsommingsorakel is
- Pas de uniforme foutoplossing toe bij het inloggen en zorg ervoor dat het pad zonder gebruikers dezelfde bcrypt-kosten met zich meebrengt als het pad dat door de gebruiker bestaat
- Begrijp dat timing een tweede opsommingskanaal is dat de lichaamsfixatie overleeft en moet worden afgesloten met een stand-in met constante tijd
- Controleer de aanmelding en eindpunten voor het opnieuw instellen van het wachtwoord voor dezelfde vorm, beide maken routinematig onderscheid tussen geregistreerd en niet-geregistreerd in hun happy-path-reacties
- Verbind opsomming met het opvullen van inloggegevens: het filteren van de kandidatenlijst op geregistreerde e-mails verandert een luidruchtige spray in een stille, tarieflimietvriendelijke campagne
Gebruikerstelling — Trainingsstappen
-
Een lijst die een filter nodig heeft
Bob heeft een stapel e-mail- en wachtwoordparen bij zich die afkomstig zijn van een niet-gerelateerde inbreuk. De meeste van die mensen hebben nog nooit van Larksong gehoord, dus het zou traag en luidruchtig zijn om de hele lijst op de inlogpagina te spuiten. Eerst wil hij weten welke van die e-mails eigenlijk Larksong-accounts zijn. Hij opent de inlogpagina van Larksong in zijn browser, terwijl DevTools gereed is, om te zien hoe deze reageert op een mislukte aanmelding.
-
Probeer een e-mail die niet is geregistreerd
Bob begint met een basislijn. Hij logt in met een adres dat vrijwel zeker geen Larksong-account heeft en een wegwerpwachtwoord, en ziet hoe het antwoord in het netwerkpaneel belandt.
-
Het basisantwoord
Het formulier toont een inlogfout en het echte detail staat in het netwerkpaneel: een 401 met een antwoordtekst en een reactietijd. Zo ziet een mislukte aanmelding bij een niet-geregistreerde e-mail eruit. Bob noteert het als zijn basislijn.
-
Probeer een e-mail waarvan hij denkt dat deze echt is
Nu probeert Bob het opnieuw met een adres uit zijn dump waarvan hij denkt dat het van een echte luisteraar is, marcus.delgado@gmail.com, nog steeds met een wegwerpwachtwoord. Als het eindpunt de twee gevallen op dezelfde manier behandelt, komt het antwoord overeen met de basislijn. Als dat niet het geval is, is het verschil de hele prijs.
-
Een ander antwoord
Het antwoord veranderde. Hetzelfde verkeerde wachtwoord, maar de antwoordtekst is anders. Bob heeft zich nooit aangemeld, maar het aanmeldingseindpunt vertelde hem net dat deze e-mail een echt Larksong-account is.
-
Controleer de reactietijden
De bewoording is één tell. Het netwerkpaneel bevat een tweede, stillere vraag: hoe lang elk verzoek duurde.
-
Kennis check
Voordat Bob dit opschaalt, moet je precies weten waarom het echte account zoveel langzamer was.
-
Verzamel de lijst
Bob wijst een script naar het aanmeldingseindpunt en verzendt dit elke e-mail vanuit zijn dump, elk met één verzoek. Telkens wanneer het antwoord het langzame Onjuiste wachtwoord is, komt dat adres op zijn bevestigde lijst. Van de 50.000 kandidaten zijn er 8.400 echte Larksong-accounts. Nu volgt de identificatie-opvulrun die alleen doelen volgt waarvan hij weet dat ze bestaan, dus het blijft klein, stil en ruim onder de snelheidslimieten die een blinde spray zouden markeren.
-
Het beveiligingsalarm
U bent eigenaar van de inlogservice van Larksong. Van de ene op de andere dag signaleerde de detectie een vreemd patroon bij het inlogeindpunt en stuurde u de bevinding per e-mail. Lees wat er is opgevangen en open vervolgens de code.
-
Open de aanmeldingshandler
De inlogroute bevindt zich in de authentificatieservice. Open de handler en kijk hoe deze beslist wat er teruggestuurd moet worden als het inloggen mislukt.
Dekking van beveiligingsframeworks
OWASP Top 10
- A07:2025 Authentication Failures
- A07:2021 Identification and Authentication Failures
CWE
- CWE-204 Observable Response Discrepancy
- CWE-208 Observable Timing Discrepancy
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security