FixVibe
Covered by FixVibehigh

JWT လုံခြုံရေး- မလုံခြုံသော တိုကင်များ၏ အန္တရာယ်များနှင့် ပျောက်ဆုံးနေသော အရေးဆိုမှု အတည်ပြုခြင်း

ZXCVFIXVIBESEG၂ JSON Web Tokens (JWTs) သည် အရေးဆိုမှုများကို လွှဲပြောင်းခြင်းအတွက် စံတစ်ခု ပေးစွမ်းသော်လည်း လုံခြုံရေးသည် ခိုင်မာသော အတည်ပြုချက်အပေါ် မူတည်ပါသည်။ လက်မှတ်များ၊ သက်တမ်းကုန်ဆုံးချိန် သို့မဟုတ် ရည်ရွယ်ထားသော ပရိသတ်များကို အတည်ပြုရန် ပျက်ကွက်ပါက တိုက်ခိုက်သူများသည် အထောက်အထားစိစစ်ခြင်းကို ကျော်ဖြတ်ရန် သို့မဟုတ် တိုကင်များကို ပြန်ဖွင့်ရန် ခွင့်ပြုသည်။

CWE-347CWE-287CWE-613

တိုက်ခိုက်သူ ထိခိုက်မှု

မသင့်လျော်သော JWT မှန်ကန်မှု သည် တိုက်ခိုက်သူများအား အရေးဆိုမှုများကို အတုလုပ်ခြင်း သို့မဟုတ် သက်တမ်းကုန်ဆုံးသွားသော တိုကင်များ [S1] ဖြင့် အထောက်အထားစိစစ်ခြင်း ယန္တရားများကို ကျော်ဖြတ်နိုင်စေပါသည်။ အကယ်၍ ဆာဗာသည် တရားဝင် လက်မှတ်မပါဘဲ တိုကင်များကို လက်ခံပါက၊ တိုက်ခိုက်သူသည် အခွင့်ထူးများ တိုးမြင့်ရန် သို့မဟုတ် အသုံးပြုသူ [S1] ၏ payload ကို ပြင်ဆင်နိုင်သည်။ ထို့အပြင်၊ သက်တမ်းကုန်ဆုံးမှု (exp) အရေးဆိုချက်ကို လိုက်နာရန် ပျက်ကွက်ခြင်းသည် တိုက်ခိုက်သူအား အပေးအယူလုပ်ထားသော တိုကင်ကို အကန့်အသတ်မရှိ [S1] အသုံးပြုခွင့်ပေးသည်။

အကြောင်းအရင်း

JSON ဝဘ်တိုကင် (JWT) သည် ဒစ်ဂျစ်တယ်စနစ်ဖြင့် လက်မှတ်ထိုးထားသော သို့မဟုတ် သမာဓိရှိမှု [S1] မှ ကာကွယ်ထားသော အရေးဆိုမှုများကို ကိုယ်စားပြုရန်အတွက် အသုံးပြုသည့် JSON-based ဖွဲ့စည်းပုံဖြစ်သည်။ လုံခြုံရေး ချို့ယွင်းချက်များသည် ပုံမှန်အားဖြင့် အဓိက အကောင်အထည်ဖော်မှု ကွာဟချက်နှစ်ခုမှ ဖြစ်ပေါ်လာသည်-

  • မလုံခြုံသော JWTs များကို လက်ခံခြင်း- ဝန်ဆောင်မှုတစ်ခုသည် လက်မှတ်အတည်ပြုခြင်းအား တင်းတင်းကျပ်ကျပ် မလုပ်ဆောင်ပါက၊ ၎င်းသည် လက်မှတ်မရှိသည့်နေရာတွင် "မလုံခြုံသော JWTs" ကို လုပ်ဆောင်နိုင်မည်ဖြစ်ပြီး အယ်လဂိုရီသမ်ကို "မရှိ" ဟု သတ်မှတ်ထားသည့် [S1]။ ဤအခြေအနေတွင်၊ ဆာဗာသည် ၎င်းတို့၏ သမာဓိ [S1] ကို မစစ်ဆေးဘဲ payload တွင် တောင်းဆိုချက်များကို ယုံကြည်ပါသည်။
  • ပျောက်ဆုံးနေသောအရေးဆိုမှုအတည်ပြုခြင်း- exp (သက်တမ်းကုန်ဆုံးချိန်) အရေးဆိုချက်သည် JWT [S1] ကို စီမံဆောင်ရွက်ရန်အတွက် လက်ခံမည်မဟုတ်သည့်အချိန်ကို သတ်မှတ်သတ်မှတ်ပေးပါသည်။ aud (ပရိသတ်) အရေးဆိုမှုသည် [S1] ၏ ရည်ရွယ်ထားသော တိုကင်လက်ခံသူများကို ခွဲခြားသတ်မှတ်သည်။ ၎င်းတို့ကို မစစ်ဆေးပါက၊ ဆာဗာသည် သက်တမ်းကုန်သွားသော သို့မဟုတ် အခြားအပလီကေးရှင်း [S1] အတွက် ရည်ရွယ်ထားသည့် တိုကင်များကို လက်ခံနိုင်သည်။

