SlideShare a Scribd company logo
1 of 42
Hypervisor-Based Active Data
Protection for Integrity and Confidentiality of
Dynamically Allocated Memory in Windows Kernel
Igor Korkin
2018 ADFSL Conference
Hypervisor-Based Active Data
Protection for Integrity and Confidentiality of
Dynamically Allocated Memory in Windows Kernel1)
Dynamically Allocated Memory in Windows Kernel
The function ExAllocatePoolWithTag(NumberOfBytes) ―
allocates memory block of the specified size and returns a pointer to it
Kernel-mode
Driver
Allocates
Allocated Memory
BlockReads/Writes
Dynamically Allocated Memory in Windows Kernel
The function ExAllocatePoolWithTag(NumberOfBytes) ―
allocates memory block of the specified size and returns a pointer to it
Kernel-mode
Driver
Allocates
Allocated Memory
Block
Malware Driver
Reads/Writes
Consequences of Allocated Data Attacks
Windows OS Internals
(Processes and drivers
structures)
 Hidden footprints
 Escalated privileges
Third-party Drivers
CNC machines
Industrial Control
Systems
 Crush the machine
and the workpiece
 Disrupt the
industrial process
Consequences of Allocated Data Attacks
Windows OS Internals
(Processes and drivers
structures)
 Hidden footprints
 Escalated privileges
Third-party Drivers
CNC machines
Industrial Control
Systems
 Crush the machine
and the workpiece
 Disrupt the
industrial process
Consequences of Allocated Data Attacks
Windows OS Internals
(Processes and drivers
structures)
 Hidden footprints
 Escalated privileges
Third-party Drivers
CNC machines
Industrial Control
Systems
 Crush the machine
and the workpiece
 Disrupt the
industrial process
Windows-based CNC can be attacked like a PC
https://www.fanucamerica.com/docs/default-source/cnc-files/brochures/fanuc_30ib_low.pdf?sfvrsn=feeda1_0
https://www.youtube.com/watch?v=jHbI_B2sPA0
https://www.youtube.com/watch?v=8CSwOebmb0A
CNC machines make everything! CNC machine crashes!
Windows-based CNC can be attacked like a PC
https://www.fanucamerica.com/docs/default-source/cnc-files/brochures/fanuc_30ib_low.pdf?sfvrsn=feeda1_0
https://www.youtube.com/watch?v=jHbI_B2sPA0
https://www.youtube.com/watch?v=8CSwOebmb0A
CNC machines make everything! CNC machine crashes!
Hypervisor-Based Active Data
Protection for Integrity and Confidentiality of
Dynamically Allocated Memory in Windows Kernel
2)
Protection for Integrity and Confidentiality of
Dynamically Allocated Memory in Windows Kernel
Kernel-mode
Driver
Allocates
Allocated Memory
Block
Malware Driver
Reads/Writes
How to prevent
such illegal access?
Analysis of Allocated Data Protection Projects
Title, year
OS data
Integrity
Third-Party Drivers Data
OS
Integrity Confidentiality
Patch Guard in
Windows 10 1709,
2017
+–* – – Windows
HUKO, 2011 + +–** –
Windows,
Linux
LKMG, 2018 + +–** +–** Linux
LKRG, 2018 + – – Linux
AllMemPro, 2018 + + + Windows
* ― Windows security does not reveal the privilege escalation
** ― HUKO and LKMG systems do not restrict the OS kernel
Analysis of Allocated Data Protection Projects
Title, year
OS data
Integrity
Third-Party Drivers Data
OS
Integrity Confidentiality
Patch Guard in
Windows 10 1709,
2017
+–* – – Windows
HUKO, 2011 + +–** –
Windows,
Linux
LKMG, 2018 + +–** +–** Linux
LKRG, 2018 + – – Linux
AllMemPro, 2018 + + + Windows
* ― Windows security does not reveal the privilege escalation
** ― HUKO and LKMG systems do not restrict the OS kernel
Integrity of Windows Internals
List of EPROCESS
structures
user mode
kernel mode
Integrity of Windows Internals
List of EPROCESS
structures
user mode
kernel mode
Integrity of Windows Internals
List of EPROCESS
structures
user mode
kernel mode
cmd has USERS
privileges
Integrity of Windows Internals
Fields of EPROCESS Hackers Goals Reaction of Security Service
ActiveProcessLinks Hide a process
List of EPROCESS
structures
user mode
kernel mode
mem_attackercmd has ADMIN
privileges
Windows Security does not detect an
unauthorized privilege escalation
Driver
Demo A
Part 1/3 - Hiding a Process
Demo A
Integrity of Windows Internals
Fields of EPROCESS Hackers Goals Reaction of Security Service
ActiveProcessLinks Hide a process PatchGuard crashes the OS
Token Elevate process privileges
✔
List of EPROCESS
structures
user mode
kernel mode
mem_attackercmd has ADMIN
privileges
Windows Security does not detect an
unauthorized privilege escalation
Driver
Demo B
Part 2/3 - Escalating Process Privileges
Demo B
✘
Integrity of Windows Internals
Fields of EPROCESS Hackers Goals Reaction of Security Service
ActiveProcessLinks Hide a process PatchGuard crashes the OS
Token Elevate process privileges OS has been infected
✔
List of EPROCESS
structures
user mode
kernel mode
mem_attackercmd has ADMIN
privileges
Windows Security does not detect an
unauthorized privilege escalation
Driver
Integrity of Windows Internals
Fields of EPROCESS Hackers Goals Reaction of Security Service
ActiveProcessLinks Hide a process PatchGuard crashes the OS
Token Elevate process privileges
✔
List of EPROCESS
structures
user mode
kernel mode
Fake Data
AllMemPro prevents privilege escalation for cmd
by redirecting illegal access to the fake data
mem_attackercmd has USERS
privileges
Driver
Demo C
Part 3/3 - AllMemPro Prevents
Escalation of Process Privileges
Demo C
Integrity of Windows Internals
Fields of EPROCESS Hackers Goals Reaction of Security Service
ActiveProcessLinks Hide a process PatchGuard crashes the OS
Token Elevate process privileges AllMemPro prevents access
✔
✔
List of EPROCESS
structures
user mode
kernel mode
Fake Data
AllMemPro prevents privilege escalation for cmd
by redirecting illegal access to the fake data
mem_attackercmd has USERS
privileges
Driver
Protection of Industrial Control Systems
user mode
kernel mode
Driver
mem_allocator
Temperature
Nuclear Reactor
is OK
user mode
kernel mode
Driver
mem_attackermem_allocator
Driver
Temperature
Nuclear Reactor
is in danger
Protection of Industrial Control Systems – Demo D
Part 1/2 - Unauthorized Modification of
Dynamically Allocated Memory
Demo D
user mode
kernel mode
Fake Data
AllMemPro protects the temperature
by redirecting illegal access to the fake data
Nuclear Reactor
is OK
Driver
mem_attackermem_allocator
Driver
Temperature
Protection of Industrial Control Systems – Demo E
Part 2/2 - AllMemPro Prevents Illegal
Access to the Allocated Memory
Demo E
Hypervisor-Based Active Data
Protection for Integrity and Confidentiality of
Dynamically Allocated Memory in Windows Kernel
3)
Architecture of AllMemPro - Allocated Memory Protection
Controller Switcher
Dispatcher
Memory Access Rule
 drvAddr
 drvSize
 allocAddr
 allocSize
 accessBits
