CS (Computer Science)
CSRF와 XSS에 대한 설명
SMASMC
2025. 1. 11. 00:14
CSRF와 XSS에 대한 설명
CSRF (Cross Site Request Forgery)
- 사용자의 의지와 무관하게 공격자가 의도한 요청(modify, delete 등)을 특정 웹사이트에 보내는 공격.
- 사용자의 권한을 도용해 중요한 작업을 실행.
ex) 사용자가 해커가 만든 피싱 사이트에 접속한 상태에서 자동 로그인이 활성화된 SNS 계정으로 광고성 글이 게시됨.
대응 기법
- 리퍼러(Referrer) 검증: 요청이 승인된 도메인에서 왔는지 확인.
- Security Token 사용: 서버에서 생성한 난수를 세션에 저장하고, 요청 시 해당 난수를 포함해 서버가 검증.
- 단점: XSS에 취약하면 CSRF 공격 가능.
XSS (Cross Site Scripting)
- 공격자가 웹사이트에 악성 스크립트를 삽입해, 이를 열람한 사용자의 데이터를 탈취하는 공격.
- 탈취한 쿠키를 사용해 세션 하이재킹(권한 도용)을 수행.
공격 종류
- 지속성(Persistent):
- 악성 스크립트를 데이터베이스에 저장해 지속적으로 사용자에게 피해.
- 반사형(Reflected):
- 사용자 입력값을 그대로 반사하는 곳에 악성 스크립트를 삽입. URL 클릭으로 유도.
- DOM 기반:
- 클라이언트 측에서 실행되는 스크립트를 변조해 실행. 탐지가 어려움.
대응 기법
- 입출력 값 검증:
- 입력값을 검증하고 필터링해 악성 스크립트를 차단.
- XSS 방어 라이브러리/확장앱:
- 서버에서 라이브러리 사용, 브라우저에서 확장앱 설치.
- 웹 방화벽:
- 다양한 인젝션 공격 방어.
- CORS, SOP 설정:
- 지정된 도메인 외 리소스 요청을 차단.
CSRF vs XSS 비교
항목 CSRF XSS
공격 방식 | 사용자의 권한을 도용해 요청 수행 | 악성 스크립트를 삽입해 사용자 데이터 탈취 |
대상 | 서버의 중요한 기능 | 클라이언트(사용자 브라우저) |
대응 기법 | Referrer 검증, Security Token 사용 | 입력값 검증, 웹 방화벽, CORS/SOP 설정 |
예시 | SNS 계정으로 광고 글 게시 | 탈취한 쿠키로 세션 하이재킹 |
요약
- CSRF: 사용자의 권한을 이용한 서버 공격.
- XSS: 악성 스크립트를 통해 사용자의 데이터를 탈취.
- 둘 다 웹 보안에서 중요한 취약점이며, 적절한 방어 기법을 통해 예방이 필요.