세션 관리

IT 위키
Session Management
사용자와 시스템 사이, 또는 시스템 간에 활성화된 접속(세션)을 생성·유지·종료하는 보안 기능

HTTP 처럼 상태가 없는 프로토콜에서 '누가 로그인해 있는가'를 이어 가려면 세션이 필요하고, 그 세션 자체가 공격 대상이 된다.

시스템 보안 기능 속의 위치

[편집 | 원본 편집]
기능 하는 일
계정과 패스워드 관리 사용자를 식별하고 인증한다
세션 관리 인증된 뒤의 활성 접속을 관리한다
파일 관리 파일 접근 권한을 통제한다
로그 관리 행위를 기록한다
취약점 관리 패치와 설정을 점검한다

해야 할 것

[편집 | 원본 편집]
  • 세션 하이재킹 방지 — 예측 불가능한 난수로 세션 ID 생성, 충분한 길이(128비트 이상)
  • 전송 보호 — HTTPS 강제, 쿠키에 `Secure` · `HttpOnly` · `SameSite` 속성 부여
  • 세션 고정(Session Fixation) 방지로그인 성공 시 세션 ID 를 새로 발급한다
  • 타임아웃 — 일정 시간 입력이 없으면 세션을 끊는다. 절대 만료 시간도 둔다
  • 정상 종료 — 로그아웃 시 서버 측 세션을 실제로 파기한다. 쿠키만 지우는 것으로는 부족하다
  • 동시 접속 통제 — 같은 계정의 중복 로그인을 제한하거나 이전 세션을 끊는다
  • 중요한 거래 전 재인증

관련 공격

[편집 | 원본 편집]
  • 세션 하이재킹 — 세션 ID 탈취
  • 세션 고정 — 공격자가 정한 세션 ID 를 피해자가 쓰게 만든다
  • CSRF — 인증된 세션을 도용해 원치 않는 요청을 보낸다
  • XSS 를 통한 쿠키 탈취

같이 보기

[편집 | 원본 편집]