웹 서비스의 증가와 자동화된 공격 도구의 발달로 최근 대부분의 악성코드 유포 경로는 웹 서비스를 통하여 이루어지고 있다. 또한 웹의 기본 언어인 자바스크립트를 이용한 난독화 기법을 통해 악성코드 은닉 사이트의 URL이나 공격 코드를 숨기기 때문에, 기존 패턴 매칭 기반의 네트워크 보안 솔루션으로는 탐지에 한계가 존재하게 된다. 이를 해결하기 위하여 사용자의 웹브라우저에서 악성 자바스크립트를 탐지하기 위한 여러 방안이 제시되었지만, 최근 APT공격과 같이 특정 기업이나 조직 네트워크에 침투하기 위한 고도화된 공격에 대응하기에는 한계가 존재한다. 이런 유형의 공격에 대응하기 위해, 외부에서 유입되는 트래픽에 대해 난독화된 악성코드가 웹을 통해 유입되는지 일괄적인 탐지가 필요하며, 기존 패턴 매칭 기반 솔루션에서 탐지율의 한계를 극복하기 위해 난독화된 자바스크립트를 복호화 하여 숨겨진 악성코드를 탐지할 수 있는 새로운 방법이 필요하다. 본 논문에서는 오픈소스인 Jsunpack-n[1] 을 개량하여 자바스크립트의 함수 오버라이딩 기법과 별도의 자바스크립트 인터프리터를 통해 악성코드에 적용된 난독화 기법에 상관없이 숨겨진 악성코드를 자동적으로 탐지할 수 있는 도구를 제안한다.
웹 서비스의 증가와 자동화된 공격 도구의 발달로 최근 대부분의 악성코드 유포 경로는 웹 서비스를 통하여 이루어지고 있다. 또한 웹의 기본 언어인 자바스크립트를 이용한 난독화 기법을 통해 악성코드 은닉 사이트의 URL이나 공격 코드를 숨기기 때문에, 기존 패턴 매칭 기반의 네트워크 보안 솔루션으로는 탐지에 한계가 존재하게 된다. 이를 해결하기 위하여 사용자의 웹브라우저에서 악성 자바스크립트를 탐지하기 위한 여러 방안이 제시되었지만, 최근 APT공격과 같이 특정 기업이나 조직 네트워크에 침투하기 위한 고도화된 공격에 대응하기에는 한계가 존재한다. 이런 유형의 공격에 대응하기 위해, 외부에서 유입되는 트래픽에 대해 난독화된 악성코드가 웹을 통해 유입되는지 일괄적인 탐지가 필요하며, 기존 패턴 매칭 기반 솔루션에서 탐지율의 한계를 극복하기 위해 난독화된 자바스크립트를 복호화 하여 숨겨진 악성코드를 탐지할 수 있는 새로운 방법이 필요하다. 본 논문에서는 오픈소스인 Jsunpack-n[1] 을 개량하여 자바스크립트의 함수 오버라이딩 기법과 별도의 자바스크립트 인터프리터를 통해 악성코드에 적용된 난독화 기법에 상관없이 숨겨진 악성코드를 자동적으로 탐지할 수 있는 도구를 제안한다.
With the growth of Web services and the development of web exploit toolkits, web-based malware has increased dramatically. Using Javascript Obfuscation, recent web-based malware hide a malicious URL and the exploit code. Thus, pattern matching for network intrusion detection systems has difficulty o...
With the growth of Web services and the development of web exploit toolkits, web-based malware has increased dramatically. Using Javascript Obfuscation, recent web-based malware hide a malicious URL and the exploit code. Thus, pattern matching for network intrusion detection systems has difficulty of detecting malware. Though various methods have proposed to detect Javascript malware on a users' web browser, the overall detection is needed to counter advanced attacks such as APTs(Advanced Persistent Treats), aimed at penetration into a certain an organization's intranet. To overcome the limitation of previous pattern matching for network intrusion detection systems, a novel deobfuscating method to handle obfuscated Javascript is needed. In this paper, we propose a framework for effective hidden malware detection through an automated deobfuscation regardless of advanced obfuscation techniques with overriding JavaScript functions and a separate JavaScript interpreter through to improve jsunpack-n.
With the growth of Web services and the development of web exploit toolkits, web-based malware has increased dramatically. Using Javascript Obfuscation, recent web-based malware hide a malicious URL and the exploit code. Thus, pattern matching for network intrusion detection systems has difficulty of detecting malware. Though various methods have proposed to detect Javascript malware on a users' web browser, the overall detection is needed to counter advanced attacks such as APTs(Advanced Persistent Treats), aimed at penetration into a certain an organization's intranet. To overcome the limitation of previous pattern matching for network intrusion detection systems, a novel deobfuscating method to handle obfuscated Javascript is needed. In this paper, we propose a framework for effective hidden malware detection through an automated deobfuscation regardless of advanced obfuscation techniques with overriding JavaScript functions and a separate JavaScript interpreter through to improve jsunpack-n.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이와 같은 상황에서 기존 패턴 매칭 기반 탐지의 한계를 극복하기 위해서는 난독화된 자바스크립트를 자동 복호화 하여 획득한 원문에서 악성코드 은닉 사이트 URL이나 별도의 공격 코드를 탐지하는 기술이 필요하다. 따라서 본 논문에서는 자바스크립트 언어를 정의하고 실행할 수 있는 별도의 인터프리터를 이용한 자바스크립트 함수의 오버라이딩(Overriding) 기법을 통해 난독화 기법이나 다중 난독화에 상관없이 자동 복호화를 구현하는 방안을 제시하고, 관련된 오픈소스를 활용하여 네트워크 구간에서의 난독화된 악성 자바스크립트에 대한 자동 복호화 및 악성코드 은닉 사이트URL 과 공격 코드를 탐지할 수 있는 동적 탐지 도구를 제안하고자 한다.
제안 방법
본 장에서는 우선적으로 최근 자바스크립트의 난독화 기법을 이용한 악성코드 은닉 방법을 살펴보고 기존의 난독화된 자바스크립트 탐지에 관한 연구 결과와 현재 개발된 복호화 도구들의 특징에 관해 살펴본 뒤, 오픈소스로 개발된 Jsunpack-n의 특징과 문제점을 파악하였다.
복호화를 위해 분석할 데이터 입력 형식을 크게 두 가지로 나누어 네트워크 트래픽 모니터링 및 별도의 대상 파일 경로를 지정해주는 정적 입력형식과, 분석을 수행할 웹 사이트의 URL을 입력하여 해당 URL 에서 연결되는 페이지들을 크롤링 하는 동적 입력형식으로 구현하게 된다. 정적 입력형식에서 분석되는 파일 내에 URL 정보가 존재할 경우 별도의 옵션을 통해 해당 URL을 크롤링 하여 연관된 모든 정보를 수집하게 된다.
네트워크 인터페이스로 유입되는 트래픽에 대한 모니터링 및 IP 계층에서 데이터그램의 분할된 조각의 재조합과 TCP 스트림 데이터의 리어셈블링을 통해 패킷 데이터를 저장한다. 해당 프로그램에서는 libnids(NIDS, Network Intrusion Detection System)라이브러리의 python 버전을 사용하여 해당 기능을 구현하게 된다.
TCP 스트림 데이터에서 GZIP으로 압축된 HTTP 형식의 데이터를 복호화하고 난독화된 자바스크립트 데이터 추출 및 PDF , SWF 형식의 파일 데이터를 추출하고 파일 내부의 자바스크립트 데이터를 추출한다. 해당 프로그램에서는 오픈소스로 Junpack-n 에 포함된 모듈을 사용하여 해당 기능을 구현하게 된다.
웹브라우저의 종류와 버전이 다양하고, PDF 리더의 버전에 따라 해석되는 파일 구조가 상이할 수 있기 때문에 실제 다양한 환경에서 자바스크립트가 실행되는 것과 같은 가상 브라우징 환경 구현이 필요하다. 이를 위해 해당 프로그램에서는 복호화 실행전 [표 6] 와 같이 별도로 브라우징 환경 값을 설정하는 모듈을 적용하여 해당 기능을 구현하게 된다.
5 에서 소개한 Jsunpack-n 은 이미 공개된 오픈소스로도 난독화된 자바스크립트의 복호화 작업에 활용될 수 있지만 공격자들의 오픈된 소스코드 분석이 용이하여 이를 이용한 복호화 방지 코드 추가 가능성이 존재하며, 여러 자바스크립트 난독화 기법을 테스트한 결과 복호화가 불가능한 난독화 기법이 존재하는 취약점을 가지고 있다. 본 장에서는 Jsunpack-n 의 오픈소스를 활용하여 기존 소스에서의 한계점을 해결하고 기능을 확장하여 네트워크 기반에서 자바스크립트의 자동 복호화를 통해 악성코드의 유입을 사전 차단할 수 있는 도구를 제시한다.
Anti-Deobfuscation 이란 자바스크립트 인터프리터를 통한 난독화된 코드의 복호화 기법을 차단하기 위하여 악성 스크립트 상에서 해당 스크립트의 실행 환경을 판별하여 실제 브라우저 환경이 아닐 경우 별도의 인터프리터를 통한 분석행위로 간주하여 해당 스크립트의 분석을 사전 차단하는 코드를 말한다. 총 3가지 경우의 Anti-Deobfuscation 이 발생 가능한 코드를 수정하여 업데이트 하였다.
이를 해결하기 위하여 입력 값에 ‘/’ 문자열이 포함되지 않도록 분석 파일의 경로를 프로그램 실행 지점 상에 동일한 경로로 이동하여 작업을 수행하도록 수정하였다.
이를 해결하기 위하여 Spidermonkey를 이용한 자바스크립트 실행전에 window script encoder 에 의해 난독화된 코드에서 볼 수 있는“VBScript.encode”, “Jscript.encode” 문자열을 검색하여 난독화 여부를 판단한 뒤, 복호화 작업을 별도로 선행한 뒤에 자바스크립트 인터프리터에 의해 실행이 되도록 수정하였다.
이를 이용하여 자바스크립트 코드 실행 시에 Jsunpack-n에서 별도로 선언한 자바스크립트 전역 변수 또는 객체의 이름을 검색하는 공격코드를 이용하게 되면 해당 이름이 발견될 경우 별도의 자바스크립트 인터프리터 환경을 탐지할 수 있게 된다. 이와 같은 방법으로 별도의 인터프리터 환경을 탐지할 수 없도록 기존 Jsunpack-n에서 선언된 전역 변수명과 객체들의 이름이 랜덤하게 선언되도록 수정하였다.
그러나 객체의 유형에 따라 다른 기능을 가지게 되는데, 특히 객체가 문자열이 아닌 함수일 경우에는 해당 기능함수의 생성자나 객체 타입을 반환하게 된다. 이를 이용하여 자바스크립트 오버라이딩을 위하여 사전 정의된 자바스크립트 기능함수에 대한 탐지를 할 수 있게 된다. 예를 들어, 난독화된 자바스크립트 코드에서 app.
encode” 문자열을 검색하여 난독화 여부를 판단한 뒤, 복호화 작업을 별도로 선행한 뒤에 자바스크립트 인터프리터에 의해 실행이 되도록 수정하였다. window script encoder에 대한 복호화 작업은 인터넷상에 암호화에 사용된 키값이 공개되어 있기 때문에 Brownstone 이 작성한 window script decoder[15] 소스코드를 이용하여 모듈을 추가하였다.
복호화된 자바스크립트 코드는 문장 간의 공백이나 줄 바꿈 처리가 되어있지 않아 식별이 어렵기 때문에 가독성을 향상시키기 위하여 js-beautify[16] python 모듈을 프로그램의 복호화 단계에 적용하여 가독성을 향상시켰으며 크롤인 되는 URL의 연결 관계를 트리 형 그래프로 표현하여 복호화 및 악성코드 분석 결과를 [그림 11]과 같이 HTML 형식으로 상세 정리하여 리포팅 할 수 있는 모듈을 추가하였다.
네트워크 구간에서 해당 도구를 이용하여 실시간으로 복호화 작업이 이루어질 때 출력되는 정보들을 Apache 웹 서버에서 웹 페이지 형식으로 그래프들을 확인할 수 있도록 [그림 12]와 같이 일정한 시간 간격으로 그래프 이미지를 생성하여 웹페이지에 출력하는 기능을 추가하였다. 그래프 생성에 필요한 모듈은 Google Chart Tools[17] 에서 제공하는 온라인 서비스를 이용하여 그래프 이미지를 생성하였다.
3장에서 제안한 난독화된 악성 자바스크립트의 자동 복호화 도구의 실제 적용을 위해 [그림 15]와 같이 기본적인 보안 솔루션이 구성된 사내망 내부에 약 10여대의 가상 클라이언트를 구성한 뒤, 네트워크 장비인 스위치의 미러링 포트를 통하여 클라이언트에서 전송되는 트래픽을 모니터링 할 수 있도록 환경을 구성하였다.
다양한 자바스크립트 난독화 방식에서 필수적인 요소가 되는 주요 자바스크립트 기능함수와 문자열 인코딩 기법에 대한 복호화 가능 여부와 제안 모델인 기존 오픈소스 Jsunpack-n에서 복호화가 불가능하던 코드에 대한 복호화 가능 여부, 난독화 전용 도구를 이용한 코드와 웹 공격용 툴킷에 대한 탐지 가능 여부를 확인하였다. 실험 결과 [표 8]과 같이 대부분의 자바스크립트 난독화 기법에 대한 복호화와 이를 통한 악성코드의 탐지가 가능하였지만 jjencode 방식의 난독화 전용 도구와 Blockhole Exploit Kit에서 일부 복호화가 불가능한 코드가 존재하였다.
실제 환경에서 난독화된 악성 자바스크립트를 확인 하기 위해서는 악성URL 에 인위적으로 접속하는 과정이 필요하며 이를 위하여 실시간으로 악성코드 샘플을 수집하여 정보를 제공하는 사이트의 정보를 활용하여 테스트를 진행하였다. 악성코드 샘플을 제공하는 사이트들은 다수 존재하지만 본 실험 목적에 부합되는 정보를 제공해주는 사이트인 Malware Domain List[18], CLEAN MX realtime database[19] 두 사이트에서 난독화된 자바스크립트를 포함하는 URL 정보를 수집하였다.
대상 데이터
실제 환경에서 난독화된 악성 자바스크립트를 확인 하기 위해서는 악성URL 에 인위적으로 접속하는 과정이 필요하며 이를 위하여 실시간으로 악성코드 샘플을 수집하여 정보를 제공하는 사이트의 정보를 활용하여 테스트를 진행하였다. 악성코드 샘플을 제공하는 사이트들은 다수 존재하지만 본 실험 목적에 부합되는 정보를 제공해주는 사이트인 Malware Domain List[18], CLEAN MX realtime database[19] 두 사이트에서 난독화된 자바스크립트를 포함하는 URL 정보를 수집하였다. Malware Domain List 에서는 [그림 16]과 같이 “Description“ 행에서“exploit“ 이라는 문자열로 검색된 현재 활성화된 URL 들의 목록을 추출하였으며 CLEAN MX realtime database 에서는 [그림 17]과 같이”Response“ 행에 ”alive“ 문자열이 들어가고 ”Virusname“ 행에서 와일드카드를 이용하여 html 문자가 포함된 모든 결과를 확인할 수 있도록”%html%“ 문자열로 검색된 URL들의 목록을 추출하였다.
이론/모형
TCP 스트림 데이터에서 GZIP으로 압축된 HTTP 형식의 데이터를 복호화하고 난독화된 자바스크립트 데이터 추출 및 PDF , SWF 형식의 파일 데이터를 추출하고 파일 내부의 자바스크립트 데이터를 추출한다. 해당 프로그램에서는 오픈소스로 Junpack-n 에 포함된 모듈을 사용하여 해당 기능을 구현하게 된다.
네트워크 구간에서 해당 도구를 이용하여 실시간으로 복호화 작업이 이루어질 때 출력되는 정보들을 Apache 웹 서버에서 웹 페이지 형식으로 그래프들을 확인할 수 있도록 [그림 12]와 같이 일정한 시간 간격으로 그래프 이미지를 생성하여 웹페이지에 출력하는 기능을 추가하였다. 그래프 생성에 필요한 모듈은 Google Chart Tools[17] 에서 제공하는 온라인 서비스를 이용하여 그래프 이미지를 생성하였다.
성능/효과
본 논문의 주제와 같이 네트워크 구간에서의 난독화된 악성 자바스크립트의 복호화를 위해서는 별도의 자바스크립트 인터프리터를 이용하여 2.3에서 설명한 함수 오버라이딩을 통해 복호화 작업을 수행하는 것이 적합하다. 2.
3에서 설명한 함수 오버라이딩을 통해 복호화 작업을 수행하는 것이 적합하다. 2.2.2에서 조사한 자바스크립트 복호화 도구들의 기능과 확장성을 비교하여 본 논문의 주제에 활용될 수 있는 소스를 확인한 결과 Jsunpack-n 이 가장 적합한 도구로 판단되었다. Jsunpack-n은 현재 Google Code Project에서 오픈소스로 공개된 도구로서 Blake Hartstein 이 제작하여 Shmoocon 2010 컨퍼런스에서 발표한 도구이다.
다양한 자바스크립트 난독화 방식에서 필수적인 요소가 되는 주요 자바스크립트 기능함수와 문자열 인코딩 기법에 대한 복호화 가능 여부와 제안 모델인 기존 오픈소스 Jsunpack-n에서 복호화가 불가능하던 코드에 대한 복호화 가능 여부, 난독화 전용 도구를 이용한 코드와 웹 공격용 툴킷에 대한 탐지 가능 여부를 확인하였다. 실험 결과 [표 8]과 같이 대부분의 자바스크립트 난독화 기법에 대한 복호화와 이를 통한 악성코드의 탐지가 가능하였지만 jjencode 방식의 난독화 전용 도구와 Blockhole Exploit Kit에서 일부 복호화가 불가능한 코드가 존재하였다. 확인결과 jjencode 난독화 도구는 기존 난독화 기법과 다르게 2-3개의 문자열로 구성된 난독화 코드를 만들어내어 별도의 자바스크립트 인터프리터를 이용한 실행이 불가능하였으며, Blackhole Exploit Kit 에서는 Java Applet 취약점 공격 관련 코드가 자바스크립트 인터프리터에서 실행할 수 없기 때문에 탐지가 안 되는 것으로 확인되었다.
실험 결과 [표 8]과 같이 대부분의 자바스크립트 난독화 기법에 대한 복호화와 이를 통한 악성코드의 탐지가 가능하였지만 jjencode 방식의 난독화 전용 도구와 Blockhole Exploit Kit에서 일부 복호화가 불가능한 코드가 존재하였다. 확인결과 jjencode 난독화 도구는 기존 난독화 기법과 다르게 2-3개의 문자열로 구성된 난독화 코드를 만들어내어 별도의 자바스크립트 인터프리터를 이용한 실행이 불가능하였으며, Blackhole Exploit Kit 에서는 Java Applet 취약점 공격 관련 코드가 자바스크립트 인터프리터에서 실행할 수 없기 때문에 탐지가 안 되는 것으로 확인되었다.
실험 결과 “Malware Domain List” 의 악성 URL 에서는 Google Safe Browsing 에 비해 약 3%, McAfee Site Advisor 에 비해 약 8% 의 탐지율 향상을 확인하였으며, “Clean MX realtime database” 의 악성 URL 에서는 Google Safe Browsing, McAfee Site Advisor 에 비해 약 13%의 탐지율 향상을 확인할 수 있었다.
실험 결과 “Malware Domain List” 의 악성 URL 에서는 Google Safe Browsing 에 비해 약 3%, McAfee Site Advisor 에 비해 약 8% 의 탐지율 향상을 확인하였으며, “Clean MX realtime database” 의 악성 URL 에서는 Google Safe Browsing, McAfee Site Advisor 에 비해 약 13%의 탐지율 향상을 확인할 수 있었다. 수집된 악성 URL 중 사이트가 차단되거나 자바스크립트 난독화 코드가 포함되지 않은 경우를 제외하게 되면 기존 솔루션보다 탐지율이 더욱 향상된 것으로 확인할 수 있다.
이러한 점에서 본 논문을 통해 제안한 도구는 여러 자바스크립트 난독화 기법에 상관없이 범용적인 복호화 작업을 수행할 수 있기 때문에 패턴 매칭 기반의 보안 솔루션의 한계를 극복할 수 있는 좋은 대안이 될 수 있다. 제안 모델을 활용하기 위한 방안으로 기존의 IPS , 웹 방화벽과 같은 패턴 매칭 기반의 보안 장비와 결합하여 해당 도구를 통해 복호화된 데이터를 기존 보안 솔루션의 패턴을 통해 탐지하여 기존 보안 장비와의 결합을 통해 탐지율을 향상시킬 수 있는 방안도 존재하며, 미러링 포트를 연결하거나 외부 네트워크와의 접점에 모니터링 서버를 구축하여 별도의 보안 솔루션으로도 활용이 가능하다. 또한 허니팟/허니넷과 같은 의도적으로 설치해 둔 시스템의 구성 요소로서 시스템의 직접 감염을 통한 분석 절차 없이 악성코드가 포함된 URL 에 대한 탐지 작업을 수행할 수 있다.
후속연구
본 논문에서는 난독화된 자바스크립트의 복호화 가능 여부와 포함된 악성코드에 대한 탐지 여부를 중점적으로 확인해야 하기 때문에 다양한 난독화 방식의 자바스크립트 샘플 파일에 대한 복호화 테스트와 실제 환경에서의 악성 URL 접근 시 전송되는 악성 자바스크립트에 대한 탐지여부의 확인이 필요하다.
또한 자바스크립트의 난독화 기법을 조금씩 바꿔가며 패턴 매칭 기반의 보안 솔루션들을 우회하여 지속적으로 대량 유포가 이루어지고 있기 때문에 이에 대한 한계점을 극복하기 위하여 난독화된 자바스크립트 코드에 대한 자동 복호화 방안이 반드시 필요한 상황이다. 이러한 점에서 본 논문을 통해 제안한 도구는 여러 자바스크립트 난독화 기법에 상관없이 범용적인 복호화 작업을 수행할 수 있기 때문에 패턴 매칭 기반의 보안 솔루션의 한계를 극복할 수 있는 좋은 대안이 될 수 있다. 제안 모델을 활용하기 위한 방안으로 기존의 IPS , 웹 방화벽과 같은 패턴 매칭 기반의 보안 장비와 결합하여 해당 도구를 통해 복호화된 데이터를 기존 보안 솔루션의 패턴을 통해 탐지하여 기존 보안 장비와의 결합을 통해 탐지율을 향상시킬 수 있는 방안도 존재하며, 미러링 포트를 연결하거나 외부 네트워크와의 접점에 모니터링 서버를 구축하여 별도의 보안 솔루션으로도 활용이 가능하다.
제안 도구를 통해 난독화된 자바스크립트의 자동 복호화를 이용하여 기존 솔루션에서 탐지가 어려웠던 난독화된 자바스크립트에 포함된 악성코드에 대한 탐지 방안이 마련되었지만, 중소규모 이상의 기업 내부망과 같은 곳에 적용하기 위해서는, 대용량의 네트워크 트래픽을 처리하기 위한 병렬처리 기법의 적용이 필요하다. 또한 4.
제안 도구를 통해 난독화된 자바스크립트의 자동 복호화를 이용하여 기존 솔루션에서 탐지가 어려웠던 난독화된 자바스크립트에 포함된 악성코드에 대한 탐지 방안이 마련되었지만, 중소규모 이상의 기업 내부망과 같은 곳에 적용하기 위해서는, 대용량의 네트워크 트래픽을 처리하기 위한 병렬처리 기법의 적용이 필요하다. 또한 4.2.1에서 탐지가 불가능하였던 Java Applet을 이용한 악성코드 유포 방법과 같이 자바스크립트가 아닌 Java Applet 관련 취약점을 이용한 악성코드 유포 탐지에 대해서는 별도로 연구가 필요할 것으로 보인다.
본 논문에서 제작한 해당 프로그램은 Google Code Project 에 오픈소스로 등록하여 배포하였으며, 향후 지속적으로 개선시켜 나갈 예정이다. http://code.
질의응답
핵심어
질문
논문에서 추출한 답변
APT(Advanced Persistent Threat) 공격은 무엇에 특화된 공격인가?
또한 대형 인터넷 검색 사이트에서는 자체적으로 크롤링(crawlering)을 수행하여 악성코드가 은닉된 웹 페이지들의 정보를 DB 로 구축하여 사용자가 검색 사이트를 경유하여 접근하는 웹 페이지에 대한 악성코드 은닉 여부를 알려주는 서비스를 수행하고 있다. 그러나 최근 APT(Advanced Persistent Threat) 공격과 같이 특정 기업이나 조직 네트워크에 침투하기 위한 고도화된 공격에 대응하기 위해서는 클라이언트 각각의 탐지 정책보다는 외부망과 연결되는 라우팅 구간에서의 통합적인 탐지 및 모니터링이 필요하게 된다. 이와 같은 상황에서 기존 패턴 매칭 기반 탐지의 한계를 극복하기 위해서는 난독화된 자바스크립트를 자동 복호화 하여 획득한 원문에서 악성코드 은닉 사이트 URL이나 별도의 공격 코드를 탐지하는 기술이 필요하다.
난독화된 문자열의 특징을 데이터마이닝을 통해 분석하여 탐지 패턴을 생성해 내는 방법은 어떠한 단점이 있는가?
자바스크립트의 난독화 패턴 자체를 탐지하는 기법은 주로 난독화된 문자열의 특징을 데이터마이닝을 통해 분석하여 탐지 패턴을 생성해 내는 방법으로, [표 2]의 관련 연구들과 같이 반복적인 학습을 통해 정상 자바스크립트와 악성 자바스크립트 코드를 구분하게 된다. 이는 네트워크 구간에서의 많은 양의 트래픽을 탐지할 때 효율적이지만, 패턴 학습 시간이 필요하며, 자바스크립트의 원문 자체를 확인할 수 없기 때문에 실제로 정상적인 자바스크립트 코드에 난독화를 적용한 경우에 대한 명확한 구분이 어려워 오탐율이 높아질 수 있다.
자바스크립트의 난독화 패턴 자체를 탐지하는 기법은 무엇인가?
자바스크립트의 난독화 패턴 자체를 탐지하는 기법은 주로 난독화된 문자열의 특징을 데이터마이닝을 통해 분석하여 탐지 패턴을 생성해 내는 방법으로, [표 2]의 관련 연구들과 같이 반복적인 학습을 통해 정상 자바스크립트와 악성 자바스크립트 코드를 구분하게 된다. 이는 네트워크 구간에서의 많은 양의 트래픽을 탐지할 때 효율적이지만, 패턴 학습 시간이 필요하며, 자바스크립트의 원문 자체를 확인할 수 없기 때문에 실제로 정상적인 자바스크립트 코드에 난독화를 적용한 경우에 대한 명확한 구분이 어려워 오탐율이 높아질 수 있다.
Symantec Internet Security Threat Report Volume 16, http://www.symantec.com/about/news/resources/press_kits/detail.jsp?pkidthreat_report_16
The Ultimate Deobfuscator, http://securitylabs.websense.com/content/Blogs/3198.aspx
Shedding Light on the NeoSploit Exploit, http://labs.m86security.com/2011/01/shedding-light-on-the-neosploit-exploit-kit/
Likarish, P, Eunjin Jung, Insoon Jo, "Obfuscated Malicious Javascript Detection using Classification Techniques", "Malicious and Unwanted Software (MALWARE) 2009 4th International Conference", pp. 47-54, 2009.
Younghan Choi, Taeghyoon Kim, Seokjin Choi, and Cheolwon Lee. "Automatic Detection for Javascript Obfuscation Attacks in Web Pages through String Pattern Analysis", In Proceedings of the 1st International Conference on Future Generation Information Technology (FGIT '09), pp. 160-172, 2009.
Alexander Moshchuk, Tanya Bragin, Damien Deville, Steven D. Gribble, and Henry M. Levy, "SpyProxy: execution- based detection of malicious web content", Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium, pp. 1-16, 2007.
Marco Cova, Christopher Kruegel, and Giovanni Vigna. "Detection and analysis of drive-by-download attacks and malicious Javascript code", In Proceedings of the 19th international conference on World wide web (WWW '10), pp. 281-290, 2010.
Andreas Dewald, Thorsten Holz, Felix C. Freiling, "ADSandbox: sandboxing Javascript to fight malicious websites", Proceedings of the 2010 ACM Symposium on Applied Computing, pp 1859-1864, 2010.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.