61
자바스크립트 난독화 JavaScript Obfuscation ㈜한국정보보호교육센터 F-NGS Lab 선임연구원 최우석

Drive-By Download & JavaScript Obfuscation

Embed Size (px)

Citation preview

Page 1: Drive-By Download & JavaScript Obfuscation

자바스크립트 난독화 JavaScript Obfuscation

㈜한국정보보호교육센터 F-NGS Lab

선임연구원 최우석

Page 2: Drive-By Download & JavaScript Obfuscation

00. Who am I?

Page 3: Drive-By Download & JavaScript Obfuscation

00. Who am I?

악성코드

취약점

웹 해킹

자바스크립트

Page 4: Drive-By Download & JavaScript Obfuscation

Agenda 01. Prior Knowledge

02. Drive-By Download

03. JavaScript Obfuscation

04. Deobfuscation Method

05. Proposal

06. To Do

Page 5: Drive-By Download & JavaScript Obfuscation

Chapter 1 Prior Knowledge • Evolution of Internet

• Evolution of Industry in Korea

• Evolution of Browser

• Evolution of Fuzzing

• Evolution of Malware

• Evolution of Underground

Page 6: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge

Page 7: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Internet

69, ARPANET 개발

ARPANET

1960 2000

Low

High

고도화

72, ARPANET 공개

82, TCP/IP 프로토콜 시작

72, 40 호스트

http://terms.naver.com/entry.nhn?docId=1691375&cid=42171&categoryId=42184

83, DNS 시작

MILNET

86, NSFNET 시작

87, 최초 인터넷 회사 설립

인터넷 산업 시작

91, NSF 민간 이용 금지 철회

89, 10만 호스트 96, 브라우저 경쟁

93, 최초 브라우저 개발

98, 3680만 호스트 4200 웹

94, 3200만 호스트 3000 웹

90, 최초 검색 엔진 (아키) 84, 1000 호스트

74, 텔넷

69, 4 호스트

Page 8: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Internet Industry in Korea

82, 최초의 네트워크 연결

1980 2010

Low

High

고도화

85, 최초 전자 우편

91, 국내 최초 인터넷 게시판 개설

93, 최초 브라우저

http://isis.nic.or.kr/mobile/ebook2/2012/download/internet_30th.pdf

86 최초 상용 PC 통신

94, 최초 인터넷 상용 서비스

96, 최초 인터넷 쇼핑몰, 최초 온라인 게임

99, 최초 인터넷 뱅킹

01, 싸이월드

02, 블로그

06, 와이브로

02, 무선랜

99, 인터넷 포털 서비스

95, 한글인터넷 검색엔진

89, 미국과 IP기반 인터넷 연결

86, .kr 도메인 확보

83, 해외 인터넷과 연동

ADSL 시작

인터넷 산업 시작

08, IPTV

11, 카톡

사용자수 1,000만

Page 9: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Browser

94, NETSCAPE 0.x

1990 2012

Low

High

고도화

96, IE 3, VBScript, JScript, CSS, Java

98, IE 5 Ruby, XML/XSL

http://www.testking.com/techking/infographics/browser-evolution-the-history-of-web-browsers-infographic/ http://www.evolutionoftheweb.com/?hl=kr

97, IE 4, HTML, CSS

01, IE 6 Vulnerability Patches

06, IE 7 PNG, Phishing filter

09, IE 8 CSS2.1

11, IE 9, CSS3, HTML5

95, IE 1, MS 인수, IE 2

브라우저 취약점의 시작

95, Opera 1.0

02, Firebird 0.1

04, Firefox 1.0

03, Safari 1

07, Netscape 종료 08, Chrome 0.2

92, Mosaic

Page 10: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Fuzzing

1980 2010

Low

High

고도화

90, PROTOS for Network in Codenomicon

04, lcamtuf’s MangleMe for Browser the first file format vuln aka. MS04-028

fuzzing, brute force vulnerability discovery

02, Dave Aitel’s SPIKE Fuzzer for Network

05, SPIKEfile, FileFuzz for File Format H.D. Moore’s Hamachi for HTML H.D. Moore’s CSSDIE for CSS

06, Found Browser vuln by H.D. Moore David Zimmer’s COMRaider for ActiveX in iDefense H.D. Moore’s AxMan for ActiveX

89, Fuzz Testing for Unix

퍼저의 전성기 시작 83, The Monkey for Mac

Next..

Page 11: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Malware

1970 2014

Low

High

고도화

81, 최초 PC 바이러스 Elk Cloner in Apple 2

86, Brain virus in MS-DOS

http://www.slideshare.net/btakeya/ss-17061173

83, 바이러스 용어 최초 사용

87, 바이러스 분석 시작

03, SQL Slammer/Blaster Worm

07, Botnet

71, 최초 바이러스 Creeper in TENEX OS

71, 최초 백신 Reaper

94, 인터넷을 통한 유포

04, BoF Worm

96, 윈도우/리눅스 악성코드

06, Mac Malware

10, Android Malware

