FixVibe
Covered by FixVibehigh

JWT Sicurezza: Rischi di Tokens Unsecured è Validazione di Reclamazione Mancante

JSON Web Tokens (JWTs) furnisce un standard per u trasferimentu di rivendicazioni, ma a sicurezza si basa in una validazione rigorosa. A fallimentu di verificà e firme, i tempi di scadenza, o l'audienza destinata permette à l'attaccanti di scaccià l'autenticazione o riproduce i tokens.

CWE-347CWE-287CWE-613

Impattu di l'attaccu

A validazione JWT impropria permette à l'attaccanti di aggirari i meccanismi di autentificazione falsificandu rivendicazioni o riutilizendu tokens scaduti [S1]. Se un servitore accetta tokens senza una firma valida, un attaccu pò mudificà u payload per scalate i privilegii o impersonà qualsiasi utilizatore [S1]. Inoltre, a mancanza di rinfurzà a pretesa di scadenza (exp) permette à un attaccante di utilizà un token cumprumissu indefinitu [S1].

Causa Root

A JSON Web Token (JWT) hè una struttura basata in JSON utilizata per rapprisintà e rivendicazioni chì sò firmati digitalmente o protetti da integrità [S1]. I fallimenti di sicurezza sò generalmente da dui lacune di implementazione primaria:

  • Accettazione di JWT Unsecured: Se un serviziu ùn impone micca strettamente a verificazione di a firma, pò processà "JWT Unsecured" induve a firma hè assente è l'algoritmu hè stabilitu à "none" [S1]. In questu scenariu, u servitore fiducia in i rivindicazioni in u payload senza verificà a so integrità [S1].
  • Missing Claim Validation: U exp (tempu di scadenza) identifica l'ora o dopu chì u JWT ùn deve esse accettatu per u processu [S1]. A dichjarazione aud (audience) identifica i destinatari destinati di u token [S1]. Se questi ùn sò micca verificati, u servitore pò accettà tokens caduti o destinati à una applicazione diversa [S1].

Correzioni Concrete

  • Infurzà Signature Cryptographic: Configurate l'applicazione per rifiutà qualsiasi JWT chì ùn utilizeghja micca un algoritmu di firmamentu forte pre-appruvatu (cum'è RS256).
  • Validate l'Expiration : Implementa un cuntrollu obligatoriu per assicurà a data è l'ora attuale sò prima di l'ora specificata in a dumanda exp [S1].
  • Verify Audience: Assicuratevi chì a pretendenza aud cuntene un valore chì identifica u serviziu locale; se u serviziu ùn hè micca identificatu in a dumanda aud, u token deve esse rifiutatu [S1].
  • Prevente Replay: Aduprate u jti (JWT ID) pretendenu per assignà un identificatore unicu à ogni token, chì permette à u servitore di seguità è rifiutà i tokens reutilizati [S1].

Strategia di rilevazione

Vulnerabilità in a gestione di JWT ponu esse identificate analizendu a struttura di u token è u cumpurtamentu di a risposta di u servitore:

  • Inspeczione di l'intestazione: Verificate l'intestazione alg (algoritmu) per assicurà chì ùn hè micca impostatu à "nimu" è usa i standard criptografici previsti [S1].
  • Verificazione di Rivendicazione: Cunfirmà a presenza è a validità di e rivendicazioni exp (scadenza) è aud (audience) in u payload JSON [S1].
  • Test di Validazione: Pruvate se u servitore rifiuta currettamente i tokens chì sò scaduti secondu a pretendenza exp o sò destinati à un publicu sfarente cum'è definitu da a dumanda aud [S1].