반응형

Stored XSS란

  • 공격자가 공격 Script를 웹사이트에 저장해 두거나 게시판 등의 게시글 등에 저장해 둔 후 사용자가 해당 페이지에 접속하거나 게시글을 클릭하였을 경우 실행되도록 하는 공격
    • 해당 공격을 성공적으로 실행하려면 공격자는 웹 애플리케이션의 취약점을 찾은 후 악성 스크립트를 해당 서버에 삽입해야 함
  • 주입된 스크립트가 데이터베이스, 메시지 포럼, 방문자 로그, 댓글 필드 등과 같이 대상 서버에 영구적으로 저장
    • 지속성
  • 웹 애플리케이션의 데이터베이스나 파일 시스템 등에 악성 코드가 저장되어 있기 때문에 이후 다른 사용자가 해당 데이터를 요청할 때도 스크립트가 실행됨
    • 감염된 페이지를 볼 때마다 악성 스크립트가 피해자의 브라우저로 전송됨
  • 가장 흔한 대상은 블로그, 소셜 네트워크, 비디오 공유 플랫폼, 메시지 보드 등 사용자가 콘텐츠를 공유할 수 있는 웹사이트

 

Stored XSS 공격

임의의 값을 입력하고 Sign Guestbook을 클릭하면 Name과 Message가 등록되는 것을 확인할 수 있다.

⇒ Sign Guestbook 버튼을 통해 데이터를 서버에 저장

⇒ 입력 받은 데이터는 검증이나 인코딩 없이 데이터베이스나 서버 저장소에 그대로 저장됨

 

Message 부분에는 아래의 XSS 코드를 입력한다.

: <script>alert(document.cookie)</script>

⇒ 해당 코드는 브라우저에서 실행되어 현재 도메인의 쿠키 정보를 알림 창으로 표시함

 

공격이 성공하였다면 접속한 도메인 정보, 사용자의 쿠키 정보를 포함한 알람창이 공격자가 입력한 코드에 의해 나타나는 것을 확인할 수 있다.

서버에 저장되기 때문에 페이지를 방문하는 모든 사용자의 브라우저에서 이 스크립트가 실행됨

 

Stored XSS 방어 - 사용자 정의 규칙

1. 방어 규칙 생성

Reflected XSS와 같은 방식으로 진행됨

Reflected XSS에서 사용해던 HTML 동일하게 사용

 

Stored XSS 규칙이 정상적으로 생성되었는지 확인

 

2. 방어 확인

⇒ Stored XSS 코드를 입력한 후 Sign Guestbook 버튼을 클릭하면 사용자 정의 차단 페이지와 함께 차단되는 것을 확인할 수 있음

 

XSS 방어 - 관리형 규칙

관리형 규칙(Managed Rules) : AWS에서 제공하는 사전 정의된 보안 규칙 세트

  • AWS에서 지속적으로 규칙을 업데이트하므로 최신 보안 위협에 대응 가능
  • AWS에서 제공하는 사전 정의된 규칙 세트를 활용하여 일반적인 웹 공격 패턴을 신속하게 탐지하고 차단 가능
  • 간단한 설정으로 강력한 보안 기능을 적용 가능

⇒ 이러한 이유로 관리형 규칙을 적용함(장점)

 

관리형 규칙을 사용하기 위해서 Action을 COUNT로 변경해야 함 → Action을 COUNT로 설정하면 규칙에 매칭되는 요청을 차단하지 않고 카운트만 함

사용자 규칙 정의 룰(Reflected_XSS, Stored_XSS)이 Count로 변경된 것을 확인하고 다음 단계 진행

 

1. XSS 공격 방어 규칙 생성

 Add managed rule groups → 관리형 규칙 그룹을 웹 ACL에 추가하는 옵션

 

무료 규칙에 속하는 Core rule set 규칙 그룹을 선택

Core rule set
핵심 규칙 집합(CRS, Core rule set) 규칙 그룹에는 일반적으로 웹 애플리케이션에 적용할 수 있는 규칙이 포함되어 있음
→ OWASP Top 10과 같은 OWASP 게시물에 설명된 자주 발생하고 위험성 높은 일부 취약성을 비롯한 광범위한 취약성 도용을 막을 수 있다.

 

AWS-AWSManagedRulesCommonRuleSet 규칙이 정상적으로 생성되었는지 확인

 

2. Reflected XSS 공격 방어 확인

3. Stored XSS 공격 방어 확인

이전과 같이 동일하게 공격을 진행했을 때 사용자의 요청이 AWS 관리형 규칙에 의해 차단되어 403 Forbidden 페이지가 출력되는 것을 확인할 수 있다.

반응형

'Study > 클라우드' 카테고리의 다른 글

[AWS WAF] Command Injection  (0) 2024.10.29
[AWS WAF] SQL Injection  (0) 2024.10.29
[AWS WAF] Reflected XSS  (0) 2024.09.29
[AWS WAF] 실습 환경 구성  (0) 2024.09.24
[AWS WAF] 실습 개요  (0) 2024.09.24