최근 웹사이트는 매쉬업, 소셜 서비스 등으로 다양한 출처의 리소스를 상호 참조하는 형태로 변화하면서 해킹 시도도 사이트를 직접 공격하기보다 서비스 주체와 연계 서비스, 클라이언트가 상호 작용하는 접점에 악성스크립트를 삽입하는 공격이 증가하고 있다. 본 논문에서는 웹사이트 이용 시 신뢰관계에 있는 여러 출처로부터 다운받은 웹컨텐츠의 HTML 코드와 자바스크립트 코드가 클라이언트 브라우저에서 구동 시 삽입된 악성스크립트를 원격의 검증시스템으로부터 탐지하는 모델을 제안한다. 서비스 주체의 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 웹컨텐츠의 검증 요소를 추출하여 검증 평가결과를 화이트, 그레이, 블랙 리스트로 데이터베이스에 저장하였다. 실험평가를 통해 제안한 시스템이 악성스크립트를 효율적으로 탐지하여 클라이언트의 보안이 향상됨을 확인하였다.
최근 웹사이트는 매쉬업, 소셜 서비스 등으로 다양한 출처의 리소스를 상호 참조하는 형태로 변화하면서 해킹 시도도 사이트를 직접 공격하기보다 서비스 주체와 연계 서비스, 클라이언트가 상호 작용하는 접점에 악성스크립트를 삽입하는 공격이 증가하고 있다. 본 논문에서는 웹사이트 이용 시 신뢰관계에 있는 여러 출처로부터 다운받은 웹컨텐츠의 HTML 코드와 자바스크립트 코드가 클라이언트 브라우저에서 구동 시 삽입된 악성스크립트를 원격의 검증시스템으로부터 탐지하는 모델을 제안한다. 서비스 주체의 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 웹컨텐츠의 검증 요소를 추출하여 검증 평가결과를 화이트, 그레이, 블랙 리스트로 데이터베이스에 저장하였다. 실험평가를 통해 제안한 시스템이 악성스크립트를 효율적으로 탐지하여 클라이언트의 보안이 향상됨을 확인하였다.
Sharing cross-site resources has been adopted by many recent websites in the forms of service-mashup and social network services. In this change, exploitation of the new vulnerabilities increases, which includes inserting malicious codes into the interaction points between clients and services inste...
Sharing cross-site resources has been adopted by many recent websites in the forms of service-mashup and social network services. In this change, exploitation of the new vulnerabilities increases, which includes inserting malicious codes into the interaction points between clients and services instead of attacking the websites directly. In this paper, we present a system model to identify malicious script codes in the web contents by means of a remote verification while the web contents downloaded from multiple trusted origins are executed in a client's browser space. Our system classifies verification items according to the origin of request based on the information on the service code implementation and stores the verification results into three databases composed of white, gray, and black lists. Through the experimental evaluations, we have confirmed that our system provides clients with increased security by effectively detecting malicious scripts in the mashup web environment.
Sharing cross-site resources has been adopted by many recent websites in the forms of service-mashup and social network services. In this change, exploitation of the new vulnerabilities increases, which includes inserting malicious codes into the interaction points between clients and services instead of attacking the websites directly. In this paper, we present a system model to identify malicious script codes in the web contents by means of a remote verification while the web contents downloaded from multiple trusted origins are executed in a client's browser space. Our system classifies verification items according to the origin of request based on the information on the service code implementation and stores the verification results into three databases composed of white, gray, and black lists. Through the experimental evaluations, we have confirmed that our system provides clients with increased security by effectively detecting malicious scripts in the mashup web environment.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서 제안한 원격코드검증을 통한 웹컨텐츠의 악성스크립트 탐지 모델의 효과를 확인하기 위하여 실험을 하였다. 아파치 웹서버를 이용하여 실험을 위한 사이트를 구축하고 악성스크립트를 삽입하였다.
본 논문에서는 신뢰관계에 있는 여러 출처로부터 클라이언트 브라우저로 다운받은 웹컨텐츠를 원격검증시스템에게 검증 요청하여 악성스크립트의 삽입 여부를 탐지하는 모델을 제안하였다. 서비스의 내부 동작에 대한 정보가 부족한 클라이언트에서는 컨텐츠의 악성행위 여부를 판단하기 어렵지만 원격검증시스템은 서비스 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 검증 요소를 추출하여 검증 평가결과를 화이트 리스트, 그레이 리스트, 블랙리스트로 데이터베이스화하여 검증 효율을 높일 수 있음을 확인하였다.
본 논문에서는 웹사이트 이용 시 신뢰관계에 있는 여러 출처로부터 다운받은 웹컨텐츠의 HTML 코드와 자바스크립트 코드가 클라이언트 브라우저에서 구동 시 삽입된 악성스크립트를 원격의 검증시스템으로부터 탐지하는 모델을 제안한다. 서비스 주체의 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 웹컨텐츠의 검증 요소를 추출하여 검증 평가결과를 화이트 리스트, 그레이 리스트, 블랙 리스트로 데이터베이스화하여 사전 검증평가에 따른 검증 효율을 확인한다.
본 장에서는 인터넷 이용자가 웹사이트 접속 시, 삽입된 악성스크립트의 실행이나 피싱 사이트로의 접속 유도로 발생하는 피해를 막기 위한 기존의 다양한 대응 기법과 한계 점을 파악하였다.
요청 분류와 검증 요소를 기초로 검증 결과를 목록으로 구축하여 관리한다. 검증 목록 판별을 위해 먼저 알려진 악성스크립트에 대한 시그니처(Malicious Signature) 스캐닝을 수행한다.
동일출처에서 발생하는 요청(Same Origin Request)은 SOP에 의해 안전한 것으로 간주하나 해커에 의해 요청 변조가 발생할 수 있다. 이에 출처(Origin) URL과 목적지(Destination) URL간 요청이 서비스에 의해 의도된 요청인지 악성스크립트에 의해 임의로 발생한 요청인지를 판단한다. 크로스 도메인간 발생하는 요청(Cross Domain Request)은 서비스 연계를 위해 의도된 요청인지를 검사한다.
제안 방법
브라우저가 서비스 이용을 위해 서버로부터 다운로드한 웹컨텐츠에서 사용자의 동작없이 페이지로딩만으로 요청이 생성되거나 페이지 원본의 DOM을 수정하여 새로운 요청을 유도하는 요소에 대해 검증한다. (그림 3)의 사례와 같이 HTML 태그 속성에 따라 GET 요청이 자동으로 발생하기 때문에 이러한 경우를 검증하기 위해 태그 속성이 URL 형태인 속성을 검출하여 출처 페이지에서 의도한 요청인지, 요청에 의해 전달되는 파라미터 값이 안전한지 등을 검사한다.
요청 분류와 검증 요소를 기초로 검증 결과를 목록으로 구축하여 관리한다. 검증 목록 판별을 위해 먼저 알려진 악성스크립트에 대한 시그니처(Malicious Signature) 스캐닝을 수행한다. 시그니처란 악성스크립트를 분석해 내부의 특정 코드를 수집하고 데이터베이스화한 것으로 알려진 악성스크립트에 대한 탐지에 이용된다.
로컬 서버는 서버 사이드 구현 코드의 접근이 가능하므로 로컬 리소스의 구현 코드를 분석하여 단순 조회 페이지와 이용자의 세션 정보에 따라 개인정보 조회 페이지, 서버나 사용자 상태정보 변경 페이지로 구분하여 과 같이 검증을 차별화 한다.
HTTP 요청이 발생할 때 브라우저에 적용되는 보안정책에 따라 브라우저에 로딩된 HTML, 자바스크립트 변수와 함수, 세션, 쿠키 등 데이터에 접근 가능한 범위가 달라진다. 발생하는 요청과 접근 영역간의 관계에 따라 요청을 분류하고 로딩된 페이지와 요청간 상관관계와 요청에 이용되는 데이터를 검증한다.
본 논문의 제안 모델은 3.1의 요구사항에 따라 연계 서비스 형태의 웹사이트 안전성 확보를 위해 제어영역과 신뢰영역, 비신뢰영역으로 서비스를 구분하고 영역간 웹요청을 차별화하여 분석하는 방안을 제시하였다. 서버의 응답으로 브라우저에 다운로드 되어 실행되는 코드와 발생하는 웹트래픽을 웹브라우저 관점에서 수집하여 서비스 동작에 대한 상세한 정보를 보유하고 있는 원격의 검증 시스템에 안전성을 확인하도록 하였다.
페이지에 포함된 자바스크립트 코드블록과 외부참조 리소스에 대한 해시코드를 생성하여 저장한다. 분석 대상의 안전성 확인을 위해 웹스캐너로 시그니처 검사를 수행한다.
원격검증 시스템(Remote Verifier)은 웹사이트의 구현코드와 연계 서비스 정보를 사전 분석하여 URL 정보와 페이지간 상관관계, 구현코드에 대한 서명코드(Signed Code) 정보를 사전 데이터로 보유한다. 분석된 결과 구현코드에 의해 의도된 요청과 서명된 코드 블록을 화이트 리스트로 구축하여 이후 검증 시간을 단축한다. 검증 서비스(Verification Service)는 클라이언트로부터 받은 검증요청에 따라 검증목록DB를 조회한다.
브라우저가 서비스 이용을 위해 서버로부터 다운로드한 웹컨텐츠에서 사용자의 동작없이 페이지로딩만으로 요청이 생성되거나 페이지 원본의 DOM을 수정하여 새로운 요청을 유도하는 요소에 대해 검증한다. (그림 3)의 사례와 같이 HTML 태그 속성에 따라 GET 요청이 자동으로 발생하기 때문에 이러한 경우를 검증하기 위해 태그 속성이 URL 형태인 속성을 검출하여 출처 페이지에서 의도한 요청인지, 요청에 의해 전달되는 파라미터 값이 안전한지 등을 검사한다.
비신뢰영역은 서비스 연계로 보기는 어렵고 단순한 링크나 참조가 대부분이다. 비신뢰영역으로의 접속 시 접속을 생성하거나 유도하는 부분에서 민감한 데이터에 대한 접근과 외부로의 전달 여부를 확인하고 클라이언트가 컨텐츠 검증 요소를 전달하거나 검증시스템이 해당 URL 컨텐츠를 다운받아 악성 행위 여부를 검토한다.
1의 요구사항에 따라 연계 서비스 형태의 웹사이트 안전성 확보를 위해 제어영역과 신뢰영역, 비신뢰영역으로 서비스를 구분하고 영역간 웹요청을 차별화하여 분석하는 방안을 제시하였다. 서버의 응답으로 브라우저에 다운로드 되어 실행되는 코드와 발생하는 웹트래픽을 웹브라우저 관점에서 수집하여 서비스 동작에 대한 상세한 정보를 보유하고 있는 원격의 검증 시스템에 안전성을 확인하도록 하였다. 악성스크립트가 탐지되는 경우 제어영역의 코드 블록을 차단하고 신뢰영역과 비신뢰영역으로의 연결을 차단하는 방안을 제시하였다.
(그림 2)는 검증 과정 중 브라우저 내에서 이루어지는 처리과정을 도식화한 것이다. 서비스 이용을 위해 요청을 보내거나 서버로부터 온 응답에 의해 발생하는 컨텐츠 자원의 URL을 원격검증 목록과 비교한다. 검증 목록과 일치하는 경우 화이트/그레이/블랙 리스트 여부에 따라 브라우저 화면에 표시한다.
본 논문에서는 웹사이트 이용 시 신뢰관계에 있는 여러 출처로부터 다운받은 웹컨텐츠의 HTML 코드와 자바스크립트 코드가 클라이언트 브라우저에서 구동 시 삽입된 악성스크립트를 원격의 검증시스템으로부터 탐지하는 모델을 제안한다. 서비스 주체의 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 웹컨텐츠의 검증 요소를 추출하여 검증 평가결과를 화이트 리스트, 그레이 리스트, 블랙 리스트로 데이터베이스화하여 사전 검증평가에 따른 검증 효율을 확인한다.
인증이 유효하면 정상적인 요청으로 간주하나 CSRF[14], XSS[15], 인증우회 공격 등의 위험이 존재한다. 세번째로 서명코드(Signed Code)를 비교하여 스크립트 코드의 무결성을 확인한다. 서명코드는 스크립트 코드 전체에 대한 해시코드 값으로 비교하여 의도하지 않은 실행코드의 삽입이나 변경을 간단한 연산으로 검증한다.
검증 에이전트는 브라우저와 서버간 전달되는 요청과 응답을 필터링하여 검증리스트와 비교하며, 비교결과를 브라우저에 반영한다. 수집기(collector 필터)는 브라우저가 서버로 보내는 요청과 응답을 검증캐시(verifying cache)의 블랙 리스트와 비교한다. 정보추출기(Extractor)는 브라우저로 전송되는 컨텐츠의 HTML과 자바스크립트 코드를 파싱 하여 요청이 발생하는 URL 정보를 추출한다.
본 논문에서 제안한 원격코드검증을 통한 웹컨텐츠의 악성스크립트 탐지 모델의 효과를 확인하기 위하여 실험을 하였다. 아파치 웹서버를 이용하여 실험을 위한 사이트를 구축하고 악성스크립트를 삽입하였다. 악성스크립트는 [16]에서 제시한 악성스크립트 코드를 응용하고 확장하여 실험에 사용하였다.
악성스크립트 탐지 시 단순 차단으로 인한 서비스 영향을 최소화하면서 효과적인 차단을 위해 정보량과 제어권한에 따라 대응 방안을 차별화한다. 서버 측에서 제어, 신뢰, 비신뢰 영역에 따라 다음과 같이 대응한다.
서버의 응답으로 브라우저에 다운로드 되어 실행되는 코드와 발생하는 웹트래픽을 웹브라우저 관점에서 수집하여 서비스 동작에 대한 상세한 정보를 보유하고 있는 원격의 검증 시스템에 안전성을 확인하도록 하였다. 악성스크립트가 탐지되는 경우 제어영역의 코드 블록을 차단하고 신뢰영역과 비신뢰영역으로의 연결을 차단하는 방안을 제시하였다. <표 4>는 관련 연구와의 비교 결과다.
악성스크립트 탐지가 진행 중이거나 탐지 결과 위험성 판단이 보류된 경우에 해당한다. 오탐율을 감안하여 악성스크립트 여부에 대한 확정이 어려운 경우는 판단을 보류하고 별도의 보고과정을 거쳐 수동으로 코드 검토(code inspection)를 통해 최종 확정한다.
요청이 발생하는 요청 출처 페이지와 요청URL간 상관관계를 분석하여 요청의 위험성을 판단한다. 동일출처에서 발생하는 요청(Same Origin Request)은 SOP에 의해 안전한 것으로 간주하나 해커에 의해 요청 변조가 발생할 수 있다.
두번째로 검증요소의 인증요구를 확인한다. 인증이 필요한 리소스에 접근 시 웹사이트 자체에 구현된 인증 메커니즘을 이용하여 접근 여부를 판단한다. 인증이 유효하면 정상적인 요청으로 간주하나 CSRF[14], XSS[15], 인증우회 공격 등의 위험이 존재한다.
크로스 도메인간 정책부여[2,9,10,11]는 크로스 도메인 요청 시 정책에 따른 권한을 부여하는 모델로서 연계 서비스간 상호 정책 수립이 필수이며, 정책에 의한 신뢰관계를 맺은 사이트가 내포한 취약점이 전이될 수 있다. 제안 모델에서는 코드 내용을 검증 대상으로 하여 요청 출처에 동일출처, 크로스 도메인, 비신뢰 출처로 구분하여 상세한 검증을 수행한다.
3. 제안모델본 장에서는 웹사이트 이용 시 신뢰관계에 있는 여러 출처로부터 다운받은 웹컨텐츠의 HTML 코드와 자바스크립트 코드가 클라이언트 브라우저에서 구동 시 삽입된 악성스크립트를 원격의 검증서버로부터 탐지하는 모델을 제안한다.
화이트 리스트는 로컬사이트의 검사와 분석을 통해 사전 구축이 가능하며 구현 코드 변경 시 마다 화이트 리스트를 갱신하여 검증과정의 성능과 정확성을 높일 수 있다. 초기 화이트 리스트 생성을 위해 검증 대상 사이트의 서버측 소스코드를 분석하여 인증에 따른 로직의 분기 여부에 따라 페이지 목록을 생성하고 호출 가능한 페이지간 연관성을 파악한다. 페이지에 포함된 자바스크립트 코드블록과 외부참조 리소스에 대한 해시코드를 생성하여 저장한다.
클라이언트의 검증 에이전트의 역할을 수행할 프로그램을 자바 쓰레드로 구동하여 다수의 클라이언트가 동시에 웹서버를 이용하는 환경을 구축하여 악성스크립트가 삽입된 페이지로의 요청과 검증 시스템의 처리에 따른 변화를 확인하였다.
HTML 문서 안에 자바스크립트는 아래 (그림 4)와 같이 다양한 형태로 삽입이 된다. 페이지에 삽입된 인라인 스크립트 코드 블록과 원격 참조 스크립트 파일의 변경 여부를 확인하기 위해 페이지 내 모든 스크립트 코드를 추출하고 코드 전체에 대한 해시코드 값을 생성하여 코드 값으로 비교 검증한다. 코드 값이 다른 경우 악성스크립트에 이용되는 DOM 객체를 변경하거나 링크정보, 코드 동적 생성이 가능한 자바스크립트 함수 코드를 추출한다.
해커가 삽입한 악성스크립트에 의해 신뢰 사이트간 개인정보의 유출, 사용자를 가장한 요청 변조 등을 방지하기 위해 브라우저에서 요청이 생성되는 요소에 대해 검사한다. 연계 서비스와 원격지 리소스는 HTML 태그와 자바스크립트 코드를 제외한 서버 사이드 구현은 접근할 수 없다.
대상 데이터
아파치 웹서버를 이용하여 실험을 위한 사이트를 구축하고 악성스크립트를 삽입하였다. 악성스크립트는 [16]에서 제시한 악성스크립트 코드를 응용하고 확장하여 실험에 사용하였다. [16]에서는 [17]에서 제시한 대표적인 웹사이트 침해유형을 실험을 통해 연구해 볼 수 있는 샘플 악성스크립트 코드를 제시하고 있다.
데이터처리
검증은 클라이언트로부터 검증 요청을 받은 URL과 스크립트 코드를 분석하여 사전 구축한 검증 목록과 비교한다. 악성스크립트 삽입 여부가 결정되면 결과에 따라 화이트 리스트나 블랙 리스트로 저장되어 유지 관리된다.
검증 결과가 없는 경우 컨텐츠를 구성하는 데이터 중에서 악성스크립트 삽입으로 이용될 수 있는 요소들을 검증을 위해 추출한다. 추출한 각 요소에 대해 검증목록과 비교한다. 비교 결과 안전성이 확인되지 않은 요소는 원격검증서버에서 별도의 검증 과정을 거치게 된다.
성능/효과
[9]에서는 클라이언트에 정책 엔진을 두고 서버에서 제공하는 정책에 따라 크로스 도메인 요청을 허용, 거부, 수정하는 별도의 정책 모델을 제시했다. 그러나 이 연구방안은 서버와 클라이언트가 보안상 안전하다는 전제에서 서버에서 제공하는 모든 서비스에 대한 정책을 수립해야지 효과적으로 이용이 가능하다.
본 논문의 결과는 [17]에서 제시한 웹사이트 침해유형 중 현재 해결이 어려운 매쉬업 기반의 웹환경의 보안문제를 해결할 수 있음을 보여준다.
본 논문에서는 신뢰관계에 있는 여러 출처로부터 클라이언트 브라우저로 다운받은 웹컨텐츠를 원격검증시스템에게 검증 요청하여 악성스크립트의 삽입 여부를 탐지하는 모델을 제안하였다. 서비스의 내부 동작에 대한 정보가 부족한 클라이언트에서는 컨텐츠의 악성행위 여부를 판단하기 어렵지만 원격검증시스템은 서비스 구현코드 정보를 활용하여 요청 출처에 따라 검증 항목을 분류하고 검증 요소를 추출하여 검증 평가결과를 화이트 리스트, 그레이 리스트, 블랙리스트로 데이터베이스화하여 검증 효율을 높일 수 있음을 확인하였다.
후속연구
향후 실제 서비스되고 있는 웹사이트의 서비스 유형을 분류하고 구현 특성을 분석하여 제안모델을 적용 시 비용과 효과를 정량화하고 비용을 줄이며 효과를 높일 수 있도록 제안모델을 발전시키는 보완연구를 수행할 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
Cross-Origin Resource Sharing은 무엇인가?
크로스 사이트간 자원 공유 Cross-Origin Resource Sharing(CORS)[2] 는 브라우저의 Same-Origin Policy(SOP) 의 제약을 극복하기 위해 만든 W3C 표준으로, 리소스를 제공하는 측에서 어떤 도메인에서의 접근을 허용할 지‘Access-Control-Allow-Origin’ 헤더에 명시하여 클라이언트 브라우저에서 명시한 도메인간에 SOP와 같은 권한을 부여하는 정책이다. 이는 SOP의 권한을 느슨하게 하여 위험요소가 증가하게 된다.
SpyProxy는 무엇을 수행하는가?
SpyProxy[13]는 가상머신 기반의 웹 프록시로 서버와 클라이언트간 주고 받는 웹트래픽을 수집하여 행위 기반의 검출을 수행한다. 서버측 대응 방안은 서버로 들어오는 요청과 응답에 대해서만 검사하여 서드 파티 리소스에 의해 발생하는 요청이나, 외부 서버로 전달되는 요청을 감지하지 못한다.
BrowserShield는 어떤 문제가 발생할 수 있는가?
BrowserShield[12]는 HTML과 자바스크립트의 코드를 재작성하여 실행 시 웹컨텐츠의 변경이나 알려진 취약점 요소를 검사한다. 코드 변경에 따른 유연성 문제가 발생할 수 있다. 또한 스크립트 기반의 검사로 검사 요청이 브라우저에서 스크립트가 동작하여 이루어지기 때문에 스크립트 조작으로 검사를 우회할 수 있다.
A. van Kesteren, "Cross-Origin Resource Sharing", http://www.w3.org/TR/cors/, W3C Working Draft, 2010.
S. Hanna, E. Chul, R. Shin, D. Akhawe, A. Boehm, P. Saxena, and D. Song, "The emperor's new APIs: On the (in)secure usage of new client-side primitives", Web2.0 Security and Privacy Conference (W2SP), 2010.
Yahoo Developer Network's Javascript Developer Center, "JavaScript: Use a Web Proxy for Cross-Domain XML HttpRequest Calls", http://developer.yahoo.com/javascript/howto-proxy.html.
N. Provos, D. McNamee, P. Mavrommatis, K. Wang, and N. Modadugu. "The ghost in the browser analysis of web-based malware", Proc. Of the USENIX Workshop on Hot Topics in Understanding Botnets (HotBots), 2007.
Microsoft, "SmartScreen Filter | Internet Explorer 8 Security.", http://www.microsoft.com/security/filters/smartscreen.aspx.
W. Maes, T. Heyman, L. Desmet, and W. Joosen. "Browser Protection against Cross-Site Request Forgery". In Workshop on Secure Execution of Untrusted Code (SecuCode), 2009.
C. Jackson and H. J. Wang. "Subspace: Secure Cross-Domain Communication for Web Mashups". In Proceedings of the 16th International World Wide Web Conference (WWW), 2007.
F. D. Keukelaere, S. Bhola, M. Steiner, S. Chari, and S. Yoshihama. "Smash: secure component model for cross-domain mashups on unmodified browsers". In Proceeding of the 17th international conference on World Wide Web (WWW), 2008.
C. Reis, J. Dunagan, H. J. Wang, O. Dubrovsky, and S. Esmeir. "BrowserShield: Vulnerability-Driven Filtering of Dynamic HTML", In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2006.
A. Moshchuk, T. Bragin, D. Deville, S. D. Gribble, and H. M. Levy. "SpyProxy: Execution-based Detection of Malicious Web Content", In Proceedings of the 16th USENIX Security Symposium, 2007.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.