CSRF 공격

TaeHyun Lee·2023년 6월 15일
0

해킹

목록 보기
5/11

인증을 이용한 웹 애플리케이션 공격의 이해


CSRF(Cross-Site Request Forgery) 공격은 웹 애플리케이션의 취약점을 이용하여 인증된 사용자의 동의 없이 요청을 위조하는 공격 방법이다. 이번 글에서는 CSRF 공격에 대해 자세히 알아보고, 이를 예방하기 위한 방법을 살펴보겠다.


CSRF 공격은 악의적인 공격자가 피해자의 브라우저를 이용하여 특정 웹 애플리케이션에 요청을 보내는 것을 목표로 한다. 이를 위해 공격자는 피해자가 이미 인증된 상태로 해당 웹 애플리케이션을 방문했을 때, 악의적인 요청을 함께 전송한다. 피해자의 브라우저는 이 요청을 실행하고, 애플리케이션은 피해자의 인증 정보를 확인하지 않고 요청을 처리하게 된다. 이로써 공격자는 피해자의 권한으로 애플리케이션 내에서 원치 않는 동작을 수행할 수 있다.


CSRF 공격을 예방하기 위해서는 다음과 같은 방법들을 적용할 수 있다:

  1. CSRF 토큰 사용: 애플리케이션은 사용자 세션과 연결된 CSRF 토큰을 생성하고, 모든 요청에 이 토큰을 포함시켜야 한다. 서버는 요청을 받을 때 해당 토큰을 검증하여 요청의 유효성을 확인한다.

  2. SameSite 쿠키 속성 설정: SameSite 쿠키 속성을 Strict 또는 Lax로 설정하여, 요청이 같은 사이트에서만 실행되도록 제한한다. 이를 통해 외부 사이트에서 실행되는 CSRF 공격을 방지할 수 있다.

  3. 추가적인 인증 요구: 민감한 작업을 수행하는 요청에 대해서는 사용자에게 추가적인 인증 단계를 요구할 수 있다. 예를 들어, 비밀번호 입력 또는 다중 인증 요소(MFA)를 통해 사용자의 동의를 확인하는 방법이다.

  4. 요청의 원천 확인: 요청이 허용된 도메인 또는 IP 주소에서만 실행되도록 웹 애플리케이션에서 필터링하는 것이 좋다. 이를통해 외부에서 발생하는 요청을 거부할 수 있다.


CSRF 공격은 웹 애플리케이션에 심각한 보안 위협을 초래할 수 있으므로, 개발자와 시스템 관리자는 이를 예방하기 위한 적절한 조치를 취해야 한다. 사용자의 인증 정보와 권한을 보호하기 위해 CSRF 공격에 대한 이해와 예방 방법을 항상 염두에 두어야 한다.

profile
서커스형 개발자

0개의 댓글