Architecture of AllMemPro - Allocated Memory Protection
Tracks:
 loading drivers
 memory allocation
Controller
Intercepts accesses
and prevents illegal
ones by asking Policy
Switcher
Dispatcher
Memory Access Rule
Memory
Access Rule
 drvAddr
 drvSize
 allocAddr
 allocSize
 accessBits
Architecture of AllMemPro - Allocated Memory Protection
Tracks:
 loading drivers
 memory allocation
Controller
Intercepts accesses
and prevents illegal
ones by asking Policy
Switcher
Dispatcher
Memory Access Rule
Memory
Access Rule
 drvAddr
 drvSize
 allocAddr
 allocSize
 accessBits
Architecture of AllMemPro - Allocated Memory Protection
Tracks:
 loading drivers
 memory allocation
Controller
Intercepts accesses
and prevents illegal
ones by asking Policy
Switcher
Dispatcher
Memory Access Rule
?
Memory
Access Rule
 drvAddr
 drvSize
 allocAddr
 allocSize
 accessBits
Architecture of AllMemPro - Allocated Memory Protection
Tracks:
 loading drivers
 memory allocation
Controller
Intercepts accesses
and prevents illegal
ones by asking Policy
Switcher
Decides to grant or
deny access to the
protected memory
Dispatcher
Memory Access Rule
?
Memory
Access Rule
✔✘
 drvAddr
 drvSize
 allocAddr
 allocSize
 accessBits
The Switcher Controls Memory Access via EPT
EPT Paging Structure
Memory
Access Rule
EPT: memory access is blocked
EPT: memory access is allowed EPT: memory access is avoided
Access to the
protected data
Illegal AccessLegal Access
MTF is clear
MTF is set MTF is set
PFN
access is blocked &
will be trapped
access is skipped
Allocated
Data
Protected
Data
Protected
Data
Protected
Data
Fake
Data
The Switcher Controls Memory Access via EPT
EPT Paging Structure
Memory
Access Rule
EPT: memory access is blocked
EPT: memory access is allowed EPT: memory access is avoided
Access to the
protected data
Illegal AccessLegal Access
MTF is clear
MTF is set MTF is set
PFN
access is blocked &
will be trapped
access is skipped
Allocated
Data
Protected
Data
Protected
Data
Protected
Data
Fake
Data
The Switcher Controls Memory Access via EPT
EPT Paging Structure
Memory
Access Rule
EPT: memory access is blocked
EPT: memory access is allowed EPT: memory access is avoided
Access to the
protected data
Illegal AccessLegal Access
MTF is clear
MTF is set MTF is set
PFN
access is blocked &
will be trapped
access is skipped
Allocated
Data
Protected
Data
Protected
Data
Protected
Data
Fake
Data
AllMemPro benchmarks: memory access time
Driver Protected Memory
Reads/Writes
70±2
100.000±4.000
500.000±10.000
0
1
2
3
4
5
Enabled Cache Disabled Cache AllMemPro
x100000
AllMemPro Summary
• restricts the OS kernel
• protects each byte of the allocated memory
• is hypervisor-based and does not modify the OS
• protects memory with not so frequent access attempts
• seems to prevent Spectre and Meltdown CPU attacks: research is ongoing
Thank you!
Igor Korkin igor.korkin@gmail.com
All the details are here igorkorkin.blogspot.com
Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel

