처음 만나는 클라우드 보안

세션과 쿠키의 정의: 관련 취약점 본문

네트워크

세션과 쿠키의 정의: 관련 취약점

영민하게 2022. 5. 10. 00:09
반응형

▷ 들어가며

웹서버는 어떻게 사용자의 연결 정보를 관리하는가?

HTTP 통신의 특징 = Stateless (상태 정보를 유지하지 않는다.)

→ 기억해야 할 임시정보를 저장하기 위해 세션과 쿠키를 사용한다.


1. 세션 (Session) / Server

: 사용자의 상태 정보를 서버에 저장하는 기술, 쿠키보다 비교적 보안이 좋고, 저장 데이터에 대한 제한이 없다. 

 

 - 세션 세부내용

: 각 세션별로 ID가 부여되고 사용되는 언어에 따라 이름이 다르다.

: 개발자가 설정한 위치에 저장되며, 미지정시 프레임워크 Default에 저장된다.

JESSIONID :  100ackers354cxeu5s4bstplw
[세션ID] JSP언어로 관리 (ASP, PHP, 직접설정) [세션값] 세션의 고유 아이디

 


2. 쿠키(Cookie) / Client

: 사용자의 상태 정보(지역,시간, 언어, 모니터 화면 크기 등)를 사용자 측에 저장하는 기술. 도메인당 20개의 쿠키, 하나의 쿠키는 4KB까지 저장이 가능하다.

 

 - 쿠키의 종류

 Persistent Cookie : 만료일자 설정됨, 개발자 지정 혹은 로컬 Default경로에 저장

 Session Cookie: 만료일자 미설정, 브라우저 메모리에 저장됨

 

- 세션/쿠키의 전달 과정

 Set-Cookie: Session ID A

 Cookie: 로그인 정보 + Session ID A

쿠키 목록 중 볼 수 있는 Session ID는 사용자 식별을 위한 쿠키값의 일종이다.

서버는 쿠키정보에 포함된 세션ID로 사용자를 식별한다.


3. 관련 취약점

 고정된 인증정보 이용

: 로그인 전 후 세션 값의 동일 여부 확인, 동일하면 보안에 취약한 상태임

: 즉, Client요청 시 전달하는 세션 값과 Server의 응답 세션 값이 일치하면 취약한 상태 

 

서버의 세션아이디 확인, 로그인 후 동일할때 고정된 인증정보 취약점임을 알 수 있다

 

 불충분한 세션정보 처리

: 긴 세션 타임아웃은 탈취되어 악용될 수 있다.

: 세션 타임아웃을 기준치에 맞게 설정하여 계정을 자동으로 로그아웃 시킨다.

 

 HTTP 쿠키 보안 설정

: 사용자 인증정보가 포함된 쿠키값은 XSS 등 공격으로 개인정보 피해가 발생할 수 있다.

: Document.cookie입력 시 노출 이 되는지 확인할 수 있다. Set Coookie에 보안 속성 세팅을 부가할 수 있다.

 


참고

https://dev-coco.tistory.com/61

https://elms.skinfosec.co.kr/index.asp

 

반응형
Comments