[정보보안] XSS & CSRF

[정보보안] XSS & CSRF

Cross Site Scripting의 약자로 CSS라고 하는 것이 맞지만 CSS가 이미 약어로 사용되고 있어서 XSS라고 한다.
XSS는 게시판이나 웹 메일 등에 자바 스크립트와같은 스크립트 코드를 삽입 해 개발자가 고려하지 않은 기능이 작동하게 하는 치명적일 수 있는 공격이다.

웹 어플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼에 악의적인 스크립트를 삽입하여 해당 스크립트가 희생자 측에서 동작하도록 하여 악의적인 행위를 수행하는 것.
공격자는 취약점을 이용하여 사용자의 개인 정보 및 쿠키 정보 탈취, 악성코드 감염, 웹 페이지 변조 등의 공격을 수행한다.


XSS 공격 종류

Stored XSS (저장형 XSS)



  • 공격자가 취약한 웹서버에 악성 스크립트를 저장하면 희생자가 해당 자료를 요청할 때 해당 악성 스크립트가 삽입된 응답 페이지가 전달되어 클라이언트 측에서 동작하는 방식

Reflected XSS (반사형 XSS)


외부에 있는 악성 스크립트가 희생자 액션에 의해 취약한 웹서버로 전달되고, 웹서버의 응답 페이지에 해당 악성 스크립트가 삽입되어 희생자 측에서 동작하는 방식이다.

DOM Based XSS (DOM 기반 XSS)

희생자의 웹 브라우저에 응답 페이지에 포함된 저앙적인 스크립트가 동작하면서 DOM 객체를 실행할 때 URL 등에 포함된 악성 스크립트가 동작하는 방식이다.
응답 페이지에 관계없이 웹 브라우저에서 발생한다.



CSRF(Cross-Site Request Foregery)

웹사이트 취약점 공격의 하나로 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격

XSS를 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다.

일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.


XSS와 CSRF의 차이 요약

  • T간단하게, XSS는 공격대상이 Client이고, CSRF는 Server이다.
  • XSS는 사이트변조나 백도어를 통해 클라이언트에 대한 악성공격을 한다.
  • CSRF는 요청을 위조하여 사용자의권한을 이용해 서버에 대한 악성 공격을 한다.

출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?