More Related Content

What's hot

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
 
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
 
MNSEC 2018 - Windows forensics
MNSEC 2018 - Windows forensicsMNSEC 2018 - Windows forensics
MNSEC 2018 - Windows forensicsMNCERT
 
Finfisher- Nguyễn Chấn Việt
Finfisher- Nguyễn Chấn ViệtFinfisher- Nguyễn Chấn Việt
Finfisher- Nguyễn Chấn ViệtSecurity Bootcamp
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026PacSecJP
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devicesNikos Gkogkos
 
Unix Security
Unix SecurityUnix Security
Unix Securityreplay21
 
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
 
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)Security Bootcamp
 
Fighting Malware Without Antivirus
Fighting Malware Without AntivirusFighting Malware Without Antivirus
Fighting Malware Without AntivirusEnergySec
 
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo sht
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo shtDEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo sht
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo shtFelipe Prado
 
Threats, Vulnerabilities & Security measures in Linux
Threats, Vulnerabilities & Security measures in LinuxThreats, Vulnerabilities & Security measures in Linux
Threats, Vulnerabilities & Security measures in LinuxAmitesh Bharti
 
Basic Linux Security
Basic Linux SecurityBasic Linux Security
Basic Linux Securitypankaj009
 
Malware analysis
Malware analysisMalware analysis
Malware analysisxabean
 
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...Felipe Prado
 
WinFE: The (Almost) Perfect Triage Tool
WinFE: The (Almost) Perfect Triage ToolWinFE: The (Almost) Perfect Triage Tool
WinFE: The (Almost) Perfect Triage ToolBrent Muir
 
SanDisk SecureAccess Encryption 1.5
SanDisk SecureAccess Encryption 1.5SanDisk SecureAccess Encryption 1.5
SanDisk SecureAccess Encryption 1.5Brent Muir
 
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0Security Bootcamp
 

What's hot (20)

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
 
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
 
MNSEC 2018 - Windows forensics
MNSEC 2018 - Windows forensicsMNSEC 2018 - Windows forensics
MNSEC 2018 - Windows forensics
 
Finfisher- Nguyễn Chấn Việt
Finfisher- Nguyễn Chấn ViệtFinfisher- Nguyễn Chấn Việt
Finfisher- Nguyễn Chấn Việt
 
Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026Shusei tomonaga pac_sec_20171026
Shusei tomonaga pac_sec_20171026
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devices
 
Unix Security
Unix SecurityUnix Security
Unix Security
 
Catching fileless attacks
Catching fileless attacksCatching fileless attacks
Catching fileless attacks
 
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 ...
 
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)
SBC 2012 - Malware Memory Forensics (Nguyễn Chấn Việt)
 
Fighting Malware Without Antivirus
Fighting Malware Without AntivirusFighting Malware Without Antivirus
Fighting Malware Without Antivirus
 
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo sht
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo shtDEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo sht
DEF CON 27 - MICHAEL LEIBOWITZ and TOPHER TIMZEN - edr is coming hide yo sht
 
Threats, Vulnerabilities & Security measures in Linux
Threats, Vulnerabilities & Security measures in LinuxThreats, Vulnerabilities & Security measures in Linux
Threats, Vulnerabilities & Security measures in Linux
 
Basic Linux Security
Basic Linux SecurityBasic Linux Security
Basic Linux Security
 
Malware analysis
Malware analysisMalware analysis
Malware analysis
 
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...
DEF CON 27 - HUBER AND ROSKOSCH - im on your phone listening attacking voip c...
 
Linux security
Linux securityLinux security
Linux security
 
WinFE: The (Almost) Perfect Triage Tool
WinFE: The (Almost) Perfect Triage ToolWinFE: The (Almost) Perfect Triage Tool
WinFE: The (Almost) Perfect Triage Tool
 
SanDisk SecureAccess Encryption 1.5
SanDisk SecureAccess Encryption 1.5SanDisk SecureAccess Encryption 1.5
SanDisk SecureAccess Encryption 1.5
 
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0
Nguyen Duc Thinh - Docker security in Dev Ops environment 2.0
 

Similar to Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel

Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)dsuyal1
 
Section02-Structures.ppt
Section02-Structures.pptSection02-Structures.ppt
Section02-Structures.pptJamelPandiin2
 
