SlideShare a Scribd company logo
FORENSIC INSIGHT;
DIGITAL FORENSICS COMMUNITY IN KOREA
Fileless Malware Forensics
blueangel
blueangel1275@gmail.com
http://forensic-note.blogspot.kr/
Junghoon Oh
forensicinsight.org Page 2
Contents
1. Fileless Malware ??
2. Avoidance Technique
3. Forensic Analysis
4. Conclusion
forensicinsight.org Page 3
Fileless Malware ??
forensicinsight.org Page 4
Fileless Malware ??
 디스크에 파일을 생성하지 않고 동작함으로써 파일 탐지 기반의 전통적인 AV를 회피하는 악성코드
 기존에는 메모리에만 로딩되어 수행하는 일회성 악성코드들이 존재하였음.
 ex : Angler Exploit kit (재부팅 후, 재동작할 의도가 없음)
 재부팅 시에도 재동작하기 위해 다양한 소스(레지스트리, 파일시스템 속성...)를 이용하는 악성코드
(Poweliks, Kovter ...)들이 등장하기 시작함
Fileless Malware
forensicinsight.org Page 5
Avoidance Technique
forensicinsight.org Page 6
Avoidance Technique
 Poweliks
• 2014년 8월에 등장한 Poweliks 악성코드의 경우, Reloading 포인트로 레지스트리를 사용
• 동작 원리
1. 레지스트리 Run 키 아래 Default Value 안에 인코딩(jscript.encode)된 스크립트 코드를 저장
레지스트리
forensicinsight.org Page 7
Avoidance Technique
 Poweliks
• 동작 원리(계속)
2. 추가적으로 Run 키 아래에 Non-ASCII 로 된 Value 를 생성하고 아래와 같은 로 시작하는 명령을 입력함
• 저장된 명령("rundll32.exe javascript:~")은 Default Value 에 저장된 인코딩된 스크립트 코드를 실행함
• Non-ASCII 된 Value 는 아래와 같이 Regedit 에서 열람할 수 없기 때문에 이를 통해 일반 사용자로부터 흔적을 숨김
레지스트리
forensicinsight.org Page 8
Avoidance Technique
 Poweliks
• 동작 원리(계속)
3. 시스템 재부팅 시, Run 키에 저장된 "rundll32.exe javascript:~" 명령어가 실행되고 해당 명령은 Default Value
에 저장된 인코딩된 스크립트 코드를 실행함
4. 실행된 스크립트 코드는 먼저 시스템에 Powershell 이 설치되어 있는지 확인하고 설치되어 있지 않다면 다운
로드 후, 설치함. 그리고 내부에 Base64로 인코딩된 Powershell 스크립트를 실행함
• Default 에 인코딩된 스크립트를 디코딩한 내용
5. 실행된 PowerShell 스크립트는 내부에 Base64로 인코딩된 Shell 코드를 실행하여 악의적인 행위로 수행
레지스트리
forensicinsight.org Page 9
Avoidance Technique
 Kovter
• 2015년 9월에 발견된 Kovter 은 기존의 Poweliks 의 변종(?)
• 레지스트리 Run key 에 아래와 같은 JavaScript 코드를 저장
• Run key 에 저장된 JavaScript 코드가 실행시킬 또다른 JavaScript 코드를 인코딩하여 다른 키에 저장
• Run key 의 이름을 널 문자(x00) 로 생성하였기 때문에 regedit 에서 보이지 않음
레지스트리
forensicinsight.org Page 10
Avoidance Technique
 레지스트리 내에 데이터 숨김
• 2014년 말에 발견된 Regin 악성코드의 경우, 아래와 같이 특정 Class 키에 자신이 사용하는 인코딩(Customized
XOR)된 데이터를 저장함
 REGISTRYMachineSystemCurrentControlSetControlClass{3939744-44FC-AD65-474B-E4DDF8C7FB91}
 REGISTRYMachineSystemCurrentControlSetControlClass{3F90B1B4-58E2-251E-6FFE-4D38C5631A04}
 REGISTRYMachineSystemCurrentControlSetControlClass{4F20E605-9452-4787-B793-D0204917CA58}
레지스트리
forensicinsight.org Page 11
Avoidance Technique
 Powershell Profile
• PowerShell 이 시작할 때 마다 실행되는 스크립트
• 아래 경로에 존재하면 PowerShell 이 실행될 때마다 자동 로딩됨(로딩 순서순)
 %windir%system32WindowsPowerShellv1.0profile.ps1
 %windir%system32WindowsPowerShellv1.0Microsoft.PowerShell_profile.ps1
 %UserProfile%My DocumentsWindowsPowerShellprofile.ps1
 %UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
• 즉 공격자가 profile 스크립트에 공격 코드를 삽입…
 PowerShell 이 실행 될 때마다 공격 코드가 실행됨~!!
Powershell + WMI
forensicinsight.org Page 12
Avoidance Technique
 WMI Event Filter/Consumer
• WMI Event Filter
 Consumer 에게 전달하는 이벤트의 조건을 나타내는 Class
 쿼리 형식으로 이벤트 조건을 입력
• WMI Command-line Event Consumer
 Filter 에 의해 탐지된 이벤트를 받아 처리하는 Class
 받은 이벤트 데이터를 처리하거나 특정 바이너리를 실행할 수 있음
• Filter 와 Consumer 바인딩
 생성한 Filter 와 Consumer 가 서로 이벤트를 주고 받을 수 있도록 연결
Powershell + WMI
forensicinsight.org Page 13
Avoidance Technique
 WMI 와 Powershell 를 통한 Auto-Start
