CSRF 공격이란? Web 취약점

CSRF 공격

CSRF(Cross-Site Request Forgery) 공격은 웹 애플리케이션의 취약점을 이용한 공격 방식 중 하나입니다. CSRF는 피해자의 의지와는 무관하게 공격자가 의도한 행동을 실행하도록 만드는 공격입니다.

 

CSRF 공격이 이루어지는 과정은 아래와 같습니다.

 

1. 공격자는 공격 대상인 웹사이트에 대한 악의적인 요청을 생성합니다.

 

2. 공격자는 이 요청을 피해자가 실행하게 될 수 있는 방식으로 만듭니다.

 

3. 피해자는 공격자가 만든 악성 코드가 포함된 웹사이트를 방문하거나 이메일 등을 열어봅니다. 이런 경우 공격이 실행됩니다.

 

4. 웹사이트는 이 요청을 피해자가 직접 보낸 것으로 인식하고, 요청한 작업을 수행합니다.

 

예시)

1. 온라인 뱅킹 사이트나 이커머스 플랫폼에서, 사용자가 로그인한 상태에서 공격자가 보낸 악성 링크를 클릭하면, 공격자는 피해자의 이름으로 거래를 수행하도록 요청을 만듭니다.

 

2. 공격자는 피해자가 악성 링크를 클릭함으로써 해당 정보를 공격자가 원하는 값으로 변경하는 요청을 보낼 수 있습니다. 이런 방식으로 공격자는 피해자의 계정에 대한 제어를 얻을 수 있게 됩니다.

 

CSRF 공격 대응 방법

CSRF 공격을 방어하는 여러 방법이 있습니다.

 

주로 CSRF 토큰을 사용합니다. 서버에서 각 세션에 대해 고유하고 예측 불가능한 값을 생성하고, 이 값을 사용자의 모든 요청에 포함시키는 방법입니다. 사용자의 요청이 들어올 때마다 서버는 요청에 포함된 토큰이 사용자 세션에 저장된 토큰과 일치하는지 확인합니다. 일치하지 않으면 요청을 거부하고 일치하면 요청을 수락합니다.

 

Referrer 헤더를 확인하여 요청이 신뢰할 수 있는 소스로부터 발생했는지 확인하는 방법도 있습니다. 요청이 신뢰할 수 없는 출처로부터 왔다면 요청을 거부합니다.

반응형

댓글

Designed by JB FACTORY