Post

웹 보안 이론 2

XSS (Cross-Site Scripting)

개념

  • 웹 사이트에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되도록 하는 공격 기법.
  • 공격자는 사용자의 쿠키, 세션정보 등을 탈취하거나 악성 코드를 실행하여 시스템을 장악.

세션

  • 사용자가 웹사이트에 접속하여 활동하는 기간.
  • 세션동안 사용자의 정보는 서버에 임시로 저장.
  • 세션 ID: 고유한 식별자로, 주로 쿠키에 저장되어 사용자를 식별하고 인증상태를 유지.

쿠키

  • 웹사이트가 사용자의 컴퓨터에 저장하는 작은 데이터 조각.
  • 사용자 이름, 비밀번호, 방문 기록, 설정 등 정보를 저장하여 웹사이트 이용을 편리하게 함.

종류

1. 반사형 XSS

  • 악성 스크립트가 포함된 URL을 클릭하도록 유도하여 사용자의 브라우저에서 즉시 실행되는 유형.
  • 주로 검색 결과 페이지, 오류 메시지 등에 사용.

2. 저장형 XSS

  • 악성 스크립트가 웹 서버에 저장되어, 해당 페이지에 접속하는 모든 사용자에게 영향을 미침.
  • 게시판, 댓글, 방명록 등에 사용.

위험성

  1. 개인정보 탈취
    • 쿠키, 세션정보 등을 탈취하여 사용자 계정을 도용하거나 개인 정보를 유출
  2. 악성코드 실행
    • 사용자의 시스템에 악성 코드를 설치하여 시스템을 장악하거나 다른 공격 수행
  3. 웹 사이트 변조
    • 웹 사이트 내용을 변조하여 사용자를 속이거나 악성 웹 사이트로 리다이렉션
  4. 피싱 공격
    • 사용자를 속여 개인 정보를 입력하도록 유도

방어 기법

  1. 입력 값 검증
    • 모든 사용자 입력 값에 대해 유효성 검사를 수행
    • 특수 문자를 필터링하거나 이스케이프 처리
  2. 출력 값 인코딩
    • 웹 페이지에 출력되는 모든 데이터에 대해 HTML 엔티티 인코딩 또는 자바스크립트 인코딩을 적용
  3. HTTPOnly 쿠키 사용
    • 쿠키에 HTTPOnly 속성을 설정하여 자바스크립트를 통해 쿠키 접근을 차단
  4. 웹 애플리케이션 방화벽(WAF)
    • WAF를 사용하여 XSS 공격을 탐지하고 차단