세션 쿠키
세션 쿠키는 로그인 이후 브라우저와 서버가 인증된 상태를 이어가기 위해 주고받는 세션 식별정보입니다.
세션 쿠키
웹은 각 요청이 독립적인 구조이므로 서비스는 세션 ID나 세션 토큰을 사용해 사용자의 로그인 상태와 권한을 연결합니다. 브라우저 쿠키는 이 세션 값을 저장하고 요청마다 서버에 전달하는 대표적인 수단입니다.
인증된 세션 쿠키는 유효기간 동안 로그인 자격과 유사한 권한을 가질 수 있습니다. 값이 탈취되면 비밀번호와 MFA를 다시 입력하지 않고 사용자를 사칭할 가능성이 있습니다.
핵심 특성
사용 맥락과 작동 원리
서버는 로그인 성공 시 예측하기 어려운 세션 ID를 발급하고 서버 측 상태와 연결합니다. 쿠키에는 세션 ID만 저장하는 방식과 서명된 토큰을 저장하는 방식이 있습니다. 권한 상승과 로그인 성공 뒤에는 세션 ID를 교체해 고정 공격을 방지해야 합니다.
유휴시간 제한, 절대 유효기간, 로그아웃, 비밀번호 변경, 위험 이벤트에서 세션을 폐기해야 합니다. 브라우저 종료만으로 항상 서버 세션이 종료되는 것은 아닙니다.
유출·오용 시 위험
XSS, 악성 확장프로그램, 기기 감염, 통신 보호 실패, 로그 노출로 세션이 탈취될 수 있습니다. HttpOnly는 스크립트의 쿠키 읽기를 제한합니다. 브라우저에서 악의적 요청이 실행되는 위험은 별도의 통제로 다뤄야 합니다.
세션 탈취는 로그인 우회, 개인정보 조회, 설정 변경, 거래 실행으로 이어질 수 있습니다. 장기 세션과 여러 기기 동시 로그인은 노출 기간을 늘립니다.
사건 공지에서 확인할 항목
- 세션 ID와 장기 로그인 토큰 중 유출된 값을 확인합니다.
- 유효기간과 서버 측 폐기 여부를 확인합니다.
- 관리자 세션과 일반 이용자 세션의 영향을 구분합니다.
- XSS, 악성 확장, 로그 노출 등 탈취 경로를 확인합니다.
- 전체 로그아웃과 토큰 회전이 완료되었는지 확인합니다.
개인이 취할 조치
- 모든 기기에서 로그아웃 기능을 실행합니다.
- 비밀번호를 변경하고 MFA를 재점검합니다.
- 브라우저 확장프로그램과 저장된 쿠키를 점검합니다.
- 낯선 기기와 위치의 로그인 기록을 확인합니다.
- 공용 기기에서는 세션을 종료하고 자동로그인을 사용하지 않습니다.
조직의 보호조치
- 충분한 엔트로피의 세션 ID를 사용하고 로그인·권한변경 시 회전합니다.
- 쿠키에 Secure, HttpOnly, 적절한 SameSite 속성을 적용합니다.
- 유휴시간과 절대 유효기간을 설정하고 서버 측 폐기를 지원합니다.
- 세션 생명주기와 이상 사용을 기록하되 세션 원문은 로그에 남기지 않습니다.
- 고위험 작업에는 최근 재인증을 요구합니다.
혼동하기 쉬운 개념
쿠키는 브라우저 저장 메커니즘입니다. 세션 쿠키는 로그인 상태를 나타내는 값을 담습니다. 접근 토큰은 API에 권한을 제시하는 자격정보입니다. CSRF는 브라우저가 쿠키를 자동 전송하는 특성을 악용하며 XSS는 브라우저에서 공격자 스크립트를 실행합니다.