Security+ Academy · leksjon

Brutt autentisering og usikker deserialisering

Utforsk hvordan svak sesjonshåndtering, credential stuffing og sårbarheter i usikker deserialisering gjør det mulig for angripere å kapre kontoer og kjøre kode.

Leksjon 3 av 413 trinn

Brutt autentisering og usikker deserialisering er en gratis leksjon i Security+ Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Security+ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Security+ Academy inneholder totalt 4 leksjoner.

Hva er ødelagt autentisering?

Ødelagt autentisering viser til svakheter i hvordan en applikasjon bekrefter brukeridentitet og håndterer økter. Når autentiseringen er ødelagt, kan angripere kompromittere passord, nøkler eller øktokener for å utgi seg for andre brukere. Denne kategorien i OWASP Top 10 omfatter et bredt spekter av svakheter: svake påloggingsopplysninger, dårlig økthåndtering, manglende MFA og usikker lagring av påloggingsopplysninger.

Credential stuffing og passordspraying

Credential stuffing bruker store lister med kompromitterte kombinasjoner av brukernavn og passord fra tidligere datainnbrudd og prøver dem på andre nettsteder, noe som utnytter gjenbruk av passord. Passordspraying bruker den motsatte tilnærmingen: et lite utvalg vanlige passord (for eksempel Password1!) prøves mot mange kontoer for å unngå terskler for kontolåsing. Begge angrepene lykkes på grunn av svake passordregler og manglende MFA.

# Password spraying concept (defensive awareness)
# Attacker tries 'Password1!' against 10,000 accounts
# rather than trying 10,000 passwords against 1 account
# This avoids triggering lockout policies (e.g., 5 attempts/account)

# Defense: MFA + adaptive authentication + rate limiting

Svak økthåndtering

Økter knytter autentiserte brukere til applikasjonstilstanden deres. Svakheter ved økthåndtering omfatter: forutsigbare verdier for øktokener (sekvensielle ID-er som angripere kan gjette), tokener som aldri utløper, tokener som overføres via HTTP i stedet for HTTPS, og manglende ugyldiggjøring av tokener ved utlogging. En angriper som får tak i et gyldig øktoken, kan utgi seg for brukeren uten å kjenne passordet.

# Signs of weak session management:
# /login response sets:
# Set-Cookie: session=1042  (predictable, sequential)
# Missing: Secure; HttpOnly; SameSite flags
# Missing: session expiry / Max-Age
# Logout does NOT invalidate server-side session

Øktfiksering og øktkapring

Øktfiksering tvinger et offer til å bruke en økt-ID som angriperen har valgt. En angriper kan for eksempel sende en lenke med en forhåndsdefinert øktinformasjonskapsel. Etter at offeret har autentisert seg, bruker angriperen den samme økt-ID-en til å få tilgang til kontoen. Øktkapring stjeler et eksisterende øktoken via XSS, nettverkssniffing (på ukrypterte forbindelser) eller stjålne informasjonskapsler. Løsningen er å generere nye økt-ID-er etter innlogging og bruke HTTPS overalt.

Usikker lagring av passord

Lagring av passord i klartekst eller med svake hashfunksjoner (MD5, SHA-1) er en kritisk autentiseringssvikt. Når en database blir kompromittert, kan klartekstpassord og svake hasher brukes umiddelbart. Sikker lagring av passord krever en adaptiv hashingsalgoritme som er utviklet for passord: bcrypt, Argon2 eller PBKDF2 med et tilfeldig salt per bruker. Disse algoritmene er med vilje langsomme, noe som gjør cracking uten nettforbindelse beregningsmessig kostbart.

# Python example — secure password hashing with bcrypt
import bcrypt

# Hash a password (includes random salt automatically)
password = b'UserSuperSecret123'
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))

# Verify
bcrypt.checkpw(password, hashed)  # returns True

Hva er usikker deserialisering?

Serialisering konverterer tilstanden til et objekt til et format (JSON, XML, binærdata) for lagring eller overføring. Deserialisering gjenoppretter objektet fra dette formatet. Usikker deserialisering oppstår når en applikasjon deserialiserer angriperkontrollerte data uten validering – slik at angripere kan endre serialiserte objekter for å manipulere applikasjonslogikk, eskalere privilegier eller kjøre vilkårlig kode på serveren.

Eksempel på deserialiseringsangrep