ကွန်ကရစ်ပြင်ဆင်မှုများ

ZXCVFIXVIBESEG၁၀

  • Cryptographic Signatures ကို Enforce လုပ်ပါ- ကြိုတင်အတည်ပြုထားသော၊ ခိုင်မာသောလက်မှတ်ထိုးခြင်းဆိုင်ရာ အယ်လဂိုရီသမ် (RS256 ကဲ့သို့) ကိုအသုံးမပြုသည့် JWT မှန်သမျှကို ငြင်းပယ်ရန် အပလီကေးရှင်းကို စီစဉ်သတ်မှတ်ပါ။

ZXCVFIXVIBESEG ၁၁

  • သက်တမ်းကုန်ဆုံးကြောင်းအတည်ပြုပါ- exp တွင်ဖော်ပြထားသော exp တွင်ဖော်ပြထားသည့် လက်ရှိရက်စွဲနှင့်အချိန်ကိုသေချာစေရန်မဖြစ်မနေစစ်ဆေးခြင်းကိုလုပ်ဆောင်ပါ။
  • ပရိသတ်ကို အတည်ပြုပါ- aud တွင် ဒေသဆိုင်ရာ ဝန်ဆောင်မှုကို သတ်မှတ်သည့် တန်ဖိုးတစ်ခု ပါဝင်ကြောင်း သေချာပါစေ။ aud အရေးဆိုမှုတွင် ဝန်ဆောင်မှုကို မဖော်ထုတ်ပါက၊ တိုကင်ကို [S1] ငြင်းပယ်ရပါမည်။

ZXCVFIXVIBESEG၁၃

  • ပြန်လည်ကစားခြင်းကို တားဆီးရန်- ဆာဗာမှ ပြန်လည်အသုံးပြုထားသော တိုကင် [S1] အား သီးသန့်သတ်မှတ်သူအဖြစ် သတ်မှတ်ရန် တောင်းဆိုသည့် jti (JWT ID) ကို အသုံးပြုပါ။

ZXCVFIXVIBESEG ၁၄

Detection Strategy

JWT ကိုင်တွယ်ခြင်းရှိ အားနည်းချက်များကို တိုကင်ဖွဲ့စည်းပုံနှင့် ဆာဗာတုံ့ပြန်မှုအပြုအမူတို့ကို ခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့် ဖော်ထုတ်နိုင်သည်- ZXCVFIXVIBESEG၁၆

  • ခေါင်းစီးစစ်ဆေးခြင်း- alg (algorithm) ခေါင်းစီးကို "မရှိ" ဟုသတ်မှတ်ထားပြီး မျှော်လင့်ထားသည့် ကုဒ်ဝှက်စံနှုန်း [S1] ကို အသုံးပြုထားကြောင်း သေချာစေရန် စစ်ဆေးခြင်း။
  • တိုင်ကြားမှု စိစစ်ခြင်း- exp (သက်တမ်းကုန်ဆုံးခြင်း) နှင့် aud (ပရိသတ်) အရေးဆိုမှုများကို JSON payload [S1] ၏ တည်ရှိမှုနှင့် တရားဝင်မှုကို အတည်ပြုခြင်း။
  • Validation Testing- exp အရ exp တောင်းဆိုမှုအရ သက်တမ်းကုန်သွားသော တိုကင်များကို ဆာဗာမှ မှန်ကန်စွာ ငြင်းပယ်ခြင်း ရှိမရှိ စမ်းသပ်ခြင်း သို့မဟုတ် aud မှ သတ်မှတ်ထားသည့် မတူညီသော ပရိသတ်အတွက် ရည်ရွယ်ခြင်း ဖြစ်သည်။