FixVibe
Covered by FixVibehigh

JWT Коопсуздук: Корголбогон Токендердин тобокелдиктери жана Дооматтарды текшерүүнүн жетишсиздиги

JSON Web Tokens (JWTs) дооматтарды өткөрүп берүү үчүн стандартты камсыз кылат, бирок коопсуздук катуу текшерүүгө таянат. Кол коюуларды, жарактуулук мөөнөтүн же арналган аудиторияны текшербей коюу чабуулчуларга аутентификацияны айланып өтүүгө же энбелгилерди кайра ойнотууга мүмкүндүк берет.

CWE-347CWE-287CWE-613

Кол салуучунун таасири

Туура эмес JWT валидациясы чабуулчуларга дооматтарды жасоо же мөөнөтү өтүп кеткен [S1] токендерин кайра колдонуу аркылуу аутентификация механизмдерин айланып өтүүгө мүмкүндүк берет. Эгер сервер жарактуу кол тамгасы жок токендерди кабыл алса, чабуулчу артыкчылыктарды жогорулатуу же [S1] колдонуучусунун кейпин кийүү үчүн пайдалуу жүктү өзгөртө алат. Андан тышкары, жарактуулук мөөнөтү (exp) талап кылынбаса, чабуулчуга [S1] бузулган токенди чексиз колдонууга мүмкүнчүлүк берет.

Негизги себеп

JSON Желе Токени (JWT) – санарип кол коюлган же бүтүндүгү корголгон [S1] дооматтарды көрсөтүү үчүн колдонулган JSON негизиндеги түзүм. Коопсуздук каталары, адатта, эки негизги ишке ашыруу боштугунан келип чыгат:

  • Коргоосуз JWT'лерди кабыл алуу: Эгер кызмат колтамга текшерүүсүн катуу талап кылбаса, ал колтамга жок жана алгоритм "жок" [S1] деп коюлган "Коргоосуз JWTs" иштетиши мүмкүн. Бул сценарийде сервер пайдалуу жүктөгү дооматтарга алардын бүтүндүгүн [S1] текшербестен ишенет.
  • Дооматты текшерүү жок: exp (жарактуулук мөөнөтү) дооматы JWT [S1] иштетүү үчүн кабыл алынбашы керек болгон же андан кийин убакытты аныктайт. aud (аудитория) дооматы [S1] энбелгисинин болжолдонгон алуучуларын аныктайт. Эгер булар белгиленбесе, сервер мөөнөтү өтүп кеткен же башка [S1] тиркеме үчүн арналган токендерди кабыл алышы мүмкүн.

Бетон оңдоолор

  • Криптографиялык кол коюуларды күчтөндүрүү: Колдонмону алдын ала бекитилген, күчтүү кол коюу алгоритмин (мисалы, RS256) колдонбогон JWT четке кагуу үчүн конфигурациялаңыз.
  • Мөөнөтүн бүтүшүн текшерүү: Учурдагы дата менен убакыттын exp дооматында көрсөтүлгөн убакыттан мурун болушун камсыз кылуу үчүн милдеттүү текшерүүнү жүргүзүңүз [S1].
  • Аудиторияны текшерүү: aud дооматында жергиликтүү кызматты аныктоочу маани камтылганын текшериңиз; эгерде кызмат aud дооматында аныкталбаса, токен [S1] четке кагылышы керек.
  • Кайра ойнотууну болтурбоо: jti (JWT ID) дооматын ар бир токенге уникалдуу идентификатор ыйгаруу үчүн колдонуңуз, бул серверге [S1] кайра колдонулган токендерге көз салууга жана четке кагууга мүмкүндүк берет.

Detection Strategy

JWT иштетүүдөгү аялууларды токендердин структурасын жана сервердин жооп жүрүм-турумун талдоо аркылуу аныктоого болот:

  • Белгилерди текшерүү: alg (алгоритм) аталышын текшерүү, анын "эч ким" деп коюлбагандыгын жана күтүлгөн [S1] криптографиялык стандарттарын колдонот.
  • Дооматты текшерүү: exp (жарактуулук мөөнөтү) жана aud (аудитория) [S1] JSON пайдалуу жүктөгү дооматтарынын бар экендигин жана жарактуулугун ырастоо.
  • Валидациялык тестирлөө: exp дооматына ылайык мөөнөтү бүткөн же aud дооматы [S1] аныктагандай башка аудитория үчүн арналган токендерди сервер туура четке кагып жатканын текшерүү.