본문 바로가기
Computer Science

웹사이트 보안 공격 (CSRF, XSS)

by nahkim 2023. 5. 21.

CSRF (Cross Site Request Forgery)

사이트간 요청 위조

 

사용자의 의도와 관계 없이 행해지는 공격 기법

-> 사용자의 인증된 세션(권한)을 도용하여 글쓰기, 수정, 삭제 등의 작업을 실행함

ex) 특정 웹사이트의 광고성 글을 올리는 등

 

CSRF 전제 조건

  • 사용자는 보안이 취약한 서버로부터 로그인이 되어있는 상태
  • 쿠키 기반의 서버 세션 정보를 획득할 수 있어야함
  • 서버를 공격하기 위한 요청 방법을 미리 파악하고 있어야함 (예상치 못한 파라미터가 있을 경우 불가능)

악성 스크립트 페이지를 누르게 되면 권한을 가진 사용자일 경우 시스템에 있는 정보를 탈취할 수 있고, 광고성 글을 작성할 수 있다.

ex) 옥션의 개인정보 유출 사건

 

 

동작 원리

  1. 사용자가 보안이 취약한 서버에 로그인
  2. 로그인 이후 서버의 저장된 세션 정보를 사용할 수 있는 sessionID가 사용자 브라우저 쿠키에 저장됨
  3. 공격자가 서버에 인증된 브라우저의 사용자가 악성 스크립트 페이지를 누르도록 유도
  4. 사용자가 악성 스크립트가 포함된 링크 클릭시 쿠키에 저장된 sessionID가 서버에 요청됨
  5. 서버는 쿠키에 담긴 sessionID를 통해 해당 요청이 인증된 사용자임을 판단하고 처리함

 

 

방어 방법

  • Referer Check
  • CSRF Token

 

 

XSS (Cross-Site Scripting)

인증된 세션 없이도 공격 가능

공격하려는 사이트에 스크립트를 넣어 요청을 보내 서버단에서 스크립트가 실행됨

 

동작 원리

 

방어 방법

  • 쿠키에 중요한 정보를 담지 않는다
  • 정보 암호화
  • httponly 속성 사용

 

 

 

차이점

CSRF XSS
권한을 도용당한 클라이언트가 가짜 요청을 서버에 전송

공격 대상 : 서버

목적 : 권한 도용
악성 스크립트가 클라이언트에서 실행됨

공격 대상 : 클라이언트

목적 : 쿠키 및 세션 갈취, 웹사이트 변조

 

XSS와 CSRF 공통점

사용자의 브라우저를 대상으로 한다.

'Computer Science' 카테고리의 다른 글

프로세스 구조  (0) 2023.05.19
데이터 모델  (0) 2023.03.10