• Auto-Start 과정 예
1. Event Filter 의 쿼리 조건에 해당하는 이벤트가 발생하면 바인딩된 Consumer 에게 이벤트 전달
2. Command-line Event Consumer 가 전달 받은 이벤트를 인지하고 특정 작업을 수행
3. PowerShell 이 실행되면서 Profile 스크립트가 자동 로딩됨
4. Profile 스크립트(profile.ps1)에 삽입된 공격 코드가 동작
Powershell + WMI
forensicinsight.org Page 14
Avoidance Technique
 $EA(Extended Attributes)
• Extended Attributes : NTFS 에서 다른 파일 시스템(Ext3/4, HFS+ ... ) 과의 호환성을 위해 지원하는 파일 속성
 Name Value 쌍을 통해 NTFS 지원하지 않는 추가적인 파일 속성을 저장할 수 있음
 일반적으로 거의 사용되지 않는 속성임
• ZeroAccess
 2012년 말에 널리 퍼진 ZeroAccess 의 경우, EA(Extended Attributes) 안에 데이터를 숨김
파일 시스템 속성
forensicinsight.org Page 15
Avoidance Technique
 $EA(Extended Attributes)
• ZeroAccess (계속)
 Service.exe 파일을 패치하여 패치된 코드가 EA(Extended Attributes) 안에 숨겨진 Payload 를 실행시킴
파일 시스템 속성
forensicinsight.org Page 16
Avoidance Technique
 ADS(Alternative Data Stream)
• NTFS 의 기본 파일 속성이 $DATA 속성(일반적인 파일 데이터를 저장)을 보조하기 위한 속성
• ADS 에 저장되는 데이터는 Explorer 에 보이지 않음
• 실제로 Vista 이전에는 ADS 에 PE를 저장하고 실행시킬 수 있었음
• Vista 이후에는 ADS 내 데이터에 대한 실행은 막혔지만 여전히 악성코드가 데이터 은닉처로 사용할 수 있음
• 하지만 관리자 권한을 가지고 심볼릭 링크를 생성하면 실행할 수 있음(mklink 명령어 사용)
파일 시스템 속성
forensicinsight.org Page 17
Avoidance Technique
 ADS 백도어
