SlideShare a Scribd company logo
The ARMs race to TrustZone
Jonathan Levin
http://Technologeeks.com
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Plan
• TrustZone
– Recap of ARMv7 and ARMv8 architecture
• iOS & TrustZone
– Apple’s “WatchTower” (Kernel Patch Protector) implementation
• Android & TrustZone
– Android implementations
TrustZone & ELx
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
TrustZone 技
• Hardware support for a trusted execution environment
• Provides a separate “secure world” 安全世界
– Self-contained operating system
– Isolated from “non-secure world”
• In AArch64, integrates well with Exception Levels(例外層級)
– EL3 only exists in the secure world
– EL2 (hypervisor) not applicable in secure world.
Trust Zone Architecture (Aarch32)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Source: ARM documentation
非安全世界 安全世界
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Android uses of TrustZone
• Cryptographic hardware backing (keystore, gatekeeper)
– Key generation, storage and validation are all in secure world
– Public keys accessible in non-secure world
• DRM (数字版权管理) - special case crypto hardware backing)
• Hardware backed entropy
– PRNG (随机数发生器) code
• 安全 NFC 通信通遈 (Android Pay)
• Kernel and boot chain integrity
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Samsung uses of TrustZone
• TrustZone is a fundamental substrate for KNOX
– Trusted Integrity Measurement Attestation (TIMA) provides
• Client Certificate Management (CCM)
– Extends keystore by hardware backing
• Periodic Kernel Measurement (PKM )周期内核测量
– Similar to iOS’s KPP – periodically checks kernel page hashes
» 会定期检查内核校验和
• Realtime Kernel Protection (RKP) 实时内核保护
– Intercepts events from kernel using traps to secure monitor (SMC)
– 捕获任何恶意活动
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
iOS Uses of TrustZone
• 32-bit: Apparently, none(?)
– No SMC instructions in decrypted kernelcache
• 64-bit: KPP
– Long thought (mistakenly) to have been in Secure Enclave
– iLLB/iBoot also physically separated from kernel memory
Implementation (AArch32)
• NS = 0: 系统处于安全状态. NS =1 系统处于非安全状态
• SCR is co-processor CP15,c1
• Cannot be accessed in non-secure world:
– Need SMC特殊指令
• MMU enforces memory separation between worlds
– http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/Chdfjdgi.html
• Interrupts (IRQ/FIQ) can be handled by secure world
安全郤置寄存器
• Implemented by a Secure Configuration Register (SCR)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Entering TrustZone (AArch32)
中断
快速中断
IRQ
FIQ
中止
PrefetchAbort
DataAbort
SMC
0x1C
SMC 指令
• SMC to TrustZone is like SVC/SWI to supervisor mode
SMC是一个特殊指令,类似于软件中断指令(SWI)
• Control transferred to a “monitor vector” in secure world
monitor的异常向量表
Voluntary Transition: SMC
• SMC特殊指令 only valid while in supervisor mode
– (i.e. requires the OS to be in kernel (内核) mode)
D 4 0 ............................... 3
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
EL0 (user)
EL2 (unused)
EL3
(Secure Monitor)
Exception Handling (AArch64)
OS1 Kernel
Hypervisor
Kernel Patch Protector
App0,0 App0,n App1,0 App1,n...... ......
SMC
OS0 (iOS) Kernel
SMC HVC
SVC
(特权模型分离技术)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Secure Kernel
Trusted
App
Trusted
App
EL1 (kernel)
Exceptions
SMC HVC
Setting up Trustzone
• 32-bit:
– CPU boots into secure world (NS=0)
– Loader/kernel sets up monitor vector (SMC, IRQ or FIQ entries)
– Sets up SCR NS=1 and “drops” to Normal World
• 64-bit:
– CPU boots into EL3
– Secure Monitor sets up VBAR_Elx (SError, IRQ or FIQ entries)
– Drops to EL2 (Hypervisor, 管理程序) or EL1 (kernel,内核)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
异常向量表基地址寄存器指定
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Currrent EL, SP0
Currrent EL, SPSel
Lower EL,AArch64
Lower EL,AArch32
VBAR_Elx +0x000
AArch64 Exception Handling
VBAR_Elx +0x200
VBAR_Elx +0x400
VBAR_Elx +0x600
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Currrent EL, SP0
Currrent EL, SPSel
Lower EL,AArch64
Lower EL,AArch32
0x000
0x200
0x400
0x600
Case Study: KPP
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Synchronous
SError/vSError
IRQ/vIRQ
FIQ/vFIQ
Currrent EL, SP0
Currrent EL, SPSel
Lower EL,AArch64
Lower EL,AArch32
0x000
0x200
0x400
0x600
Case Study: KPP
Check CPACR_EL1* access
Check for known SMC codes
Default(0xbf575402)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
* - Earlier research of mine mistakenly led me to believe the register is TTBR*_EL1 here, due to a bug in my disassembler
KPP: Kernel Side
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
KPP Checks
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
On entry:
• Iterates over Kernel, all kexts
• Checks all TEXT segments, and const sections
• Saves ARM special EL1 registers (VBAR, TTBR, SCTLR..)
• Takes checksums (blake2), kept in EL3
On reentry (floating point):
• Checksums verified during checks
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
KPP Weakness (patched in 9.2)
• Plenty of pointers in DATA sections not protected
• Example: AMFI MACF hooks
– Pangu 9 patches MACF hooks
– Moved in 9.2 to DATA. const
• Maybe there’s still more pointers?
• Maybe implementation is flawed?
– Ask @qwertyoruiopz
iOS 10 changes
morpheus@Zephyr (~/.../iOS10)$ jtool -v -l xnu.3705.j99a |grep SEG
Mem: 0xfffffff007404000-0xfffffff007460000 File: 0x0-0x5c000 Mem:
0xfffffff007460000-0xfffffff00747c000 File: 0x5c000-0x78000 Mem:
0xfffffff00747c000-0xfffffff0078dc000 File: 0x78000-0x4d8000
Mem: 0xfffffff0078dc000-0xfffffff0078e0000 File: 0x4d8000-0x4dc000
Mem: 0xfffffff0078e0000-0xfffffff0078e4000 File: 0x4dc000-0x4e0000
Mem: 0xfffffff0078e4000-0xfffffff007994000 File: 0x4e0000-0x514000
r-x/r-x
rw-/rw-
r-x/r-x
rw-/rw-
rw-/rw-
rw-/rw-
Mem: 0xfffffff004004000-0xfffffff005a7c000 File: 0x574000-0x1fec000 rw-/rw-
Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped
Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped
Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped
Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped
rw-/rw-
rw-/rw-
rw-/rw-
rw-/rw-
TEXT
DATA_CONST
TEXT_EXEC
KLD
LAST
DATA
PRELINK_TEXT
PLK_TEXT_EXEC
PRELINK_DATA
PLK_DATA_CONST
PLK_LINKEDIT
LC 00: LC_SEGMENT_64
LC 01: LC_SEGMENT_64
LC 02: LC_SEGMENT_64
LC 03: LC_SEGMENT_64
LC 04: LC_SEGMENT_64
LC 05: LC_SEGMENT_64
LC 06: LC_SEGMENT_64
LC 07: LC_SEGMENT_64
LC 08: LC_SEGMENT_64
LC 09: LC_SEGMENT_64
LC 10: LC_SEGMENT_64
LC 11: LC_SEGMENT_64
LC 12: LC_SEGMENT_64
Mem: 0xfffffff0079f4000-0xfffffff007ab0000 File: 0x1fec000-0x20a5bac rw-/rw- PRELINK_INFO
Mem: 0xfffffff007994000-0xfffffff0079f07a0 File: 0x514000-0x5707a0 r--/r-- LINKEDIT
File: 0x0-0x4e8000
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
r-x/r-x TEXT
File: 0x4e8000-0x540000 rw-/rw- DATA
File: 0x540000-0x544000 rw-/rw- KLD
File: 0x544000-0x548000 rw-/rw- LAST
File: 0x5a4000-0x1a38000 rw-/rw- PRELINK_TEXT
File: Not Mapped rw-/rw- PRELINK_STATE
LC 00: LC_SEGMENT_64
LC 01: LC_SEGMENT_64
LC 02: LC_SEGMENT_64
LC 03: LC_SEGMENT_64
LC 04: LC_SEGMENT_64
LC 05: LC_SEGMENT_64
LC 06: LC_SEGMENT_64
LC 07: LC_SEGMENT_64
Mem: 0xffffff8006804000-0xffffff8006cec000
Mem: 0xffffff8006cec000-0xffffff8006db0000
Mem: 0xffffff8006db0000-0xffffff8006db4000
Mem: 0xffffff8006db4000-0xffffff8006db8000
Mem: 0xffffff8006e14000-0xffffff80082a8000
Mem: 0xffffff8006db8000-0xffffff8006db8000
Mem: 0xffffff80082a8000-0xffffff800834c000
Mem: 0xffffff8006db8000-0xffffff8006e113a8
File: 0x1a38000-0x1ad9b18 rw-/rw- PRELINK_INFO
File: 0x548000-0x5a13a8 r--/r-- LINKEDIT
• XNU Mach-O binary re-segmented
morpheus@zeyphr(~/.../iOS10)$ jtool -v -l ~/Documents/iOS/9b/kernel.dump.9.3.0 | grep SEGM
iOS 10 changes
• Original leaked KPP in iOS 10 was probably 9’s
• KPP in later betas and release matches segmentation:
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Android & TrustZone
• BootROM/SBL loads TZ image of “secure OS”
– Usually in a TZ partition on flash
– Backup (identical) usually also present
• Trustzone kernel usually an ELF image
– Actual implementation is vendor-specific
– Examples: Nvidia, Qualcomm
• Linux Kernel communicates with TZ kernel via driver
• Driver exports character device to user mode
• (Usually) dedicated daemon to communicate with kernel
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but ple ase cite source!
com.android.application
keystore
gatekeeper
HAL
HAL
TZ Daemon
(e.g. qseecomd)
Kernel
TZ Driver
SMC指令
SVC指令
TZ OS
Vendor
Linux
3rd Party
Android
Android & TrustZone
Android & TrustZone: examples
• NVidia (Nexus 9):
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Android & TrustZone: Samsung
root@s6# ls –l dev/block/platform/15570000.ufs/by-name
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
lrwxrwxrwx root root 2016-05-27 08:53 BOOT -> /dev/block/sda5
lrwxrwxrwx root root 2016-05-27 08:53 BOTA0 -> /dev/block/sda1
lrwxrwxrwx root root 2016-05-27 08:53 BOTA1 -> /dev/block/sda2
lrwxrwxrwx root root 2016-05-27 08:53 CACHE -> /dev/block/sda16
lrwxrwxrwx root root 2016-05-27 08:53 DNT -> /dev/block/sda10
lrwxrwxrwx root root 2016-05-27 08:53 EFS -> /dev/block/sda3
lrwxrwxrwx root root 2016-05-27 08:53 HIDDEN -> /dev/block/sda17
lrwxrwxrwx root root 2016-05-27 08:53 OTA -> /dev/block/sda7
lrwxrwxrwx root root 2016-05-27 08:53 PARAM -> /dev/block/sda4
lrwxrwxrwx root root 2016-05-27 08:53 PERSDATA -> /dev/block/sda13
lrwxrwxrwx root root 2016-05-27 08:53 PERSISTENT -> /dev/block/sda11
lrwxrwxrwx root root 2016-05-27 08:53 RADIO -> /dev/block/sda8
lrwxrwxrwx root root 2016-05-27 08:53 RECOVERY -> /dev/block/sda6
lrwxrwxrwx root root 2016-05-27 08:53 SBFS -> /dev/block/sda14
lrwxrwxrwx root root 2016-05-27 08:53 STEADY -> /dev/block/sda12
lrwxrwxrwx root root 2016-05-27 08:53 SYSTEM -> /dev/block/sda15
lrwxrwxrwx root root 2016-05-27 08:53 TOMBSTONES -> /dev/block/sda9
lrwxrwxrwx root root 2016-05-27 08:53 USERDATA -> /dev/block/sda18
root@s6# cat partitions | grep -v sda
major minor #blocks name
7 0 32768 loop0
8 16 4096 sdb # Boot loader
8 32 4096 sdc # CryptoManager
253 0 2097152 vnswap0
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Reversing
• From Secure World: (安全世界)
– If you can get TZ (or iBoot ) image, start at VBAR_EL3
– Find SMC/ handler (Synchronous)
– Find IRQ/FIQ handlers
• From Non-Secure World: (非安全世界)
– Get kernel or bootloader
– disarm and look for SMC calls
disarm
# disarm will automatically find strings when used as arguments
root@s6# JCOLOR=1 disarm /dev/sdb1 | less -R
...
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
0xd00002e0
0x9112e000
0x94001461
ADRP X0, 94 ; X0 = 0x9d000
ADD X0, X0, #1208 ; X0 = X0 + 0x4b8 = 0x9d4b8
BL 0x44c50 ; = 0x44c50(" This is a non-secure chip. Skip...")
0x0003fac4
0x0003fac8
0x0003facc
..
# So now we know 03fac4 is called on non-secure chip.. Search back using “?0x3fac4”
# disarm will attempt to auto guess the arguments to SMC as well
MOVN X0, #239
MOVZ W1, 0x0
MOV X2, X20 ; X2 = X20 (0xf7120)
STP X29, X30, [SP,#-16]!
SMC #0 ; (X0=0xffffffffffffff10, X1=0x0, X2=0xf7120..)
LDP X29, X30, [SP],#16
CMN W0, #1
; X2 = X0 (?)
0x0003f9f4
0x0003f9f8
0x0003f9fc
0x0003fa00
0x0003fa04
0x0003fa08
0x0003fa0c
0x0003fa10
0x0003fa14
0x12801de0
0x52800001
0x2a1403e2
0xa9bf7bfd
0xd4000003
0xa8c17bfd
0x3100041f
0x2a0003e2
0x54000580
MOV X2, X0
B.EQ 0x3fac4
# can also grep SMC
...
0xd4000003
0xd4000003
0xd4000003
0xd4000003
SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x22..)
SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x21..)
SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x20..)
SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x1f..)
0x0004f014
0x0004f044
0x0004f098
0x0004f0c8
...
Simple but effective ARM64 disassembler (http://NewAndroidBook.com/tools/disarm.html)
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Trusty
• Google’s attempt to standardize TEE Oses
– https://source.android.com/security/trusty/index.html
• Used by Nvidia (+ LK)
• Supplies:
– gatekeeper, keymaster, NVRAM modules
– Kernel driver
– LK base
– Trusty OS
• https://android-review.googlesource.com/#/admin/projects/?filter=trusty
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
Linux Kernel Support
• Generic Trustzone driver integrated into 3.10
• Qualcomm (msm) kernels have SCM driver
– Secure Channel Manager
– Creates a character device which qseecomdopens
• Driver issues SMC instructions, passes command buffers
– Terrible buggy driver
– Terrible buggy daemon
– http://bits-please.blogspot.com/ - Step by step hack of QCOM TZ
• Amazing exploit and explanation – Masterful hack, and a great read!
Android Vulnerabilities
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
References
• ARM TrustZone documentation:
– http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/Chdfjdgi.html
• *OS Internals (Vol. III) – Security & Insecurity
- Specifically, Chapter 13 (jailbreaking)
- http://newOSXBook.com/
• Android Internals (Vol. I)
– http://newAndroidBook.com/
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
The Android Boot Sequence
• Exact flow varies with vendor, but can be generalized
• Components (except ROM) easily extracted from OTA
Boot Chains of Trust
BootROM SBL Aboot Kernel
+ initrd
(C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!

More Related Content

What's hot

CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershellCSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
CanSecWest
 
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
CODE BLUE
 
200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis Experience200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis Experience
Andrey Karpov
 
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
CODE BLUE
 
Эксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAP
Positive Hack Days
 
Linux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium SandboxLinux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium Sandbox
Patricia Aas
 
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
44CON
 
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
Blaine Stancill
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDL
Positive Hack Days
 
FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!
Vincent Claes
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++
corehard_by
 
syzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugssyzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugs
Dmitry Vyukov
 
Ищем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре LinuxИщем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре Linux
Positive Hack Days
 
深入淺出C語言
深入淺出C語言深入淺出C語言
深入淺出C語言
Simen Li
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network Stack
Kernel TLV
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling Pickles
Christopher Frohoff
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
Mr. Vengineer
 
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physicalCsw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
CanSecWest
 
Антон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствамиАнтон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствами
Sergey Platonov
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande Modem
Cyber Security Alliance
 

What's hot (20)

CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershellCSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
CSW2017 Amanda rousseau cansecwest2017_net_hijacking_powershell
 
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...Industroyer: biggest threat to industrial control systems since Stuxnet by An...
Industroyer: biggest threat to industrial control systems since Stuxnet by An...
 
200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis Experience200 Open Source Projects Later: Source Code Static Analysis Experience
200 Open Source Projects Later: Source Code Static Analysis Experience
 
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
 
Эксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAP
 
Linux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium SandboxLinux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium Sandbox
 
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
 
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
0 to 31337 Real Quick: Lessons Learned by Reversing the Flare-On Challenge
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDL
 
FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++
 
syzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugssyzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugs
 
Ищем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре LinuxИщем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре Linux
 
深入淺出C語言
深入淺出C語言深入淺出C語言
深入淺出C語言
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network Stack
 
OWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling PicklesOWASP AppSecCali 2015 - Marshalling Pickles
OWASP AppSecCali 2015 - Marshalling Pickles
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physicalCsw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
 
Антон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствамиАнтон Наумович, Система автоматической крэш-аналитики своими средствами
Антон Наумович, Система автоматической крэш-аналитики своими средствами
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande Modem
 

Viewers also liked

[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
 
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
CODE BLUE
 
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
CODE BLUE
 
Android security maximized by samsung knox
Android security maximized by samsung knoxAndroid security maximized by samsung knox
Android security maximized by samsung knox
Javier Gonzalez
 
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
CODE BLUE
 
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
CODE BLUE
 
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
CODE BLUE
 
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
CODE BLUE
 
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
CODE BLUE
 
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
CODE BLUE
 
[CB16] 基調講演: デジタル社会 e-Estonia について
[CB16] 基調講演: デジタル社会 e-Estonia について[CB16] 基調講演: デジタル社会 e-Estonia について
[CB16] 基調講演: デジタル社会 e-Estonia について
CODE BLUE
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
CODE BLUE
 
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
CODE BLUE
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
CODE BLUE
 
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
CODE BLUE
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
CODE BLUE
 

Viewers also liked (16)

[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
 
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
 
Android security maximized by samsung knox
Android security maximized by samsung knoxAndroid security maximized by samsung knox
Android security maximized by samsung knox
 
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
 
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
 
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
[CB16] WireGuard:次世代耐乱用性カーネルネットワークトンネル by Jason Donenfeld
 
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
 
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
[CB16] (物理的に分離された)エアギャップのセキュリティ:最先端の攻撃、分析、および軽減 by Mordechai Guri, Yisroel Mi...
 
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
 
[CB16] 基調講演: デジタル社会 e-Estonia について
[CB16] 基調講演: デジタル社会 e-Estonia について[CB16] 基調講演: デジタル社会 e-Estonia について
[CB16] 基調講演: デジタル社会 e-Estonia について
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
 
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
 
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
 

Similar to [CB16] The ARMs race for kernel protection by Jonathan Levin

SiliconFailsafeForIoT_Doin
SiliconFailsafeForIoT_DoinSiliconFailsafeForIoT_Doin
SiliconFailsafeForIoT_Doin
Jonny Doin
 
Embedded system - introduction to arm7
Embedded system -  introduction to arm7Embedded system -  introduction to arm7
Embedded system - introduction to arm7
Vibrant Technologies & Computers
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
amiable_indian
 
Oreilly solinea-managing-openstack
Oreilly solinea-managing-openstackOreilly solinea-managing-openstack
Oreilly solinea-managing-openstack
Vietnam Open Infrastructure User Group
 
Ccie R&S lab_k3
Ccie R&S lab_k3Ccie R&S lab_k3
Ccie R&S lab_k3
Yuan-Chuan Yeh
 
ZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptx
VishalYadav29718
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
National Cheng Kung University
 
02 - Introduction to the cdecl ABI and the x86 stack
02 - Introduction to the cdecl ABI and the x86 stack02 - Introduction to the cdecl ABI and the x86 stack
02 - Introduction to the cdecl ABI and the x86 stack
Alexandre Moneger
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future plan
Kiwamu Okabe
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
John Lee
 
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM TokyoMbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Jan Jongboom
 
06 - ELF format, knowing your friend
06 - ELF format, knowing your friend06 - ELF format, knowing your friend
06 - ELF format, knowing your friend
Alexandre Moneger
 
Поиск и устранение неисправностей в вычислительной системе Cisco UCS
Поиск и устранение неисправностей в вычислительной системе Cisco UCSПоиск и устранение неисправностей в вычислительной системе Cisco UCS
Поиск и устранение неисправностей в вычислительной системе Cisco UCS
Cisco Russia
 
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practicalDEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
Felipe Prado
 
hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
ssuserfcf43f
 
High Performance Security and Virtualization for Oracle Database and Cloud-En...
High Performance Security and Virtualization for Oracle Database and Cloud-En...High Performance Security and Virtualization for Oracle Database and Cloud-En...
High Performance Security and Virtualization for Oracle Database and Cloud-En...
Ramesh Nagappan
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)
Alexandre Moneger
 
Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation  Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation
Sergey Gordeychik
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
CHIACHE lee
 
Leak kernel pointer by exploiting uninitialized uses in Linux kernel
Leak kernel pointer by exploiting uninitialized uses in Linux kernelLeak kernel pointer by exploiting uninitialized uses in Linux kernel
Leak kernel pointer by exploiting uninitialized uses in Linux kernel
JinbumPark
 

Similar to [CB16] The ARMs race for kernel protection by Jonathan Levin (20)

SiliconFailsafeForIoT_Doin
SiliconFailsafeForIoT_DoinSiliconFailsafeForIoT_Doin
SiliconFailsafeForIoT_Doin
 
Embedded system - introduction to arm7
Embedded system -  introduction to arm7Embedded system -  introduction to arm7
Embedded system - introduction to arm7
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
 
Oreilly solinea-managing-openstack
Oreilly solinea-managing-openstackOreilly solinea-managing-openstack
Oreilly solinea-managing-openstack
 
Ccie R&S lab_k3
Ccie R&S lab_k3Ccie R&S lab_k3
Ccie R&S lab_k3
 
ZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptx
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
02 - Introduction to the cdecl ABI and the x86 stack
02 - Introduction to the cdecl ABI and the x86 stack02 - Introduction to the cdecl ABI and the x86 stack
02 - Introduction to the cdecl ABI and the x86 stack
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future plan
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
 
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM TokyoMbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
 
06 - ELF format, knowing your friend
06 - ELF format, knowing your friend06 - ELF format, knowing your friend
06 - ELF format, knowing your friend
 
Поиск и устранение неисправностей в вычислительной системе Cisco UCS
Поиск и устранение неисправностей в вычислительной системе Cisco UCSПоиск и устранение неисправностей в вычислительной системе Cisco UCS
Поиск и устранение неисправностей в вычислительной системе Cisco UCS
 
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practicalDEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
DEFCON 23 - Fernando Arnaboldi - abusing xslt for practical
 
hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
 
High Performance Security and Virtualization for Oracle Database and Cloud-En...
High Performance Security and Virtualization for Oracle Database and Cloud-En...High Performance Security and Virtualization for Oracle Database and Cloud-En...
High Performance Security and Virtualization for Oracle Database and Cloud-En...
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)
 
Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation  Recon: Hopeless relay protection for substation automation
Recon: Hopeless relay protection for substation automation
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
 
Leak kernel pointer by exploiting uninitialized uses in Linux kernel
Leak kernel pointer by exploiting uninitialized uses in Linux kernelLeak kernel pointer by exploiting uninitialized uses in Linux kernel
Leak kernel pointer by exploiting uninitialized uses in Linux kernel
 

More from CODE BLUE

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
CODE BLUE
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
CODE BLUE
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
CODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
CODE BLUE
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
CODE BLUE
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
CODE BLUE
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
CODE BLUE
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
CODE BLUE
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
CODE BLUE
 

More from CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 

Recently uploaded

Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 

Recently uploaded (20)

Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 

[CB16] The ARMs race for kernel protection by Jonathan Levin

  • 1. The ARMs race to TrustZone Jonathan Levin http://Technologeeks.com (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 2. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Plan • TrustZone – Recap of ARMv7 and ARMv8 architecture • iOS & TrustZone – Apple’s “WatchTower” (Kernel Patch Protector) implementation • Android & TrustZone – Android implementations
  • 3. TrustZone & ELx (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 4. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! TrustZone 技 • Hardware support for a trusted execution environment • Provides a separate “secure world” 安全世界 – Self-contained operating system – Isolated from “non-secure world” • In AArch64, integrates well with Exception Levels(例外層級) – EL3 only exists in the secure world – EL2 (hypervisor) not applicable in secure world.
  • 5. Trust Zone Architecture (Aarch32) (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Source: ARM documentation 非安全世界 安全世界
  • 6. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Android uses of TrustZone • Cryptographic hardware backing (keystore, gatekeeper) – Key generation, storage and validation are all in secure world – Public keys accessible in non-secure world • DRM (数字版权管理) - special case crypto hardware backing) • Hardware backed entropy – PRNG (随机数发生器) code • 安全 NFC 通信通遈 (Android Pay) • Kernel and boot chain integrity
  • 7. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Samsung uses of TrustZone • TrustZone is a fundamental substrate for KNOX – Trusted Integrity Measurement Attestation (TIMA) provides • Client Certificate Management (CCM) – Extends keystore by hardware backing • Periodic Kernel Measurement (PKM )周期内核测量 – Similar to iOS’s KPP – periodically checks kernel page hashes » 会定期检查内核校验和 • Realtime Kernel Protection (RKP) 实时内核保护 – Intercepts events from kernel using traps to secure monitor (SMC) – 捕获任何恶意活动
  • 8. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! iOS Uses of TrustZone • 32-bit: Apparently, none(?) – No SMC instructions in decrypted kernelcache • 64-bit: KPP – Long thought (mistakenly) to have been in Secure Enclave – iLLB/iBoot also physically separated from kernel memory
  • 9. Implementation (AArch32) • NS = 0: 系统处于安全状态. NS =1 系统处于非安全状态 • SCR is co-processor CP15,c1 • Cannot be accessed in non-secure world: – Need SMC特殊指令 • MMU enforces memory separation between worlds – http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/Chdfjdgi.html • Interrupts (IRQ/FIQ) can be handled by secure world 安全郤置寄存器 • Implemented by a Secure Configuration Register (SCR) (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 10. Entering TrustZone (AArch32) 中断 快速中断 IRQ FIQ 中止 PrefetchAbort DataAbort SMC 0x1C SMC 指令 • SMC to TrustZone is like SVC/SWI to supervisor mode SMC是一个特殊指令,类似于软件中断指令(SWI) • Control transferred to a “monitor vector” in secure world monitor的异常向量表
  • 11. Voluntary Transition: SMC • SMC特殊指令 only valid while in supervisor mode – (i.e. requires the OS to be in kernel (内核) mode) D 4 0 ............................... 3 (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 12. EL0 (user) EL2 (unused) EL3 (Secure Monitor) Exception Handling (AArch64) OS1 Kernel Hypervisor Kernel Patch Protector App0,0 App0,n App1,0 App1,n...... ...... SMC OS0 (iOS) Kernel SMC HVC SVC (特权模型分离技术) (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Secure Kernel Trusted App Trusted App EL1 (kernel) Exceptions SMC HVC
  • 13. Setting up Trustzone • 32-bit: – CPU boots into secure world (NS=0) – Loader/kernel sets up monitor vector (SMC, IRQ or FIQ entries) – Sets up SCR NS=1 and “drops” to Normal World • 64-bit: – CPU boots into EL3 – Secure Monitor sets up VBAR_Elx (SError, IRQ or FIQ entries) – Drops to EL2 (Hypervisor, 管理程序) or EL1 (kernel,内核) (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! 异常向量表基地址寄存器指定
  • 14. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Currrent EL, SP0 Currrent EL, SPSel Lower EL,AArch64 Lower EL,AArch32 VBAR_Elx +0x000 AArch64 Exception Handling VBAR_Elx +0x200 VBAR_Elx +0x400 VBAR_Elx +0x600
  • 15. Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Currrent EL, SP0 Currrent EL, SPSel Lower EL,AArch64 Lower EL,AArch32 0x000 0x200 0x400 0x600 Case Study: KPP (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 16. Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Synchronous SError/vSError IRQ/vIRQ FIQ/vFIQ Currrent EL, SP0 Currrent EL, SPSel Lower EL,AArch64 Lower EL,AArch32 0x000 0x200 0x400 0x600 Case Study: KPP Check CPACR_EL1* access Check for known SMC codes Default(0xbf575402) (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! * - Earlier research of mine mistakenly led me to believe the register is TTBR*_EL1 here, due to a bug in my disassembler
  • 17. KPP: Kernel Side (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 18. KPP Checks (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! On entry: • Iterates over Kernel, all kexts • Checks all TEXT segments, and const sections • Saves ARM special EL1 registers (VBAR, TTBR, SCTLR..) • Takes checksums (blake2), kept in EL3 On reentry (floating point): • Checksums verified during checks
  • 19. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! KPP Weakness (patched in 9.2) • Plenty of pointers in DATA sections not protected • Example: AMFI MACF hooks – Pangu 9 patches MACF hooks – Moved in 9.2 to DATA. const • Maybe there’s still more pointers? • Maybe implementation is flawed? – Ask @qwertyoruiopz
  • 20. iOS 10 changes morpheus@Zephyr (~/.../iOS10)$ jtool -v -l xnu.3705.j99a |grep SEG Mem: 0xfffffff007404000-0xfffffff007460000 File: 0x0-0x5c000 Mem: 0xfffffff007460000-0xfffffff00747c000 File: 0x5c000-0x78000 Mem: 0xfffffff00747c000-0xfffffff0078dc000 File: 0x78000-0x4d8000 Mem: 0xfffffff0078dc000-0xfffffff0078e0000 File: 0x4d8000-0x4dc000 Mem: 0xfffffff0078e0000-0xfffffff0078e4000 File: 0x4dc000-0x4e0000 Mem: 0xfffffff0078e4000-0xfffffff007994000 File: 0x4e0000-0x514000 r-x/r-x rw-/rw- r-x/r-x rw-/rw- rw-/rw- rw-/rw- Mem: 0xfffffff004004000-0xfffffff005a7c000 File: 0x574000-0x1fec000 rw-/rw- Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped Mem: 0xfffffff007994000-0xfffffff007994000 File: Not Mapped rw-/rw- rw-/rw- rw-/rw- rw-/rw- TEXT DATA_CONST TEXT_EXEC KLD LAST DATA PRELINK_TEXT PLK_TEXT_EXEC PRELINK_DATA PLK_DATA_CONST PLK_LINKEDIT LC 00: LC_SEGMENT_64 LC 01: LC_SEGMENT_64 LC 02: LC_SEGMENT_64 LC 03: LC_SEGMENT_64 LC 04: LC_SEGMENT_64 LC 05: LC_SEGMENT_64 LC 06: LC_SEGMENT_64 LC 07: LC_SEGMENT_64 LC 08: LC_SEGMENT_64 LC 09: LC_SEGMENT_64 LC 10: LC_SEGMENT_64 LC 11: LC_SEGMENT_64 LC 12: LC_SEGMENT_64 Mem: 0xfffffff0079f4000-0xfffffff007ab0000 File: 0x1fec000-0x20a5bac rw-/rw- PRELINK_INFO Mem: 0xfffffff007994000-0xfffffff0079f07a0 File: 0x514000-0x5707a0 r--/r-- LINKEDIT File: 0x0-0x4e8000 (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! r-x/r-x TEXT File: 0x4e8000-0x540000 rw-/rw- DATA File: 0x540000-0x544000 rw-/rw- KLD File: 0x544000-0x548000 rw-/rw- LAST File: 0x5a4000-0x1a38000 rw-/rw- PRELINK_TEXT File: Not Mapped rw-/rw- PRELINK_STATE LC 00: LC_SEGMENT_64 LC 01: LC_SEGMENT_64 LC 02: LC_SEGMENT_64 LC 03: LC_SEGMENT_64 LC 04: LC_SEGMENT_64 LC 05: LC_SEGMENT_64 LC 06: LC_SEGMENT_64 LC 07: LC_SEGMENT_64 Mem: 0xffffff8006804000-0xffffff8006cec000 Mem: 0xffffff8006cec000-0xffffff8006db0000 Mem: 0xffffff8006db0000-0xffffff8006db4000 Mem: 0xffffff8006db4000-0xffffff8006db8000 Mem: 0xffffff8006e14000-0xffffff80082a8000 Mem: 0xffffff8006db8000-0xffffff8006db8000 Mem: 0xffffff80082a8000-0xffffff800834c000 Mem: 0xffffff8006db8000-0xffffff8006e113a8 File: 0x1a38000-0x1ad9b18 rw-/rw- PRELINK_INFO File: 0x548000-0x5a13a8 r--/r-- LINKEDIT • XNU Mach-O binary re-segmented morpheus@zeyphr(~/.../iOS10)$ jtool -v -l ~/Documents/iOS/9b/kernel.dump.9.3.0 | grep SEGM
  • 21. iOS 10 changes • Original leaked KPP in iOS 10 was probably 9’s • KPP in later betas and release matches segmentation: (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 22. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Android & TrustZone • BootROM/SBL loads TZ image of “secure OS” – Usually in a TZ partition on flash – Backup (identical) usually also present • Trustzone kernel usually an ELF image – Actual implementation is vendor-specific – Examples: Nvidia, Qualcomm • Linux Kernel communicates with TZ kernel via driver • Driver exports character device to user mode • (Usually) dedicated daemon to communicate with kernel
  • 23. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but ple ase cite source! com.android.application keystore gatekeeper HAL HAL TZ Daemon (e.g. qseecomd) Kernel TZ Driver SMC指令 SVC指令 TZ OS Vendor Linux 3rd Party Android Android & TrustZone
  • 24. Android & TrustZone: examples • NVidia (Nexus 9): (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 25. Android & TrustZone: Samsung root@s6# ls –l dev/block/platform/15570000.ufs/by-name (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! lrwxrwxrwx root root 2016-05-27 08:53 BOOT -> /dev/block/sda5 lrwxrwxrwx root root 2016-05-27 08:53 BOTA0 -> /dev/block/sda1 lrwxrwxrwx root root 2016-05-27 08:53 BOTA1 -> /dev/block/sda2 lrwxrwxrwx root root 2016-05-27 08:53 CACHE -> /dev/block/sda16 lrwxrwxrwx root root 2016-05-27 08:53 DNT -> /dev/block/sda10 lrwxrwxrwx root root 2016-05-27 08:53 EFS -> /dev/block/sda3 lrwxrwxrwx root root 2016-05-27 08:53 HIDDEN -> /dev/block/sda17 lrwxrwxrwx root root 2016-05-27 08:53 OTA -> /dev/block/sda7 lrwxrwxrwx root root 2016-05-27 08:53 PARAM -> /dev/block/sda4 lrwxrwxrwx root root 2016-05-27 08:53 PERSDATA -> /dev/block/sda13 lrwxrwxrwx root root 2016-05-27 08:53 PERSISTENT -> /dev/block/sda11 lrwxrwxrwx root root 2016-05-27 08:53 RADIO -> /dev/block/sda8 lrwxrwxrwx root root 2016-05-27 08:53 RECOVERY -> /dev/block/sda6 lrwxrwxrwx root root 2016-05-27 08:53 SBFS -> /dev/block/sda14 lrwxrwxrwx root root 2016-05-27 08:53 STEADY -> /dev/block/sda12 lrwxrwxrwx root root 2016-05-27 08:53 SYSTEM -> /dev/block/sda15 lrwxrwxrwx root root 2016-05-27 08:53 TOMBSTONES -> /dev/block/sda9 lrwxrwxrwx root root 2016-05-27 08:53 USERDATA -> /dev/block/sda18 root@s6# cat partitions | grep -v sda major minor #blocks name 7 0 32768 loop0 8 16 4096 sdb # Boot loader 8 32 4096 sdc # CryptoManager 253 0 2097152 vnswap0
  • 26. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Reversing • From Secure World: (安全世界) – If you can get TZ (or iBoot ) image, start at VBAR_EL3 – Find SMC/ handler (Synchronous) – Find IRQ/FIQ handlers • From Non-Secure World: (非安全世界) – Get kernel or bootloader – disarm and look for SMC calls
  • 27. disarm # disarm will automatically find strings when used as arguments root@s6# JCOLOR=1 disarm /dev/sdb1 | less -R ... (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! 0xd00002e0 0x9112e000 0x94001461 ADRP X0, 94 ; X0 = 0x9d000 ADD X0, X0, #1208 ; X0 = X0 + 0x4b8 = 0x9d4b8 BL 0x44c50 ; = 0x44c50(" This is a non-secure chip. Skip...") 0x0003fac4 0x0003fac8 0x0003facc .. # So now we know 03fac4 is called on non-secure chip.. Search back using “?0x3fac4” # disarm will attempt to auto guess the arguments to SMC as well MOVN X0, #239 MOVZ W1, 0x0 MOV X2, X20 ; X2 = X20 (0xf7120) STP X29, X30, [SP,#-16]! SMC #0 ; (X0=0xffffffffffffff10, X1=0x0, X2=0xf7120..) LDP X29, X30, [SP],#16 CMN W0, #1 ; X2 = X0 (?) 0x0003f9f4 0x0003f9f8 0x0003f9fc 0x0003fa00 0x0003fa04 0x0003fa08 0x0003fa0c 0x0003fa10 0x0003fa14 0x12801de0 0x52800001 0x2a1403e2 0xa9bf7bfd 0xd4000003 0xa8c17bfd 0x3100041f 0x2a0003e2 0x54000580 MOV X2, X0 B.EQ 0x3fac4 # can also grep SMC ... 0xd4000003 0xd4000003 0xd4000003 0xd4000003 SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x22..) SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x21..) SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x20..) SMC #0 ; (X0=0xc2001014, X1=0x0, X2=0x1f..) 0x0004f014 0x0004f044 0x0004f098 0x0004f0c8 ... Simple but effective ARM64 disassembler (http://NewAndroidBook.com/tools/disarm.html)
  • 28. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Trusty • Google’s attempt to standardize TEE Oses – https://source.android.com/security/trusty/index.html • Used by Nvidia (+ LK) • Supplies: – gatekeeper, keymaster, NVRAM modules – Kernel driver – LK base – Trusty OS • https://android-review.googlesource.com/#/admin/projects/?filter=trusty
  • 29. (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source! Linux Kernel Support • Generic Trustzone driver integrated into 3.10 • Qualcomm (msm) kernels have SCM driver – Secure Channel Manager – Creates a character device which qseecomdopens • Driver issues SMC instructions, passes command buffers – Terrible buggy driver – Terrible buggy daemon – http://bits-please.blogspot.com/ - Step by step hack of QCOM TZ • Amazing exploit and explanation – Masterful hack, and a great read!
  • 30. Android Vulnerabilities (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 31. References • ARM TrustZone documentation: – http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/Chdfjdgi.html • *OS Internals (Vol. III) – Security & Insecurity - Specifically, Chapter 13 (jailbreaking) - http://newOSXBook.com/ • Android Internals (Vol. I) – http://newAndroidBook.com/ (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!
  • 32. The Android Boot Sequence • Exact flow varies with vendor, but can be generalized • Components (except ROM) easily extracted from OTA Boot Chains of Trust BootROM SBL Aboot Kernel + initrd (C) 2016 Jonathan Levin & Technologeeks.com - Share freely, but please cite source!