기타/보고서

XSS란 무엇인가

Prcnsi 2021. 5. 23. 00:48
728x90

1.XSS

  XSS는 웹 해킹 공격 중 하나이다.

  XSS는 Cross site scripting의 약자지만 CSS가 아닌 이유는 동음이의어로 Cascading Style Sheets와 겹쳐서 XSS라고 한    다. (이와 비슷하게 CSRF도 있는데 XSS는 공격대상이 Client이고 이는 공격대상이 Server 라는 차이가 있다.)

 

2.XSS의 방법

  크로스 사이트 스크립트라는 이름처럼 이 방법은 자바스크립트를 일반적으로 사용한다.

  이를 이용해서 악성 스크립트를 기존 웹 사이트의 url에 덧붙이거나,새로 url을 만들어 유저에게 노출시키는 등으로 정    보를 빼오는 공격 방법이다.

 

  XSS자체는 url에 덧붙이는 sql 인젝션과 비슷하지만 sql은 새 스크립트를 작성 한 것을 덧붙이는게 아니라 수정한 쿼      리  문을 덧붙인다는게 다르다.

 

3.XSS의 종류 

  XSS의 공격 방법에는 아래 세가지가 있다.

  • Reflected XSS
  • Stored XSS
  • Dom based XSS

   (1) Reflected XSS

    Reflected XSS는 악성 스크립트가 포함된 url을 유저에게 노출시켜 클릭하도록 유도해서 데이터를 받는 일시적인 방      법이다.

   (2) Stored XSS

    Stored XSS는 유저에게 클릭을 유도하지 않고 서버의 취약한 부분에 악성 스크립트를 삽입해서 데이터베이스에 저        장  한다.따라서 지속적으로 공격한다 고 해서 persistent XSS라고도 불린다.

   (3) DOM based XSS

    DOM(Document Object Model) based XSS에서 DOM은 HTML및 XML문서 에 접근하는 방법을 표준으로 정의하는        문서 객체 모델이다. 즉 구조화된 문서를 표현하는 방식인데 유저의 브라우저에서 DOM환경을 수정하여 공격 구문        이  실행되는 XSS공격이다.즉 검증되지 않은 값이 자바 스크립트를 통해 삽입되어 발생하는 취약점이다.

 

    추가적으로 위의 두 방법은 서버 측 결함으로 인해 응답 페이지에 악성 스 크립트 구문이 포함되어 브라우저로 전달      되는 것이지만,이것은 서버와 관계 없이 브라우저에서 발생한다.

 

4.대응 방안

  • 필터링
  • 방어 라이브러리 사용
  • 브라우저 확장 앱 사용
  • 웹 방화벽을 사용

   (1)필터링

    필터링은 정규식을 이용해서 파라미터 값을 대한 검증을 하는 것이다.그냥 한마디로 덧붙이는 스크립트에 들어가는      공통 파라미터 scipt,<>같은 특수 문자를 미리 지정해 놓고 의심되는 것들을 거르는 것이다.

   (2)방어 라이브러리

    위의 필터링을 모아놓은 것을 방어 라이브러리라고 한다. 아래는 대표적인 오픈소스 라이브러리이다.

  • -AntiXSS AntiXSS 라이브러리(Microsoft)
  • -OWASP ESAPI 라이브러리(비영리)
  • -NAVER Lucy(Naver)

   (3)브라우저 확장 앱

    브라우저 확장 앱은 보안을 확장하는 것으로 Microsoft Edge나 Chrome등의 브 라우저의 스토어에서 다운 받고 적        용 해주면 된다.

브라우저 확장 앱 다운

 

   (4)웹 방화벽

    웹 방화벽은 웹방화벽의 기본 역할은 그 이름에서도 알 수 있듯,SQL Injection,XSS 등과 같은 웹 공격을 탐지하고 차      하는 것입니다.웹 방화벽에는 하드웨어형,소프트웨어형,클라우드형으로 세가지 종류가 있다.

 

      먼저 하드웨어형 웹 방화벽이 있다.이는 웹 및 애플리케이션 서버와 가까운 LAN 내에 설치되고 하드웨어를                 구입해서 설치해야하지만 빠르고 고성능이다.

 

      다음으로 소프트웨어형 웹방화벽은 하드웨어 기기 없이 가상 머신(Virtual Machine, VM) 위에 설치됩니다. 하드웨       어형과 차이점은 Hypervisor 가 필요하단 것이다.소프트웨어형 웹방화벽은 느리지만 활용도가 높다.

 

      마지막으로 클라우드형 웹방화벽은 서비스 제공업체가 SaaS(Software-as-a-Service) 형태로 직접 제공, 관리하는         웹방화벽 형태로 구매해야한다.세부적인 설정은 어렵지만 간편하다.

 

 

이와 같이 여러 방법이 있지만 예방법이기 때문에 가급적 소프트웨어를 제 때 업데이트 하는 것이 좋다.

왜냐하면 소프트웨어만 업데이트 하는 것이 아니라 발견된 취약점을 반영한 보안 기능들도 업데이트

되는 것이기 때문이다.

728x90