본문 바로가기
프로그래밍 놀이터/보안

[도서 정리] 52. 크로스 사이트 리퀘스트 포저리(CSRF) - 보안의 기본

by 돼지왕 왕돼지 2019. 12. 1.
반응형

52. 크로스 사이트 리퀘스트 포저리(CSRF) - 보안의 기본



-

크로스 사이트 리퀘스트 포저리(Cross Site Request Forgery: CSRF)는 웹 페이지에 대한 요청(리퀘스트)을 위조(포저리)함으로써 ‘정당한 인증 완료 이용자’로 위장하여 처리를 실행하는 공격 수법이다.



-

이 공격 수법의 특징으로 공격자는 사용자를 공격함에 있어 정당한 인증 사용자로 위장하기 때문에 인증을 돌파할 필요가 없다는 점에 있다.

복잡하고 견고한 비밀번호는 보안 대책이 되지 못한다.





* CSRF 는 상당히 무섭다.


-

CSRF 는 인증이 필요한 중요한 기능(비밀번호 변경, 결제, 게시판 글쓰기 등)을 노린다.

CSRF 에서는 사이트에 대한 요청(리퀘스트)이 공격자로부터가 아니라 모르는 사이에 공격의 발판이 된 정식 이용자로부터 송신되기 때문에 그 정식 이용자가 실행범으로 간주될 위험이 있다.





* CSRF 를 허용하는 취약성과 대책


-

일반 사용자가 CSRF 의 공격 대상이 되지 않도록 취할 수 있는 방어 수단으로는 수상한 앱 사이트에는 엑세스하지 않는다. 취약성이 있는 웹 사이트는 사용하지 않는다. 정도밖에 없다.

웹 사이트나 웹 서비스의 개발 측의 CSRF 대책으로는 위조된 리퀘스트를 판별 및 검출하기 위한 기능의 구축을 생각할 수 있다.





* CSRF 의 흐름


-

1. 공격자가 미끼 페이지를 준비한다.

2. 사용자가 미끼 페이지에 엑세스한다.

3. 리퀘스트를 보내도록 만들어진 링크를 사용자가 클릭한다.

4. 사용자가 의도하지 않은 리퀘스트가 웹 페이지(로그인 중인 SNS 등)로 보내진다.

(사용자와 웹 서버 간에는 인증에 의한 신뢰 관계가 이미 존재하고, 이를 바탕으로 기능을 실행하고 있다.)

5. 정식 이용자가 보낸 리퀘스트로 처리(글쓰기 처리, 비밀번호 변경 등을 실행)



-

인증이 완료된 브라우저는 리퀘스트에 자동으로 인증 정보(cookie 등)를 붙여서 송신한다.




반응형

댓글