본문 바로가기
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

'Security' 카테고리의 다른 글

SQL Injection  (0) 2023.03.08
Encryption  (0) 2023.03.06