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
experreklamazioan zehaztutako ordua baino lehenagokoak direla ziurtatzeko. - Egiaztatu audientzia: Ziurtatu
auderreklamazioak tokiko zerbitzua identifikatzen duen balio bat duela; zerbitzuaauderreklamazioan 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) etaaud(audientzia) erreklamazioen presentzia eta baliozkotasuna baieztatzea JSON kargaren [S1]. - Balioztatze-probak: zerbitzariak
experreklamazioaren arabera iraungi diren tokenak edoauderreklamazioak definitutako beste publiko bati zuzendutako tokenak behar bezala baztertzen dituen probatzen da.
