8. 쿠키 변조

[쿠키변조]

O 쿠키를 사용하는 경우 해당 값의 조작을 통해 다른 사용자의 유효한 세션을 취득하거나 기타 중요 정보의 유출 및 변조가 발생할 수 있는 취약점


O 근거 자료

주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드(p.729)

OWASP TOP10 2021


O 판단 기준

양호쿠키를 사용하지 않고 서버 사이드 세션을 사용하고 있거나, 쿠키(또는 세션)을 사용하는 경우 안전한 알고리즘이 적용되어 있는 경우
취약안전한 알고리즘이 적용되어 있지 않는 쿠키(세션)을 사용하거나, 클라이언트 사이드 세션을 사용하는 경우


O 점검 방법

- 쿠키 값에 노출된 사용자 정보를 변조 및 조작하여 인증과 같은 정상적인 프로세스가 우회 가능한지 점검


O 조치 방법

웹 어플리케이션 소스 레벨에서의 쿠키 값 암호화

웹 어플리케이션 소스 점검을 통해 불법 변조 쿠키를 탐지하는 루틴의 존재 여부 확인

- 인증 관련 정보의 네트워크 경로를 SSL이나 VPN으로 암호화

- 타 사이트로의 이동과 같은 악의적인 링크 제거

- 쿠키 내 중요정보(ID, 권한 등)이 포함되지 않도록 구현

- 사용자 인증 및 권한관련 처리를 클라이언트 사이드 세션이 아닌 서버 사이드 세션으로 처리하도록 구현

# 현재 웹 페이지의 쿠키 정보를 확인하는 방법

- 웹 브라우저의 주소창에 다음과 같이 입력

alert(document. cookie);



[세션 변조를 통한 인증 우회]

O 단순한 방법(연속된 숫자 할당 등)으로 세션ID가 생성되거나 세션 ID를 고정하여 사용하는 등 안전하지 않게 세션을 적용할 경우, 악의적인 사용자에 의해 세션 ID를 추측하여 불법적인 접근을 시도할 수 있는 취약점


O 근거 자료

주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드(p.729)

OWASP TOP10 2021


O 판단 기준

양호추측 불가능한거나 고정되지 않은 세션 ID가 발급되는 경우
취약세션 ID가 일정한 패턴 또는 고정되어 동일한 ID가 재발급되거나 재사용이 가능한 경우


O 점검 방법

- 각기 다른 PC에서  IP주소, 사용자명, 시간을 다르게 하여 접근을 시도하였을 때 발급받은 세션 ID를 확인하여 일정한 패턴 또는 고정된 ID로 발급되는지 점검

기존에 발급된 세션에 대해 재사용이 가능한지 점검


O 조치 방법

- 클라이언트 측이 아닌 서버 측에 클라이언트 정보를 저장하여 처리하는 세션 이용

- 웹 어플리케이션 소스 레벨에서의 세션 값 암호화

- 웹 어플리케이션 소스 점검을 통해 불법 변조 세션을 탐지하는 루틴 존재 여부 확인

- 인증관련 정보의 네트워크 경로를 SSL이나 VPN으로 암호화

- 타 사이트로의 이동과 같은 악의적인 링크 제거

- 프레임 워크, WAS, 웹 서버 등에 세션 고정에 대한 별도의 설정 값이 존재할 경우 이를 활용하여 고정된 세션이 발급되지 않도록 설정

- 사용자 인증 시 반드시 새로운 세션 값을 할당 받는 로직 구현