미소띠움

크로스 사이트 스크립팅, 공격 위험과 예방법 본문

Diary/Diary

크로스 사이트 스크립팅, 공격 위험과 예방법

미소띠움 2010. 10. 7. 16:02


OWASP(Open Web Application Security Project)에서는 웹 애플리케이션 환경에서 가장 중요한 위험 10가지를 선정하여 발표하고 있다. 안철수연구소 ASEC Report에서는 OWASP Top 10에 대해 집중 소개할 예정이다. 이를 통해 고객들이 웹 애플리케이션 보안의 취약점을 인지하고 예방할 수 있기를 기대한다. 지난 호 인젝션(Injection)에 이어 이번 호에는 XSS(Cross Site Scripting, 이하 XSS)에 대해 집중 소개한다.


XSS 공격은 OWASP 2010 Top 10에서는 인젝션에 이어 위험도 2위를 차지했다. 웹 애플리케이션 해킹 공격 중 하나인 XSS 공격은 웹 사이트를 변조하거나 악의적인 사이트로 유도하는 행위를 한다. 이를 통해 악성코드를 유포하거나 개인 정보를 갈취하는 등의 피해를 입히게 된다. 지금부터 XSS 공격 위험에 대해 자세히 알아보자.

 


[그림 1] XSS(크로스 사이트 스크립팅) 개괄


[그림 1]은 XSS 공격에 대한 개략적인 모습을 보여주고 있다. 
주요 내용을 살펴보면 다음과 같다.


● Threat Agents(공격자): 내•외부 사용자, 관리자를 포함한 시스템에 신뢰할 수 없는 데이터를 보낼 수 있는 사람


● Attack Vectors(공격경로): 공격자는 브라우저에서 인터프리터를 악용할 수 있는 텍스트 기반의 공격 스크립트를 전송한다. 데이터베이스의 데이터와 같은 내부 소스를 포함한 거의 모든 데이터 소스가 공격 경로로 사용될 수 있다.


● Security Weakness(보안 취약점): XSS는 가장 널리 알려진 웹 어플리케이션 보안 결함이다. XSS 결함은 어플리케이션이 적절하게 검증하거나 제한하지 않고 사용자가 제공한 데이터를 브라우저가 전송한 페이지에 포함시킬 때 발생한다. XSS결함은 Stored, Rflected, 그리고 DOM 기반 XSS. 이렇게 3가지의 알려진 형태가 있다. 대부분의 XSS 결함은 테스트나 코드 분석을 통해 아주 쉽게 탐지할 수 있다.


● Technical Impacts(기술적 영향): 공격자는 사용자 세션 하이재킹, 웹 사이트 변조, 악성 콘텐츠 삽입, 사용자 리다이렉트, 악성코드를 사용해 사용자 브라우저 하이재킹 등을 위해 사용자 브라우저에 스크립트를 실행할 수 있다.


● Business Impacts(비즈니스 영향): 영향 받는 시스템과 시스템이 처리하는 모든 데이터의 비즈니스 가치를 고려한다. 또한 취약점의 공개적 노출이 비즈니스에 미치는 영향도 고려해야 한다.


XSS 공격 예


이 애플리케이션은 신뢰할 수 없는 데이터를 검증이나 제한 처리 없이 HTML 구성에 사용한다 
 


공격자는 브라우저에서 이 ‘CC’ 변수를 아래와 같이 수정한다:
 


사용자의 세션 ID는 공격자의 웹사이트로 전송되어, 공격자는 사용자의 현재 세션을 하이재킹 할 수 있다. 공격자는 XSS를 사용해 애플리케이션의 CSRF 방어를 무력화할 수도 있다는 점에 주의 하도록 한다.


XSS 공격에 대한 대응책


XSS를 대응책으로는 활성 브라우저 콘텐츠와 신뢰할 수 없는 데이터를 항상 분리해야만 한다.


● 선호되는 방법으로는 신뢰할 수 없는 데이터가 포함 될 수 있는 HTML(body, attribute, 자바스크립트, CSS, URL) 기반 데이터 전체를 올바르게 제한하는 것이다. UI 프레임워크에서 제한 처리를 수행하지 않는다면, 개발자들은 어플리케이션 내에서 제한 처리를 포함시켜야 한다.


● 적절한 정규화와 디코딩으로 긍정적 혹은 화이트리스트 입력 검증을 수행하는 것도 XSS로부터 보호하는데 도움이 되지만, 입력에 특수문자가 필요한 어플리케이션 많이 있기 때문에 완벽한 방어책은 될 수 없다. 이 경우, 입력을 허용하기 전에 가능한 인코딩된 모든 입력을 디코딩해 길이, 문자, 포맷, 데이터 관련 업무 역할을 검증하도록 한다.


지금까지 OWASP 2010 TOP2인 크로스 사이트 스크립팅(XSS)에 대해 알아보았다. 추가적인 내용은 아래의 자료를 참고하기 바란다.@


[참고 자료]


OWASP
•OWASP XSS Prevention Cheat Sheet
•OWASP Cross-Site Scripting Article
•ESAPI Project Home Page 
•ESAPI Encoder API
•ASVS: Output Encoding/Escaping Requirements (V6)
•ASVS: Input Validation Requirements (V5)
•Testing Guide: 1st 3 Chapters on Data Validation Testing
•OWASP Code Review Guide: Chapter on XSS Review
•CWE Entry 79 on Cross-Site Scripting


출처: 안철수연구소
Comments