Table of Contents
Cross-site Scripting (XSS) 이해 – 스크립트 주입보다 더 많은
XSS는 웹 애플리케이션 취약점 중 하나인 XSS(XSS)를 유지하고, 일관적으로 OWASP Top Ten]에 나타낸다. 그 핵심에서 XSS는 다른 사용자들에 의해 볼 웹 페이지에 악성 클라이언트 측 스크립트를 주사하는 공격자를 허용한다. 주사된 스크립트는 피해자의 브라우저의 컨텍스트에서 실행되며, 데이터 도난(복역, 세션 토큰)을 활성화하거나, XSS(Plaiding)을 방지해야 한다.
- Stored (Persistent) XSS – 악성 스크립트는 대상 서버(예: 데이터베이스, 코멘트 필드, 포럼 게시물)에 영구적으로 저장됩니다. 영향을받는 페이지를 방문하는 모든 사용자는 payload를 실행합니다.
- Reflected (Non-persistent) XSS – 주사된 스크립트는 웹 서버에서 반사되며 일반적으로 만들어진 URL 또는 양식 제출을 통해 반영됩니다. 페이로드는 저장되지 않습니다. 피해자가 악의적인 링크를 클릭할 때만 실행됩니다.
- DOM ‐based XSS – 취약점은 브라우저의 클라이언트 측 코드에서 완전히 존재한다. 공격 탑재량은 서버로 전송되지 않습니다; 대신, 그것은 DOM 환경을 수정하고 거기에서 실행합니다. 이 공격은 서버 측 방어에 보이지 않을 수 있습니다.
각 유형은 보안 제어에 독특한 도전을 제시합니다. 방화벽 - 특히 웹 응용 방화벽 (WAFs) - 반사 및 일부 저장 XSS에 대한 강력한 보호를 제공 할 수 있지만 DOM 기반 XSS는 추가 클라이언트의 반대 조치를 요구합니다.
현대 웹 보안의 방화벽은 무엇입니까?
원래 방화벽은 IP 주소, 포트 및 프로토콜을 기반으로 트래픽을 필터링하는 네트워크 수준 장치였습니다. 오늘 용어는 보안 시스템 범위를 우회합니다.
- Network Firewall – Layer 3–4(IP, TCP/UDP)에서 동작한다. 그들은 알려진 악의 IP 또는 제한 포트를 차단할 수 있지만, 그들은 작은 응용 프로그램 계층 데이터를 검사한다.
- 웹 애플리케이션 방화벽(WAFs) – HTTP/HTTPS 트래픽을 검사하도록 설계된 Layer‐7 장치, 악성 패턴에 대한 요청 내용(헤더, 몸, URL 매개 변수) 분석. WAFs는 XSS에 대한 기본 방화벽 도구입니다.
- Cloud 기반 방화벽(WAF‐as‐a‐Service 포함) – 예제는 AWS WAF, Cloudflare WAF, Azure Application Gateway를 포함합니다. 확장성, 낮은 대기시간을 제공하며, 종종 CDN과 통합됩니다.
모든 방화벽은 규칙 세트에 작동하지만, 응용 프로그램 인식 방화벽 (WAFs)는 XSS를 의미적으로 대응할 수 있습니다. 그 이후로 악마는 규칙 디자인 및 탐지 방법론에 있습니다.
방화벽(WAFs) 탐지 및 차단 XSS
Signature‐Based 탐지
가장 WAFs는 XSS 페이로드와 일치하는 사전 정의 서명을 가진 배를 - 예를 들어, , , , 또는 인코딩된 변형. 방화벽은 서명을 트리거하는 어떤 요청을 차단합니다. 서명 데이터베이스는 정기적으로 공급 업체가 귀중 한 공격 벡터를 커버하도록 업데이트됩니다.
그러나, 서명 기반 탐지는 간단한 손상에 의해 증발 될 수 있습니다: 다른 인코딩을 사용하여, 키워드를 나누거나, 또는 junk 문자를 주사. 공격자는 종종 브라우저에서 나머지 기능 동안 서명을 일치하지 않을 때까지 급여를 mutate.
Anomaly‐와 Heuristic ‐ 기반 탐지
고급 WAFs는 기계 학습 또는 통계 모델을 사용하여 비정상적인 패턴을 감지합니다. 그들은 각 엔드 포인트 및 플래그 편차에 대한 유효한 요청의 전형적인 구조를 배우는 - 예를 들어, 일반적으로 숫자 매개 변수는 갑자기 HTML 태그를 포함. 통계 규칙은 알려진 서명이 부족한 0 일 XSS 벡터를 잡을 수 있지만, 그들은 또한 긍정적 인 거짓을 위험합니다.
비율 제한 및 행동 분석
일부 WAFs 모니터 요청 속도. 빠른 성공에 많은 페이로드를 probing 공격자는 일시적으로 차단 될 수 있습니다. 이 XSS를 직접 감지하지 않는 동안, 그것은 자동화 된 스캔을 느리게하는 피벗에 강제 공격자, 수동 테스트.
방화벽 수준에서 콘크리트 보호 메커니즘
- 입력 유효성 검사 및 필터링 – WAF는 모든 매개 변수, 쿠키 및 헤더를 검사합니다. 위험한 문자를 알 수 있습니다 (])는 응용 서버에 도달하기 전에 인코딩 또는 차단됩니다.
- Output Encoding Awareness – 현대 WAFs는 응답 (예를들면 HTML 속성 안에 스크립트 태그 대. 내부)에서 사용자 입력이 종료되는 곳을 correlate 할 수 있으며 컨텍스트 별 규칙을 적용합니다. 이 수준의 인텔리전스는 드물지만 F5 및 Imperva와 같은 선도적 인 공급 업체가 제공됩니다.
- Virtual Patching – 서버 측 XSS 취약점이 발견될 때, WAF는 즉시 고정될 수 없습니다, 응용 코드 변경 없이 탈취 경로 차단하는 사용자 정의 규칙.
- Request Normalization – WAFs는 인코딩의 여러 레이어를 자주 디코딩(URL‐encode, Unicode, double‐encode)를 호출하기 전에 서명을 확인하기 전에, 기본 obfuscation을 종료합니다.
XSS에 대한 방화벽의 제한 – 그들은 실패하는 곳
WAF를 우회
Determined attackers 정기적으로 devise bypasses. 일반적인 기법은 다음과 같습니다.
- ] / ]] 세트 - 예를 들어, ]]와 함께 ].
- SVG를 레버리지, , , 또는 스크립트를 실행할 수있는 다른 HTML 요소.
- WAF와 브라우저 사이의 문자 집합 mismatches (예 : UTF‐7은 역사적으로 ASCII ‐ 전용 필터를 우회하여 공격합니다).
- 여러 요청 매개 변수를 통해 페이로드를 끊거나 검사 엔진에서 HTTP chunked transfer 인코딩을 사용하여.
DOM ‐Based XSS – 대부분의 방화벽에 대한 보이지 않는
DOM은 서버에서 절대로 닿지 않습니다. 취약한 클라이언트 측 JavaScript는 ], ], 또는 로컬 저장소에서 데이터를 읽으며 DOM에 안전하게 쓸 수 있습니다. 서버 측 방화벽은 합법적인 요청을 볼 수 있습니다. 악성 실행은 브라우저에서 완전히 발생합니다. 방어는 엄격한 내용 보안 정책 (CSP) 및 강력한 클라이언트 측 위생화 라이브러리와 같은 클라이언트 측 보안 조치를 요구합니다.
암호화된 트래픽 (HTTPS) 도전
현대 WAFs는 일반 텍스트를 검사하기 위해 TLS를 해독 할 수 있지만, 이것은 대기 시간을 추가하고 적절한 인증서 관리를 필요로합니다. 일부 작은 배포는 맹렬한 지점을 떠나고 높은 ‐ traffic 엔드 포인트에 검사를 건너 뛸 수 있습니다.
모범 사례: 방화벽은 계층 방어의 일부로
WAF에 단독으로 의존하는 것은 위험합니다. 가장 효과적인 XSS 예방 전략은 방어의 4 줄을 결합합니다.
1. 안전한 발달 & 서버 측 Sanitization
모든 사용자 공급 데이터는 HTML 응답으로 삽입되기 전에 검증, 위생 또는 탈출해야합니다. OWASP는 Java 인코더 프로젝트 및 다양한 컨텍스트에서 출력 인코딩에 대한 지침 (HTML 바디, 속성, URL, JavaScript, CSS)을 제공합니다. 방화벽이 애플리케이션 레이어에서 약한 입력 처리를 수정할 수 없습니다.
2. 콘텐츠 보안 정책 (CSP)
CSP는 스크립트의 소스가 허용되고 인라인 스크립트가 허용되는 브라우저를 알려 주는 브라우저 ‐ 수준의 보안 메커니즘입니다. 엄격한 CSP는 모든 것을 차단할 수 있지만 가장 지속 가능한 DOM 기반 XSS를 차단할 수 있습니다. WAF는 응답 헤더를 주입하거나 수정하거나 수정하여 CSP를 시행할 수 있지만 CSP 자체는 WAF가 대체할 수 없는 분산 층입니다.
3. 정규적인 헝겊 조각 및 갱신
방화벽 규칙 기초는 새로운 XSS 변형이 등장하기 때문에 업데이트해야합니다. 마찬가지로 서버 소프트웨어 (웹 서버, 응용 프레임 워크)는 XSS 취약점의 루트 원인을 제거하기 위해 패치되어야합니다. 가상 패치는 시간을 구입하지만 코드를 수정하기위한 대체가 아닙니다.
4. 안전 교육 및 테스트
개발자 및 보안 엔지니어는 WAF를 넘어 어떻게 XSS가 작동했는지 이해해야합니다. 일반 침투 테스트 ( 매뉴얼 테스트 포함) 및 코드 리뷰는 WAF가 놓은 우회 패턴을 발견 할 것입니다. OWASP ZAP 또는 Burp Suite와 같은 도구는 방화벽 로그를 보완 할 수 있습니다.
XSS 보호를 위한 올바른 방화벽 선택
모든 방화벽이 동일하지 않습니다. WAF를 선택하면 고려하십시오.
- Detection sophistication – 두 서명과 행동의 두가지를 모두 사용합니까? 자동적인 false positive 튜닝을 지원합니까?
- ] 가상 패치의 용이 – 새로 발견된 CVE를 차단하기 위해 사용자 정의 규칙을 쉽게 추가할 수 있습니까?
- Performance impact – 각 요청에 대해 >5 ms 대기 시간을 추가하는 WAF는 고 능률적 사이트에 적합하지 않을 수 있습니다.
- Managed vs. self‐hosted – Cloud WAFs (Cloudflare, AWS WAF)는 종종 더 낮은 작동 오버 헤드를 가지고 있으며 규칙 세트를 자동으로 업데이트합니다. WAFs (F5, Imperva)는 더 많은 과립 제어를 제공하지만 전용 엔지니어가 필요합니다.
Real-World 예제: 2022 Twilio XSS 사용
2022년 Twilio SendGrid 이메일 대시보드에서 저장된 XSS 취약점은 내부 사용자로부터 가짜 로그인 프롬프트를 주입하기 위해 공격자가 허용했습니다. 페이로드는 evade SendGrid의 WAF 서명에 비난되었습니다. breach는 성숙한 WAF 배포를 가진 대형 회사가 공격자가 사용자 정의 ‐제작을 할 때 XSS에 의해 공격을 할 수 있다는 것을 보여주었습니다. WAF는 ‐SP 검사를 위한 딥 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP 분석, CSP
관련 기사
방화벽은 특정 웹 애플리케이션 방화벽을 기반으로합니다. 크로스 사이트 스크립트 공격에 대한 방어 ‐ 인 ‐ 심층 전략의 불가결 구성 요소입니다. 그들은 잘 알려진 XSS 페이로드를 자동으로 필터링하고 비포칭 코드를 위해 빠른 가상 패치를 제공 할 수 있습니다. 그러나 그들은 실버 탄알이 아닙니다. 공격자는 서명 기반 규칙을 우회하는 창조적 방법을 찾는 것을 계속하고, DOM 기반 XSS 크게 evades 서버 측 검사를 통해. 가장 탄력있는 위협은 보안을 차단하고, 보안을 강화하는 것이 아니라, 보안을 강화하는 것이 일반적 인 위협을 줄일 수 있습니다.