백엔드 공부 메모/네트워크
웹 공격 기술(3) - 세션 관리 미비로 인한 취약성
볼륨조절불가
2024. 3. 9. 14:56
728x90
* 해당 게시글은 <그림으로 배우는 Http&Network Basic>을 읽고 정리하면서 공부하기 위해 메모하듯 작성하는 글입니다.
세션 하이잭(Session Hijack)
- 공격자가 유저의 세션 ID를 입수해서 악용하는 공격 방식
- 공격자가 유저로 위장해 유저의 권한을 악용
공격자가 세션 ID를 입수하는 방법
- 부적절한 생성 방법에 의한 세션 ID 추측
- 도청이나 XSS 등에 의한 세션 ID 도용
- 세션 고정 공격에 의한 세션 ID 강제
사례 - 인증 기능을 악용한 세션 하이잭
- 웹 애플리케이션에 의해 인증된 유저는 세션 ID(SID)를 유저의 브라우저의 쿠키에 갖고 있음
- 웹 사이트에 XSS의 취약성이 있는 경우, 공격자는 document.cookie를 공격자에게 송신하는 js를 사용한 함정 설치
- 유저가 함정에 걸리면 공격자는 유저의 SID를 포함한 쿠키 입수
- 공격자는 유저의 SID를 자신의 브라우저에 세팅한 뒤 웹사이트에 액세스하여 유저로 위장
세션 픽세이션(Session Fixation)
- 공격자가 지정한 세션 ID를 유저가 강제로 사용하게 하는 공격
사례 - 인증 기능을 악용한 세션 픽세이션
- 공격자가 로그인 페이지에 액세스
- 웹 애플리케이션이 발행한 세션 ID 입수(이때 세션 ID는 서버 상에서 인증 전 상태로 기록됨)
- 공격자는 이 세션 ID를 유저가 강제적으로 이용하게 하는 함정 준비
- 유저가 함정에 걸리면 해당 세션 ID를 사용해 인증(함정에 걸린 유저가 인증한 상태로 변경되어 서버 상에 기록)
- 공격자가 해당 세션 ID를 이용해 웹사이트에 접속하여 함정에 걸린 유저로 위장 가능
크로스 사이트 리퀘스트 포저리(Cross-Site Request Forgeries, CSRF)
- 공격자가 설치해 둔 함정에 의해, 인증된 유저가 의도하지 않는 개인 정보나 설정 정보 등의 상태를 갱신하는 처리를 강제적으로 실행시키는 공격
CSRF의 영향
- 인증된 유저의 권한으로 설정 정보 등을 갱신
- 인증된 유저의 권한으로 상품 구입
- 인증된 유저의 권한으로 게시판에 글 작성
사례 - 유저의 권한을 뺏어 코멘트 추가
- 인증된 유저만이 게시판에 코멘트를 작성할 수 있는 상황
- 인증된 유저의 브라우저의 쿠키에는 웹 사이트에 인증된 상태의 세션 ID 존재
- 유저가 액세스하면 게시판에 공격자가 의도한 코멘트를 작성하는 함정 준비
- 유저의 브라우저가 해당 함정 실행
- 유저의 권한으로 공격자가 의도한 코멘트가 게시판에 추가
함정 실행시 유저가 인증되지 않은 상태라고 하면 유저의 권한으로 게시판에 코멘트가 추가될 일은 없음
728x90