Et vanlig angrepsmønster innebærer serialiserte objekter som sendes i informasjonskapsler eller API-parametere. En Java-applikasjon som bruker ObjectInputStream.readObject() på data som ikke er til å stole på, kan for eksempel utløse Remote Code Execution (RCE) gjennom gadget-kjeder i populære biblioteker (Apache Commons Collections). Angriperen lager en skadelig serialisert nyttelast, sender den til applikasjonen, og koden kjøres under deserialiseringen – ofte før en autentiseringskontroll kjøres.

# Insecure deserializing pattern (Python pickle — dangerous)
import pickle

# Attacker-controlled payload
class Exploit:
    def __reduce__(self):
        import os
        return (os.system, ('id',))  # executes 'id' on server

payload = pickle.dumps(Exploit())
pickle.loads(payload)  # RCE! Never deserialize untrusted data with pickle

Forebygging av usikker deserialisering

Forsvar mot usikker deserialisering omfatter: aldri deserialiser data du ikke stoler på med farlige formater som Java native serialization eller Python pickle. Foretrekk dataformater som bare inneholder data (JSON, XML) fremfor binær serialisering. Hvis deserialisering er nødvendig, må De implementere integritetskontroller (signere det serialiserte objektet med HMAC), bruke tillatelseslister for å begrense hvilke klasser som kan deserialiseres, og kjøre deserialiseringskode i isolerte miljøer med lave privilegier.

# Safe approach: sign serialized data before transmitting
import hmac, hashlib, json

def serialize_safe(data, secret):
    payload = json.dumps(data)  # use JSON, not pickle
    sig = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
    return payload + '.' + sig

Multifaktorautentisering som kontrolltiltak

Multifaktorautentisering (MFA) er det mest effektive enkeltstående kontrolltiltaket mot ødelagt autentisering. Selv om påloggingsopplysninger blir kompromittert gjennom phishing, credential stuffing eller et datainnbrudd, kan ikke en angriper autentisere seg uten den andre faktoren. Microsoft rapporterer at MFA blokkerer over 99,9 % av automatiserte angrep som kompromitterer kontoer. MFA bør være obligatorisk for privilegerte kontoer og anbefales for alle brukere.

Kontolåsing og hastighetsbegrensning

Regler for kontolåsing deaktiverer midlertidig en konto etter et bestemt antall mislykkede innloggingsforsøk, noe som bremser brute force-angrep. Kontolåsing kan imidlertid muliggjøre tjenestenekt mot legitime brukere – angripere kan med vilje utløse låsing for å hindre tilgang. Hastighetsbegrensning (saktere svar etter gjentatte feil ved hjelp av eksponentiell tilbakekobling) og CAPTCHA-utfordringer reduserer risikoen for tjenestenekt ved brute force-angrep.

Brutt autentisering i OWASP Top 10

OWASP oppfører brutt autentisering som en kritisk risiko fordi autentiseringsfeil både er vanlige og kan ha store konsekvenser. Viktige tegn på brutt autentisering er blant annet at systemet tillater automatiserte angrep som credential stuffing, tillater brute force eller andre automatiserte angrep, tillater standardpassord, svake passord eller velkjente passord, bruker svake prosesser for gjenoppretting av legitimasjon, bruker passord i klartekst eller med svak hashing, eller mangler flerfaktorautentisering eller har en ineffektiv løsning for dette.

Kort kontroll

Test forståelsen Deres av CompTIA Security+-konsepter (SY0-701) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen lærte De at brutt autentisering omfatter svake økter, credential stuffing og usikker passordlagring, at usikker deserialisering kan føre til Remote Code Execution via ondsinnede serialiserte objekter, og at MFA, bcrypt-hashing av passord, regenerering av økter etter innlogging og signerte serialiserte data er viktige forsvarstiltak. Deretter skal vi se nærmere på sikker SDLC samt SAST- og DAST-verktøy.

Gratis å komme i gang

Lær deg Security+ Academy med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Brutt autentisering og usikker deserialisering» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Security+ Academy, inkludert «Brutt autentisering og usikker deserialisering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Security+ Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Brutt autentisering og usikker deserialisering»?

Utforsk hvordan svak sesjonshåndtering, credential stuffing og sårbarheter i usikker deserialisering gjør det mulig for angripere å kapre kontoer og kjøre kode. Du øver på Security+ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Security+ Academy?

Ingen tidligere erfaring er nødvendig. Security+ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Brutt autentisering og usikker deserialisering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Security+ Academy-leksjonen?

Ja. Alle Security+ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. SQL-injeksjon og kommandoinjeksjon
  2. Cross-Site Scripting (XSS) og CSRF
  3. Brutt autentisering og usikker deserialisering
  4. Sikker SDLC samt SAST- og DAST-verktøy
← Tilbake til Security+ Academy