⚙️ BE

csrf

jobey 2024. 4. 9. 17:14
반응형


Cross-Site Request Forgery (CSRF)는 웹 애플리케이션의 보안 취약점 중 하나로, 사용자가 자신의 의지와 무관하게 다른 사이트에서 생성된 요청을 보내는 현상을 말합니다. 이 공격은 사용자가 이미 인증된 웹사이트에 대해 악의적인 작업을 수행하도록 만듭니다.

 

CSRF의 작동 원리:

  1. 사용자 인증: 사용자는 어떤 웹사이트(예: 은행 사이트)에 로그인하고, 브라우저는 이 사이트로부터 인증 쿠키를 받습니다.
  2. 악의적인 사이트 방문: 사용자가 공격자가 제어하는 다른 웹사이트(피싱 사이트 등)를 방문합니다. 이 사이트에는 인증된 웹사이트에 대한 악의적인 요청(예: 송금 요청)을 생성하는 코드가 숨겨져 있습니다.
  3. 자동 요청 전송: 사용자의 브라우저는 피싱 사이트에서 생성된 요청을 자동으로 실행합니다. 브라우저는 해당 도메인에 대한 쿠키를 자동으로 요청에 첨부합니다.
  4. 쿠키와 함께 요청 처리: 인증된 웹사이트는 이 요청을 받고, 첨부된 쿠키를 기반으로 사용자가 인증된 것으로 판단하고 요청을 처리합니다.

CSRF 공격의 영향:

  • 사용자가 무의식적으로 계정 정보를 변경하거나, 송금과 같은 민감한 작업을 실행할 수 있습니다.
  • 공격자는 사용자의 인증을 이용해 악의적인 작업을 수행합니다.

CSRF 방어 방법:

  1. CSRF 토큰 사용: 양식에 숨겨진 토큰을 포함시켜, 서버가 요청이 정당한 사용자로부터 왔는지를 확인할 수 있게 합니다.
  2. SameSite 쿠키 속성 사용: 쿠키에 SameSite 속성을 설정하여, 크로스 사이트 요청에 쿠키를 포함하지 않도록 합니다.
  3. 검증된 소스의 요청만 허용: 서버 측에서는 오직 검증된 출처(Origin) 또는 리퍼러(Referrer)에서만 요청을 허용합니다.
  4. 사용자 인증 요구: 중요한 작업을 실행하기 전에 추가적인 사용자 인증(예: 비밀번호 재입력, CAPTCHA)을 요구합니다.

 

 

반응형