1. CSRF란?
: 웹 어플리케이션에서 정상적인 경로를 통한 요청과 비정상적인 경로를 통한 요청을 서버가 구분하지 못할 경우 공격자가 스크립트 구문을 이용하여 정상적인 사용자로 하여금 조작된 요청을 전송하도록 하여 게시판 설정 변경, 회원정보 변경 등의 문제가 발생할 수 있는 취약점을 말한다.
- 간단하게 스크립트로 서버를 공격해서 희생자의 권한을 탈취하는 공격이다.
- 공격자가 GET 또는 POST 방식의 HTTP 요청을 통해 희생자 모르게 공격자의 의도된 행위를 수행하게 하여 특정 피해를 주는 형태이다.
- 공격을 당한 사용자의 권한을 공격자가 그대로 사용하게 되므로 사용자의 권한 수준에 따라 피해범주가 달라진다.(피해자가 서버관리자인 경우 서버 자체 탈취 가능)
ex)
피싱 메일에서 클릭할 수 있는 링크를 통해 자동으로 금융 거래를 수행하도록 하는 것.(피싱 사이트로 유도한 경우)
-> 은행 웹 사이트에서 계좌 이체를 위한 html 폼이다.
여기에 <script>를 삽입하여 웹사이트에서 제공하는 폼 데이터를 전송하는 POST 요청을 만들고 click me 버튼을 만들어 해당 버튼을 클릭하면 자바스크립트 코드가 실행되어 폼 데이터가 전송된다.
이렇게 되면 공격자는 사용자의 인증 정보를 이용하여 계좌 이체를 수행할 수 있다.
#CSRF 공격을 수행하기 위한 조건
- 사용자가 이미 해당 웹 사이트에 로그인한 상태여야 한다.
- 해당 웹 사이트가 CSRF 취약점을 가지고 있어야 한다.
- 공격자는 희생자가 웹 사이트에서 특정 동작을 수행하는 요청을 만들 수 있는 방법을 알아야 한다.
-> 최근에는 많은 웹 프레임워크들이 CSRF방어 기능을 내장하고 있어 공격 빈도수가 줄었다.
ex) 사용자 세션에 임의의 토큰을 생성, referrer 검증, captcha, cors 등 많은 방법이 만들어졌기 때문
2. 대응책
1. Referrer 검증
- back end에서 request의 referrer을 확인해 도메인이 일치하는지 검증하는 방법
2. Security Token 사용(referrer 검증이 불가한 환경인 경우)
- 웹 애플리케이션에 존재하는 모든 HTTP 요청 내에 예측할 수 없는 임의의 토큰을 추가하여 정상적인 요청과 비정상적인 요청을 판별하는 것을 권장
3. XSS와 공격 방식이 유사하므로 XSS에 대한 대응책도 필요
- 3줄요약
XSS와 CSRF는 모두 웹 보안 공격 방식이지만, 공격방법과 목적이 다르다 => https://choimungu.tistory.com/213
과거와 다르게 현재는 우회가 어렵다.
그렇기 때문에 owasp top10 2017, 2021에서 제외되었다.
- 참고
chatGPT
https://lucete1230-cyberpolice.tistory.com/23
https://myungjjju.tistory.com/45
'교육 및 자격증 > 스터디' 카테고리의 다른 글
GH(NOB); SQL 인젝션 추가+ (0) | 2023.03.17 |
---|---|
GH(NOB); XSS(크로스 사이트 스크립트) (0) | 2023.03.17 |
GH(NOB); SQL 인젝션 (0) | 2023.03.01 |
GH(NOB); 세션(Session) vs 쿠키(Cookie) (0) | 2023.03.01 |
DB(Database) (0) | 2023.02.26 |