• ADS에 코드를 숨겨 백도어 기능을 할 수 있게 하는 기법에 소개
( https://enigma0x3.wordpress.com/2015/03/05/using-alternate-data-streams-to-persist-on-a-compromised-machine )
• 동작 원리
1. AppData 폴더의 ADS 를 2개 생성, VBS 스크립트와 PowerShell Payload를 저장
파일 시스템 속성
forensicinsight.org Page 18
Avoidance Technique
 ADS 백도어
• 동작 원리(계속)
2. Run 키의 특정 Value를 생성, ADS에 저장된 VBS 스크립트를 실행하도록 저장함
파일 시스템 속성
forensicinsight.org Page 19
Avoidance Technique
 ADS 백도어
• 동작 원리(계속)
3. 재부팅 시, Run 키 Value 가 실행되어 wscript.exe 가 ADS 에 있는 VBS 스크립트를 실행하고, VBS 스크립트가
또 다른 ADS 에 있는 PowerShell Payload를 실행
4. 실행된 PowerShell Payload 는 외부와 네트워크 연결하여 백도어로 동작함
파일 시스템 속성
forensicinsight.org Page 20
Avoidance Technique
 Bootkit
• 일반적으로 정상 MBR, VBR의 부트코드를 수정, OS 로딩 과정에서 메모리에 로딩된 부트로더, 커널 이미지를 패
치하여 자신이 원하는 행위(ex : 악성 드라이버를 로딩)를 수행
파일 시스템 외 영역
forensicinsight.org Page 21
Avoidance Technique
 Bootkit
• 그 외에도 서비스로 사용되는 특정 시스템 파일을 패치하여 원하는 행위를 수행하게 하는 경우도 있음
파일 시스템 외 영역
forensicinsight.org Page 22
Avoidance Technique
 Bootkit 의 Hidden Storage
• 부트킷이 자신이 사용할 데이터를 디스크의 여러 장소에 숨김
• 숨기는 데이터
 패치에 사용되는 코드
 악성 드라이버
 기타 환경 설정 값
• 숨기는 방식
 파일 시스템 내 사용하지 않는 영역
 특정 파일 시스템 영역(ex : 휴지통, ADS, EA. ..)
파일 시스템 외 영역
forensicinsight.org Page 23
Avoidance Technique
 Bootkit 의 Hidden Storage
• Hidden File System
 Win64/Olmarik (TDL4)
파일 시스템 외 영역
forensicinsight.org Page 24
Avoidance Technique
 Bootkit 의 Hidden Storage
• Hidden File System
 Win64/Rovnix/Carberp
파일 시스템 외 영역
forensicinsight.org Page 25
Avoidance Technique
 메모리에만 상주하는 악성코드
• 기존의 메모리에만 존재하는 악성코드(일회성)과는 다르게 재부팅에도 지속적으로 재실행됨
• 실제 구동중인 시스템의 디스크 내에는 어떠한 파일의 흔적이 없음
• Persistence 유지 원리
1. 최초 감염 과정에서 메모리에 로딩된 후, 자기 자신의 파일을 완전 삭제
2. 시스템 종료 이벤트를 모니터링하면서 시스템 종료 직전에 파일을 생성하고 Run 키에 등록(AV 는 이미 종료된
시점)
3. 재부팅 과정에서 다시 메모리에 로딩된 후, 자기 자신의 파일을 완전 삭제
메모리
forensicinsight.org Page 26
Forensic Analysis
forensicinsight.org Page 27
Forensic Analysis
 Reloading Point 역할을 하는 Key 의 데이터 내에서 명령어 흔적 찾기
• Keyword : rundll32.exe, wscript.exe, mshta, javascript, .ps …
• 도구
 RegRipper : https://github.com/keydet89/RegRipper2.8
 REGA : http://forensic.korea.ac.kr/tools/rega.html
레지스트리
forensicinsight.org Page 28
Forensic Analysis
 특정 키 내의 인코딩된 데이터 탐지
• Value Data 크기 이용  보통 PE 파일을 인코딩해서 넣기 때문에 데이터 사이즈가 큼
• 일반적으로 PE 를 인코딩하여 Value Data 로 넣을 경우, Top 20 안에 포함됨
• 도구
 regsize : https://github.com/bridgeythegeek/regsize
• 문자열 데이터(REG_SZ) 를 대상으로만 검색하게 소스 수정
• Value Data 크기가 실제보다 2배로 출력되는 것을 제대로 출력되게 소스 수정
레지스트리
forensicinsight.org Page 29
Forensic Analysis
 특정 키 내의 인코딩된 데이터 탐지
• regsize 테스트
 Run 키 Default Value 안에 Base64+JavaScript 인코딩된 PE 파일 입력(24072바이트)
 테스트 결과 (JavaScript 인코딩의 경우, Entropy (2번째 컬럼) 가 크게 높지 않음…)
레지스트리
forensicinsight.org Page 30
Forensic Analysis
 profile.ps1
• 스크립트 파일 내에서 삽입된 공격 코드 탐색
• profile 스크립트 파일은 생성 후, 거의 수정되지 않기 때문에 수정시간을 통해 공격 시간을 유추가 비교적 쉬움
 CIM Repository
• WMI 설정 정보를 가지고 있는 저장소
• 경로 : C:WindowsSystem32wbemRepository
 INDEX.BTR
 MAPPING1.MAP
 MAPPING2.MAP
 MAPPING3.MAP
 OBJECTS.DATA
Powershell + WMI
forensicinsight.org Page 31
Forensic Analysis
 CIM Repository
• 도구
 python-cim : https://github.com/fireeye/flare-wmi/tree/master/python-cim
 Python 2.7/3.4 기반, PyQt5 설치 필요
 CIM Repository 파일들을 파싱하여 UI 로 출력시켜 주는 도구
Powershell + WMI
forensicinsight.org Page 32
Forensic Analysis
 python-cim 실행 예
Powershell + WMI
forensicinsight.org Page 33
Forensic Analysis
 $EA
• Extended Attribute 를 가지고 있는 파일은 그 자체만으로도 의심스러움
• EaTools's EaQuery( https://github.com/jschicht/EaTools ) 를 통한 스캐닝
파일 시스템 속성
forensicinsight.org Page 34
Forensic Analysis
 ADS(Alternative Data Stream)
• Alternative Data Stream 내 PE 나 인코딩된 데이터가 있는지 확인
• Encase 에서 기본 지원
• Nirsoft's AlternateStreamView : http://www.nirsoft.net/utils/alternate_data_streams.html
 분석대상 이미지를 마운트 후, 마운트된 드라이브 선택 후, 스캐닝 ( Stream Size 가 크면 의심스러움 )
파일 시스템 속성
forensicinsight.org Page 35
Forensic Analysis
 MBR, VBR 변조 여부 확인
• IDA 를 통한 MBR 분석
 VMware 이용한 디버깅 : http://digitalisx.tistory.com/1
 Bochs(IA-32 Emulator) 이용한 디버깅 : http://phocean.net/tag/bootkit
Bootkit
forensicinsight.org Page 36
Forensic Analysis
 MBR, VBR 변조 여부 확인
• 정상적인 MBR 행위 vs 감염된 MBR 행위
Bootkit
forensicinsight.org Page 37
Forensic Analysis
 MBR, VBR 변조 여부 확인
• MBR/VBR 코드에서 이루어지는 모든 디스크 관련 동작은 BIOS 인터럽트 13 으로 수행됨~!!
 즉 대부분은 MBR/VBR 기반 Bootkit 은 INT 13 인터럽트 핸들러 후킹을 수행~!!
Bootkit
forensicinsight.org Page 38
Forensic Analysis
 MBR, VBR 변조 여부 확인
• MBR/VBR 코드 상에서 INT 13 인터럽트 핸들러 후킹 코드 확인
Bootkit
출처 : boot.basic by somma ( http://somma.egloos.com/4560420 )
forensicinsight.org Page 39
Forensic Analysis
 시스템 파일 변조 여부 확인
• White 리스트 체크
• MS Update Catalog 확인
 기존 탐지 도구 활용
• 기존 탐지 도구들은 라이브 상태에서만 동작함
• 분석 대상 OS 와 동일한 버전의 가상 머신에서 MBR/VBR 영역을 추출한 MBR/VBR 이미지로 덮어쓰고 도구 실행
• TDSSKILLER ( http://support.kaspersky.com/us/viruses/solutions/2727 )
 Kasperksy 에서 개발한 Bootkit 탐지 및 치료 도구
 알려진 Bootkit 탐지
• TDSS TDL4
• Sinowal (Mebroot, MaosBoot)
• Phanta (Phantom, Mebratix)
• Trup (Alipop)
• Whistler, Stoned
• ...
Bootkit
forensicinsight.org Page 40
Forensic Analysis
 탐지 도구 활용
• BootkitRemover ( http://labs.bitdefender.com/projects/rootkit-remover/rootkit-remover/ )
 Bitdefender 에서 개발한 Bootkit 탐지 및 치료 도구
 알려진 Bootkit 탐지 : Mebroot, all TDL families (TDL/SST/Pihar), Mayachok, Mybios, Plite, XPaj, Whistler,
Alipop, Cpd, Fengd, Fips, Guntior, MBR Locker, Mebratix, Niwa, Ponreb, Ramnit, Stoned, Yoddos, Yurn,
Zegost
Bootkit
forensicinsight.org Page 41
Forensic Analysis
 탐지 도구 활용
• ESETHfsReader ( http://www.eset.com/int/download//utilities/detail/family/173/ )
 ESET 에서 제작한 Bootkit 탐지 및 치료 도구
 알려진 Bootkit 및 Hidden File System 탐지
• TDL3, TDL3+, TDL4, TDL4_Purple_Haze
• Olmasco, Olmasco (SST.C)
• Olmasco.AC (MBR infection)
• Rovnix.a
• Gapz MBR/VBR
• Rovnix.B
• ZeroAccess.A, ZeroAccess.B
• Flame (resources section)
• XPAJ.B
• GBPBoot
Bootkit
forensicinsight.org Page 42
Forensic Analysis
 In-Memory 악성코드
• 현재 메모리에서 발견된 의심 프로세스의 파일이 시스템 종료 및 부팅 중에 삭제/생성 되는지 파일 시스템 히스토
리($LogFile, $UsnJrnl)에서 확인
• 이벤트 로그 분석을 통해 시스템 종료/부팅 시점 파악
• 도구 : NTFS Log Tracker( https://sites.google.com/site/forensicnote/ntfs-log-tracker )
메모리
forensicinsight.org Page 43
Conclusion
forensicinsight.org Page 44
Conclusion
 점차 일반화되고 있는 Fileless Malware ...
 분석가 입장에서 Fileless Malware 탐지 및 분석 능력 필요
Fileless Malware
forensicinsight.org Page 45
Question and Answer

More Related Content

PDF
Git - An Introduction
PDF
[131]해커의 관점에서 바라보기
PDF
Deep Dive Java 17 Devoxx UK
PPT
Java
PDF
7.-Bootstrap-5-report powerpoint presentation
PPT
Javascript arrays
PDF
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
PPTX
Corso js and angular
Git - An Introduction
[131]해커의 관점에서 바라보기
Deep Dive Java 17 Devoxx UK
Java
7.-Bootstrap-5-report powerpoint presentation
Javascript arrays
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Corso js and angular

What's hot (20)

PDF
Introduction àJava
PDF
Support de cours technologie et application m.youssfi
PDF
Core JavaScript
PDF
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
PPTX
LVM "Linux "
PDF
JUnit & Mockito, first steps
PDF
Support POO Java première partie
PPTX
PDF
Effective CMake
PPTX
JDBC ppt
PDF
Py.test
PPT
Writing Metasploit Plugins
PPT
Phpunit testing
PDF
Test Driven Development for Embedded C
PDF
Introduction to Git and GitHub
PDF
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
PPTX
Javascript this keyword
PDF
Vertebroplastie et cyphoplastie percutanées
PDF
Support de cours entrepise java beans ejb m.youssfi
PDF
Complete Java Course
Introduction àJava
Support de cours technologie et application m.youssfi
Core JavaScript
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
LVM "Linux "
JUnit & Mockito, first steps
Support POO Java première partie
Effective CMake
JDBC ppt
Py.test
Writing Metasploit Plugins
Phpunit testing
Test Driven Development for Embedded C
Introduction to Git and GitHub
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Javascript this keyword
Vertebroplastie et cyphoplastie percutanées
Support de cours entrepise java beans ejb m.youssfi
Complete Java Course
Ad

Viewers also liked (20)

PDF
(Fios#03) 4. 파워셸 포렌식 조사 기법
PDF
(150124) #fitalk advanced $usn jrnl forensics (korean)
PDF
(Fios#02) 7. 윈도우 10 포렌식 분석
PDF
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
PDF
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
PDF
(150124) #fitalk advanced $usn jrnl forensics (english)
PPTX
BSidesDC - **** it, Do It Live (PowerShell Digital Forensics)
PPTX
Lateral Movement with PowerShell
PPTX
BSidesLV 2016 - Powershell - Hunting on the Endpoint - Gerritz
PDF
(111217) #fitalk windows system structure
PDF
(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응
PPT
Een digitale bibliotheek of alleen Google?
PDF
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
PDF
(120616) #fitalk web browser forensics - part iii
PDF
IT 일반기술 강의자료_ed10
PPTX
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
PDF
Java advancd ed10
PDF
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
PDF
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
PDF
(140118) #fitalk 2013 e-discovery trend
(Fios#03) 4. 파워셸 포렌식 조사 기법
(150124) #fitalk advanced $usn jrnl forensics (korean)
(Fios#02) 7. 윈도우 10 포렌식 분석
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
(150124) #fitalk advanced $usn jrnl forensics (english)
BSidesDC - **** it, Do It Live (PowerShell Digital Forensics)
Lateral Movement with PowerShell
BSidesLV 2016 - Powershell - Hunting on the Endpoint - Gerritz
(111217) #fitalk windows system structure
(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응
Een digitale bibliotheek of alleen Google?
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
(120616) #fitalk web browser forensics - part iii
IT 일반기술 강의자료_ed10
비영리 사업에서 꼭 필요한 인터넷 도구 (유승철)
Java advancd ed10
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
2013 꿈다락 토요문화학교 유스보이스 8경 잡지만들기 결과물 - Case
(140118) #fitalk 2013 e-discovery trend
Ad

Similar to (160820) #fitalk fileless malware forensics (20)

PDF
(130622) #fitalk the stealing windows password
PDF
(111217) #fitalk rootkit tools and debugger
PDF
(130511) #fitalk utilization of ioc, ioaf and sig base
PDF
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
PDF
안드로이드 플랫폼 설명
PDF
(130316) #fitalk trends in d forensics (feb, 2013)
PDF
(120114) #fitalk bootkit threat evolution in 2011
PDF
2.악성코드와 분석 방안
PDF
(120211) #fitalk application password decrypter
PDF
(120211) #fitalk application password decrypter
PDF
악성코드와 분석 방안
PDF
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
PDF
보안 위협과 악성코드 분석 기법
PDF
(120128) #fitalk sql server anti-forensics
PDF
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
PPTX
Windows reversing study_basic_8
 
PDF
악성코드 분석 도구
PDF
(130216) #fitalk reverse connection tool analysis
PDF
성공적인 게임 런칭을 위한 비밀의 레시피 #3
PDF
(120218) #fitalk forensic impact according to the firmware manipulation
(130622) #fitalk the stealing windows password
(111217) #fitalk rootkit tools and debugger
(130511) #fitalk utilization of ioc, ioaf and sig base
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
안드로이드 플랫폼 설명
(130316) #fitalk trends in d forensics (feb, 2013)
(120114) #fitalk bootkit threat evolution in 2011
2.악성코드와 분석 방안
(120211) #fitalk application password decrypter
(120211) #fitalk application password decrypter
악성코드와 분석 방안
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
보안 위협과 악성코드 분석 기법
(120128) #fitalk sql server anti-forensics
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
Windows reversing study_basic_8
 
악성코드 분석 도구
(130216) #fitalk reverse connection tool analysis
성공적인 게임 런칭을 위한 비밀의 레시피 #3
(120218) #fitalk forensic impact according to the firmware manipulation

More from INSIGHT FORENSIC (20)

PDF
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
PDF
(141031) #fitalk os x yosemite artifacts
PDF
(140716) #fitalk digital evidence from android-based smartwatch
PDF
(140625) #fitalk sq lite 소개와 구조 분석
PDF
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
PDF
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
PDF
(130216) #fitalk potentially malicious ur ls
PDF
(130202) #fitalk trends in d forensics (jan, 2013)
PDF
(130202) #fitalk china threat
PDF
(130119) #fitalk sql server forensics
PDF
(130119) #fitalk apt, cyber espionage threat
PDF
(130119) #fitalk all about physical data recovery
PDF
(130105) #fitalk trends in d forensics (dec, 2012)
PDF
(130105) #fitalk criminal civil judicial procedure in korea
PDF
(131116) #fitalk extracting user typing history on bash in mac os x memory
PDF
(131102) #fitalk get windows logon password in memory dump
PDF
(130928) #fitalk cloud storage forensics - dropbox
PDF
(130907) #fitalk generating volatility linux profile
PDF
(130727) #fitalk rp log tracker
PDF
(130727) #fitalk pfp (portable forensic platform), #2 story
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk os x yosemite artifacts
(140716) #fitalk digital evidence from android-based smartwatch
(140625) #fitalk sq lite 소개와 구조 분석
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
(130216) #fitalk potentially malicious ur ls
(130202) #fitalk trends in d forensics (jan, 2013)
(130202) #fitalk china threat
(130119) #fitalk sql server forensics
(130119) #fitalk apt, cyber espionage threat
(130119) #fitalk all about physical data recovery
(130105) #fitalk trends in d forensics (dec, 2012)
(130105) #fitalk criminal civil judicial procedure in korea
(131116) #fitalk extracting user typing history on bash in mac os x memory
(131102) #fitalk get windows logon password in memory dump
(130928) #fitalk cloud storage forensics - dropbox
(130907) #fitalk generating volatility linux profile
(130727) #fitalk rp log tracker
(130727) #fitalk pfp (portable forensic platform), #2 story

(160820) #fitalk fileless malware forensics

  • 1. FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA Fileless Malware Forensics blueangel blueangel1275@gmail.com http://forensic-note.blogspot.kr/ Junghoon Oh
  • 2. forensicinsight.org Page 2 Contents 1. Fileless Malware ?? 2. Avoidance Technique 3. Forensic Analysis 4. Conclusion
  • 4. forensicinsight.org Page 4 Fileless Malware ??  디스크에 파일을 생성하지 않고 동작함으로써 파일 탐지 기반의 전통적인 AV를 회피하는 악성코드  기존에는 메모리에만 로딩되어 수행하는 일회성 악성코드들이 존재하였음.  ex : Angler Exploit kit (재부팅 후, 재동작할 의도가 없음)  재부팅 시에도 재동작하기 위해 다양한 소스(레지스트리, 파일시스템 속성...)를 이용하는 악성코드 (Poweliks, Kovter ...)들이 등장하기 시작함 Fileless Malware
  • 6. forensicinsight.org Page 6 Avoidance Technique  Poweliks • 2014년 8월에 등장한 Poweliks 악성코드의 경우, Reloading 포인트로 레지스트리를 사용 • 동작 원리 1. 레지스트리 Run 키 아래 Default Value 안에 인코딩(jscript.encode)된 스크립트 코드를 저장 레지스트리
  • 7. forensicinsight.org Page 7 Avoidance Technique  Poweliks • 동작 원리(계속) 2. 추가적으로 Run 키 아래에 Non-ASCII 로 된 Value 를 생성하고 아래와 같은 로 시작하는 명령을 입력함 • 저장된 명령("rundll32.exe javascript:~")은 Default Value 에 저장된 인코딩된 스크립트 코드를 실행함 • Non-ASCII 된 Value 는 아래와 같이 Regedit 에서 열람할 수 없기 때문에 이를 통해 일반 사용자로부터 흔적을 숨김 레지스트리
  • 8. forensicinsight.org Page 8 Avoidance Technique  Poweliks • 동작 원리(계속) 3. 시스템 재부팅 시, Run 키에 저장된 "rundll32.exe javascript:~" 명령어가 실행되고 해당 명령은 Default Value 에 저장된 인코딩된 스크립트 코드를 실행함 4. 실행된 스크립트 코드는 먼저 시스템에 Powershell 이 설치되어 있는지 확인하고 설치되어 있지 않다면 다운 로드 후, 설치함. 그리고 내부에 Base64로 인코딩된 Powershell 스크립트를 실행함 • Default 에 인코딩된 스크립트를 디코딩한 내용 5. 실행된 PowerShell 스크립트는 내부에 Base64로 인코딩된 Shell 코드를 실행하여 악의적인 행위로 수행 레지스트리
  • 9. forensicinsight.org Page 9 Avoidance Technique  Kovter • 2015년 9월에 발견된 Kovter 은 기존의 Poweliks 의 변종(?) • 레지스트리 Run key 에 아래와 같은 JavaScript 코드를 저장 • Run key 에 저장된 JavaScript 코드가 실행시킬 또다른 JavaScript 코드를 인코딩하여 다른 키에 저장 • Run key 의 이름을 널 문자(x00) 로 생성하였기 때문에 regedit 에서 보이지 않음 레지스트리
  • 10. forensicinsight.org Page 10 Avoidance Technique  레지스트리 내에 데이터 숨김 • 2014년 말에 발견된 Regin 악성코드의 경우, 아래와 같이 특정 Class 키에 자신이 사용하는 인코딩(Customized XOR)된 데이터를 저장함  REGISTRYMachineSystemCurrentControlSetControlClass{3939744-44FC-AD65-474B-E4DDF8C7FB91}  REGISTRYMachineSystemCurrentControlSetControlClass{3F90B1B4-58E2-251E-6FFE-4D38C5631A04}  REGISTRYMachineSystemCurrentControlSetControlClass{4F20E605-9452-4787-B793-D0204917CA58} 레지스트리
  • 11. forensicinsight.org Page 11 Avoidance Technique  Powershell Profile • PowerShell 이 시작할 때 마다 실행되는 스크립트 • 아래 경로에 존재하면 PowerShell 이 실행될 때마다 자동 로딩됨(로딩 순서순)  %windir%system32WindowsPowerShellv1.0profile.ps1  %windir%system32WindowsPowerShellv1.0Microsoft.PowerShell_profile.ps1  %UserProfile%My DocumentsWindowsPowerShellprofile.ps1  %UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1 • 즉 공격자가 profile 스크립트에 공격 코드를 삽입…  PowerShell 이 실행 될 때마다 공격 코드가 실행됨~!! Powershell + WMI
  • 12. forensicinsight.org Page 12 Avoidance Technique  WMI Event Filter/Consumer • WMI Event Filter  Consumer 에게 전달하는 이벤트의 조건을 나타내는 Class  쿼리 형식으로 이벤트 조건을 입력 • WMI Command-line Event Consumer  Filter 에 의해 탐지된 이벤트를 받아 처리하는 Class  받은 이벤트 데이터를 처리하거나 특정 바이너리를 실행할 수 있음 • Filter 와 Consumer 바인딩  생성한 Filter 와 Consumer 가 서로 이벤트를 주고 받을 수 있도록 연결 Powershell + WMI
  • 13. forensicinsight.org Page 13 Avoidance Technique  WMI 와 Powershell 를 통한 Auto-Start • Auto-Start 과정 예 1. Event Filter 의 쿼리 조건에 해당하는 이벤트가 발생하면 바인딩된 Consumer 에게 이벤트 전달 2. Command-line Event Consumer 가 전달 받은 이벤트를 인지하고 특정 작업을 수행 3. PowerShell 이 실행되면서 Profile 스크립트가 자동 로딩됨 4. Profile 스크립트(profile.ps1)에 삽입된 공격 코드가 동작 Powershell + WMI
  • 14. forensicinsight.org Page 14 Avoidance Technique  $EA(Extended Attributes) • Extended Attributes : NTFS 에서 다른 파일 시스템(Ext3/4, HFS+ ... ) 과의 호환성을 위해 지원하는 파일 속성  Name Value 쌍을 통해 NTFS 지원하지 않는 추가적인 파일 속성을 저장할 수 있음  일반적으로 거의 사용되지 않는 속성임 • ZeroAccess  2012년 말에 널리 퍼진 ZeroAccess 의 경우, EA(Extended Attributes) 안에 데이터를 숨김 파일 시스템 속성
  • 15. forensicinsight.org Page 15 Avoidance Technique  $EA(Extended Attributes) • ZeroAccess (계속)  Service.exe 파일을 패치하여 패치된 코드가 EA(Extended Attributes) 안에 숨겨진 Payload 를 실행시킴 파일 시스템 속성
  • 16. forensicinsight.org Page 16 Avoidance Technique  ADS(Alternative Data Stream) • NTFS 의 기본 파일 속성이 $DATA 속성(일반적인 파일 데이터를 저장)을 보조하기 위한 속성 • ADS 에 저장되는 데이터는 Explorer 에 보이지 않음 • 실제로 Vista 이전에는 ADS 에 PE를 저장하고 실행시킬 수 있었음 • Vista 이후에는 ADS 내 데이터에 대한 실행은 막혔지만 여전히 악성코드가 데이터 은닉처로 사용할 수 있음 • 하지만 관리자 권한을 가지고 심볼릭 링크를 생성하면 실행할 수 있음(mklink 명령어 사용) 파일 시스템 속성
  • 17. forensicinsight.org Page 17 Avoidance Technique  ADS 백도어 • ADS에 코드를 숨겨 백도어 기능을 할 수 있게 하는 기법에 소개 ( https://enigma0x3.wordpress.com/2015/03/05/using-alternate-data-streams-to-persist-on-a-compromised-machine ) • 동작 원리 1. AppData 폴더의 ADS 를 2개 생성, VBS 스크립트와 PowerShell Payload를 저장 파일 시스템 속성
  • 18. forensicinsight.org Page 18 Avoidance Technique  ADS 백도어 • 동작 원리(계속) 2. Run 키의 특정 Value를 생성, ADS에 저장된 VBS 스크립트를 실행하도록 저장함 파일 시스템 속성
  • 19. forensicinsight.org Page 19 Avoidance Technique  ADS 백도어 • 동작 원리(계속) 3. 재부팅 시, Run 키 Value 가 실행되어 wscript.exe 가 ADS 에 있는 VBS 스크립트를 실행하고, VBS 스크립트가 또 다른 ADS 에 있는 PowerShell Payload를 실행 4. 실행된 PowerShell Payload 는 외부와 네트워크 연결하여 백도어로 동작함 파일 시스템 속성
  • 20. forensicinsight.org Page 20 Avoidance Technique  Bootkit • 일반적으로 정상 MBR, VBR의 부트코드를 수정, OS 로딩 과정에서 메모리에 로딩된 부트로더, 커널 이미지를 패 치하여 자신이 원하는 행위(ex : 악성 드라이버를 로딩)를 수행 파일 시스템 외 영역
  • 21. forensicinsight.org Page 21 Avoidance Technique  Bootkit • 그 외에도 서비스로 사용되는 특정 시스템 파일을 패치하여 원하는 행위를 수행하게 하는 경우도 있음 파일 시스템 외 영역
  • 22. forensicinsight.org Page 22 Avoidance Technique  Bootkit 의 Hidden Storage • 부트킷이 자신이 사용할 데이터를 디스크의 여러 장소에 숨김 • 숨기는 데이터  패치에 사용되는 코드  악성 드라이버  기타 환경 설정 값 • 숨기는 방식  파일 시스템 내 사용하지 않는 영역  특정 파일 시스템 영역(ex : 휴지통, ADS, EA. ..) 파일 시스템 외 영역
  • 23. forensicinsight.org Page 23 Avoidance Technique  Bootkit 의 Hidden Storage • Hidden File System  Win64/Olmarik (TDL4) 파일 시스템 외 영역
  • 24. forensicinsight.org Page 24 Avoidance Technique  Bootkit 의 Hidden Storage • Hidden File System  Win64/Rovnix/Carberp 파일 시스템 외 영역
  • 25. forensicinsight.org Page 25 Avoidance Technique  메모리에만 상주하는 악성코드 • 기존의 메모리에만 존재하는 악성코드(일회성)과는 다르게 재부팅에도 지속적으로 재실행됨 • 실제 구동중인 시스템의 디스크 내에는 어떠한 파일의 흔적이 없음 • Persistence 유지 원리 1. 최초 감염 과정에서 메모리에 로딩된 후, 자기 자신의 파일을 완전 삭제 2. 시스템 종료 이벤트를 모니터링하면서 시스템 종료 직전에 파일을 생성하고 Run 키에 등록(AV 는 이미 종료된 시점) 3. 재부팅 과정에서 다시 메모리에 로딩된 후, 자기 자신의 파일을 완전 삭제 메모리
  • 27. forensicinsight.org Page 27 Forensic Analysis  Reloading Point 역할을 하는 Key 의 데이터 내에서 명령어 흔적 찾기 • Keyword : rundll32.exe, wscript.exe, mshta, javascript, .ps … • 도구  RegRipper : https://github.com/keydet89/RegRipper2.8  REGA : http://forensic.korea.ac.kr/tools/rega.html 레지스트리
  • 28. forensicinsight.org Page 28 Forensic Analysis  특정 키 내의 인코딩된 데이터 탐지 • Value Data 크기 이용  보통 PE 파일을 인코딩해서 넣기 때문에 데이터 사이즈가 큼 • 일반적으로 PE 를 인코딩하여 Value Data 로 넣을 경우, Top 20 안에 포함됨 • 도구  regsize : https://github.com/bridgeythegeek/regsize • 문자열 데이터(REG_SZ) 를 대상으로만 검색하게 소스 수정 • Value Data 크기가 실제보다 2배로 출력되는 것을 제대로 출력되게 소스 수정 레지스트리
  • 29. forensicinsight.org Page 29 Forensic Analysis  특정 키 내의 인코딩된 데이터 탐지 • regsize 테스트  Run 키 Default Value 안에 Base64+JavaScript 인코딩된 PE 파일 입력(24072바이트)  테스트 결과 (JavaScript 인코딩의 경우, Entropy (2번째 컬럼) 가 크게 높지 않음…) 레지스트리
  • 30. forensicinsight.org Page 30 Forensic Analysis  profile.ps1 • 스크립트 파일 내에서 삽입된 공격 코드 탐색 • profile 스크립트 파일은 생성 후, 거의 수정되지 않기 때문에 수정시간을 통해 공격 시간을 유추가 비교적 쉬움  CIM Repository • WMI 설정 정보를 가지고 있는 저장소 • 경로 : C:WindowsSystem32wbemRepository  INDEX.BTR  MAPPING1.MAP  MAPPING2.MAP  MAPPING3.MAP  OBJECTS.DATA Powershell + WMI
  • 31. forensicinsight.org Page 31 Forensic Analysis  CIM Repository • 도구  python-cim : https://github.com/fireeye/flare-wmi/tree/master/python-cim  Python 2.7/3.4 기반, PyQt5 설치 필요  CIM Repository 파일들을 파싱하여 UI 로 출력시켜 주는 도구 Powershell + WMI
  • 32. forensicinsight.org Page 32 Forensic Analysis  python-cim 실행 예 Powershell + WMI
  • 33. forensicinsight.org Page 33 Forensic Analysis  $EA • Extended Attribute 를 가지고 있는 파일은 그 자체만으로도 의심스러움 • EaTools's EaQuery( https://github.com/jschicht/EaTools ) 를 통한 스캐닝 파일 시스템 속성
  • 34. forensicinsight.org Page 34 Forensic Analysis  ADS(Alternative Data Stream) • Alternative Data Stream 내 PE 나 인코딩된 데이터가 있는지 확인 • Encase 에서 기본 지원 • Nirsoft's AlternateStreamView : http://www.nirsoft.net/utils/alternate_data_streams.html  분석대상 이미지를 마운트 후, 마운트된 드라이브 선택 후, 스캐닝 ( Stream Size 가 크면 의심스러움 ) 파일 시스템 속성
  • 35. forensicinsight.org Page 35 Forensic Analysis  MBR, VBR 변조 여부 확인 • IDA 를 통한 MBR 분석  VMware 이용한 디버깅 : http://digitalisx.tistory.com/1  Bochs(IA-32 Emulator) 이용한 디버깅 : http://phocean.net/tag/bootkit Bootkit
  • 36. forensicinsight.org Page 36 Forensic Analysis  MBR, VBR 변조 여부 확인 • 정상적인 MBR 행위 vs 감염된 MBR 행위 Bootkit
  • 37. forensicinsight.org Page 37 Forensic Analysis  MBR, VBR 변조 여부 확인 • MBR/VBR 코드에서 이루어지는 모든 디스크 관련 동작은 BIOS 인터럽트 13 으로 수행됨~!!  즉 대부분은 MBR/VBR 기반 Bootkit 은 INT 13 인터럽트 핸들러 후킹을 수행~!! Bootkit
  • 38. forensicinsight.org Page 38 Forensic Analysis  MBR, VBR 변조 여부 확인 • MBR/VBR 코드 상에서 INT 13 인터럽트 핸들러 후킹 코드 확인 Bootkit 출처 : boot.basic by somma ( http://somma.egloos.com/4560420 )
  • 39. forensicinsight.org Page 39 Forensic Analysis  시스템 파일 변조 여부 확인 • White 리스트 체크 • MS Update Catalog 확인  기존 탐지 도구 활용 • 기존 탐지 도구들은 라이브 상태에서만 동작함 • 분석 대상 OS 와 동일한 버전의 가상 머신에서 MBR/VBR 영역을 추출한 MBR/VBR 이미지로 덮어쓰고 도구 실행 • TDSSKILLER ( http://support.kaspersky.com/us/viruses/solutions/2727 )  Kasperksy 에서 개발한 Bootkit 탐지 및 치료 도구  알려진 Bootkit 탐지 • TDSS TDL4 • Sinowal (Mebroot, MaosBoot) • Phanta (Phantom, Mebratix) • Trup (Alipop) • Whistler, Stoned • ... Bootkit
  • 40. forensicinsight.org Page 40 Forensic Analysis  탐지 도구 활용 • BootkitRemover ( http://labs.bitdefender.com/projects/rootkit-remover/rootkit-remover/ )  Bitdefender 에서 개발한 Bootkit 탐지 및 치료 도구  알려진 Bootkit 탐지 : Mebroot, all TDL families (TDL/SST/Pihar), Mayachok, Mybios, Plite, XPaj, Whistler, Alipop, Cpd, Fengd, Fips, Guntior, MBR Locker, Mebratix, Niwa, Ponreb, Ramnit, Stoned, Yoddos, Yurn, Zegost Bootkit
  • 41. forensicinsight.org Page 41 Forensic Analysis  탐지 도구 활용 • ESETHfsReader ( http://www.eset.com/int/download//utilities/detail/family/173/ )  ESET 에서 제작한 Bootkit 탐지 및 치료 도구  알려진 Bootkit 및 Hidden File System 탐지 • TDL3, TDL3+, TDL4, TDL4_Purple_Haze • Olmasco, Olmasco (SST.C) • Olmasco.AC (MBR infection) • Rovnix.a • Gapz MBR/VBR • Rovnix.B • ZeroAccess.A, ZeroAccess.B • Flame (resources section) • XPAJ.B • GBPBoot Bootkit
  • 42. forensicinsight.org Page 42 Forensic Analysis  In-Memory 악성코드 • 현재 메모리에서 발견된 의심 프로세스의 파일이 시스템 종료 및 부팅 중에 삭제/생성 되는지 파일 시스템 히스토 리($LogFile, $UsnJrnl)에서 확인 • 이벤트 로그 분석을 통해 시스템 종료/부팅 시점 파악 • 도구 : NTFS Log Tracker( https://sites.google.com/site/forensicnote/ntfs-log-tracker ) 메모리
  • 44. forensicinsight.org Page 44 Conclusion  점차 일반화되고 있는 Fileless Malware ...  분석가 입장에서 Fileless Malware 탐지 및 분석 능력 필요 Fileless Malware