반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 보안 기능 - 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출
가. 개요
- 대부분의 웹 응용프로그램에서 쿠키는 메모리에 상주하며, 브라우저의 실행이 종료되면 사라진다. 프로그래머가 원하는 경우, 브라우저 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며, 이것은 디스크에 기록되고, 다음 브라우저 세션이 시작되었을 때 메모리에 로드된다. 개인정보, 인증 정보 등이 이와 같은 영속적인 쿠키(Persistent Cookie)에 저장된다면, 공격자는 쿠키에 접근할 수 있는 보다 많은 기회를 가지게 되며, 이는 시스템을 취약하게 만든다.
나. 보안대책
- 쿠키의 만료시간은 세션이 지속되는 시간을 고려하여 최소한으로 설정하고 영속적인 쿠키에는 사용자 권한 등급, 세션 ID 등 중요정보가 포함되지 않도록 한다.
다. 코드예제
JAVA
더보기
쿠키의 만료시간을 1년으로 과도하게 길게 설정하고 있다. 쿠키의 유효기간이 긴 경우 사용자 하드 디스크에 쿠키가 저장되며 저장된 쿠키는 쉽게 도용될 수 있으므로 취약하다.
쿠키의 만료시간은 해당 기능에 맞춰 최소로 설정하고 영속적인 쿠키에는 중요 정보가 포함되지 않도록 한다.
C#
더보기
다음은 쿠키의 만료시간을 1년으로 과도하게 길게 설정하고 있는 C# 코드의 예제이다. 쿠키의 유효 기간이 긴 경우 사용자 하드디스크에 쿠키가 저장되며 저장된 쿠키는 쉽게 도용될 수 있으므로 취약하다.
쿠키의 만료 시간을 10분으로 설정하고 있는 C# 코드의 예제이다.
참고자료
- CWE-539 Information Exposure Through Persistent Cookies, MITRE,
http://cwe.mitre.org/data/definitions/539.html - Do not store unencrypted sensitive information on the client side, CERT,
http://www.securecoding.cert.org/confluence/display/java/FIO52-J.+Do+not+store+unencrypted+sensitive+information+on+the+client+side - Expire and Max-Age Attributes, OWASP,
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Expire_and_Max-Age_Attributes
반응형
'공부 > KISA' 카테고리의 다른 글
솔트 없이 일방향 해쉬함수 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
---|---|
주석문 안에 포함된 시스템 주요정보 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
취약한 비밀번호 허용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
하드코드된 암호화 키 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
적절하지 않은 난수값 사용 - KISA 소프트웨어 개발 보안 가이드 (1) | 2020.07.21 |
댓글