Инженер по безопасности приложений Swordfish Security Денис Данилов подробно объяснил одну из типовых уязвимостей стандарта передачи данных JSON Web Token (JWT). Ошибка связана с некорректной обработкой заголовка токена сервером и может привести к полному обходу проверки подписи.
JWT состоит из трёх частей: заголовка (Header), полезной нагрузки (Payload) и подписи (Signature). Проблема возникает, если сервер не проверяет, какой алгоритм подписи указан в заголовке. В случае выбора значения alg: "None" библиотека может интерпретировать его буквально и вовсе не проверять подпись.
«Подобная ошибка позволяет злоумышленнику изменить содержимое токена, например повысить свои привилегии до администратора, и использовать его для несанкционированного доступа. Это серьёзный риск для любой системы авторизации», – отметил Денис Данилов.
В Swordfish Security подчёркивают, что такие уязвимости — не единичные случаи, а часть более широкой проблемы: разработчики полагаются на библиотеки, не вникая в особенности их реализации. «Наш опыт показывает: даже базовое понимание архитектуры протоколов и моделей угроз позволяет предотвратить критичные ошибки ещё на этапе проектирования», — добавил эксперт.
Рассмотренный кейс входит в учебный модуль академии Swordfish Security по DevSecOps, где специалисты компании делятся практическими примерами уязвимостей и методами их предотвращения.
Подробнее на сайте
JWT состоит из трёх частей: заголовка (Header), полезной нагрузки (Payload) и подписи (Signature). Проблема возникает, если сервер не проверяет, какой алгоритм подписи указан в заголовке. В случае выбора значения alg: "None" библиотека может интерпретировать его буквально и вовсе не проверять подпись.
«Подобная ошибка позволяет злоумышленнику изменить содержимое токена, например повысить свои привилегии до администратора, и использовать его для несанкционированного доступа. Это серьёзный риск для любой системы авторизации», – отметил Денис Данилов.
В Swordfish Security подчёркивают, что такие уязвимости — не единичные случаи, а часть более широкой проблемы: разработчики полагаются на библиотеки, не вникая в особенности их реализации. «Наш опыт показывает: даже базовое понимание архитектуры протоколов и моделей угроз позволяет предотвратить критичные ошибки ещё на этапе проектирования», — добавил эксперт.
Рассмотренный кейс входит в учебный модуль академии Swordfish Security по DevSecOps, где специалисты компании делятся практическими примерами уязвимостей и методами их предотвращения.
Подробнее на сайте