CSRF (Cross Site Request Forgery)
사이트간 요청 위조
사용자의 의도와 관계 없이 행해지는 공격 기법
-> 사용자의 인증된 세션(권한)을 도용하여 글쓰기, 수정, 삭제 등의 작업을 실행함
ex) 특정 웹사이트의 광고성 글을 올리는 등
CSRF 전제 조건
- 사용자는 보안이 취약한 서버로부터 로그인이 되어있는 상태
- 쿠키 기반의 서버 세션 정보를 획득할 수 있어야함
- 서버를 공격하기 위한 요청 방법을 미리 파악하고 있어야함 (예상치 못한 파라미터가 있을 경우 불가능)
악성 스크립트 페이지를 누르게 되면 권한을 가진 사용자일 경우 시스템에 있는 정보를 탈취할 수 있고, 광고성 글을 작성할 수 있다.
ex) 옥션의 개인정보 유출 사건
동작 원리
- 사용자가 보안이 취약한 서버에 로그인
- 로그인 이후 서버의 저장된 세션 정보를 사용할 수 있는 sessionID가 사용자 브라우저 쿠키에 저장됨
- 공격자가 서버에 인증된 브라우저의 사용자가 악성 스크립트 페이지를 누르도록 유도
- 사용자가 악성 스크립트가 포함된 링크 클릭시 쿠키에 저장된 sessionID가 서버에 요청됨
- 서버는 쿠키에 담긴 sessionID를 통해 해당 요청이 인증된 사용자임을 판단하고 처리함
방어 방법
- Referer Check
- CSRF Token
XSS (Cross-Site Scripting)
인증된 세션 없이도 공격 가능
공격하려는 사이트에 스크립트를 넣어 요청을 보내 서버단에서 스크립트가 실행됨
동작 원리
방어 방법
- 쿠키에 중요한 정보를 담지 않는다
- 정보 암호화
- httponly 속성 사용
차이점
CSRF | XSS |
권한을 도용당한 클라이언트가 가짜 요청을 서버에 전송 공격 대상 : 서버 목적 : 권한 도용 |
악성 스크립트가 클라이언트에서 실행됨 공격 대상 : 클라이언트 목적 : 쿠키 및 세션 갈취, 웹사이트 변조 |
XSS와 CSRF 공통점
사용자의 브라우저를 대상으로 한다.
'Computer Science' 카테고리의 다른 글
프로세스 구조 (0) | 2023.05.19 |
---|---|
데이터 모델 (0) | 2023.03.10 |