0. 개요
대부분의 웹 응용프로그램에서 쿠키는 메모리에 상주하며, 브라우저의 실행이 종료되면 사라진다.
프로그래머가 원하는 경우, 브라우저 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며,
이것은 디스크에 기록되고, 다음 브라우저 세션이 시작되었을 때 메모리에 로드된다.
개인정보, 인증 정보 등이 이와 같은 영속적인 쿠키(Persistent Cookie)에 저장된다면,
공격자는 쿠키에 접근할 수 있는 보다 많은 기회를 가지게 되며, 이는 시스템을 취약하게 만든다.
1. 보안 대책
- 쿠키의 만료시간은 세션이 지속되는 시간을 고려하여 최소한으로 설정한다.
- 영속적인 쿠키에는 사용자 권한 등급, 세션 ID 등 중요 정보가 포함되지 않도록 한다.
2. 진단 방법
- 쿠키를 사용하는지 확인한다.
- 쿠키 유효시간을 확인한다.
- 쿠키 내 중요정보가 포함되어 있는지 확인한다.
3. 코드 예시
소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원
# 1 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA)
# 1 + 제거되지 않고 남은 디버그 코드 - 안전한 코드 예시(JAVA)
# 2 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA)
# 2 + 제거되지 않고 남은 디버그 코드 - 안전한 코드 예시(JAVA)
# 3 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA)
# 4 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA)
4. 해당 취약점 CASE
- 쿠키의 만료시간이 과도하게 길게 설정되어 있는 경우
#. 참고 블로그
https://prokyhsigma.tistory.com/64?category=848515
'about Security > SECURE CODING' 카테고리의 다른 글
[캡슐화] Public 메소드부터 반환된 Private 배열 (5등급) (0) | 2021.08.10 |
---|---|
[캡슐화] 시스템데이터 정보 노출 (5등급) (0) | 2021.08.10 |
[에러처리] 부적절한 예외 처리 (5등급) (0) | 2021.08.10 |
[보안기능] 주석문 안에 포함된 시스템 주요 정보 (5등급) (0) | 2021.08.10 |
[캡슐화] 잘못된 세션에 의한 데이터 정보 노출 (5등급) (0) | 2021.08.10 |
댓글