1. 세션 통제의 개요
- 서버와 클라이언트의 연결을 의미하고, 세션 통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미
- 세션 통제는 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단해야하는 보안 점검 내용
- 세션 통제의 보안 약점에는 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출이 있음
2. 불충분한 세션 관리
- 일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃이 너무 길게 설정되어 있는 경우 발생할 수 있는 보안 약점
- 세션 관리가 충분하지 않으면 침입자는 세션 하이재킹과 같은 공격을 통해 획득한 세션ID로 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있음
- 세션ID : 서버가 클라이언트들을 구분하기 위해 부여하는 키(Key), 클라이언트가 서버에 요청을 보낼 때마다 세션ID를 통해 인증이 수행됨
- 세션 하이재킹 Session Hijacking
- 세션 가로채기
- 서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격 기법
- 정상적인 연결을 RST(Reset) 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결하는 방식
- 공격자는 서버와 상호 간의 동기화된 시퀀스 번호를 이용하여 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있게 됨
- 탐지 방법에는 비동기화 상태 탐지, ACK Storm 탐지, 패킷의 유실 탐지, 예상치 못한 접속의 리셋 탐지
- ACK Strom
- 세션 하이재킹 과정 중에 패킷량이 비정상적으로 늘어나는 현상을 의미
- 다중 스레드 Multi-Thread
- 프로세스 내의 작업 단위
- 스레드 : 시스템의 자원을 할당받아 실행하는 프로그램의 단위
- 다중 스레드 (멀티 스레드) : 두 개 이상의 스레드가 생성되어 동시 처리되는 다중 작업
- 멤버 변수 Member Variable
- 멤버 필드
- 객체와 연결된 변수
- 클래스 내에 선언되어 클래스의 모든 메소드들이 접근 가능한 변수
- 종류 : 클래스 변수, 인스턴스 변수
- 싱글톤 Singleton
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있으나, 여러 프로세스가 동시에 참조할 수 없는 디자인 패턴
- 레이스컨디션 Race Condition
- 두 개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하고 있는 상태
- ACK Strom
3. 잘못된 세션에 의한 정보 노출
- 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점
- 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보가 노출될 수 있음
- 멤버 변수보다 지역 변수를 활용하여 변수의 범우리를 제한함으로서 방지할 수 있음
4. 세션 설계시 고려 사항
- 시스템의 모든 페이지에서 로그아웃이 가능하도록 UI를 구성
- 로그아웃 요청 시 할당된 세션이 완전히 제거되도록 함
- 세션 타임아웃은 중요도가 높으면 2~5분, 낮으면 15~30분으로 설정
- 이전 세션이 종료되지 않으면 새 세션이 생성되지 못하도록 설계
- 중복 로그인을 허용하지 않은 경우 클라이언트의 중복 접근에 대한 세션 관리 정책을 수립
- 패스워드 변경 시 활성화된 세션을 삭제하고 재할당
5. 세션ID의 관리 방법
- 안전한 서버에서 최소 128비트의 길이로 생성
- 예측이 불가능하도록 안전한 난수 알고리즘을 적용
- 세션ID가 노출되지 않도록 URL Rewrite 기능을 사용하지 않는 방향으로 설계
- URL Rewrite : 쿠키를 사용할 수 없는 환경에서 세션ID 전달을 위해 URL에 세션ID를 포함시키는 것
- 로그인 시 로그인 전의 세션ID를 삭제하고 재할당
- 장기간 접속하고 있는 세션ID는 주기적으로 재할당되도록 설계
'Study > EIP' 카테고리의 다른 글
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 148. 보안 기능 (2) | 2025.01.17 |
---|---|
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 147. 입력 데이터 검증 및 표현 (1) | 2025.01.17 |
[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 145. Secure SDLC (0) | 2025.01.17 |
[정보처리기사 필기] IT프로젝트 정보시스템 구축 관리 - 144. 교착상태 (0) | 2025.01.17 |
[정보처리기사 필기] IT프로젝트 정보시스템 구축 관리 - 143. 회복 / 병행제어 (0) | 2025.01.17 |