Skip to main content

CSRF

교차 사이트 요청 위조

관련된 오류

"이 서버는 교차 사이트 위조 공격에 취약합니다. 각 요청에 CSRF 토큰 또는 SameSite 쿠키 특성을 추가합니다."

문제점

CSRF(cross-site request forgery)는 사용자가 의도하지 않게 인증된 웹 애플리케이션에 요청을 보내도록 만드는 공격입니다. CSRF 공격은 인증된 사용자에 대한 웹 애플리케이션의 신뢰를 악용합니다.

CSRF 공격은 다음과 같은 소셜 엔지니어링을 사용하여 목표를 정합니다.

  • 피싱 이메일

  • 채팅 링크

  • 거짓 알림

사용자가 웹 애플리케이션에 로그인하면 공격자는 사용자에게 특정 웹 애플리케이션에 대한 권한이 없는 요청을 포함하는 URL을 클릭하도록 안내합니다. 그런 다음 사용자의 브라우저는 악성적으로 만들어진 요청을 세션 쿠키 또는 저장된 자격 증명과 같은 세션 정보를 포함하여 대상 웹 애플리케이션에 보냅니다. 사용자가 대상 웹 애플리케이션에서 활성 세션 중에 있는 경우, 애플리케이션은 이 새 요청을 인증된 사용자가 개시한 요청으로 처리합니다. 결과적으로 공격자가 웹 애플리케이션의 CSRF 취약성을 악용하게 합니다.

공격의 수준은 희생자가 보유한 권한 수준에 따라 다릅니다. CSRF 공격은 사용자의 ID를 직접 도용하지 않고 사용자가 의도하지 않은 작업을 수행하도록 악용합니다.

CSRF 공격이 성공적이며 사용자는 다음과 같은 상태를 변경하는 요청을 수행하게 됩니다.

  • 암호 변경

  • 이메일 주소 변경

  • 레코드 수정 또는 삭제

  • 금액 이체

  • 구입

솔루션

CSRF 공격을 방지하려면

  • 모든 상태 변경 요청에 CSRF 토큰을 사용

    동기화 기능 토큰 또는 챌린지 토큰이라고도 알려는 CSRF 토큰은 각 사용자 세션에 대해 클라이언트 쪽에서 생성하는 고유한 비밀 값으로 사용자를 해킹하거나 속이는 것을 불가능하게 만듭니다.

  • 세션 쿠키에 대해 SameSite 쿠키를 사용

    추가 보호 계층을 위해 CSRF 토큰과 함께 SameSite 특성을 설정합니다. SameSite 특성은 같은 도메인(교차 도메인이 아님)에서 나오는 쿠키 및 요청만 보내도록 허용합니다.

참고

오래된 브라우저는 SameSite 쿠키를 지원하지 않을 수 있습니다.