2019년에 Django는 부적절한 토큰 만료 유효성 검사로 인해 공격자가 사용자 세션을 가로챌 수 있는 세션 관리 취약점이 있었습니다. 이 문제는 토큰 만료를 확인할 때 잘못된 비교 연산자( `<` 대신 `<=` )를 사용한 데서 비롯되었습니다. 겉보기에는 사소한 오류였지만 토큰 유효 기간을 연장하여 공격자가 훔친 토큰을 몇 주 또는 몇 달 후에 악용하고, 다단계 인증을 우회하며 지속적인 액세스를 유지할 수 있게 했습니다. 2024년 분석에 따르면 상당 비율의 JWT 구현 및 비밀번호 재설정 토큰에 유사한 만료 관련 버그가 있는 것으로 나타났습니다. 애플리케이션 보안 엔지니어는 인증 시스템을 감사하고 토큰 유효성 검사 로직을 주의 깊게 검토하여 이러한 취약점을 식별할 책임이 있습니다. 이 과제는 Python을 사용하여 토큰 검증기를 구축하는 데 중점을 두며, 올바른 만료 경계 로직과 시간 여행 감지 처리를 강조합니다. 검증기는 잘못된 구성을 확인하여 토큰이 정확하게 만료되도록 하고 클록 조작 공격을 방지합니다. 올바른 숫자 비교, 타임스탬프 연산 및 입력 유효성 검사는 이 연습에서 개발되는 핵심 기술입니다. 이 연습은 검증기가 다양한 엣지 케이스와 실제 시나리오를 처리하는지 확인하기 위한 포괄적인 테스트 스위트를 제공합니다. 올바른 토큰 만료 유효성 검사를 마스터하는 것은 AppSec 엔지니어가 세션 고정 공격 및 인증 우회를 방지하는 데 중요한 기술입니다. 이 과제는 30개의 기본 테스트 케이스와 포괄적인 유효성 검사를 위한 90개의 테스트 케이스가 포함된 보너스 과제를 포함합니다.
dev.to
JWT Token Validator Challenge
