FixVibe
Covered by FixVibehigh

JWT Sécherheet: Risiken vun net gesécherten Tokens a vermësst Claim Validatioun

JSON Web Tokens (JWTs) bidden e Standard fir Fuerderungen ze transferéieren, awer d'Sécherheet hänkt op rigoréis Validatioun. Versoen d'Ënnerschrëften, Verfallszäiten oder beabsichtigte Publikum z'iwwerpréiwen erlaabt Ugräifer d'Authentifikatioun z'iwwerpréiwen oder Tokens ze widderhuelen.

CWE-347CWE-287CWE-613

Attacker Impakt

Ongerecht JWT Validatioun erlaabt Ugräifer Authentifikatiounsmechanismen ëmzegoen andeems se Fuerderungen ofginn oder ofgelaf Tokens [S1] weiderbenotzen. Wann e Server Token ouni valabel Ënnerschrëft akzeptéiert, kann en Ugräifer d'Notzlaascht änneren fir Privilegien z'eskaléieren oder all Benotzer [S1] z'impersonéieren. Ausserdeem, net d'Verfall (exp) Fuerderung ëmzesetzen erlaabt en Ugräifer e kompromittéierten Token onbestëmmt [S1] ze benotzen.

Root Ursaach

E JSON Web Token (JWT) ass eng JSON-baséiert Struktur déi benotzt gëtt fir Fuerderungen ze representéieren déi digital ënnerschriwwen oder Integritéit geschützt sinn [S1]. Sécherheetsfehler stamen typesch aus zwee primären Implementéierungslücken:

  • Akzeptanz vun Unsecured JWTs : Wann e Service net strikt Ënnerschrëft Verifizéierung erzwéngen, kann et Prozess "Unsecured JWTs" wou d'Ënnerschrëft fehlt an den Algorithmus op "keen" gesat [S1]. An dësem Szenario vertraut de Server d'Fuerderungen an der Notzlaascht ouni hir Integritéit zXCVFIXVIBETOKEN1ZXCV z'iwwerpréiwen.
  • Vermësste Fuerderung Validatioun : D'exp (Verfallszäit) Fuerderung identifizéiert d'Zäit op oder no deem d'JWT net fir d'Veraarbechtung [S1] akzeptéiert ginn. D'aud (Publikum) Fuerderung identifizéiert déi virgesinn Empfänger vum Token [S1]. Wann dës net iwwerpréift sinn, kann de Server Tokens akzeptéieren déi ofgelaaf sinn oder fir eng aner Applikatioun geduecht waren [S1].

Beton Fixes

  • Kryptografesch Ënnerschrëften erzwéngen : Configuréiert d'Applikatioun fir all JWT ze refuséieren, deen net e pre-guttgeheescht, staark Ënnerschrëft Algorithmus benotzt (wéi RS256).
  • Verfall validéieren : Ëmsetzen eng obligatoresch Scheck fir sécherzestellen datt den aktuellen Datum an Zäit virun der Zäit an der exp Fuerderung [S1] spezifizéiert sinn.
  • Audienz z'iwwerpréiwen : Vergewëssert Iech datt d'aud Fuerderung e Wäert enthält deen de lokale Service identifizéiert; wann de Service net an der aud Fuerderung identifizéiert ass, muss den Token [S1] verworf ginn.
  • Replay verhënneren : Benotzt d'jti (JWT ID) Fuerderung fir all Token eng eenzegaarteg Identifizéierer ze ginn, wat de Server erlaabt ze verfollegen a refuséiert weiderbenotzt Token [S1].

Detektiounsstrategie

Schwachstelle bei JWT Handhabung kënnen identifizéiert ginn andeems d'Tokenstruktur an d'Serverreaktiounsverhalen analyséiert ginn:

  • Header Inspektioun : Iwwerpréift den alg (Algorithmus) Header fir sécherzestellen datt et net op "keen" gesat gëtt a benotzt erwaart Kryptografesch Standarden [S1].
  • Claim Verification: Bestätegt d'Präsenz an d'Validitéit vun den exp (Verfall) an aud (Publikum) Fuerderungen bannent der JSON Notzlaascht [S1].
  • Validatiounstest: Testen ob de Server richteg Tokens refuséiert déi no der exp Fuerderung ofgelaaf sinn oder fir en anere Publikum geduecht sinn wéi definéiert vun der aud Fuerderung [S1].