SlideShare ist ein Scribd-Unternehmen logo
1 von 78
APPLYING MEMORY
FORENSICS TO ROOTKIT
DETECTION
Igor Korkin Ivan Nesterov
CDFSL 2014
Goals of memory forensics
Passwords, crypto keys and etc.
revealing software
Software reverse engineering
Rootkits analysis & detection
Agenda
Memory Dump
System
RPI for
drivers
DBS for
processes
1. Review of dump & analysis tools in rootkit
conditions
2-3. MASHKA ─ Malware Analysis System for
Hidden Knotty Anomalies:
Review of rootkits techniques
Rootkits techniques – malware hiding
from OS & AV
function hooking
object manipulation
(byte modification)
func_A
func_B
func_A
func_B
hook
EPROCESS structures
Dump approaches classification
Software Hardware
Virtual memory Physical memory
Ease of
distribution?
Vulnerable?
Dump approaches are either
vulnerable or
non applicable in enterprises
Hooking
resilience
Ease of
distribution
Software − +
Hardware + −
Why are software approaches
vulnerable?
Details of dump & analysis tools
Memory mapping
routines
ZwWriteFile or analogue
Analysis of kernel OS
structures
Hook
Hook
Byte Modification
J.Stuttgen, M.Cohen (`13)
L.Milkovic (`12)
T.Haruyama, H.Suzuki (`12)
Typical dump & analysis tool
What can we do under these
circumstances?
What can we do under these
circumstances?
Let's omit the functions!
What can we use
instead?
What can we do under these
circumstances?
Let's omit the functions!
Virtual and Physical memoryusermodekernelmode
calc.exe
word.exe
kernel
?
Virtual memory Physical memory
calc.exe
kernel
word.exe
?
How does addresses translation work?
Virtual address
Page Directory &
Page Tables
FLAGS PFN
Table’s entry:
Physical memory
ACCESS
Address =
PFN*0x1000
How does addresses translation work?
Virtual address
Page Directory &
Page Tables
FLAGS PFN
Table’s entry:
Physical memory
ACCESS
Address =
PFN*0x1000
Is it possible to
use paging in a
dump?
How does addresses translation work?
Virtual address
Page Directory &
Page Tables
FLAGS PFN
Table’s entry:
Physical memory
ACCESS
Address =
PFN*0x1000
Let’s run addresses
translation in reverse!
Is it possible to
use paging in a
dump?
MASHKA’s memory dump algorithm
Page Directory
others P PS
BE 3C 0 1
Go to next entry
. . .
i
5
6
7
MASHKA’s memory dump algorithm
Page Directory
others P PS
BE 3C 0 1
BE 4C 1 1
Go to next entry
Save memory page
(4 Mb or 2Mb) by i
. . .
i
5
6
7
MASHKA’s memory dump algorithm
Page Directory
others P PS
BE 3C 0 1
BE 4C 1 1
Go to next entry
Save memory page
(4 Mb or 2Mb) by i
BE FF 1 0
Go to Page Table
. . .
Page Table
others P
. . .
i
5
6
7
j
0
1
Page Directory
others P PS
BE 3C 0 1
BE 4C 1 1
Go to next entry
Save memory page
(4 Mb or 2Mb) by i
BE FF 1 0
Go to Page Table
. . .
Page Table
others P
BF 00 0
. . .
Go to next entry
i
5
6
7
j
0
1
MASHKA’s memory dump algorithm
MASHKA’s memory dump algorithm
Page Directory
others P PS
BE 3C 0 1
BE 4C 1 1
Go to next entry
Save memory page
(4 Mb or 2Mb) by i
BE FF 1 0
Go to Page Table
. . .
Page Table
others P
BF 00 0
BF 01 1
. . .
Go to next entry
Save memory page
(4 Kb) by i & j
i
5
6
7
j
0
1
MASHKA’s memory dump algorithm
Page Directory
others P PS
BE 3C 0 1
BE 4C 1 1
Go to next entry
Save memory page
(4 Mb or 2Mb) by i
BE FF 1 0
Go to Page Table
. . .
Page Table
others P
BF 00 0
BF 01 1
. . .
Go to next entry
Save memory page
(4 Kb) by i & j
i
5
6
7
j
0
1
MASHKA’s dump algorithm details
Page 2
Page 1
Virtual Memory (4GB)
Dump File (300Mb)
Struct File
StartAddr_1
Page 4
Page 5
Page 2
Page 1
Page 4
Page 5
FinishAddr_1 DumpOffset_1
. . .
StartAddr_3
DumpOffset_3
Page 3
Page 3
FinishAddr_3
StartAddr_2 FinishAddr_2 DumpOffset_2
StartAddr_5 FinishAddr_5 DumpOffset_5
StartAddr_3 FinishAddr_3 DumpOffset_3
MASHKA’s dump algorithm details
Page 2
Page 1
Virtual Memory (4GB)
Dump File (300Mb)
Struct File
StartAddr_1
Page 4
Page 5
Page 2
Page 1
Page 4
Page 5
FinishAddr_1 DumpOffset_1
. . .
StartAddr_3
DumpOffset_3
Page 3
Page 3
FinishAddr_3
StartAddr_2 FinishAddr_2 DumpOffset_2
StartAddr_5 FinishAddr_5 DumpOffset_5
StartAddr_3 FinishAddr_3 DumpOffset_3
How should new files be used?
MASHKA in memory forensics tasks
Loaded Dump File
".sys"
VALF
ODUF
VALF Virtual Address in the Loaded dump File
ODUF Offset in DUmp File
2E 73 79 73 00
MASHKA in memory forensics tasks
Loaded Dump File
".sys"
VALF
ODUF
Struct File
VAOM
VAOM Virtual Address in the Original virt. Memory
VALF Virtual Address in the Loaded dump File
ODUF Offset in DUmp File
ODUF
2E 73 79 73 00
MASHKA in memory forensics tasks
Loaded Dump File
".sys"
VALF
ODUF
2E 73 79 73
Original Virt. memory
VAOM
Struct File
VAOM
VAOM Virtual Address in the Original virt. Memory
VALF Virtual Address in the Loaded dump File
ODUF Offset in DUmp File
ODUF
2E 73 79 73 00
How is VAOM etc used?
Use MASHKA in drivers forensics
DRIVER_OBJECT
SCM structures list:
SERVICES.EXE
PsLoadModuleList:
user
mode
kernel
mode
Use MASHKA in drivers forensics
CreateService( ServiceName, DisplayName, BinaryPath,...)
ServiceName
BinaryPath
ServiceName
DisplayName
SCM structure,
DRIVER_OBJECT and
others will be added
Use MASHKA in drivers forensics
CreateService( ServiceName, DisplayName, BinaryPath,...)
ServiceName
BinaryPath
ServiceName
DisplayName
SCM structure,
DRIVER_OBJECT and
others will be added
ServiceName > VAOMs of ‘SN’
Use MASHKA in drivers forensics
CreateService( ServiceName, DisplayName, BinaryPath,...)
ServiceName
BinaryPath
ServiceName
DisplayName
SCM structure,
DRIVER_OBJECT and
others will be added
ServiceName > VAOMs of ‘SN’
VAOMs of ‘SN’ > VAOM of DRV_OBJ
Advantages of MASHKA
Uses only two functions:
KeAttachProcess and
ZwWriteFile
Resilient to hooks
due to low-level
OS calls usage
Protects the stored
data by run-time
encryption
Finds different
memory templates
fast
How to apply MASHKA to
processes detection?
ZwQuerySystemInformation
hooking
PsActiveProcessList
modifying
OS processes list handling
or
how can the
process be
hidden?
How to detect a hidden process?
Process detection approaches review
● hooking functions such as
SwapContext or KiFastCallEntry
● a processes’ list from CSRSS.EXE
● a processes handle table list
● static signatures by Schuster (‘07)
● robust signatures by Dolan-Gavitt (‘09)
● structures location by Grizzard (‘10)
Object
structure
lists
Heuristic
analyzer
Static
signature
scans
Process detection approaches review
● hooking functions such as
SwapContext or KiFastCallEntry
● a processes’ list from CSRSS.EXE
● a processes handle table list
● static signatures by Schuster (‘07)
● robust signatures by Dolan-Gavitt (‘09)
● structures location by Grizzard (‘10)
Object
structure
lists
Heuristic
analyzer
Static
signature
scans
Scan is based on Disadvantages
some EPROCESS fields
values are either known or
exceed the constant,
e.g. 0x8000_0000
vulnerable to field
modifications
difficult to achieve
portability
Analysis of static signature scan
GMER, PowerTool and XueTr use it
Scan is based on Disadvantages
some EPROCESS fields
values are either known or
exceed the constant,
e.g. 0x8000_0000
vulnerable to field
modifications
difficult to achieve
portability
Analysis of static signature scan
GMER, PowerTool and XueTr use it
How can we improve
signature scans?
Objects structures typical design
03 28 87
1B 05 56
01 01 E4
03 28 84
1B 05 B0
E4 E4 E4
03 28 84
1B 05 B0
18 18 E4
Objects structures
03 28 85
1B 05 78
12 E412
Objects structures typical design
03 28 87
1B 05 56
01 01 E4
03 28 84
1B 05 B0
E4 E4 E4
03 28 84
1B 05 B0
18 18 E4
Objects structures
03 28 85
1B 05 78
12 E412
03 28
1B 05
E4-
-
-
- Dynamic Byte
Signature
memory pattern
Process detection with
Dynamic Byte Signature
1. Create Dynamic Byte Signature by using
EPROCESS structures in PsActiveProcessList
2. Use byte to byte DBS search to find all
EPROCESS structures
3. Compare a new list with
NtQuerySystemInformation list
Bit signature = thorough analysis
03 28 87
1B 05 56
01 01 E4
03 28 84
1B 05 B0
E4 E4 E4
03 28 84
1B 05 B0
18 18 E4
03 28 85
1B 05 78
12 E412
87
84
1 0 0 0 0 1 1
1 0 0 0 0 1 0
Downscale
from bytes
to bits
1
0
Bit signature = thorough analysis
03 28 87
1B 05 56
01 01 E4
03 28 84
1B 05 B0
E4 E4 E4
03 28 84
1B 05 B0
18 18 E4
03 28 85
1B 05 78
12 E412
87
84
1 0 0 0 0 1 1
1 0 0 0 0 1 0
Downscale
from bytes
to bits
1
0
03 28
1B 05
E4-
-
-
-
Bit signature = thorough analysis
03 28 87
1B 05 56
01 01 E4
03 28 84
1B 05 B0
E4 E4 E4
03 28 84
1B 05 B0
18 18 E4
03 28 85
1B 05 78
12 E412
87
84
1 0 0 0 0 1 1
1 0 0 0 0 1 0
Downscale
from bytes
to bits
1
0
Dynamic bit signature:
DBS features Advantages
Automatic learning Easily portable
Bit based analysis More thorough analysis
Probabilistic check
Able to recognize structures
even without full pattern match
Dynamic Bit Signature Analysis
What about hidden drivers
and their detection?
Hidden drivers have similar cases
List view Activity to hide
Processes TaskMgr.exe
PsActiveProcessList
modification
Drivers DriverQuery.exe
PsLoadedModuleList
modification
ZwQuerySystemInformation hooking leads to
processes & drivers hiding
Drivers detection approaches review
● ObjectDirectory lists
● Service Control Manager list
Schuster’s signature approach has
adapted by W.Tsaur and L.Yeh (‘12)
to drivers detection
Object
structure
lists
Signature
scans
Is it possible to adapt DBS
for driver detection?
Is it possible to adapt DBS
for driver detection?
DBS only can detect structures with a lot of fields
Is it possible to adapt DBS
for driver detection?
EPROCESS
DRIVER_OBJECT
DBS only can detect structures with a lot of fields
Rating Point Inspection (RPI)
RPI improvements over DBS
● RPI utilizes additional weight matrix for precise
pattern matching
● RPI use selective matching algorithm
If one of the checks is true
DBS RPI
add 1 point
1, 2 or etc. points are
added to the final score
Description of weight matrix for
DRIVER_OBJECT
is in the corresponding paper
How does RPI detect drivers?
weight
matrix
A B C
DRV_OBJ list
How does RPI detect drivers?
weight
matrix
A B C
threshold value
DRV_OBJ list
How does RPI detect drivers?
weight
matrix
A B C
threshold value
DRV_OBJ list
byte to byte probabilistic search
A B C
complete list of DRV_OBJ
D
D
How does RPI detect drivers?
weight
matrix
A B C
threshold value
DRV_OBJ list
byte to byte probabilistic search
A B C
complete list of DRV_OBJ
D
A B C
Hidden DRV =
─
MASHKA’s achievements
Reveals rootkits:
● Deliberately hidden processes and drivers
● Virus.Win32.Sality.q
● Trojan.Win32.VB.aqt
● Hidden drivers by ATSIV
MASHKA’s achievements
Reveals rootkits:
● Deliberately hidden processes and drivers
● Virus.Win32.Sality.q
● Trojan.Win32.VB.aqt
● Hidden drivers by ATSIV
Existing anti-rootkits PowerTool, TDSSKiller, Xuetr fail,
but MASHKA can detect them
Demo: bit.ly/win8t6st
What is the pie filling?
?
What is the pie filling?
?
Igor Korkin, Ph.D
igor.korkin@gmail.com
sites.google.com/site/iykorkin
ADDITIONAL
WHAT IS IT MASHKA?
DBS for EPROCESS
detection
RPI for DRIVER_OBJECT
detection
Other digital forensics tasks
Malware Analysis System for Hidden Knotty Anomalies
Memory Dump System
(platform for forensic analysis)
MASHKA IN MEMORY FORENSICS TASKS
Various search signatures: char and wide char
strings, byte fragments include addresses
As a result we receive:
Name Definition
VALF virtual address of the
loaded dump file
read data
ODUF corresponding offset in
dump file
calculate
offsets
VAOM virtual address of the
original memory
find value in
dump
What can we do with it?
USE MASHKA TO RESEARCH DRIVERS
1. Run Windows under WinDbg control
2. Install a test driver with ‘ServiceName’,
‘DisplayName’ and ‘BinaryPath’
3. Hide this driver structure by unlinking
from PsLoadedModuleList
4. Check the system with anti-rootkit tool
5. Dump memory with the help of MASHKA
USE MASHKA TO RESEARCH DRIVERS
6. Search strings from step 2 and save their ‘VAOM’
7. By WinDbg and strings VAOM change their content
8. Check the system repeatedly. Detection tools will
give us a changed name.
By known ‘VAOM’ run further analysis
Drivertest_driver
...
test_driver.sys
Driver1est_driver
...
2est_driver.sys
PROBLEM STATEMENT - ROOTKITS IN WINDOWS
ANALYSIS OF CURRENT APPROACHES
TO DETECTION IN FACE OF OPPOSITIONS
Cross-view detection is the main point
for all tools
Low-level mechanisms:
●Heuristic analyzer
●Additional object structure lists
●Signature scans are based on byte to
byte search of fragments of objects
structures in memory
ANALYSIS OF SIGNATURE SCANS
● The fact that some fields’ values are either known
or exceed the constant, for example 0x8000_0000
● Parts of this method are implemented in the
popular tools such as GMER, PowerTool, XueTr
Method’s disadvantages:
● vulnerable to field modifications: If at least one
byte does not match, the signature scan will miss
the structure
● difficult to achieve portability on different versions
of Windows OS, as it requires a lot of manual work
‘global_scope’ is a sum of points
Condition Score
if (DRIVER_OBJECT_32.Type == 0x04) 1
if (DRIVER_OBJECT_32.Size == 0xa8) 1
if (chk_unicode_string(
&DRIVER_OBJECT_32.DriverName))
2
if (chk_unicode_string(
DRIVER_OBJECT_32.HardwareDatabase))
2
if ((DRIVER_OBJECT_32.MajorFunction[0]) >> 31) 2
if (max_same_major_functions(
&DRIVER_OBJECT_32) >= min_major_function)
2
check_function_prologue(addr) 4
RPI FOR DRIVER_OBJECT DETECTION
THE ‘CHECK_FUNCTION_PROLOGUE
(ADDR)’ FUNCTION
Condition
Res
ult
If (((addr[i+0] == 0x55) && (addr[i+1] == 0x89)
&& (addr[i+2] == 0xe5)) ||
((addr[i+0] == 0x55) && (addr[i+1] == 0x8b)
&& (addr[i+2] == 0xec)) ||
((addr[i+0] == 0x53) && (addr[i+1] == 0x56)) ||
((addr[i+0] == 0x56) && (addr[i+1] == 0x57)) ||
((addr[i+0] == 0x56) && (addr[i+1] == 0x57)) ||
((addr[i+0] == 0x8b) && (addr[i+1] == 0xff)))
true
or
false
RPI APPLYING
1. Calculate all values, such as ‘min_major_function’
and ‘global_scope’
2. Perform a byte-to-byte search by calculating the
sum of points for each memory region
3. DRIVER_OBJECT structure is found if the
probabilistic comparing of matching points with
the ‘global_scope’ value is true
4. Compare the RPI-matching list with the drivers
list, which has been obtained by
ZwOpenDirectoryObject
FUTURE PLANS OF HOW TO
USE & IMPROVE MASHKA
● Detection Shadow Walker-like Rootkits
● GPU Utilization in Memory Forensics
● The Idea of Cloud Anti-Rootkit or
Anti-Rootkit as a Service
● The Center of Mass of Kernel Mode Structures
● Digital Forensics in Education
In the latter case popular tools such as PowerTool,
TDSSKiller, Xuetr cannot detect a hidden driver, but
the RPI can
TESTING RESULTS OF MASHKA
DBS approach has been successfully tested
deliberately
hidden
objects
real rootkits:
• Virus.Win32.Sality.q (Kaspersky Lab)
• Trojan.Win32.VB.aqt (Kaspersky Lab)
RPI approach has been successfully tested
deliberately
hidden
objects
real
rootkits
for hidden drivers which
were loaded by ATSIV
(Linchpin Labs)
Demo - bit.ly/win8t6st
CONCLUSIONS
● Level of sophisticated malware increases
● Vulnerability of Windows OS
● Popular dump systems are vulnerable to
intruder attacks
● Popular anti-rootkits are stopped by malware
● To prevent a possible attack, continue to
maintain systems
CONCLUSIONS
● Use the page tables to memory dump
● Dynamic bit signatures can detect structures
which have a typical design with a lot of
members
● Rating point inspection can detect structure by
detailed analysis of its members

Weitere ähnliche Inhalte

Was ist angesagt?

Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devicesNikos Gkogkos
 
Indicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationIndicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationMichael Boman
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityJoe Sylve
 
How to drive a malware analyst crazy
How to drive a malware analyst crazyHow to drive a malware analyst crazy
How to drive a malware analyst crazyMichael Boman
 
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...CODE BLUE
 
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsNullbyte Security Conference
 
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected ProcessesNSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected ProcessesNoSuchCon
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026PacSecJP
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법GangSeok Lee
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & futureAlex Matrosov
 
Forensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual MachineForensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual MachineSource Conference
 
SANS Forensics 2009 - Memory Forensics and Registry Analysis
SANS Forensics 2009 - Memory Forensics and Registry AnalysisSANS Forensics 2009 - Memory Forensics and Registry Analysis
SANS Forensics 2009 - Memory Forensics and Registry Analysismooyix
 
One-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisOne-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisTakahiro Haruyama
 
Memory forensics
Memory forensicsMemory forensics
Memory forensicsSunil Kumar
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsAlex Matrosov
 
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization TechnologyA Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization TechnologyFFRI, Inc.
 
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...MITRE ATT&CK
 

Was ist angesagt? (20)

Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devices
 
Indicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradicationIndicators of compromise: From malware analysis to eradication
Indicators of compromise: From malware analysis to eradication
 
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and VolatilityAndroid Mind Reading: Android Live Memory Analysis with LiME and Volatility
Android Mind Reading: Android Live Memory Analysis with LiME and Volatility
 
How to drive a malware analyst crazy
How to drive a malware analyst crazyHow to drive a malware analyst crazy
How to drive a malware analyst crazy
 
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
 
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
 
Code Injection in Windows
Code Injection in WindowsCode Injection in Windows
Code Injection in Windows
 
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected ProcessesNSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & future
 
Forensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual MachineForensic Memory Analysis of Android's Dalvik Virtual Machine
Forensic Memory Analysis of Android's Dalvik Virtual Machine
 
SANS Forensics 2009 - Memory Forensics and Registry Analysis
SANS Forensics 2009 - Memory Forensics and Registry AnalysisSANS Forensics 2009 - Memory Forensics and Registry Analysis
SANS Forensics 2009 - Memory Forensics and Registry Analysis
 
Inside Winnyp
Inside WinnypInside Winnyp
Inside Winnyp
 
One-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisOne-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic Analysis
 
Memory forensics
Memory forensicsMemory forensics
Memory forensics
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode Rootkits
 
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization TechnologyA Hypervisor IPS based on Hardware Assisted Virtualization Technology
A Hypervisor IPS based on Hardware Assisted Virtualization Technology
 
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...
Would you Rather Have Telemetry into 2 Attacks or 20? An Insight Into Highly ...
 

Andere mochten auch

Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...
Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...
Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...Igor Korkin
 
Stop pulling the plug
Stop pulling the plugStop pulling the plug
Stop pulling the plugKamal Rathaur
 
Dfrws eu 2014 rekall workshop
Dfrws eu 2014 rekall workshopDfrws eu 2014 rekall workshop
Dfrws eu 2014 rekall workshopTamas K Lengyel
 
Research Paper on Rootkit.
Research Paper on Rootkit.Research Paper on Rootkit.
Research Paper on Rootkit.Anuj Khandelwal
 
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practicalMoabi.com
 
Detecting hardware virtualization rootkits
Detecting hardware virtualization rootkitsDetecting hardware virtualization rootkits
Detecting hardware virtualization rootkitsEdgar Barbosa
 
Attacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринAttacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринDefconRussia
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20DefconRussia
 
Anti-Forensic Rootkits
Anti-Forensic RootkitsAnti-Forensic Rootkits
Anti-Forensic Rootkitsamiable_indian
 
Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Jérôme Petazzoni
 
Rootkit on Linux X86 v2.6
Rootkit on Linux X86 v2.6Rootkit on Linux X86 v2.6
Rootkit on Linux X86 v2.6fisher.w.y
 
Who am I? - Personal Development Framework for Employees
Who am I? - Personal Development Framework for EmployeesWho am I? - Personal Development Framework for Employees
Who am I? - Personal Development Framework for EmployeesHppy
 
Who am i presentation
Who am i presentationWho am i presentation
Who am i presentationMollytigers
 
2010 2013 sandro suffert memory forensics introdutory work shop - public
2010 2013 sandro suffert memory forensics introdutory work shop - public2010 2013 sandro suffert memory forensics introdutory work shop - public
2010 2013 sandro suffert memory forensics introdutory work shop - publicSandro Suffert
 

Andere mochten auch (20)

Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...
Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...
Acceleration of Statistical Detection of Zero-day Malware in the Memory Dump ...
 
Stop pulling the plug
Stop pulling the plugStop pulling the plug
Stop pulling the plug
 
Dfrws eu 2014 rekall workshop
Dfrws eu 2014 rekall workshopDfrws eu 2014 rekall workshop
Dfrws eu 2014 rekall workshop
 
Memory forensics and incident response
Memory forensics and incident responseMemory forensics and incident response
Memory forensics and incident response
 
Rootkit
RootkitRootkit
Rootkit
 
Research Paper on Rootkit.
Research Paper on Rootkit.Research Paper on Rootkit.
Research Paper on Rootkit.
 
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
Detecting hardware virtualization rootkits
Detecting hardware virtualization rootkitsDetecting hardware virtualization rootkits
Detecting hardware virtualization rootkits
 
Attacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринAttacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей Тюрин
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20
 
Identifying XSS Vulnerabilities
Identifying XSS VulnerabilitiesIdentifying XSS Vulnerabilities
Identifying XSS Vulnerabilities
 
Anti-Forensic Rootkits
Anti-Forensic RootkitsAnti-Forensic Rootkits
Anti-Forensic Rootkits
 
Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?
 
Spyware and rootkit
Spyware and rootkitSpyware and rootkit
Spyware and rootkit
 
Rootkit on Linux X86 v2.6
Rootkit on Linux X86 v2.6Rootkit on Linux X86 v2.6
Rootkit on Linux X86 v2.6
 
Hunting rootkit from dark corners of memory
Hunting rootkit from dark corners of memoryHunting rootkit from dark corners of memory
Hunting rootkit from dark corners of memory
 
Who am I? - Personal Development Framework for Employees
Who am I? - Personal Development Framework for EmployeesWho am I? - Personal Development Framework for Employees
Who am I? - Personal Development Framework for Employees
 
Who am i presentation
Who am i presentationWho am i presentation
Who am i presentation
 
2010 2013 sandro suffert memory forensics introdutory work shop - public
2010 2013 sandro suffert memory forensics introdutory work shop - public2010 2013 sandro suffert memory forensics introdutory work shop - public
2010 2013 sandro suffert memory forensics introdutory work shop - public
 

Ähnlich wie Applying Memory Forensics to Rootkit Detection

Fundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisFundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisDmitry Vostokov
 
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareUsing Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareLastline, Inc.
 
Finding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyFinding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyPriyanka Aash
 
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 RING 0/-2 ROOKITS : COMPROMISING DEFENSES RING 0/-2 ROOKITS : COMPROMISING DEFENSES
RING 0/-2 ROOKITS : COMPROMISING DEFENSESPriyanka Aash
 
Mark Logic StrangeLoop 2010
Mark Logic StrangeLoop 2010Mark Logic StrangeLoop 2010
Mark Logic StrangeLoop 2010Christopher Biow
 
Ring 0/-2 Rootkits: bypassing defenses -- DEF CON 2018 USA
Ring 0/-2 Rootkits: bypassing defenses  -- DEF CON 2018 USARing 0/-2 Rootkits: bypassing defenses  -- DEF CON 2018 USA
Ring 0/-2 Rootkits: bypassing defenses -- DEF CON 2018 USAAlexandre Borges
 
Fundamentals of Complete Crash and Hang Memory Dump Analysis
Fundamentals of Complete Crash and Hang Memory Dump AnalysisFundamentals of Complete Crash and Hang Memory Dump Analysis
Fundamentals of Complete Crash and Hang Memory Dump AnalysisDmitry Vostokov
 
Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)RichardWarburton
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonJAXLondon2014
 
제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝Tommy Lee
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and ProfilingWSO2
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsCeph Community
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network ProcessingRyousei Takano
 
Fire-fighting java big data problems
Fire-fighting java big data problemsFire-fighting java big data problems
Fire-fighting java big data problemsgrepalex
 
Launching Your First Big Data Project on AWS
Launching Your First Big Data Project on AWSLaunching Your First Big Data Project on AWS
Launching Your First Big Data Project on AWSAmazon Web Services
 
Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsDigitalOcean
 
The Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage EngineThe Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage Enginefschupp
 
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)Dina Goldshtein
 

Ähnlich wie Applying Memory Forensics to Rootkit Detection (20)

Fundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisFundamentals of Physical Memory Analysis
Fundamentals of Physical Memory Analysis
 
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareUsing Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
 
Finding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated DisassemblyFinding Xori: Malware Analysis Triage with Automated Disassembly
Finding Xori: Malware Analysis Triage with Automated Disassembly
 
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 RING 0/-2 ROOKITS : COMPROMISING DEFENSES RING 0/-2 ROOKITS : COMPROMISING DEFENSES
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 
Mark Logic StrangeLoop 2010
Mark Logic StrangeLoop 2010Mark Logic StrangeLoop 2010
Mark Logic StrangeLoop 2010
 
Ring 0/-2 Rootkits: bypassing defenses -- DEF CON 2018 USA
Ring 0/-2 Rootkits: bypassing defenses  -- DEF CON 2018 USARing 0/-2 Rootkits: bypassing defenses  -- DEF CON 2018 USA
Ring 0/-2 Rootkits: bypassing defenses -- DEF CON 2018 USA
 
Fundamentals of Complete Crash and Hang Memory Dump Analysis
Fundamentals of Complete Crash and Hang Memory Dump AnalysisFundamentals of Complete Crash and Hang Memory Dump Analysis
Fundamentals of Complete Crash and Hang Memory Dump Analysis
 
Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)
 
Performance and Predictability - Richard Warburton
Performance and Predictability - Richard WarburtonPerformance and Predictability - Richard Warburton
Performance and Predictability - Richard Warburton
 
제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and Profiling
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network Processing
 
optimizing_ceph_flash
optimizing_ceph_flashoptimizing_ceph_flash
optimizing_ceph_flash
 
Fire-fighting java big data problems
Fire-fighting java big data problemsFire-fighting java big data problems
Fire-fighting java big data problems
 
Launching Your First Big Data Project on AWS
Launching Your First Big Data Project on AWSLaunching Your First Big Data Project on AWS
Launching Your First Big Data Project on AWS
 
Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult Steps
 
The Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage EngineThe Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage Engine
 
You suck at Memory Analysis
You suck at Memory AnalysisYou suck at Memory Analysis
You suck at Memory Analysis
 
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
 

Kürzlich hochgeladen

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Kürzlich hochgeladen (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Applying Memory Forensics to Rootkit Detection

  • 1. APPLYING MEMORY FORENSICS TO ROOTKIT DETECTION Igor Korkin Ivan Nesterov CDFSL 2014
  • 2. Goals of memory forensics Passwords, crypto keys and etc. revealing software Software reverse engineering Rootkits analysis & detection
  • 3. Agenda Memory Dump System RPI for drivers DBS for processes 1. Review of dump & analysis tools in rootkit conditions 2-3. MASHKA ─ Malware Analysis System for Hidden Knotty Anomalies:
  • 4. Review of rootkits techniques Rootkits techniques – malware hiding from OS & AV function hooking object manipulation (byte modification) func_A func_B func_A func_B hook EPROCESS structures
  • 5. Dump approaches classification Software Hardware Virtual memory Physical memory Ease of distribution? Vulnerable?
  • 6. Dump approaches are either vulnerable or non applicable in enterprises Hooking resilience Ease of distribution Software − + Hardware + −
  • 7. Why are software approaches vulnerable?
  • 8. Details of dump & analysis tools Memory mapping routines ZwWriteFile or analogue Analysis of kernel OS structures Hook Hook Byte Modification J.Stuttgen, M.Cohen (`13) L.Milkovic (`12) T.Haruyama, H.Suzuki (`12) Typical dump & analysis tool
  • 9. What can we do under these circumstances?
  • 10. What can we do under these circumstances? Let's omit the functions!
  • 11. What can we use instead? What can we do under these circumstances? Let's omit the functions!
  • 12. Virtual and Physical memoryusermodekernelmode calc.exe word.exe kernel ? Virtual memory Physical memory calc.exe kernel word.exe ?
  • 13. How does addresses translation work? Virtual address Page Directory & Page Tables FLAGS PFN Table’s entry: Physical memory ACCESS Address = PFN*0x1000
  • 14. How does addresses translation work? Virtual address Page Directory & Page Tables FLAGS PFN Table’s entry: Physical memory ACCESS Address = PFN*0x1000 Is it possible to use paging in a dump?
  • 15. How does addresses translation work? Virtual address Page Directory & Page Tables FLAGS PFN Table’s entry: Physical memory ACCESS Address = PFN*0x1000 Let’s run addresses translation in reverse! Is it possible to use paging in a dump?
  • 16. MASHKA’s memory dump algorithm Page Directory others P PS BE 3C 0 1 Go to next entry . . . i 5 6 7
  • 17. MASHKA’s memory dump algorithm Page Directory others P PS BE 3C 0 1 BE 4C 1 1 Go to next entry Save memory page (4 Mb or 2Mb) by i . . . i 5 6 7
  • 18. MASHKA’s memory dump algorithm Page Directory others P PS BE 3C 0 1 BE 4C 1 1 Go to next entry Save memory page (4 Mb or 2Mb) by i BE FF 1 0 Go to Page Table . . . Page Table others P . . . i 5 6 7 j 0 1
  • 19. Page Directory others P PS BE 3C 0 1 BE 4C 1 1 Go to next entry Save memory page (4 Mb or 2Mb) by i BE FF 1 0 Go to Page Table . . . Page Table others P BF 00 0 . . . Go to next entry i 5 6 7 j 0 1 MASHKA’s memory dump algorithm
  • 20. MASHKA’s memory dump algorithm Page Directory others P PS BE 3C 0 1 BE 4C 1 1 Go to next entry Save memory page (4 Mb or 2Mb) by i BE FF 1 0 Go to Page Table . . . Page Table others P BF 00 0 BF 01 1 . . . Go to next entry Save memory page (4 Kb) by i & j i 5 6 7 j 0 1
  • 21. MASHKA’s memory dump algorithm Page Directory others P PS BE 3C 0 1 BE 4C 1 1 Go to next entry Save memory page (4 Mb or 2Mb) by i BE FF 1 0 Go to Page Table . . . Page Table others P BF 00 0 BF 01 1 . . . Go to next entry Save memory page (4 Kb) by i & j i 5 6 7 j 0 1
  • 22. MASHKA’s dump algorithm details Page 2 Page 1 Virtual Memory (4GB) Dump File (300Mb) Struct File StartAddr_1 Page 4 Page 5 Page 2 Page 1 Page 4 Page 5 FinishAddr_1 DumpOffset_1 . . . StartAddr_3 DumpOffset_3 Page 3 Page 3 FinishAddr_3 StartAddr_2 FinishAddr_2 DumpOffset_2 StartAddr_5 FinishAddr_5 DumpOffset_5 StartAddr_3 FinishAddr_3 DumpOffset_3
  • 23. MASHKA’s dump algorithm details Page 2 Page 1 Virtual Memory (4GB) Dump File (300Mb) Struct File StartAddr_1 Page 4 Page 5 Page 2 Page 1 Page 4 Page 5 FinishAddr_1 DumpOffset_1 . . . StartAddr_3 DumpOffset_3 Page 3 Page 3 FinishAddr_3 StartAddr_2 FinishAddr_2 DumpOffset_2 StartAddr_5 FinishAddr_5 DumpOffset_5 StartAddr_3 FinishAddr_3 DumpOffset_3 How should new files be used?
  • 24. MASHKA in memory forensics tasks Loaded Dump File ".sys" VALF ODUF VALF Virtual Address in the Loaded dump File ODUF Offset in DUmp File 2E 73 79 73 00
  • 25. MASHKA in memory forensics tasks Loaded Dump File ".sys" VALF ODUF Struct File VAOM VAOM Virtual Address in the Original virt. Memory VALF Virtual Address in the Loaded dump File ODUF Offset in DUmp File ODUF 2E 73 79 73 00
  • 26. MASHKA in memory forensics tasks Loaded Dump File ".sys" VALF ODUF 2E 73 79 73 Original Virt. memory VAOM Struct File VAOM VAOM Virtual Address in the Original virt. Memory VALF Virtual Address in the Loaded dump File ODUF Offset in DUmp File ODUF 2E 73 79 73 00
  • 27. How is VAOM etc used?
  • 28. Use MASHKA in drivers forensics DRIVER_OBJECT SCM structures list: SERVICES.EXE PsLoadModuleList: user mode kernel mode
  • 29. Use MASHKA in drivers forensics CreateService( ServiceName, DisplayName, BinaryPath,...) ServiceName BinaryPath ServiceName DisplayName SCM structure, DRIVER_OBJECT and others will be added
  • 30. Use MASHKA in drivers forensics CreateService( ServiceName, DisplayName, BinaryPath,...) ServiceName BinaryPath ServiceName DisplayName SCM structure, DRIVER_OBJECT and others will be added ServiceName > VAOMs of ‘SN’
  • 31. Use MASHKA in drivers forensics CreateService( ServiceName, DisplayName, BinaryPath,...) ServiceName BinaryPath ServiceName DisplayName SCM structure, DRIVER_OBJECT and others will be added ServiceName > VAOMs of ‘SN’ VAOMs of ‘SN’ > VAOM of DRV_OBJ
  • 32. Advantages of MASHKA Uses only two functions: KeAttachProcess and ZwWriteFile Resilient to hooks due to low-level OS calls usage Protects the stored data by run-time encryption Finds different memory templates fast
  • 33. How to apply MASHKA to processes detection?
  • 34. ZwQuerySystemInformation hooking PsActiveProcessList modifying OS processes list handling or how can the process be hidden? How to detect a hidden process?
  • 35. Process detection approaches review ● hooking functions such as SwapContext or KiFastCallEntry ● a processes’ list from CSRSS.EXE ● a processes handle table list ● static signatures by Schuster (‘07) ● robust signatures by Dolan-Gavitt (‘09) ● structures location by Grizzard (‘10) Object structure lists Heuristic analyzer Static signature scans
  • 36. Process detection approaches review ● hooking functions such as SwapContext or KiFastCallEntry ● a processes’ list from CSRSS.EXE ● a processes handle table list ● static signatures by Schuster (‘07) ● robust signatures by Dolan-Gavitt (‘09) ● structures location by Grizzard (‘10) Object structure lists Heuristic analyzer Static signature scans
  • 37. Scan is based on Disadvantages some EPROCESS fields values are either known or exceed the constant, e.g. 0x8000_0000 vulnerable to field modifications difficult to achieve portability Analysis of static signature scan GMER, PowerTool and XueTr use it
  • 38. Scan is based on Disadvantages some EPROCESS fields values are either known or exceed the constant, e.g. 0x8000_0000 vulnerable to field modifications difficult to achieve portability Analysis of static signature scan GMER, PowerTool and XueTr use it
  • 39. How can we improve signature scans?
  • 40. Objects structures typical design 03 28 87 1B 05 56 01 01 E4 03 28 84 1B 05 B0 E4 E4 E4 03 28 84 1B 05 B0 18 18 E4 Objects structures 03 28 85 1B 05 78 12 E412
  • 41. Objects structures typical design 03 28 87 1B 05 56 01 01 E4 03 28 84 1B 05 B0 E4 E4 E4 03 28 84 1B 05 B0 18 18 E4 Objects structures 03 28 85 1B 05 78 12 E412 03 28 1B 05 E4- - - - Dynamic Byte Signature memory pattern
  • 42. Process detection with Dynamic Byte Signature 1. Create Dynamic Byte Signature by using EPROCESS structures in PsActiveProcessList 2. Use byte to byte DBS search to find all EPROCESS structures 3. Compare a new list with NtQuerySystemInformation list
  • 43. Bit signature = thorough analysis 03 28 87 1B 05 56 01 01 E4 03 28 84 1B 05 B0 E4 E4 E4 03 28 84 1B 05 B0 18 18 E4 03 28 85 1B 05 78 12 E412 87 84 1 0 0 0 0 1 1 1 0 0 0 0 1 0 Downscale from bytes to bits 1 0
  • 44. Bit signature = thorough analysis 03 28 87 1B 05 56 01 01 E4 03 28 84 1B 05 B0 E4 E4 E4 03 28 84 1B 05 B0 18 18 E4 03 28 85 1B 05 78 12 E412 87 84 1 0 0 0 0 1 1 1 0 0 0 0 1 0 Downscale from bytes to bits 1 0
  • 45. 03 28 1B 05 E4- - - - Bit signature = thorough analysis 03 28 87 1B 05 56 01 01 E4 03 28 84 1B 05 B0 E4 E4 E4 03 28 84 1B 05 B0 18 18 E4 03 28 85 1B 05 78 12 E412 87 84 1 0 0 0 0 1 1 1 0 0 0 0 1 0 Downscale from bytes to bits 1 0 Dynamic bit signature:
  • 46. DBS features Advantages Automatic learning Easily portable Bit based analysis More thorough analysis Probabilistic check Able to recognize structures even without full pattern match Dynamic Bit Signature Analysis
  • 47. What about hidden drivers and their detection?
  • 48. Hidden drivers have similar cases List view Activity to hide Processes TaskMgr.exe PsActiveProcessList modification Drivers DriverQuery.exe PsLoadedModuleList modification ZwQuerySystemInformation hooking leads to processes & drivers hiding
  • 49. Drivers detection approaches review ● ObjectDirectory lists ● Service Control Manager list Schuster’s signature approach has adapted by W.Tsaur and L.Yeh (‘12) to drivers detection Object structure lists Signature scans
  • 50. Is it possible to adapt DBS for driver detection?
  • 51. Is it possible to adapt DBS for driver detection? DBS only can detect structures with a lot of fields
  • 52. Is it possible to adapt DBS for driver detection? EPROCESS DRIVER_OBJECT DBS only can detect structures with a lot of fields
  • 53. Rating Point Inspection (RPI) RPI improvements over DBS ● RPI utilizes additional weight matrix for precise pattern matching ● RPI use selective matching algorithm If one of the checks is true DBS RPI add 1 point 1, 2 or etc. points are added to the final score
  • 54. Description of weight matrix for DRIVER_OBJECT is in the corresponding paper
  • 55. How does RPI detect drivers? weight matrix A B C DRV_OBJ list
  • 56. How does RPI detect drivers? weight matrix A B C threshold value DRV_OBJ list
  • 57. How does RPI detect drivers? weight matrix A B C threshold value DRV_OBJ list byte to byte probabilistic search A B C complete list of DRV_OBJ D
  • 58. D How does RPI detect drivers? weight matrix A B C threshold value DRV_OBJ list byte to byte probabilistic search A B C complete list of DRV_OBJ D A B C Hidden DRV = ─
  • 59. MASHKA’s achievements Reveals rootkits: ● Deliberately hidden processes and drivers ● Virus.Win32.Sality.q ● Trojan.Win32.VB.aqt ● Hidden drivers by ATSIV
  • 60. MASHKA’s achievements Reveals rootkits: ● Deliberately hidden processes and drivers ● Virus.Win32.Sality.q ● Trojan.Win32.VB.aqt ● Hidden drivers by ATSIV Existing anti-rootkits PowerTool, TDSSKiller, Xuetr fail, but MASHKA can detect them Demo: bit.ly/win8t6st
  • 61. What is the pie filling? ?
  • 62. What is the pie filling? ?
  • 65. WHAT IS IT MASHKA? DBS for EPROCESS detection RPI for DRIVER_OBJECT detection Other digital forensics tasks Malware Analysis System for Hidden Knotty Anomalies Memory Dump System (platform for forensic analysis)
  • 66. MASHKA IN MEMORY FORENSICS TASKS Various search signatures: char and wide char strings, byte fragments include addresses As a result we receive: Name Definition VALF virtual address of the loaded dump file read data ODUF corresponding offset in dump file calculate offsets VAOM virtual address of the original memory find value in dump What can we do with it?
  • 67. USE MASHKA TO RESEARCH DRIVERS 1. Run Windows under WinDbg control 2. Install a test driver with ‘ServiceName’, ‘DisplayName’ and ‘BinaryPath’ 3. Hide this driver structure by unlinking from PsLoadedModuleList 4. Check the system with anti-rootkit tool 5. Dump memory with the help of MASHKA
  • 68. USE MASHKA TO RESEARCH DRIVERS 6. Search strings from step 2 and save their ‘VAOM’ 7. By WinDbg and strings VAOM change their content 8. Check the system repeatedly. Detection tools will give us a changed name. By known ‘VAOM’ run further analysis Drivertest_driver ... test_driver.sys Driver1est_driver ... 2est_driver.sys
  • 69. PROBLEM STATEMENT - ROOTKITS IN WINDOWS
  • 70. ANALYSIS OF CURRENT APPROACHES TO DETECTION IN FACE OF OPPOSITIONS Cross-view detection is the main point for all tools Low-level mechanisms: ●Heuristic analyzer ●Additional object structure lists ●Signature scans are based on byte to byte search of fragments of objects structures in memory
  • 71. ANALYSIS OF SIGNATURE SCANS ● The fact that some fields’ values are either known or exceed the constant, for example 0x8000_0000 ● Parts of this method are implemented in the popular tools such as GMER, PowerTool, XueTr Method’s disadvantages: ● vulnerable to field modifications: If at least one byte does not match, the signature scan will miss the structure ● difficult to achieve portability on different versions of Windows OS, as it requires a lot of manual work
  • 72. ‘global_scope’ is a sum of points Condition Score if (DRIVER_OBJECT_32.Type == 0x04) 1 if (DRIVER_OBJECT_32.Size == 0xa8) 1 if (chk_unicode_string( &DRIVER_OBJECT_32.DriverName)) 2 if (chk_unicode_string( DRIVER_OBJECT_32.HardwareDatabase)) 2 if ((DRIVER_OBJECT_32.MajorFunction[0]) >> 31) 2 if (max_same_major_functions( &DRIVER_OBJECT_32) >= min_major_function) 2 check_function_prologue(addr) 4 RPI FOR DRIVER_OBJECT DETECTION
  • 73. THE ‘CHECK_FUNCTION_PROLOGUE (ADDR)’ FUNCTION Condition Res ult If (((addr[i+0] == 0x55) && (addr[i+1] == 0x89) && (addr[i+2] == 0xe5)) || ((addr[i+0] == 0x55) && (addr[i+1] == 0x8b) && (addr[i+2] == 0xec)) || ((addr[i+0] == 0x53) && (addr[i+1] == 0x56)) || ((addr[i+0] == 0x56) && (addr[i+1] == 0x57)) || ((addr[i+0] == 0x56) && (addr[i+1] == 0x57)) || ((addr[i+0] == 0x8b) && (addr[i+1] == 0xff))) true or false
  • 74. RPI APPLYING 1. Calculate all values, such as ‘min_major_function’ and ‘global_scope’ 2. Perform a byte-to-byte search by calculating the sum of points for each memory region 3. DRIVER_OBJECT structure is found if the probabilistic comparing of matching points with the ‘global_scope’ value is true 4. Compare the RPI-matching list with the drivers list, which has been obtained by ZwOpenDirectoryObject
  • 75. FUTURE PLANS OF HOW TO USE & IMPROVE MASHKA ● Detection Shadow Walker-like Rootkits ● GPU Utilization in Memory Forensics ● The Idea of Cloud Anti-Rootkit or Anti-Rootkit as a Service ● The Center of Mass of Kernel Mode Structures ● Digital Forensics in Education
  • 76. In the latter case popular tools such as PowerTool, TDSSKiller, Xuetr cannot detect a hidden driver, but the RPI can TESTING RESULTS OF MASHKA DBS approach has been successfully tested deliberately hidden objects real rootkits: • Virus.Win32.Sality.q (Kaspersky Lab) • Trojan.Win32.VB.aqt (Kaspersky Lab) RPI approach has been successfully tested deliberately hidden objects real rootkits for hidden drivers which were loaded by ATSIV (Linchpin Labs) Demo - bit.ly/win8t6st
  • 77. CONCLUSIONS ● Level of sophisticated malware increases ● Vulnerability of Windows OS ● Popular dump systems are vulnerable to intruder attacks ● Popular anti-rootkits are stopped by malware ● To prevent a possible attack, continue to maintain systems
  • 78. CONCLUSIONS ● Use the page tables to memory dump ● Dynamic bit signatures can detect structures which have a typical design with a lot of members ● Rating point inspection can detect structure by detailed analysis of its members