52. 크로스 사이트 리퀘스트 포저리(CSRF) - 보안의 기본 |
-
크로스 사이트 리퀘스트 포저리(Cross Site Request Forgery: CSRF)는 웹 페이지에 대한 요청(리퀘스트)을 위조(포저리)함으로써 ‘정당한 인증 완료 이용자’로 위장하여 처리를 실행하는 공격 수법이다.
-
이 공격 수법의 특징으로 공격자는 사용자를 공격함에 있어 정당한 인증 사용자로 위장하기 때문에 인증을 돌파할 필요가 없다는 점에 있다.
복잡하고 견고한 비밀번호는 보안 대책이 되지 못한다.
* CSRF 는 상당히 무섭다.
-
CSRF 는 인증이 필요한 중요한 기능(비밀번호 변경, 결제, 게시판 글쓰기 등)을 노린다.
CSRF 에서는 사이트에 대한 요청(리퀘스트)이 공격자로부터가 아니라 모르는 사이에 공격의 발판이 된 정식 이용자로부터 송신되기 때문에 그 정식 이용자가 실행범으로 간주될 위험이 있다.
* CSRF 를 허용하는 취약성과 대책
-
일반 사용자가 CSRF 의 공격 대상이 되지 않도록 취할 수 있는 방어 수단으로는 수상한 앱 사이트에는 엑세스하지 않는다. 취약성이 있는 웹 사이트는 사용하지 않는다. 정도밖에 없다.
웹 사이트나 웹 서비스의 개발 측의 CSRF 대책으로는 위조된 리퀘스트를 판별 및 검출하기 위한 기능의 구축을 생각할 수 있다.
* CSRF 의 흐름
-
1. 공격자가 미끼 페이지를 준비한다.
2. 사용자가 미끼 페이지에 엑세스한다.
3. 리퀘스트를 보내도록 만들어진 링크를 사용자가 클릭한다.
4. 사용자가 의도하지 않은 리퀘스트가 웹 페이지(로그인 중인 SNS 등)로 보내진다.
(사용자와 웹 서버 간에는 인증에 의한 신뢰 관계가 이미 존재하고, 이를 바탕으로 기능을 실행하고 있다.)
5. 정식 이용자가 보낸 리퀘스트로 처리(글쓰기 처리, 비밀번호 변경 등을 실행)
-
인증이 완료된 브라우저는 리퀘스트에 자동으로 인증 정보(cookie 등)를 붙여서 송신한다.
'프로그래밍 놀이터 > 보안' 카테고리의 다른 글
[도서 정리] 54. 시큐어 OS - 보안의 기본 (0) | 2019.12.03 |
---|---|
[도서 정리] 53. 랜섬웨어 - 보안의 기본 (0) | 2019.12.02 |
[도서 정리] 51. 크로스 사이트 스크립팅(XSS) - 보안의 기본 (0) | 2019.11.30 |
[도서 정리] 50. OS 커맨드 인젝션 - 보안의 기본 (0) | 2019.11.29 |
[도서 정리] 49. SQL 인젝션 - 보안의 기본 (0) | 2019.11.28 |
댓글