Security
XSS & CSRF
by orioncsy
2023. 3. 7.
XSS & CSRF
개념
XSS(Cross site scripting)
- 사용자가 특정 웹사이트를 신용하는 점을 노려 클라이언트를 공격대상으로 하는 악성공격
- 사이트 변조나 백도어를 활용하여 클라이언트 공격
CSRF(Cross Site Request Forgery)
- 특정 웹사이트가 사용자의 웹 브라우저 상태를 신용하는 점을 노린 서버 대상 악성 공격
- 요청을 위조하여 사용자의 권한을 이용하여 서버에 대하여 공격
공격 과정 및 대응
XSS
- 웹사이트 관리자가 아닌 이가 웹사이트에 악성 스크립트를 삽입할 수 있는 취약점으로 발생하는 공격
- 웹 애플리케이션이 사용자로부터 받은 입력 정보를 제대로 검사하지 않은 경우 발생
- 취약점을 통해 사용자의 정보 탈취 및 비정상적인 기능 수행
- 대응
- 필터 제작
- 입력값에 대해 필터를 거치고, script 문장에 존재하는 특수문자를 메타캐릭터로 변환
- BBCode
- Bulletin Board Code로 전자 게시판에 글을 작성하는 데 쓰이는 가벼운 마크업 언어로 대괄호로 태그 표시
- 쿠키 보안 옵션 사용
- 보안 쿠키 파라미터를 설정하면 tls 상에서만 사용
- 콘텐츠 보안 정책
- 스크립트 실행에 대한 조건을 설정해 예방
- 출처가 자기 서버인 스크립트에 대해서만 실행하도록 한다.
CSRF
- 사용자가 자신의 의지와 상관없이 공격자가 의도한 행위를 특정 웹사이트에 요청하게 되는 공격
- 웹사이트에 사용자가 로그인을 한 상태에서 사이트 간 요청 위조 공격 코드가 삽입된 페이지를 열면 공격 대상인 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송되는 줄 알고 명령을 실행
- 대응
- CSRF 토큰
- 서버에 들어온 요청이 실제 서버에서 들어온 요청인지 확인하는 토큰
- 매 요청마다 임의의 난수를 세션에 저장하고 요청을 보낸 사용자에게 보내면 사용자가 요청에 그 토큰을 담아 보내게 될 때 서버 측에서 세션에 저장한 토큰과 비교하는 방식
- 재인증 요구
Reference
https://dar0m.tistory.com/246