CSRF(교차 사이트 요청 위조)는 웹 애플리케이션의 취약점을 악용하는 웹 기반 공격 방법입니다. CSRF라는 용어는 취약점 자체를 직접적으로 지칭할 수도 있습니다.
웹 애플리케이션에 CSRF 취약점이 있는 경우 공격자는 합법적인 사용자를 속여 사용자의 명시적인 동의 없이 취약한 사이트에서 의도치 않은 작업을 수행하도록 할 수 있습니다. 잠재적인 영향으로는 사용자 데이터 수정, 실수로 데이터 삭제 또는 변경, 사기 거래 실행 또는 대상 애플리케이션 내에서 승인되지 않은 작업 시작 등의 승인되지 않은 작업이 포함됩니다.
일반적인 CSRF 공격은 다음과 같은 방식으로 진행됩니다.
CSRF 공격을 완화하려면 애플리케이션에서 들어오는 POST 요청의 적법성을 검증해야 합니다. 널리 채택된 접근 방식 중 하나는 "nonce" 값(한 번 사용된 숫자)으로 알려진 토큰을 구현하는 것입니다. nonce는 사용자 요청에 대한 응답으로 합법적인 HTTP 양식에 포함된 고유하고 무작위로 생성된 식별자입니다. 이후 POST 제출을 수신하면 애플리케이션은 nonce를 검증하여 요청의 진위성과 무결성을 확인합니다.
합법적인 GET 요청에 대한 응답으로 양식을 보낼 때 서버는 고유하고 예측할 수 없는 nonce 값을 포함합니다. 클라이언트로부터 해당 POST 요청을 받으면 애플리케이션은 nonce를 확인하여 요청의 진위성과 합법성을 확인합니다.
또한 F5 BIG-IP Application Security Manager 가 제공하는 웹 애플리케이션 방화벽(WAF)과 같은 보안 솔루션은 악성 요청을 식별하고 차단하여 CSRF 취약점이 악용되는 것을 방지하는 데 매우 효과적입니다.