88, Jerusalem Virus, Morris Worm

89, 최초 Ransomware

90, Polymorphic Virus

92, 미켈란젤로 바이러스

95, 매크로/스크립트 형 바이러스

98, Back Orifice, CIH Virus

01, Nimda Worm

05, XSS Worm

08, Koobface

10, Stuxnet

APT의 시작

악성코드 유포의 신속화

Page 12: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Evolution of Online Underground Economy

1990 2014

Low

High

고도화

http://igcc.ucsd.edu/assets/001/503677.pdf

98 ~ 03 Server Side Wave

서버 중심의 산업

공격 대상은 서버 기업 내부 기밀 문서

가 주 대상

02 ~ 06 Client Side Wave

인터넷의 대중화

일반 사용자의 서비스를 악용

06 ~ 3rd Party Application, APT Attack

타사의 응용 프로그램을 공격

소프트웨어 취약점을 악용

수 많은 사용자들에게 악성코드 유

포하기 편리해짐

지능형 지속 공격 시작

지하 경제 발달

Page 13: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge

Page 14: Drive-By Download & JavaScript Obfuscation

01. Prior Knowledge Increase of Vulnerability

https://c2.staticflickr.com/6/5178/5577040874_e69ca7c144_z.jpg

Page 16: Drive-By Download & JavaScript Obfuscation

Chapter 2 Drive-By Download • Information Infrastructure

• Drive-By Download

• Watering Hole Attack

• Distribution Method

Page 17: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Information Infrastructure

Page 18: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Information Infrastructure

2006 2007 2008 2009 2010 2011 2012 2013 2014

Windigo Luckycat

Sysmain Havex

Red October

Flame

Duqu

Mask

Stuxnet

Dockster

GragonFly

Gauss

https://apt.securelist.com/

Page 19: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Dragonfly (aka. Energetic Bear)

발견 : Symantec 연구소

발견일 : 2014년 6월

발견 국가 : 러시아

투자비용 : -

제작 : 2011

대상 : 에너지 기업 외 다수 국가

미국, 스페인, 프랑스, 이탈리아, 독일, 터키, 폴란드

영향 : 산업 제어 시스템(ICS)

피해 : 3,000대 이상

제작자 : 러시아 해커 집단

공격 경로 : Spear Phishing, Watering Hole Attack, Modification Attack

Page 20: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Dragonfly (aka. Energetic Bear)

1982. 6. 30 Siberia Gas Pipeline Explosion

APT 공격

공격 도구는 시간이 지남에 따라 안정적으로 유지

악성코드 및 공격 벡터를 지속적으로 운영 및 관리

최소한& 체계적인 접근

공격 대상

항공 산업, 방위 산업, 에너지 산업,

에너지 그리드 운영자, 주요 전기 기업

석유 파이프, ISC 제조업체

Page 21: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Dragonfly (aka. Energetic Bear)

1차 : Modification Attack

PLC 디바이스에서 사용하는 VPN 제품 소프트웨어에서 유포

유포와 동시에 탐지하여 대응함

악의적인 DLL을 포함

Havex는 서로 다른 32가지의 버전이 존재함

Page 22: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Dragonfly (aka. Energetic Bear)

2차 : Spear Phishing

PDF, SWF 를 포함하는 악의적인 XDP 파일을 이용함

XDP (XML Data Package)

취약점에 의해 실행되는 Havex 악성코드는 저장된 XDP 파일을 암호화 진행

XDP 파일 안에 있는 PDF, SWF 취약점 파일을 수집하지 못하도록 함

Page 23: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Dragonfly (aka. Energetic Bear)

3차 : Watering Hole Attack

대상이 접속하는 웹 사이트 대상으로 진행

Java, IE 취약점을 이용 (JAR, HTML) CVE-2013-2465, 2013-1347, 2012-1723

LightsOut Exploit Kit을 사용 20개의 사이트를 공격하여 구조도 구성

동,서 유럽 산업 사용자, 제작자, 관리자, 법률 자문, 투자자 를 대상으로 함

모두 Havex 악성코드를 유포

Page 24: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

단순 웹 사이트 방문만으로 악성코드에 노출

드라이브-바이 다운로드 공격

일반적으로 웹 페이지에서 악의적인 목적에 의해 사용자에게 메시지를 표시하지 않고 스크립트(Script) 등의 계기로 악의적인 소프트웨어(Malware)를 다운로드하고 실행하는 것

Page 25: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

뉴스 파일공유

블로그

검색

Hopping Pages …

경유지(Landing Pages)

중계지(Hopping Pages)

Exploit Pages

Malware Repository

유포지(Distribution Pages)

Page 26: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

Hopping Pages

Exploit Pages

Malware Repository

뉴스 파일공유

블로그

검색

경유지(Landing Pages)

… Landing Pages

Page 27: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

Page 28: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

요청

응답

웹 해킹 DB 등 기타 정보 탈취

취약점 실행

웹 서버 자원 악용

Page 29: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Preview (1/2)

