SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(63일차)

Challenge programmers 2024. 2. 1. 17:46

오늘 학습 주제

1. XSS

 

 

XSS


- XSS -

웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 취약점

공격이 쉽고 완벽하게 방어하기 어려워보안 진단 시 가장 높은 비율로 탐지되는 취약점XSS를 통해 쿠키값을 탈취하여 사용자 권한을 도용하거나사용자의 키보드 입력값을 공격자가 확인 가능

 

 

- Stored XSS -

공격자가 입력하는 정보가 DB 서버와 같은 곳에 저장되고 이 값을 출력하는 페이지에서 발생하는 취약점

 

 

- Reflected XSS -

공격자가 입력하는 정보가 별도로 저장되지 않고

같은 페이지에서 바로 출력되면서 발생하는 취약점

 

 

- DOM XSS -

공격 스크립트가 DOM의 일부로 실행됨으로써브라우저 자체에서 악성스크립트가 실행되는 취약점

 

 

- 절차 -

1. XSS에 사용할 공격 스크립트 구성

( <script>alert(123)</script> )

 

2. 입력값이 출력되는 포인트 찾기

(입력된 값이 저장되는 변수 등과

입력된 값이 출력으로 사용되는 곳)

 

3. 출력되는 포인트에 사용되는 입력값의 전, 후 문법 확인

(<input value="입력값">

 

4. 스크립트 삽입 후에도 페이지가 정상적으로 동작할 수 있도록 스크립트 수정

( <input value=""><script>alert(1)</script><""> )

 

- 대응 -

입력값과 출력값에 대한 필터링 조치 실행

입력값에 실행할 경우는 원천적인 차단이기에 가장 많이 사용

출력값에 실행하는 경우는 정상적으로 작성된 코드도 영향을 받기에

특수한 경우(이미 악성 스크립트가 저장)에 사용

 

입력값이 출력값에 사용되는 파라미터를 파악하여 필터링 적용

필터링 목록은 특수문자, 태그, 악성 스크립트, 이벤트 핸들러 등이 존재

 

HTML 태그가 일부 허용되어야 하는 경우는 3가지로 방법으로 분류

 

원천차단

(HTML 태그나 Javascript를 사용 금지 > 특수문자 치환)

 

화이트리스트 필터링

(일부 태그만 사용 > 원천 차단 후 사용하는 태그만 복구)

 

블랙리스트 필터링

(일부 허용한 태그에서 동적 함수 사용이 가능할 때 > 화이트리스트 적용 후 이벤트 핸들러 추가 필터링)

 

 

또는  XSS를 방지하기 위해 만들어진 오픈소스(Lucy, ESAPI 등)를 사용