[논문 리뷰] Automatic Web Security Unit Testing: XSS Vulnerability Detection
이 논문은 웹 애플리케이션의 인코딩 함수를 분석하고 악성 피로드를 생성하여 그 효과성을 테스트함으로써 자동화된 방식으로 크로스사이트 스크립팅(XSS) 취약점을 탐지하는 방법을 제시한다. 이 방법은 정적 분석 도구가 놓친 0일(XSS) 취약점을 식별하고, 입력 정제 루틴에 대한 동적 단위 테스트를 통해 일반적인 XSS 취약점 유형을 효율적으로 커버한다.
Integrating security testing into the workflow of software developers not only can save resources for separate security testing but also reduce the cost of fixing security vulnerabilities by detecting them early in the development cycle. We present an automatic testing approach to detect a common type of Cross Site Scripting (XSS) vulnerability caused by improper encoding of untrusted data. We automatically extract encoding functions used in a web application to sanitize untrusted inputs and then evaluate their effectiveness by automatically generating XSS attack strings. Our evaluations show that this technique can detect 0-day XSS vulnerabilities that cannot be found by static analysis tools. We will also show that our approach can efficiently cover a common type of XSS vulnerability. This approach can be generalized to test for input validation against other types injections such as command line injection.
연구 동기 및 목표
- 보안 테스트를 소프트웨어 개발 생애주기 내에 통합하여 비용을 줄이고 취약점 탐지 시기를 개선한다.
- 웹 애플리케이션에서 잘못된 입력 인코딩으로 인해 발생하는 0일 XSS 취약점을 탐지하는 과제를 해결한다.
- 사용자 입력을 정제하는 데 사용되는 인코딩 함수의 효과성을 평가하는 자동화된 방법을 개발한다.
- XSS 보호를 위한 입력 정제 논리에 대해 효율적이고 대상 지향적인 단위 테스트를 가능하게 한다.
- 이 방법을 다른 주입 취약점(예: 명령어 주입 등)을 탐지할 수 있도록 일반화한다.
제안 방법
- 웹 애플리케이션에서 비신뢰할 수 있는 입력을 정제하는 데 사용되는 인코딩 함수를 자동으로 추출한다.
- 입력 처리의 구조와 맥락에 기반하여 악성 XSS 공격 문자열을 생성한다.
- 생성된 피로드가 정제를 우회하는지 여부를 확인함으로써 인코딩 함수의 효과성을 평가한다.
- 자동화되고 반복 가능한 보안 검증을 위해 테스트 프로세스를 단위 테스트 워크플로우에 통합한다.
- 가공된 입력 하에서 인코딩 함수의 실제 동작을 평가하기 위해 동적 분 析를 사용한다.
- 다른 주입 취약점에 적용하기 위해 피로드 생성 방식을 다양한 맥락에 맞게 조정함으로써 기술을 일반화한다.
실험 결과
연구 질문
- RQ1자동화된 단위 테스트는 정적 분석 도구가 놓친 0일 XSS 취약점을 탐지할 수 있는가?
- RQ2이 방법은 XSS를 방지하기 위해 사용되는 입력 인코딩 함수의 약점을 식별하는 데 얼마나 효과적인가?
- RQ3이 방법을 통해 일반적인 XSS 취약점 패턴에 대해 높은 코드 커버리지를 달성할 수 있는가?
- RQ4이 기술은 XSS를 초과해 다른 주입 취약점도 탐지할 수 있도록 확장할 수 있는가?
- RQ5이 방법은 기존 소프트웨어 개발 워크플로우에 얼마나 효율적으로 통합될 수 있는가?
주요 결과
- 제안된 방법은 정적 분석 도구가 탐지하지 못한 0일 XSS 취약점을 성공적으로 탐지했다.
- 특정 인코딩 함수에 대한 대상 지향적 단위 테스트를 통해 일반적인 XSS 취약점 유형에 대해 높은 커버리지를 달성했다.
- 공격 문자열의 자동 생성이 입력 정제 논리의 결함을 효과적으로 드러냈다.
- 이 기술은 초기 개발 단계에서 실제 세계의 XSS 결함을 식별하는 데 가능성을 입증했다.
- 피로드 구성 방식을 조정함으로써 이 방법은 명령어 주입과 같은 다른 주입 취약점에도 일반화 가능했으며, 이는 기술의 확장성을 입증했다.
- 보안 테스트를 단위 테스트 워크플로우에 통합함으로써 배포 후 취약점 수정 비용과 노력이 감소했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.