Aix administration
Aix administrationAix administration
Aix administrationacute23
 
002 Operating-System Structures.ppt
002 Operating-System Structures.ppt002 Operating-System Structures.ppt
002 Operating-System Structures.pptAxmedMaxamuudYoonis
 
Persistence in windows
Persistence in windowsPersistence in windows
Persistence in windowsArpan Raval
 
Microsoft (Data Protection Solutions)
Microsoft (Data Protection Solutions)Microsoft (Data Protection Solutions)
Microsoft (Data Protection Solutions)Vinayak Hegde
 
Csw2017 bazhaniuk exploring_yoursystemdeeper_updated
Csw2017 bazhaniuk exploring_yoursystemdeeper_updatedCsw2017 bazhaniuk exploring_yoursystemdeeper_updated
Csw2017 bazhaniuk exploring_yoursystemdeeper_updatedCanSecWest
 
0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft
0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft
0x02 - Windows Privilege Esc - A Low Level Explanation of Token TheftRussell Sanford
 
0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft
0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft
0x002 - Windows Priv Esc - A Low Level Explanation of Token TheftRussell Sanford
 
OS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineOS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineDivya S
 
Must Read HP Data Protector Interview Questions
Must Read HP Data Protector Interview QuestionsMust Read HP Data Protector Interview Questions
Must Read HP Data Protector Interview QuestionsLaxman J
 
Windows 7 client performance talk - Jeff Stokes
Windows 7 client performance talk - Jeff StokesWindows 7 client performance talk - Jeff Stokes
Windows 7 client performance talk - Jeff StokesJeff Stokes
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01wardell henley
 
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015Jan Ketil Skanke
 
Os rtos.ppt
Os rtos.pptOs rtos.ppt
Os rtos.pptrahul km
 

Similar to Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel (20)

Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)
 
Section02-Structures.ppt
Section02-Structures.pptSection02-Structures.ppt
Section02-Structures.ppt
 
Aix administration
Aix administrationAix administration
Aix administration
 
002 Operating-System Structures.ppt
002 Operating-System Structures.ppt002 Operating-System Structures.ppt
002 Operating-System Structures.ppt
 
Detecting persistence in windows
Detecting persistence in windowsDetecting persistence in windows
Detecting persistence in windows
 
Persistence in windows
Persistence in windowsPersistence in windows
Persistence in windows
 
Microsoft (Data Protection Solutions)
Microsoft (Data Protection Solutions)Microsoft (Data Protection Solutions)
Microsoft (Data Protection Solutions)
 
Os note
Os noteOs note
Os note
 
Csw2017 bazhaniuk exploring_yoursystemdeeper_updated
Csw2017 bazhaniuk exploring_yoursystemdeeper_updatedCsw2017 bazhaniuk exploring_yoursystemdeeper_updated
Csw2017 bazhaniuk exploring_yoursystemdeeper_updated
 
0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft
0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft
0x02 - Windows Privilege Esc - A Low Level Explanation of Token Theft
 
0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft
0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft
0x002 - Windows Priv Esc - A Low Level Explanation of Token Theft
 
OS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineOS Services, System call, Virtual Machine
OS Services, System call, Virtual Machine
 
CH02.pdf
CH02.pdfCH02.pdf
CH02.pdf
 
Must Read HP Data Protector Interview Questions
Must Read HP Data Protector Interview QuestionsMust Read HP Data Protector Interview Questions
Must Read HP Data Protector Interview Questions
 
Windows 7 client performance talk - Jeff Stokes
Windows 7 client performance talk - Jeff StokesWindows 7 client performance talk - Jeff Stokes
Windows 7 client performance talk - Jeff Stokes
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01
 
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015
Security @ Windows 10 Partner Technical Bootcamp Microsoft Norway October 2015
 
Os rtos.ppt
Os rtos.pptOs rtos.ppt
Os rtos.ppt
 
Ch11
Ch11Ch11
Ch11
 
Ch11 system administration
Ch11 system administration Ch11 system administration
Ch11 system administration
 

Recently uploaded

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 

