반응형
04-29 14:22
Today
Total
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
관리 메뉴

개발하는 고라니

[Spring Boot] XSS 본문

Framework/Spring Boot

[Spring Boot] XSS

조용한고라니 2021. 3. 28. 19:37
반응형

XSS는 Spring Boot의 내용은 아니긴 하나, Web 카테고리를 따로 만들지 않아 어쩔수 없이 여기에 작성한다.

XSS

 XSS는 Cross Site Scripting의 약자이다. 원래대로라면 CSS라고 불리는 것이 맞지만, CSS는 이미 Cascading Style Sheets가 사용하고 있기 때문에 XSS라고 불린다.

이는 웹 해킹 공격 기법 중 하나로 "사용자가 웹 페이지에 접속하는 것으로 올바르지 않은 스크립트가 실행되는 취약점 또는 공격 방법"이라고 설명할 수 있고, "게시판이나 웹 메일 등에 Javascript와 같은 스크립트를 입력해 개발자가 의도하지 않은 동작이 수행될 수 있게 하는 공격 기법"이다 라고 할 수 있겠다.

 

많이 알려진 웹 해킹 공격 기법 들은 대부분 서버를 노리지만, XSS는 클라이언트를 대상으로 하는 공격이다.

XSS의 종류는 공격 방법에 따라 크게 다음과 같은 것들이 있다.

  • Reflected XSS
  • Stored XSS
  • DOM Based XSS

# Reflected XSS

보통 URL 파라미터 (특히 GET방식)에 스크립트를 넣어 서버에 저장하지 않고 그 즉시 스크립트를 만드는 방식이다. 하지만 Reflected XSS의 경우 브라우저 자체에서 차단하는 경우가 많아 상대적으로 공격을 성공시키기 어렵다.

 

스크립트를 입력하면 바로 반사되어 실행이 되는 방법

 

# Stored XSS

사이트 게시판이나 댓글, 닉네임 등 스크립트가 서버에 저장되어 실행되는 방식이다.

 

스크립트를 저장해뒀다가 공격하는 방법이다.

출처:  https://www.nascenia.com/why-cross-site-scripting-is-detrimental-and-how-to-prevent/

XSS로 인한 피해

  • 공격자에 의해 올바르지 않은 로그인
  • 유저의 쿠키가 공격자의 손에 넘어가는 것으로 쿠키 내에 있는 유저의 세션 정보가 새어나가 공격자가 악의적으로 사용할 수 있다.
  • 시스템 관리자 권한 획득
    • XSS 취약점이 있는 웹 서버에 다양한 악성 데이터를 포함시킨 후, 사용자의 브라우저가 악성 데이터를 실행하게 할 수 있다.
    • 공격자는 아직 패치되지 않은 취약점에 대한 공격 코드가 실행되도록 하여 사용자의 시스템을 통제할 수 있다.
  • 악성코드 다운로드
    • XSS공격은 악성 스크립트로 자체 악성 프로그램을 다운로드 할 수 없으나, 사용자가 악성 스크립트가 있는 URL을 클릭하도록 유도하여 악성 프로그램을 다운받는 사이트로 리다이렉트하거나 트로이 목마 프로그램을 다운로드 하도록 유도할 수 있다.
  • 거짓 페이지 노출
    • XSS공격에 취약한 페이지일 경우, <script> 태그 뿐 아니라 <img>와 같은 그림을 표시하는 태그를 사용하여 원래 페이지와는 전혀 관련이 없는 페이지를 표시할 수 있다.

XSS를 방지하는 대표적인 방법

1. script 문자 필터링

 

XSS 공격은 입력값에 대한 검증이 제대로 이뤄지지 않아 발생하는 취약점이므로 사용자의 모든 입력값에 대해 서버단에서 필터링 해야한다.

 

2. 백신

 

3. 보안 패치

 

4. Third-party 보안

 

제 3자가 보안 솔루션을 제공하는 것을 말한다. 예를 들면 XSS취약점을 Chromn이 차단하는 경우 제 3자의 보안 설정에 의해 공격에 노출되지 않는 것이다.

 

5. 시큐어 코딩

 

6. Spring에서 Lucy XSS Filter 사용하기

 

 

보안 방법에 대해서는 다음 포스팅에서 다루도록 한다.

# References 

leafcats님의 블로그

IKU_JO님의 velog

ARGOS님의 블로그

반응형
Comments