FixVibe
Covered by FixVibehigh

JWT Segurtasuna: segurtasunik gabeko token eta erreklamazioen baliozkotze faltaren arriskuak

JSON Web Tokenek (JWT) erreklamazioak transferitzeko estandar bat eskaintzen dute, baina segurtasuna baliozkotze zorrotzean oinarritzen da. Sinadurak, iraungitze-epeak edo aurreikusitako audientzia egiaztatzeak ez badituzu, erasotzaileek autentifikazioa edo tokenak errepikatu ditzakete.

CWE-347CWE-287CWE-613

Erasotzailearen eragina

JWT baliozkotze okerrak erasotzaileek autentifikazio-mekanismoak saihestu ditzakete erreklamazioak faltsutuz edo iraungitako tokenak [S1] berrerabiliz. Zerbitzari batek baliozko sinadurarik gabe tokenak onartzen baditu, erasotzaileak karga alda dezake pribilegioak handitzeko edo edozein erabiltzaile [S1] ordezkatzeko. Gainera, iraungitze-erreklamazioa (exp) ez betetzeak aukera ematen dio erasotzaileak arriskuan jarritako token bat mugagabe erabiltzeko [S1].

Arrazoia

JSON Web Token bat (JWT) JSON oinarritutako egitura bat da, digitalki sinatuta edo osotasuna babestuta dauden erreklamazioak [S1] irudikatzeko erabiltzen dena. Segurtasun-akatsak normalean bi inplementazio hutsuneetatik datoz:

  • Segurtasunik gabeko JWT-ak onartzea: Zerbitzu batek sinadura egiaztatzea zorrotz ezartzen ez badu, "Segurtasun gabeko JWT" prozesatu ditzake sinadurarik ez dagoenean eta algoritmoa "batere" ezarrita dagoen [S1]. Eszenatoki honetan, zerbitzariak kargaren erreklamazioak fidatzen ditu haien osotasuna egiaztatu gabe [S1].
  • Erreklamazioaren baliozkotzea falta da: exp (iraungitze-denbora) erreklamazioak JWT prozesatzeko [S1] onartu behar ez den edo ondoren zehazten du. aud (audientzia) erreklamazioak [S1] tokenaren hartzaileak identifikatzen ditu. Hauek egiaztatzen ez badira, zerbitzariak iraungi diren edo beste aplikazio baterako [S1] erabilitako tokenak onar ditzake.

Konponketa konkretuak

  • Egin ezazu sinadura kriptografikoak: konfiguratu aplikazioa aurrez onartutako sinadura-algoritmo sendorik (RS256 adibidez) erabiltzen ez duen edozein JWT ukatzeko.
  • Balioztatu Iraungipena: Ezar ezazu derrigorrezko egiaztapena, uneko data eta ordua exp erreklamazioan zehaztutako ordua baino lehenagokoak direla ziurtatzeko.
  • Egiaztatu audientzia: Ziurtatu aud erreklamazioak tokiko zerbitzua identifikatzen duen balio bat duela; zerbitzua aud erreklamazioan identifikatzen ez bada, tokena baztertu behar da [S1].
  • Erreproduzitzea saihestu: Erabili jti (JWT ID) erreklamazioa token bakoitzari identifikatzaile esklusibo bat esleitzeko, zerbitzariari [S1] berrerabilitako tokenak jarraitzeko eta baztertzeko.

Detektatzeko estrategia

JWT maneiatzeko ahultasunak token egitura eta zerbitzariaren erantzunaren portaera aztertuta identifikatu daitezke:

  • Goiburuaren ikuskapena: alg (algoritmoa) goiburua egiaztatzea "none" gisa ezarrita ez dagoela eta espero diren [S1] estandar kriptografikoak erabiltzen dituela ziurtatzeko.
  • Erreklamazio-egiaztapena: exp (iraungipena) eta aud (audientzia) erreklamazioen presentzia eta baliozkotasuna baieztatzea JSON kargaren [S1].
  • Balioztatze-probak: zerbitzariak exp erreklamazioaren arabera iraungi diren tokenak edo aud erreklamazioak definitutako beste publiko bati zuzendutako tokenak behar bezala baztertzen dituen probatzen da.