Recently uploaded (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 

Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel

  • 1. Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel Igor Korkin 2018 ADFSL Conference
  • 2. Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel1)
  • 3. Dynamically Allocated Memory in Windows Kernel The function ExAllocatePoolWithTag(NumberOfBytes) ― allocates memory block of the specified size and returns a pointer to it Kernel-mode Driver Allocates Allocated Memory BlockReads/Writes
  • 4. Dynamically Allocated Memory in Windows Kernel The function ExAllocatePoolWithTag(NumberOfBytes) ― allocates memory block of the specified size and returns a pointer to it Kernel-mode Driver Allocates Allocated Memory Block Malware Driver Reads/Writes
  • 5. Consequences of Allocated Data Attacks Windows OS Internals (Processes and drivers structures)  Hidden footprints  Escalated privileges Third-party Drivers CNC machines Industrial Control Systems  Crush the machine and the workpiece  Disrupt the industrial process
  • 6. Consequences of Allocated Data Attacks Windows OS Internals (Processes and drivers structures)  Hidden footprints  Escalated privileges Third-party Drivers CNC machines Industrial Control Systems  Crush the machine and the workpiece  Disrupt the industrial process
  • 7. Consequences of Allocated Data Attacks Windows OS Internals (Processes and drivers structures)  Hidden footprints  Escalated privileges Third-party Drivers CNC machines Industrial Control Systems  Crush the machine and the workpiece  Disrupt the industrial process
  • 8. Windows-based CNC can be attacked like a PC https://www.fanucamerica.com/docs/default-source/cnc-files/brochures/fanuc_30ib_low.pdf?sfvrsn=feeda1_0 https://www.youtube.com/watch?v=jHbI_B2sPA0 https://www.youtube.com/watch?v=8CSwOebmb0A CNC machines make everything! CNC machine crashes!
  • 9. Windows-based CNC can be attacked like a PC https://www.fanucamerica.com/docs/default-source/cnc-files/brochures/fanuc_30ib_low.pdf?sfvrsn=feeda1_0 https://www.youtube.com/watch?v=jHbI_B2sPA0 https://www.youtube.com/watch?v=8CSwOebmb0A CNC machines make everything! CNC machine crashes!
  • 10. Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel 2)
  • 11. Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel Kernel-mode Driver Allocates Allocated Memory Block Malware Driver Reads/Writes How to prevent such illegal access?
  • 12. Analysis of Allocated Data Protection Projects Title, year OS data Integrity Third-Party Drivers Data OS Integrity Confidentiality Patch Guard in Windows 10 1709, 2017 +–* – – Windows HUKO, 2011 + +–** – Windows, Linux LKMG, 2018 + +–** +–** Linux LKRG, 2018 + – – Linux AllMemPro, 2018 + + + Windows * ― Windows security does not reveal the privilege escalation ** ― HUKO and LKMG systems do not restrict the OS kernel
  • 13. Analysis of Allocated Data Protection Projects Title, year OS data Integrity Third-Party Drivers Data OS Integrity Confidentiality Patch Guard in Windows 10 1709, 2017 +–* – – Windows HUKO, 2011 + +–** – Windows, Linux LKMG, 2018 + +–** +–** Linux LKRG, 2018 + – – Linux AllMemPro, 2018 + + + Windows * ― Windows security does not reveal the privilege escalation ** ― HUKO and LKMG systems do not restrict the OS kernel
  • 14. Integrity of Windows Internals List of EPROCESS structures user mode kernel mode
  • 15. Integrity of Windows Internals List of EPROCESS structures user mode kernel mode
  • 16. Integrity of Windows Internals List of EPROCESS structures user mode kernel mode cmd has USERS privileges
  • 17. Integrity of Windows Internals Fields of EPROCESS Hackers Goals Reaction of Security Service ActiveProcessLinks Hide a process List of EPROCESS structures user mode kernel mode mem_attackercmd has ADMIN privileges Windows Security does not detect an unauthorized privilege escalation Driver Demo A
  • 18. Part 1/3 - Hiding a Process Demo A
  • 19. Integrity of Windows Internals Fields of EPROCESS Hackers Goals Reaction of Security Service ActiveProcessLinks Hide a process PatchGuard crashes the OS Token Elevate process privileges ✔ List of EPROCESS structures user mode kernel mode mem_attackercmd has ADMIN privileges Windows Security does not detect an unauthorized privilege escalation Driver Demo B
  • 20. Part 2/3 - Escalating Process Privileges Demo B
  • 21. ✘ Integrity of Windows Internals Fields of EPROCESS Hackers Goals Reaction of Security Service ActiveProcessLinks Hide a process PatchGuard crashes the OS Token Elevate process privileges OS has been infected ✔ List of EPROCESS structures user mode kernel mode mem_attackercmd has ADMIN privileges Windows Security does not detect an unauthorized privilege escalation Driver
  • 22. Integrity of Windows Internals Fields of EPROCESS Hackers Goals Reaction of Security Service ActiveProcessLinks Hide a process PatchGuard crashes the OS Token Elevate process privileges ✔ List of EPROCESS structures user mode kernel mode Fake Data AllMemPro prevents privilege escalation for cmd by redirecting illegal access to the fake data mem_attackercmd has USERS privileges Driver Demo C
  • 23. Part 3/3 - AllMemPro Prevents Escalation of Process Privileges Demo C
  • 24. Integrity of Windows Internals Fields of EPROCESS Hackers Goals Reaction of Security Service ActiveProcessLinks Hide a process PatchGuard crashes the OS Token Elevate process privileges AllMemPro prevents access ✔ ✔ List of EPROCESS structures user mode kernel mode Fake Data AllMemPro prevents privilege escalation for cmd by redirecting illegal access to the fake data mem_attackercmd has USERS privileges Driver
  • 25. Protection of Industrial Control Systems user mode kernel mode Driver mem_allocator Temperature Nuclear Reactor is OK
  • 26. user mode kernel mode Driver mem_attackermem_allocator Driver Temperature Nuclear Reactor is in danger Protection of Industrial Control Systems – Demo D
  • 27. Part 1/2 - Unauthorized Modification of Dynamically Allocated Memory Demo D
  • 28. user mode kernel mode Fake Data AllMemPro protects the temperature by redirecting illegal access to the fake data Nuclear Reactor is OK Driver mem_attackermem_allocator Driver Temperature Protection of Industrial Control Systems – Demo E
  • 29. Part 2/2 - AllMemPro Prevents Illegal Access to the Allocated Memory Demo E
  • 30. Hypervisor-Based Active Data Protection for Integrity and Confidentiality of Dynamically Allocated Memory in Windows Kernel 3)
  • 31. Architecture of AllMemPro - Allocated Memory Protection Controller Switcher Dispatcher Memory Access Rule  drvAddr  drvSize  allocAddr  allocSize  accessBits
  • 32. Architecture of AllMemPro - Allocated Memory Protection Tracks:  loading drivers  memory allocation Controller Intercepts accesses and prevents illegal ones by asking Policy Switcher Dispatcher Memory Access Rule Memory Access Rule  drvAddr  drvSize  allocAddr  allocSize  accessBits
  • 33. Architecture of AllMemPro - Allocated Memory Protection Tracks:  loading drivers  memory allocation Controller Intercepts accesses and prevents illegal ones by asking Policy Switcher Dispatcher Memory Access Rule Memory Access Rule  drvAddr  drvSize  allocAddr  allocSize  accessBits
  • 34. Architecture of AllMemPro - Allocated Memory Protection Tracks:  loading drivers  memory allocation Controller Intercepts accesses and prevents illegal ones by asking Policy Switcher Dispatcher Memory Access Rule ? Memory Access Rule  drvAddr  drvSize  allocAddr  allocSize  accessBits
  • 35. Architecture of AllMemPro - Allocated Memory Protection Tracks:  loading drivers  memory allocation Controller Intercepts accesses and prevents illegal ones by asking Policy Switcher Decides to grant or deny access to the protected memory Dispatcher Memory Access Rule ? Memory Access Rule ✔✘  drvAddr  drvSize  allocAddr  allocSize  accessBits
  • 36. The Switcher Controls Memory Access via EPT EPT Paging Structure Memory Access Rule EPT: memory access is blocked EPT: memory access is allowed EPT: memory access is avoided Access to the protected data Illegal AccessLegal Access MTF is clear MTF is set MTF is set PFN access is blocked & will be trapped access is skipped Allocated Data Protected Data Protected Data Protected Data Fake Data
  • 37. The Switcher Controls Memory Access via EPT EPT Paging Structure Memory Access Rule EPT: memory access is blocked EPT: memory access is allowed EPT: memory access is avoided Access to the protected data Illegal AccessLegal Access MTF is clear MTF is set MTF is set PFN access is blocked & will be trapped access is skipped Allocated Data Protected Data Protected Data Protected Data Fake Data
  • 38. The Switcher Controls Memory Access via EPT EPT Paging Structure Memory Access Rule EPT: memory access is blocked EPT: memory access is allowed EPT: memory access is avoided Access to the protected data Illegal AccessLegal Access MTF is clear MTF is set MTF is set PFN access is blocked & will be trapped access is skipped Allocated Data Protected Data Protected Data Protected Data Fake Data
  • 39. AllMemPro benchmarks: memory access time Driver Protected Memory Reads/Writes 70±2 100.000±4.000 500.000±10.000 0 1 2 3 4 5 Enabled Cache Disabled Cache AllMemPro x100000
  • 40. AllMemPro Summary • restricts the OS kernel • protects each byte of the allocated memory • is hypervisor-based and does not modify the OS • protects memory with not so frequent access attempts • seems to prevent Spectre and Meltdown CPU attacks: research is ongoing
  • 41. Thank you! Igor Korkin igor.korkin@gmail.com All the details are here igorkorkin.blogspot.com

