TIL: front | XSS 공격과 대응 방법

Lumpen·2023년 6월 7일
0

TIL

목록 보기
242/242

Cross-Site Scripting (XSS)

웹에서 가장 기초적인 취약점 공격 방법중 하나로
권한이 없는 사용자가 악의적으로 웹 사이트에 script 를 삽입하는 공격 기법

다른 웹 사이트와 정보를 교환하는?
다른 웹 사이트로 정보를 빼가는 것을 말하는 것 같다

자바스크립트를 사용하여 공격하는 경우가 가장 많고
사용자의 세션을 공격자의 서버로 전송하여 정보를 탈취하거나
악성코드가 있는 페이지로 리다이렉트 시키는 방법으로 주로 공격한다고 함

주로 XSS 공격 link 가 포함된 웹 페이지로 사용자를 접속하게 하여
사용자의 웹 브라우저 상에서 해커의 스크립트를 실행시킨다

XSS 종류

XSS 는 크게 두 가지 중류가 있다

  • Reflected XSS (반사형 XSS): 피싱 공격에 가장 많이 사용되는 기법으로 스크립트 코드를 입력하는 동시에 결과가 바로 전해진다
    악용하기도, 차단하기도 가장 쉬운 방법으로
    링크를 클릭하도록 유도하여 세션을 하이재킹 하는 방식
  • Stored XSS (저장된 XSS): 가장 일반적인 XSS 공격 유형으로 정상적이지 않은 스크립트 코드를 게시물에 삽입하여 사용자가 게시물 열람 시 공격자가 입력해놓은 악성 스크립트가 실행되어
    사용자의 쿠키 정보를 유출하거나 공격하는 방식
    공격자가 웹 애플리케이션을 속여 데이터베이스에 악성 코드를 저장하도록 하는 수법이라 저장된 XSS 공격이라고 부른다
    저장되어있기 때문에 지속적인 공격을 할 수 있다
    데이터를 서버에 저장하기 때문에 시스템 자체를 공격할 수 있고 애플리케이션 전체에 영향을 미칠 수 있다
    일반적으로 블로그 댓글에 악성 코드를 게시하는 방식을 사용한다
    가장 위험한 XSS 공격 유형

대응 방법

사용자 입력에 대해 항시 검증하는 작업을 거친다
script 등 해킹에 사용되는 입출력 값에 대해 유효성 검사를 진행한다

  1. 입력 값 제한
    입력 값을 제한하여 script 를 삽입하지 못하도록 한다

  2. 입력 값 치환
    xss 공격은 기본적으로 script 태그를 사용하기 때문에
    태그 문자 등을 필터링하고
    서버에서 브라우저로 데이터 전송 시에 태그를 문자 데이터로 인코딩 한다
    문자열로 인식하게 되어 script 실행은 되지 않고 문자열이 출력되게 된다

  3. 스크립트 영역에 출력 자제
    이벤트 핸들러 영역에 스크립트가 삽입되는 경우
    보호 기법들을 우회할 수 있어 사용자의 입력을 출력하는 것은 제한한다

  4. 라이브러리 이용
    XSS 전용 Anti XSS 라이브러리를 여러 회사에서 제공한다
    XSS 라이브러리는 서버 단에서 추가하는 것이고


https://easymedia.net/Culture/EasyStory/?no=170&mode=view&IDX=1165&p=1

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글