CSRF공격, XSS 공격
CSRF 공격
Cross-site request forgery, CSRF, XSRF, 사이트 간 요청 위조
일단 사용자가 웹사이트에 로그인한 상태에서 사이트 간 요청 위조 공격 코드가 삽입된 페이지를 열면,
공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.
이게 무슨 소리 ?
실제 옥션에서 벌어진 사건으로 이해해본다.
<img src="http://auction.com/changeUserAcoount?id=admin&password=admin" width="0" height="0">
-
옥션 관리자 중 한명이 관리 권한을 가지고 회사내에서 작업을 하던 중 메일을 조회한다. (로그인이 이미 되어있다고 가정하면 관리자로서의 유효한 쿠키를 갖고있음)
-
해커는 위와 같이 태그가 들어간 코드가 담긴 이메일을 보낸다. 관리자는 이미지 크기가 0이므로 전혀 알지 못한다.
-
피해자가 이메일을 열어볼 때, 이미지 파일을 받아오기 위해 URL이 열린다.
-
해커가 원하는 대로 관리자의 계정이 id와 pw 모두 admin인 계정으로 변경된다.
출처: https://sj602.github.io/2018/07/14/what-is-CSRF/
방어 방법
-
XSS와 마찬가지로, 입력 필터링은 중요한 문제입니다.
-
모든 민감한 동작에 필수로 요구되는 확인 절차가 항상 수행되도록 합니다.
-
민감한 동작에 사용되는 쿠키는 짧은 수명만 갖도록 합니다.
XSS 공격
Cross-site 스크립팅 공격, 사이트 간 스크립팅 공격
웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다.
이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다.
방어방법
-
쿠키는 XSS 공격과 CSRF 공격 등에 취약하기 때문에 쿠키 속성 HttpOnly 옵션을 활성화한다.
-
세션 옵션 Secure을 활성화
-
쿠키를 사용하는 요청은 서버 단에서 검증하는 로직을 꼭 마련해두는 것이 좋다.
출처: https://github.com/WeareSoft/tech-interview/blob/master/contents/security.md#csrf-%EA%B3%B5%EA%B2%A9