http://198.1.165.4/2036.exe

Page 30: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Preview (2/2)

Page 31: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download

Page 32: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Page 33: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Watering Hole Attack

이 기법은 시만텍(Symantec)에서 2009년 부터 연구를 진행

Trend Point

중요 인사들이 회원으로 가입되어 있는 미국 외교 협회 홈페이지를 대상으로 공격

MS 제로데이 취약점 (CVE-2012-4792)를 이용

최근 특정 대상 공격 또는 APT 공격에 이 공격 기법을 많이 사용

Page 34: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Traffic Distribution System

트렌드 마이크로의 연구원이 연구한 내용으로 네트워크 트래픽의 정보를 토대로 사용자의 정보에 맞는 서비스로

트래픽을 분산시키는 목적에서 시작

한국에서 접근하는 트래픽은 드라이브-바이 다운로드 페이지로, 외국에서 접근하는 트래픽은 모두 404 에러

페이지로

현재는 서버 측 언어(PHP, JSP 등)을 이용한 리다이렉터 구현을 통칭함

Page 35: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Affiliate Web-Based Malware

소포스 연구원이 연구한 내용으로 제휴 광고의 다단계 구조(MLM)을 통한 악성 소프트웨어의 유포

시나리오

대형 마켓, 파워블로그 등과 연계되어 있는 제휴 광고 스크립트에 악성 스크립트가 삽입되어 드라이브-바이 다

운로드 공격이 발생

Ads Poisoning, Poisoned adverts, Malvertising

Page 36: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Internal Drive-By Download

비인가자가 접근할 수 없는 웹 서버 내부에서 드라이브-바이 다운로드 공격이 발생, 인가자만이 공격 대상이 되기

때문에 드라이브-바이 다운로드 수집 및 분석이 어려움

실제 분석 환경에서 특정 기업의 사내망(내부망) 혹은 로그인 후 정보를 이용 할 수 있는 웹 서비스가 레퍼러 정보

로 사용됨, 하지만 상세한 분석은 불가능 했음

Page 37: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

File-less Drive-by Download (또는 Drive-by Attack)

악성코드를 다운로드 받지 않고 메모리에 상주 시키는 공격하는 기법

방어자 입장에서 악성코드 수집, 침해사고 대응, 증거 수사가 어려움

공격자 입장에서 피해자 시스템이 재부팅 시 피해자와 세션 종료

Page 38: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Using Malicious DDNS

Fiesta Exploit Pack에서 무료 DDNS 서비스를 이용한 악성코드 유포

무료 DDNS는 no-ip 회사에서 제공

Page 39: Drive-By Download & JavaScript Obfuscation

02. Drive-By Download Distribution Method

Domain Shadowing

시스코 보안 연구원이 Angler Exploit Kit 캠페인을 분석하는 과정에서 발견

하위 도메인을 무작위로 생성하여 드라이브-바이 다운로드 공격에 사용

Fast Flux DNS vs Domain Shadowing

Page 40: Drive-By Download & JavaScript Obfuscation

Chapter 3 JavaScript Obfuscation • Hexadecimal Obf.

• Dean Edward’s /Packser/

• jjencode

• Dehydrating a Technique

• Gondad EK

• CK VIP

Page 41: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation

Hexadecimal Obfuscation

Page 42: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation Dean Edward’s /Packer/

Page 43: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation jjencode

Page 44: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation Dehydrating a string Technique

Page 45: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation Gondad EK

Page 46: Drive-By Download & JavaScript Obfuscation

03. JavaScript Obfuscation CK VIP

Page 47: Drive-By Download & JavaScript Obfuscation

Chapter 4 Deobfuscation Method • Modify Source Code

• Network Solutions

Page 48: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method

alert();

eval(); unescape();

result document.write();

document.writeln();

Execute

Insert

Replace

document.write(); + <xmp>

Webkit in Browsers

Page 49: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 1 - Modify Source Code

Page 50: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 2 - Tools

Deobfuscation

Execute

Replace

Parser

JavaScript Engine

Page 51: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 2 - Tools

Malzilla Jsunpack-n JSDetox

Deobfuscator SpiderMonkey revelo

Page 52: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 2 - Tools

Page 53: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 3 - Programming

Page 54: Drive-By Download & JavaScript Obfuscation

04. Deobfuscation Method

Deobfuscation Method 3 - Programming

Page 55: Drive-By Download & JavaScript Obfuscation

Chapter 5 Proposal • Information Solutions

• Network Solutions

Page 56: Drive-By Download & JavaScript Obfuscation

05. Proposal Information Solutions

Page 57: Drive-By Download & JavaScript Obfuscation

05. Proposal Network Solutions

Page 58: Drive-By Download & JavaScript Obfuscation

Chapter 6 To Do • Reputation

Page 59: Drive-By Download & JavaScript Obfuscation

06. To Do Reputation

Page 60: Drive-By Download & JavaScript Obfuscation
Page 61: Drive-By Download & JavaScript Obfuscation

Thank you