백엔드 공부 메모/네트워크

웹 공격 기술(3) - 세션 관리 미비로 인한 취약성

볼륨조절불가 2024. 3. 9. 14:56
728x90

 

 

* 해당 게시글은 <그림으로 배우는 Http&Network Basic>을 읽고 정리하면서 공부하기 위해 메모하듯 작성하는 글입니다.

 

 


 

 

세션 하이잭(Session Hijack)

  • 공격자가 유저의 세션 ID를 입수해서 악용하는 공격 방식
  • 공격자가 유저로 위장해 유저의 권한을 악용

공격자가 세션 ID를 입수하는 방법

  • 부적절한 생성 방법에 의한 세션 ID 추측
  • 도청이나 XSS 등에 의한 세션 ID 도용
  • 세션 고정 공격에 의한 세션 ID 강제

사례 - 인증 기능을 악용한 세션 하이잭

  1. 웹 애플리케이션에 의해 인증된 유저는 세션 ID(SID)를 유저의 브라우저의 쿠키에 갖고 있음
  2. 웹 사이트에 XSS의 취약성이 있는 경우, 공격자는 document.cookie를 공격자에게 송신하는 js를 사용한 함정 설치
  3. 유저가 함정에 걸리면 공격자는 유저의 SID를 포함한 쿠키 입수
  4. 공격자는 유저의 SID를 자신의 브라우저에 세팅한 뒤 웹사이트에 액세스하여 유저로 위장

 

 


 

 

세션 픽세이션(Session Fixation)

  • 공격자가 지정한 세션 ID를 유저가 강제로 사용하게 하는 공격

사례 - 인증 기능을 악용한 세션 픽세이션

  • 공격자가 로그인 페이지에 액세스
  • 웹 애플리케이션이 발행한 세션 ID 입수(이때 세션 ID는 서버 상에서 인증 전 상태로 기록됨)
  • 공격자는 이 세션 ID를 유저가 강제적으로 이용하게 하는 함정 준비
  • 유저가 함정에 걸리면 해당 세션 ID를 사용해 인증(함정에 걸린 유저가 인증한 상태로 변경되어 서버 상에 기록)
  • 공격자가 해당 세션 ID를 이용해 웹사이트에 접속하여 함정에 걸린 유저로 위장 가능

 

 


 

 

크로스 사이트 리퀘스트 포저리(Cross-Site Request Forgeries, CSRF)

  • 공격자가 설치해 둔 함정에 의해, 인증된 유저가 의도하지 않는 개인 정보나 설정 정보 등의 상태를 갱신하는 처리를 강제적으로 실행시키는 공격

CSRF의 영향

  • 인증된 유저의 권한으로 설정 정보 등을 갱신
  • 인증된 유저의 권한으로 상품 구입
  • 인증된 유저의 권한으로 게시판에 글 작성

사례 - 유저의 권한을 뺏어 코멘트 추가

  1. 인증된 유저만이 게시판에 코멘트를 작성할 수 있는 상황
  2. 인증된 유저의 브라우저의 쿠키에는 웹 사이트에 인증된 상태의 세션 ID 존재
  3. 유저가 액세스하면 게시판에 공격자가 의도한 코멘트를 작성하는 함정 준비
  4. 유저의 브라우저가 해당 함정 실행
  5. 유저의 권한으로 공격자가 의도한 코멘트가 게시판에 추가
함정 실행시 유저가 인증되지 않은 상태라고 하면 유저의 권한으로 게시판에 코멘트가 추가될 일은 없음
728x90