Tiny Bunny

Rookies/애플리케이션 보안

[SK shieldus Rookies 19기] 크로스 사이트 요청 위조 (CSRF)

bento 2024. 3. 30. 04:00
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정

01. 크로스 사이트 요청 위조 (CSRF)

: 요청을 전달 받은 서버가 요청의 절차와 주체를 검증하지 않고 요청을 처리했을 때 발생 

→ 희생자의 권한으로 공격자의 의도된 요청이 처리되는 문제가 발생 (희생자는 인지못함)

 

ex. 자동 회원가입, 자동 글쓰기

게시글에  <iframe src="ChangePasswordProc?newpw=1234&newpwre=1234" width="0" height="0"></iframe>와 같이 크기를 0으로 두어 안보이게 하고 비밀번호를 바꾸는 태그를 적어주면, 해당 게시글을 읽게 되면 비밀번호가 변경된다

 

특히나 get방식을 사용할 경우, 원하는 공격 요청을 만들기가 쉬움

 

↔ XSS와 차이점

xss는 취약한 서버에서 전달된 공격 스크립트가 사용자 측에서 실행됨 (server to client)

csrf는 희생자가 서버로 요청을 발생시키게 하는 것 (client to server)

 

02. 방어

  • 토큰 (text)

선행 페이지가 호출되었을 때 서버 사이드에서 토큰을 생성하고 세션에 저장  사용자 화면에 전달 → 서버가 가지고 있는 값과 사용자 요청을 통해서 전달된 값을 비교하고 일치하는 경우에만 정상적인 절차를 통한 요청으로 확인하고 처리

하지만 선행 페이지를 호출하고 넘어가게 코드를 짤 수 있음.. 

 

  • 캡챠(CAPTCHA)

기계는 인식할 수 없으나 사람은 쉽게 인식할 수 있는 텍스트, 이미지를 통해 사람과 기계를 구별하는 프로그램

https://nordvpn.com/ko/blog/captcha-meaning/

텍스트 기반 토큰의 자동화 처리가 가능한 문제점을 해결하기 위해 등장--

사용자가 중간에 입력을 하게 만들어서 자동화된 요청을 막음!

 

  • reCAPTCHA

캡챠 이미지가 복잡해서 사람도 이해하기 어려워진 부분을 해결

https://www.cloudflare.com/ko-kr/learning/bots/how-captchas-work/

  • 재인증, 재인가

: 요청 주체를 확인하고 요청을 처리하기 위함 

ex. 비밀번호 변경 시, 현재 비밀번호 재입력

 

 

인증 방법 

TYPE 1 지식 - 패스워드
TYPE 2 소유 - 주민등록증, 인증서, 스마트폰, OTP ...
TYPE 3 특징 - 필기체 서명, 정맥, 홍채, 지문, 성문 ... 

생물학적 특징 바이오 인증

2개 이상의 이증 방법을 결합한 인증 multi factor 인증 

2개의 인증 방법을 결합한 인증 two factor 인증

 

 

 

728x90