웹사이트를 이용하다 보면 나도 모르게 특정 행동이 수행된 것을 경험한 적이 있을지도 모른다.
예를 들어 로그인 상태에서 의도치 않게 게시글이 작성되거나, 비밀번호가 변경되는 등의 이상한 일이 발생했다면, CSRF(Cross-Site Request Forgery) 공격을 당한 것을 의심해 볼 수 있다.
CSRF는 '사이트 간 요청 위조'로 번역되며, 크로스사이트 리퀘스트 변조 등으로 직역해서 불리고도 있다. 사용자가 인증된 상태라는 점을 악용하여 공격자가 사용자의 의지와 상관없이 원하지 않는 요청을 특정 웹 서버에 전달하게 만드는 공격 방식이다. 이 공격은 웹이 HTTP 요청 기반의 stateless(상태 없음) 구조를 가진다는 점과, 브라우저가 자동으로 쿠키 정보를 포함하는 특성을 악용하여 등장했다.
어원적으로 보면, 'Cross-Site'는 서로 다른 사이트 간의 상호작용을 의미하고, 'Request Forgery'는 요청을 조작하고 위조하는 것을 뜻한다. 이처럼 공격자는 사용자 대신 ‘정상적인 요청’으로 위장된 악성 요청을 보내어 피해를 유발한다.
CSRF는 어떤 순서로 공격하고 공격받게 되는 것일까? 보통의 공격 순서를 살펴보자.
- 사용자가 A사이트에 로그인하고 인증된 상태로 유지됨 (세션 쿠키 존재).
- 공격자가 B사이트나 이메일, 메시지 등을 통해 악성 코드가 포함된 링크나 이미지 요청을 사용자에게 전달함.
- 사용자가 해당 콘텐츠를 클릭하거나 페이지를 열면, 브라우저는 자동으로 쿠키를 포함한 요청을 A사이트에 전송함.
- A사이트는 사용자가 인증된 상태라고 판단하고, 요청을 처리함 (예: 게시글 등록, 비밀번호 변경 등).
결과적으로 사용자는 자신도 모르는 사이에 원치 않는 행동을 수행하게 된다.
CSRF는 단순히 정보의 탈취 등을 넘어, 사용자 계정의 주요 정보가 변경되거나 금전적인 피해까지도 이어질 수 있는 위험한 공격이다.
- 사용자 계정 정보 변경: 비밀번호, 이메일, 연락처 등 중요한 정보를 공격자가 조작
- 게시판 자동 도배: 로그인된 사용자의 권한으로 게시물을 무차별 등록
- 금전적 피해: 온라인 쇼핑몰이나 은행에서 송금, 구매 요청이 실행되는 경우
이처럼 CSRF는 은밀하고 치명적일 수 있으므로, 충분한 방어 전략이 필요하다.
- CSRF 토큰 사용: 요청 시 고유한 토큰 값을 함께 전송하고, 서버는 이 값을 검증하여 요청의 정당성을 확인
- Referer 또는 Origin 헤더 검증: 요청이 온 출처가 신뢰할 수 있는 도메인인지 확인
- SameSite 쿠키 속성 설정: 쿠키가 교차 출처 요청에 자동으로 전송되지 않도록 제한 (Strict 또는 Lax 설정)
- 민감한 작업은 추가 인증 요구: 비밀번호 변경, 결제 등은 추가 입력이나 2차 인증 요구
CSRF는 사소하지만 강력한 위협이다.
CSRF는 사용자의 신뢰를 기반으로 하는 웹 구조의 허점을 파고드는 공격 방식이다. 외형상 사용자가 보낸 정상적인 요청처럼 보이지만, 실제로는 공격자의 의도가 숨어 있는 위험한 시도다. 웹 개발자와 보안 담당자는 CSRF를 단순한 위협이 아닌 사용자 신뢰를 지키기 위한 필수 대응 과제로 인식하고, 사전에 철저한 대비가 필요하다.
#CSRF #웹보안 #사이트간요청위조 #웹취약점 #정보보안 #웹개발 #HTTP보안 #쿠키보안 #XSS #OWASP
'IT 정보 > 용어' 카테고리의 다른 글
AD(Active Directory)란? 기업 IT 인프라의 핵심, 그 역할과 구조 (1) | 2025.07.24 |
---|---|
펌웨어란? 하드웨어를 움직이는 보이지 않는 두뇌 (1) | 2025.07.23 |
SASE란? 네트워크와 보안의 미래를 통합하는 전략 (1) | 2025.07.21 |
BYOD란? 기업의 유연성과 보안의 균형을 맞추는 전략 (2) | 2025.07.20 |
네트워크 보안의 미래, SDP(소프트웨어 정의 경계)란 무엇인가? (1) | 2025.07.19 |