원본 소스: EdgeCast
웹 애플리케이션 보안은 크고 작은 조직에서 여전히 최우선 위협 벡터입니다. Verizon 2020 DBIR(Data Breach Investigations Report)에 따르면 전체 데이터 침해 중 43%가 웹 애플리케이션과 관련되어 있으며,¹ 및 전체 해킹 벡터의 80%가 웹 애플리케이션을 대상으로 하고 있습니다.²
Verizon Media는 2020년 4분기에 CDN(콘텐츠 전송 네트워크)에서 XSS(Cross-Site Scripting) 트래픽이 이전 분기에 비해 현저히 증가했습니다. 이 블로그에서는 몇 가지 트래픽 데이터 포인트를 살펴보고 가장 많이 시도된 XSS 페이로드 중 하나를 분석합니다. 우리는 또한 보호 조치를 적용하기 위해이 데이터를 사용하는 방법을 공유합니다.
이 콘텐츠를 귀사의 현관에서 악의적인 XSS 트래픽 침입을 처리하는 방법에 대한 행동 중심의 가이드로 활용하십시오. 또한 리더십 팀 및 비즈니스/운영 담당자와 보안 관련 대화를 나누는 데 도움이 될 수 있습니다.
We 데이터를 가지고 – 그것을 탐구하자
The Verizon Media WAF는 2020년 4분기에 15억 건의 요청을 완화했습니다. “완화”는 차단, 사용자 지정 응답 또는 URL 리디렉션을 트리거한 모든 WAF 이벤트로 정의됩니다. 이 15억 개의 블록은 고객의 오리진 서버에 도달했을 HTTP 요청을 나타냅니다. 이 데이터는 우리에게 알려줍니다 :
- 백그라운드 취약점 검색의 양은 엄청납니다. 당신의 목표가 공격할 가치가 없거나 당신이 잘 알려지지 않았기 때문에 당신이 안전하다고 생각한다면 당신은 오해합니다. Verizon DBIR에 따르면, “우리가 혼합 된 은유를 허용한다면, 곰이 대량으로 3D 인쇄되고 당신을 사냥하기 위해 자동화되기 때문에이 경우 곰을 능가 할 수 없습니다.”³
- 웹 응용 프로그램이 보안이 유지되면 이러한 검색은 도둑이 흔들리는 문 손잡이보다 더 해롭지 않을 수 있으며 이러한 트래픽이 서버에 도달하도록 허용하는 것은 서버에 추가 부하를 발생시키는 것 이외에는 해롭지 않습니다. 그러나 비대칭 사이버 보안 전쟁에서 공격자는 한 번만 옳으면 되므로 미래에 공격자가 옳을 수있게됩니다. 그렇다면 왜 도둑이 문 손잡이를 흔들게합니까?
이 홈을 좀 더 자세히 살펴보기 위해 2020년 4분기부터 차단된 트래픽에 대해 자세히 살펴보겠습니다.
지난 3분기 동안 차단된 사이트 간 스크립팅(XSS) 트래픽은 2020년 2분기 1위에서 2020년 4분기 4위로 이동했으며, 이 기간 동안 트래픽은 거의 두 배로 증가하여 차단된 트래픽의 10%를 차지했습니다.
그림 1. 불과 6개월 만에 XSS 트래픽이 두 배 이상 증가했습니다.
Getting 당신의 XSS 트래픽을 알고
According OWASP(Open Web Application Security Project)의 경우, XSS 결함은 애플리케이션이 적절한 유효성 검사 또는 이스케이프 없이 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나 HTML 또는 JavaScript를 생성할 수 있는 브라우저 API를 사용하여 사용자가 제공한 데이터로 기존 웹 페이지를 업데이트할 때 발생합니다. XSS를 사용하면 공격자가 피해자의 브라우저에서 스크립트를 실행하여 사용자 세션을 하이재킹하거나 웹 사이트를 손상시키거나 사용자를 악의적인 사이트로 리디렉션할 수 있습니다.
이러한 노출은 인프라, 데이터 기밀성 및 무결성, 인터넷을 통해 전송되는 데이터의 가용성을 위협합니다. 이러한 공격은 콘텐츠에 대한 무단 액세스, 개인 식별 정보(PII)의 손실 및 개인/저작권 정보가 유포될 수 있습니다.
이 문제는 연결되고 인터넷에 노출되면 아무 것도 보이지 않기 때문에 문제가 됩니다. 서면 스캔됩니다. 새로운 웹 애플리케이션이 온라인에 접속하여 인터넷에 노출되면 테스트하여 다양한 작업이나 요청에 어떻게 반응하는지 확인합니다. 이러한 발견의 결과는 흥미로운 플롯 트위스트를 만들 수 있으며, 우리는 곧 논의 할 것입니다.
먼저, 잠재적 노출의 범위를 계속 살펴보겠습니다. 많은 웹 사이트, 웹 애플리케이션 및 서버는 회사의 보호된 내부 네트워크 외부에서 요청을 수신하고 처리합니다. 따라서 SQL 인젝션, XSS, 애플리케이션 계층에서의 DDoS(Distributed Denial-of-Service) 공격 등 OWASP에 의해 그룹화된 다양한 악의적인 위협에 취약합니다.
Verizon WAF가 탐지한 XSS 공격의 증가를 감안할 때, XSS가 2020년 MITRE CWE Top 25 목록에 선정된 것은 놀라운 일이 아닙니다.⁴
그림 2. 2020 CWE Top 25의 약점을 간략하게 나열하고 각 항목의 전체 점수를 포함합니다.
차단된 XSS 트래픽이 증가한 것처럼, XSS 악용과 관련된 국가 취약점 데이터베이스(NVD)에 문서화된 실제 취약점 수도 있습니다.
- 513 지난 3개월 동안 문서화된 XSS 취약점(매월 171건)
- 5,507 지난 3년간 문서화된 XSS 취약점(매월 153건)
- 16,936 XSS 취약점은 항상 문서화
예, 방어자는 공격자와 동일한 도구를 사용하여 취약점을 조사합니다. 따라서 악의적으로 보이는 트래픽이 존재한다고 해서 반드시 트래픽 뒤에 악의적인 의도가 있다는 것을 의미하지는 않는다는 가능성을 인식하는 것이 중요합니다. 하지만 그럴 수도 있습니다.
최소한 호기심 많은 악의적 인 행위자가 시스템을 성공적으로 스캔하면 XSS 악용을 시도 할 수 있습니다.이 모든 것이 정찰을 수행하는 정신입니다. 더 나쁜 것은 재구성 활동과 그 결과로 얻은 결과는 XSS를 통해 손상되거나 파괴적인 페이로드를 떨어 뜨리거나 SSRF(Server-side Request Forgery)와 같이 더 사악한 것에 대한 디딤돌로 사용될 수 있다는 것입니다.
Is “훌륭한 디딤돌”이라고 나는 본다.
Remember 앞에서 언급한 문손잡이-지글링 시나리오는? 이제 그 은유를 되찾아야 할 때입니다.
대부분의 XSS 트래픽 및 이벤트는 자체적으로 중요하지 않을 수 있지만 중대한 도전과 문제로 이어질 수 있습니다. 가능하다면 성공적인 타협을 위한 디딤돌이 될 수 있습니다.
XSS 공격에 성공하면 공격자가 피해자의 브라우저에서 임의의 HTML 및 JavaScript를 실행할 수 있습니다. 일반적으로 사용자는 워터링 홀 웹 사이트나 광고와 같이 공격자 제어 페이지를 가리키는 일부 악의적인 링크와 상호 작용해야 합니다.
내부적으로 규칙 ID 941100으로 지정된 2020년 4분기의 최상위 규칙 위반을 살펴보겠습니다. 이 위반은 최상위 페이로드 중 하나에 매핑되어 XSS를 디딤돌 공격으로 사용할 수 있는 능력을 보여 줍니다.
“><스크립트 >경고(String.fromCharCode(88,83,83))</script>”
이것은 htmlpurifier.org.⁵ 같은 많은 코드 저장소에서 매우 일반적인 XSS 테스트 문자열입니다. 이 특정 페이로드가 작동하는지 여부를 확인하려고 할 때 “XSS”라는 문자열이 있는 팝업 경고 상자가 표시되며 공격자에게 특정 웹 사이트가 리플렉션된 XSS에 취약하다는 것을 즉시 확인합니다.
공격자가 변형된 XSS가 존재하는지 확인하면 “변형된 공격은 전자 메일 메시지 또는 다른 웹 사이트와 같은 다른 경로를 통해 전달됩니다. 사용자가 악의적인 링크를 클릭하거나, 특수하게 조작된 양식을 제출하거나, 심지어 악의적인 사이트를 탐색하도록 속았을 때 주입된 코드는 취약한 웹 사이트로 이동하며, 이는 사용자의 브라우저에 공격을 반영합니다.”⁶
그림 3. 사이버 공격자가 XSS 취약점을 활용하는 방법
이 공격은 “사용자 세션 쿠키의 공개”를 포함하여 공격 대상 웹 사이트에서 사용자가 수행할 수 있는 모든 작업을 수행할 수 있습니다. 이를 통해 공격자가 사용자 세션을 가로채고 계정을 탈취할 수 있습니다.⁷ 예를 들어 사용자 대신 제출된 사용자 암호를 변경하는 스크립트는 계정 탈취를 초래할 수 있습니다.
또 다른 디딤돌 예가 있습니다. 공개적으로 문서화 된 또 다른 사례에서 SSRF 공격은 원래 XSS 악용을 통해 시작되었으며 보안 연구원은 “이미지 내부의 XSS에서 서버에서 임의의 로컬 파일 읽기로 에스컬레이션할 수 있었습니다.”⁸
모든 연구원 (또는 사이버 범죄)이 XSS 악용을 더 의미 있는 것으로 연결시킬 만큼 인내심이 충분하지는 않습니다. 그러나 더 크고 더 나은 것을 위해 XSS를 보유하는 것은 버그 현상금 프로그램에서 큰 상을 얻으려는 일부 연구자들에게 일반적인 방법으로 보입니다.
Mitigation 및 defense
데이터가 없으면 결정을 내리기가 어렵습니다. 그러나 상황을 파악하고 나면 원하는 결과를 얻을 수 있는 경로를 파악하기가 더 쉬워집니다. 다음은 XSS 트래픽이 네트워크와 비즈니스에 미치는 위험을 완화하는 데 도움이 되는 팁과 리소스 모음입니다.
- 인터넷에 연결된 모든 장치를 알고 있어야 하며 레거시 시스템과 테스트 시스템 모두 강화 또는 오프라인으로 전환해야 합니다. 이는 개발 팀이 몇 번의 클릭만으로 또는 양식을 제출하여 시스템을 스핀업할 수 있는 클라우드 인프라 시대에 특히 중요합니다.
- 웹 서버를 적절하게 구성하고 강화합니다. Center for Internet Securities Benchmarks와 같은 도구를 사용하여 서버의 컨트롤을 구성하는 방법을 이해하는 것이 좋습니다. MITM 공격으로부터 보호할 수 있도록 TLS 구성을 적절히 구성하십시오.
- 인터넷에 연결된 모든 서버를 정기적으로 패치합니다. 일반적으로 사용되는 프레임워크가 XSS에 취약할 수 있습니다. 2021년 2월 현재, MITRE의 ATT&CK 데이터베이스에는 약 17,000개의 취약점과 약점이 XSS와 연관되어 있다.
- 보안 강화의 효과를 주기적으로 확인합니다. OWASP ZAP 또는 Kali Linux의 유사한 취약점 검사 도구와 같이 공격자가 사용하는 DAST(동적 응용 프로그램 보안 테스트) 도구를 사용합니다. 또는 DAST 또는 침투 테스트 서비스를 사용하여 취약한 인터넷 연결 서버를 검색하고 검사합니다.
- 웹 애플리케이션 방화벽(WAF)을 활성화하여 일반적인 공격을 차단합니다.
- 발견된 취약점을 즉시 차단하도록 WAF를 최신 상태로 유지하여 응용 프로그램 팀이 수정 프로그램을 배포할 수 있도록 합니다. 새로 발견된 취약점으로부터 보호하기 위한 새로운 규칙이 제공되면 WAF를 업데이트합니다.
- 로깅을 활성화하고 해당 로그를 검사합니다.
- 고도로 이중화된 권한 DNS 서비스와 고도로 분산된 DDoS 보호 및 웹 가속화 서비스(예: CDN)를 사용하여 대규모 공격으로부터 웹사이트와 중요 네트워크 인프라를 보호합니다.
data로 시작
콘텐츠를 전송하도록 앱을 세밀하게 조정하고 위험을 완화하는 데 도움이 되는 강력한 보안 제어 기능을 갖추고 있을 수 있으며, 내부로 들어오는 공격을 차단할 수도 있습니다. 그럼에도 불구하고 잠재적으로 유해한 트래픽이 네트워크에 들어오게 하는 이유는 무엇입니까? 정책이 누락되거나 제어가 우회될 가능성이 있는 이유는 무엇입니까?
Verizon Media Security 고객에게는 위협으로부터 보호할 수 있는 두 가지 기능이 있습니다.
- 당사는 잠재적으로 유해한(또는 적어도 도움이 되지 않는) 네트워크 트래픽이 귀하의 사이트를 공격하고 있다고 봅니다.
- 통합된 Verizon Media WAF는 악성 트래픽이 자동으로 문제가 되기 전에 차단하도록 설정할 수 있습니다.
웹 애플리케이션의 보안을 개선하기 위한 중요한 단계를 밟으시려면 지금 당사에 문의하여 자세한 내용을 알아보십시오.
참고 문헌
- Verizon, “2020 데이터 유출 조사 보고서 ”, Verizon.com/business.com, enterprise.verizon.com/resources/reports/dbir/. 7페이지.
- ibid, 88페이지.
- ibid, 23페이지.
- CWE, “2020 CWE 가장 위험한 소프트웨어 25가지 약점,” CWE.mitre.org, cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html.
- HTMLpurifier, “HTML 정수기 XSS 공격 Smoketest,” HTMLpurifier.org, htmlpurifier.org/live/smoketests/xssAttacks.php.
- OWASP, “ 사이트 간 스크립팅(XSS),” owasp.org, owasp.org/www-community/attacks/xss/
- ibid
- Buerhaus, Brett, “ PhantomJS 이미지 렌더링에서 SSRF/local-file read, buer.haus로 XSS 에스컬레이션. 2020년 6월 29일.