Editor's Notes

  1. Hi! I’m Igor. Thanks for coming. This is my first time in Texas and my 5th talk at the ADFSL Conference. -> And today I’ll tell you about my new project, which can protect allocated data.
  2. First of all, what is a dynamically allocated data, and why we need to bother about it.
  3. Every time when drivers “make space” for the storage of data they call the function ExAllocatePoolWithTag. As a result, memory chunks with specified sizes are allocated "on the fly" during drivers run time. The dynamically allocated memory is very common in Windows Kernel.
  4. And this allocated data can be easily attacked by malware driver. Let’s look at the results of these malware attacks.
  5. Hackers can attack the allocated memory of Windows kernel and third-party drivers. By mani pulating Windows Kernel data, hackers can hide footprints and escalate privileges to steal as much data as they want.
  6. By mani pulating allocated data of third-party drivers’ hackers can cause a real damage. Look at this. Nowadays there are a lot of Windows-based Industrial Control Systems. By attacking them malware can disrupt the industrial process. You remember, that in 2009 Stuxnet malware {a’} ravaged a nuclear facility in {a’} Iran.
  7. A similar target of attacks is the software for the machines with computer numerical control or ->
  8. CNC machines. They manipulate machine shop tools using computer-programming inputs. Those machines are genius – ->
  9. but hackers can cause the machine crushing and destroying the workpiece. We can prevent these risky situations –
  10. by focusing on protection of allocated data in memory.
  11. By preventing illegal access from a malware driver, we can guarantee` the integrity and confidentiality of allocated data. Nowadays there are a lot of projects, which protect allocated data.
  12. Here is a summary table with some of those projects. Let’s start with the Windows built-in` security. Windows 10 has new security features but they do not fully protect allocated data in memory. For example, Patch Guard checks the integrity of some internal lists with allocated data. Windows does not protect allocated memory of third-party drivers. There are several research projects, which designed to protect the allocated data.
  13. And you can see that there is no one Windows-based or Linux-based solution, which simultaneously deals with all these issues. I have developed AllMemPro to complete this gap. I am going to show how it works using two different scenarios.
  14. Let’s start with the protection of allocated data in Windows kernel.
  15. Look. After launching a new process, a corresponding EeePROCESS structure is allocated in the kernel-mode memory.
  16. This structure includes a number of sensitive fields, for example ActiveProcessLinks and Token field.
  17. Hackers can hide a process by changing the ActiveProcessLinks. Let’s look at Windows security response.
  18. I am going to show you an example of hiding process using command line or cmd. Look. I start cmd.exe. Now if we check the process list we can see that cmd is in the process list and its process ID is 2-1-9-2, let’s try to hide it. I am launching MemAttacker, which imitates hacker’s activity. The MemAttacker loads a driver to manipulate kernel-mode memory. To hide this process, I use hide command and process ID. Now, let’s check the process list again and we can see that there is no cmd, but it still active. Now let’s wait for Patch Guard response, which is designed to prevent illegal memory modifications. We’ve been waiting just for 5 minutes, which is not too long, and see, that Patch Guard has crashed the OS. It reveals the unauthorized memory manipulations, which hide a cmd process. This act of crashing is very important because it blocks users’ activity for example, paying online and protects the operating system.
  19. Okay, Windows security prevents hiding processes. But can it detect the process privilege escalation? Hacker can elevate process privileges by manipulating with Token field. Let’s walk the talk.
  20. Now I will {e’liveit} elevate privileges for cmd without hiding it. Only privileges. Let’s see it. I start cmd. Next, by using this command, I get its process ID. Well. Copy its PID. We can see that cmd has users’ privileges, which is expected, and it is not enough to disable for example the security service. Now we try to elevate the cmd privileges. I launch MemAttacker again. I use priv command with process ID to escalate process privileges. Done. Checking the privileges again. Now cmd has the highest privileges and it can even disable the security service. The privileges have been escalated. Okay. And so let’s wait for Patch Guard reaction. You can imagine that this time we’ve been waiting for as long as 5 hours and almost nothing happened. We’ve got only small notification, which can also be disabled. We have no crushing the OS. It means that Patch Guard didn’t prevent this invasion and the OS became infected.
  21. We have just seen that Windows security can’t reveal process privilege escalation.
  22. Let me show you how AllMemPro is able to prevent this drawback of Windows Security.
  23. First of all, I start DbgView and set all flags to see AllMemPro output. Now you see that all flags have been set. I launch AllMemPro console app. It loads the driver and activates the hypervisor. After that, I start cmd, get its process ID, and check its privileges. As we expected cmd has users’ privileges and can’t disable the security service. Let’s try to elevate its privileges once again. We load our MemAttacker. And use priv command with process ID to escalate privileges. Done! Let’s check the privileges. Cmd has still users’ privileges and can’t disable security service. It means that MemAttacker failed. But why it fails? Let’s go to DbgView. Here we see that AllMemPro is loaded and catches the loading of cmd.exe (optionally return to the 00:33 and continue with 01:33). Let’s scroll down and see that AllMemPro prevents illegal write access and protects the EPROCESS structure by using fake data. This is how my AllMemPro protects the OS.
  24. You have just seen that AllMemPro blocks process privilege elevation. Let’s move on to the second scenario dealing with protection of Industrial Control Systems.
  25. I use MemAllocator as an example of industrial software that controls a hypothetical nuclear reactor. MemAllocator loads a driver, which allocates the memory and sets an initial sensor reading. Let’s assume that this value is used as a temperature of our nuclear reactor.
  26. Next, I launch MemAttacker to read and increase this temperate. You will see that this memory can be changed, without any security alerts.
  27. In the first place, I load DbgView to see the output from drivers. I set all flags to see debug outputs. Now, I start MemAllocator. This app plays the role of industrial software and sets the temperature of a nuclear reactor. To set the initial temperature I use starttemp – command. I use ABCD as a two-byte hexadecimal value. AB – is one byte, CD – is the second one. We can see that the software is mo`nitoring the temperature. Now hackers are launching MemAttacker in order to read this temperature. But, they need to know the corresponded memory address. Let’s assume they do know this address. We see that hackers are able to read the temperature. Here is the first byte and now they are trying to read the second byte. MemAttacker has read the second byte as well. It means that allocated data can be stolen. But can hackers change(?) the temperature? Let’s have a look. We assume that hackers want to change the temperature from CD-value to FF-value. They use write1 command with FF value. And we see that data has been changed. Now they try to modify the first byte. Let’s see the output. The data has been changed again. Now let’s read the temperate using the console of industrial software. We can see, that the data has been changed indeed. What about the next address? It also has been changed. Okay. Let’s check if Patch Guard causes BSOD in order to protects us. We had started timer and have been waited for 5 hours. 5 hours have passed – a BSOD hasn’t appeared, it means that OS is infected and our nuclear reactor is in {ai} danger. Let’s see what can happen. Here you can see a nuclear power plant and here is our hypothetical nuclear reactor. Look the temperature is {‘ins-sing} increasing and …
  28. Let’s see how AllMemPro can prevent this kind of unwanted industrial disasters.
  29. I’m starting DbgView to see all the debug output. I’m launching AllMemPro. We can see that AllMemPro has been activated. I’m starting MemAllocator, which plays the role of industrial software and activates a demo reactor with ABCD temperature. If we check the debug output we can see that AllMemPro has trapped loading of MemAllocator driver and it has also trapped calling memory allocation routines. Next I’ll copy the address with the temperature, which will be used by attackers. We see that attackers are trying to read this data. But, this time attackers have read only a zero value. Let’s see the output. While MemAllocator is reading the ABCD value, MemAttacker is reading a zero value instead. But why it reads a zero value? We see that AllMemPro can prevent illegal READ access to every byte of protected data. AllMemPro is foisting the fake data to the attacker instead of the real one. What about illegal WRITE access to the temperature? I’m using write command. Let’s see the output. You can see the attackers couldn’t change it, the temperature is still ABCD. So AllMemPro protects data from illegal WRITE access as well. May AllMemPro also block any access to this data even the legal one? Let’s read this data legally, using the console app of industrial software. We see that legal READ access works correctly. What about legal WRITE access? It also works in a proper way. We can conclude that AllMemPro allows legal access and blocks the unauthorized one. The operating system and the nuclear reactor is fully protected.
  30. Let me show you how AllMemPro functions.
  31. AllMemPro applies hardware virtualization technology and is has three components: the controller, the switcher, and the dispatcher.
  32. The Controller tracks the loading drivers and processes. It also tracks memory allocation routine calls. It decides which drivers and processes need to be protected using list of their names.
  33. Each time the protected driver allocates memory, the controller sends the following memory control rule to the Switcher and to the Dispatcher. This rule includes the loading addre’ss and size of the driver; the address and the size of the data, which this driver allocates.
  34. The switcher changes access to the protected memory areas. After receiving the control rule, it blocks the access to this memory. Then, the switcher intercepts access to this area and grants or prevents access by asking the Dispatcher.
  35. The Dispatcher decides to grant or to block memory access to the protected data. It saves each memory control rule from the Controller to the white list. Next, responding to the switcher, the dispatcher checks if driver allows accessing to this memory.
  36. Let’s move on to the Switcher. It applies Extended Page Tables technology to control memory access. After the Switcher receives a rule from the controller, it resets access bits to the memory. As a result, any access to this memory always causes access violations. The switcher processes all violations according to the Dispatcher decision.
  37. If this access is legal, the controller just allows it and sets Monitor Trap Flag. Because of this flag after the legal driver reads or writes the protected data the control goes to the switcher again. It resets Monitor Trap Flag and blocks any access to the sensitive data to be ready to protect it again.
  38. However, for an illegal access, the Switcher changes PFN value of the protected page to the fake one, and allows access to this fake data. Finally, it sets Monitor Trap Flag. As a result, after the malware driver reads the fake data the control goes to the switcher again. Now the controller {ou-lar} resets Monitor Trap Flag and restores PFN value. The thing is that the switcher intercepts all access attempts to the protected data using only one EPT table. That is why the switcher causes significant {sorry} performance overhead.
  39. Look. I’ve measured the memory access duration to the protected data in three cases: with and without AllMemPro. And without AllMemPro I’ve measured the duration with enabled and disabled cache. You can see that the memory access duration with AllMemPro is 5 times higher than with disabled cache. But I am sure that this overhead can be reduced by using separate EPT structures for each driver.
  40. Anyway, AllMemPro protects each byte of the allocated memory. It isolates data from any driver access even from the Windows Kernel. If access attempts to the memory are not so frequent, my AllMemPro is applicable. For example, to prevent privilege escalation attacks. AllMemPro causes a time overhead, but it seems to be able to prevent stealing protected data using the Spectre and Meltdown attacks. This research is still ongoing.
  41. That’s it. Thank you! Do you have any questions?