SlideShare a Scribd company logo
1 of 46
Racing with 
DROIDS 
@zer0m 
em
#whoami - Peter Hlavaty (@zer0mem) 
[ KEEN TEAM ] 
 Background 
 @K33nTeam 
 Previously ~4 years in ESET 
 Contact 
 twitter : @zer0mem 
 weibo : weibo.com/u/5238732594 
 blog : http://zer0mem.sk 
 src : https://github.com/zer0mem
outline 
TTY 
▪ Bug 
▪ Resources 
▪ SLAB 
▪ target 
▪ Race 
DROIDS 
▪ TOCTOU + CVE 
▪ Out Of Boundary 
▪ Information gathering 
▪ State of exploitation 
▪ Hardenings 
▪ 0days, what for ?
[ PART-I=> RACE ]
TTY racing issue 
weak lock ... 
1. Requesting for available 
space is locked => SAFE 
2. Afterwards working with 
memory not locked, but 
fast & SHOULD be safe 
3. Updating “used” member 
is NOT locked => BUG
TTY racing issue 
core of the BUG 
PROBLEM : 
• TTY { master + slave } 
• Multithread access! 
GOAL : 
• attempt to return there IS a space, even there is NOT! 
PLAN : 
• write to master 
• write to slave 
• cause RACE-CONDITION 
TIMING ISSUE : 
• memcpy + memset prologon execution gap 
• write(tb->size) to slave (SLOW!) 
• write(1) to master (FAST!)
Race OK! What is next ? 
1. Race for size confusion 
2. buffer overflow 
3. control content of 
consecutive blocks ! 
4. do overwrite to 
consecutive blocks 
5. gain control
TTY – problem 1. openpty 
1. Lack of implementation in 
current NDK : armeabi-v7a + 
API level 19 
2. That means even not dlsym! 
3. Find out how to implement it : 
https://github.com/gavinlin/dr 
opbear-for-android/ 
blob/master/openpty. 
c 
4. Find out IF IT WORKS! 
5. Find out how it works, and 
implement it for our needs!
TTY - PoC vs android vs 
TTY PoC TTY boosted PoC 
http://blog.includese 
curity.com/2014/06/e 
xploit-walkthrough-cve- 
2014-0196-pty-kernel- 
race-condition. 
html 
implementation
TTY - PoC vs android vs 
implementation 
▪ write to slave/master are 
‘asynchronous’! (ECHO flag!) 
– not necessary thread for race! 
▪ open("/dev/ptmx") instead of 
openpty 
– open just master! 
– used for SLAB ‘magic’ 
▪ ioctl calls just for slaves 
– open slave to master when it comes to 
exploitation 
▪ now it should be clear from code, 
what is doing! 
https://blog.nelhage.com/2009/12/a-brief-introduction-to-termios-termios3-and-stty/
TTY – problem 2. 
android debug ? 
Windows ;) Linux :O
Linux debugging – but ...
Linux debugging – but ... 
TTY Race – vbox + emulator! Goldfish + Source Inside ?
[ PART-II ] 
TARGET
tty_struct 
perfect 
candidate! 
contains ptr to 
tty_operations 
bunch of krn 
func pointers 
(open, remove, 
write, ioctl …) 
Hidden 
openpty - aka 
open("/dev/pt 
mx") 
easy to create 
this struct in 
memory! 
Pointers
Not so hidden tty_operations 
TTY Bonus! 
1. sizeof(tty_struct) == 0x… 
2. sizeof(tty_buffer) == 0x… 
3. Both covered by same SLAB 
4. 0x400 SLAB buffer 
5. 1Page == 0x1000 
6. SLAB for 0x400 contains 4 
consecutive pages! 
7. SLAB is very simple algo 
 PREDICATBLE! 
8. but just 4blocks really sucks!
SLAB allocator 
(going to be obsolete) 
1. Bonwick paper : 
https://www.usenix.org/legac 
y/publications/library/procee 
dings/bos94/full_papers/bon 
wick.a 
2. Understanding the Linux 
Virtual Memory Manager : 
https://www.kernel.org/doc/g 
orman/pdf/understand.pdf 
3. mm/slab.c 
4. Btw. Seems good book for 
windows : What Makes It 
Page?: The Windows 7 (x64) 
Virtual Memory Manager
SLAB allocator - Array cache 
1. Kalloc, takes memory from 
ARRAY-CACHE 
2. ARRAY-CACHE contains XY 
(0x36, ..) memory blocks 
3. Those memory blocks are 
from SLAB 
4. 4TTY possible in one SLAB 
5. 5th TTY can be pages away! 
6. As seen on the picture, 
Cache2 is for TTY – different 
NOT-CONSECUTIVE SLABS 
7. Big Object means less 
predicatable
SLAB allocator - Array cache 
1. Allocated in order 
2. --ac->avail 
3. Means predicatable 
4. BUT 
5. Just 4pages to play with
PART III 
are we done ?
__wake_up_common 
1. Rewrite tty_struct, be aware 
to not overwrite all data! 
2. tb->char_buf_ptr for chars 
are controllable 
3. tb->flags_buf_ptr are not 
4. memset(flags, size) follows 
memcpy(buf, size) 
5. means we memset tty_struct 
before we reach it by 
memcpy 
6. Fail going to happen!
__wake_up_common 
1. Need to correctly rewrite 
rest of struct 
2. Did you see another 
REALLY hidden pointer ? 
30min – 2/3hours on vbox+quemu 
20-30sec on patched kernel 
… sometimes kernel panic ...
Am I missing something there … ? 
x64, SMAP, SMEP (PXN), W^E, KASLR
2 selected common cases on DROIDs 
Out of Boundary TOCTOU
CVE-2014-8299 
TOCTOU 
1. TOCTOU 
2. Direct user deref 
3. failed copy_from_user 
practice 
4. Large time window by 
wait method 
5. write-where-what
Droid race 
Prepare data & racer & invoke syscall 
Racing syscall
Out of Boundary
Out Of Boundary 
1. Trivial to exploit 
2. Generic implementation 
3. write/read – where 
4. NO -SMAP 
5. but sometimes PXN
Information gathering 
NO-KASLR 
SWI vector table trick, on some device not available anymore 
/proc/kallsyms (gather export info, no addresses) 
ReadVuln + parse symbols / walk structs 
PoolSpray + (semi)blind overwrite 
SLAB abusing 
Relative structs targeting
Write / Read WHERE 
no-KASLR 
1. NO – KASLR 
2. Read-Where vuln 
3. Known base 
4. Resolving symbols 
5. Walking structures
Write / Read WHERE 
no-KASLR 
1. NO – KASLR 
2. Read-Where vuln 
3. Known base 
4. Resolving symbols 
5. /proc/kallsyms pairing! 
https://github.com/fi01/kallsymsprint for more detailed example
Droids hardening I. 
ops pre-read 
1. Pre-read buffer to kernel 
2. TOCTOU safe 
3. But not possible check 
future calcs from 
4. Depends again on safety 
checks 
5. Most common fails => 
boundary checks
Droids hardening II. 
Camera out of the game ? 
1. Media permission needed 
2. Finally not able to request by non-root 
3. Permissions based on whitelist 
4. But it is just DEFAULT config 
5. BUT many soc vendors just ADD 
camera to whitelist anyway 
6. camera == backdoor ?
Droids hardening / fixing 
ops 
hooks 
Camera 
for users 
just as a 
service 
PXN W^X 
Proper copy_from_user 
Safety checks – what about 
inner calcs ? 
NICE ! But still no 
UDEREF used on droids 
sure SANE thing 
… but not solution … 
still useful for kernel rootkits 
GOOD ! but patching is 
nowdays obsolete anyway 
Kernel IO framework 
1. Basically now you can turn 
majority of write-where vuln on 
droids to full KernelIo 
2. Really good R/W vuln turns 
directly into CKernelRW 
3. Write nullptr(s) with(out) 
thread_stack info, turns into CPipe 
4. OutOfBoundaries always turn to 
CAlignedRW, which can be easily 
transformed To 2. or .3 
5. KernelIo means ability to full 
compromise of system, regardless 
of protection
一步一步Step-by-step 
• Resolve symbols 
• Prepare payload 
write-where- 
(semi)what 
thread_info 
->addr_limit • root + su 
• Leak thread stack 
• Pool spray – 
pthread_create(*) 
Access policy bypass 
• kernel escape + 
driver & hook ops 
Full compromise 
of system
State of exploitation => DROIDS 
Primitive 
tech … 
works! 
Mixing 
kernel / 
user data .. 
No SMAP 
Why leaks ? 
No KASLR 
successful PWN 
1. Need improve technique, if 
generic simple one works ? 
2. No need to sophisticated leaks 
3. Easy to use in-context 
methods 
4. PXN can be issue, but no with 
full read/write to kernel
Droids hardening - continue 
SELinux (SEAndroid) • Root != full control; + customization 
ROM diversity • Exploit => Root Solution => disaster!! 
Cut availability of source code • security trough obscurity ? 
ARM TrustZone • TIMA 
x64 coming soon! • KASLR, SMEP, SMAP ? 
http://www.sisa.samsung.com/research-lab/b2b-research-lab
State of rooting => DROIDS 
▪ Root != FULL control 
▪ SEAndroid and customization 
in place 
▪ Strict policy on permissions 
▪ Part of config, not open 
sourced… 
▪ Reverse engineering & deep 
study of policy 
Patch 
data in 
kernel 
FULL 
control 
bypass 
logic 
kernel 
escape 
Patch 
code .. 
bad 
practice
DROID kernel research 
Exploitation 
▪ High ROM diversity 
▪ Check device permissions 
▪ Dump / Download kernel 
▪ Debug kernel & develop exploit 
Policy (not covered in this talk) 
▪ High ROM diversity 
▪ Dump / Download Kernel 
▪ Bin diff policy changes 
▪ Reverse engineer configuration 
& customizations
Debug kernel – private 0day 
1. Private 0day 
2. Build on it own debugger 
3. printk – inform trace 
4. Read memory 
5. Hooks 
1. read data 
2. Make loops 
3. Change control flow 
6. Debug not critical threads 
1. Code specific 
7. Kernel ARM disasm – Capstone 
http://www.capstone-engine.org/
Acknowledge 
Thanks to : 
jfang 
liac 
wushi nforest 
geohot 
j00ru 
gynvael
We are hiring! 
▪ #1 vulnerability research team in China 
– http://www.k33nteam.org/cvelist.htm 
▪ Enjoying research ? 
– Mobile (Android, iOS, WP) 
– PC (Windows, OS X, Chrome OS, etc.) 
▪ Willing to move to Shanghai ? 
– Beijing ? 
▪ Want to join our team ? 
– Application security 
– Kernel security
2014 - $500,000 
2015 - $???????? Pick a device, name your own challenge!
Q & A 
follow us 
@K33nTeam

More Related Content

What's hot

DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelPeter Hlavaty
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Peter Hlavaty
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon chinaPeter Hlavaty
 
Hacking - high school intro
Hacking - high school introHacking - high school intro
Hacking - high school introPeter Hlavaty
 
How Safe is your Link ?
How Safe is your Link ?How Safe is your Link ?
How Safe is your Link ?Peter Hlavaty
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitJiahong Fang
 
Memory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMMemory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMPositive Hack Days
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Pythoninfodox
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!Peter Hlavaty
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheelsinfodox
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Shota Shinogi
 
Practical Windows Kernel Exploitation
Practical Windows Kernel ExploitationPractical Windows Kernel Exploitation
Practical Windows Kernel ExploitationzeroSteiner
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco GrassiShakacon
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashinfodox
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?Maciej Lasyk
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Liang Chen
 
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camDefcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camPriyanka Aash
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
 

What's hot (20)

DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows Kernel
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Hacking - high school intro
Hacking - high school introHacking - high school intro
Hacking - high school intro
 
How Safe is your Link ?
How Safe is your Link ?How Safe is your Link ?
How Safe is your Link ?
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One Exploit
 
Memory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMMemory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMM
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Python
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheels
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
 
Packers
PackersPackers
Packers
 
Practical Windows Kernel Exploitation
Practical Windows Kernel ExploitationPractical Windows Kernel Exploitation
Practical Windows Kernel Exploitation
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
 
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camDefcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 

Viewers also liked

Reliable Windows Heap Exploits
Reliable Windows Heap ExploitsReliable Windows Heap Exploits
Reliable Windows Heap Exploitsamiable_indian
 
DbiFuzz framework #ZeroNights E.0x03 slides
DbiFuzz framework #ZeroNights E.0x03 slidesDbiFuzz framework #ZeroNights E.0x03 slides
DbiFuzz framework #ZeroNights E.0x03 slidesPeter Hlavaty
 
Attacking the Webkit heap [Or how to write Safari exploits]
Attacking the Webkit heap [Or how to write Safari exploits]Attacking the Webkit heap [Or how to write Safari exploits]
Attacking the Webkit heap [Or how to write Safari exploits]Seguridad Apple
 
Exploit techniques and mitigation
Exploit techniques and mitigationExploit techniques and mitigation
Exploit techniques and mitigationYaniv Shani
 
Reversing & Malware Analysis Training Part 4 - Assembly Programming Basics
Reversing & Malware Analysis Training Part 4 - Assembly Programming BasicsReversing & Malware Analysis Training Part 4 - Assembly Programming Basics
Reversing & Malware Analysis Training Part 4 - Assembly Programming Basicssecurityxploded
 
Low Level Exploits
Low Level ExploitsLow Level Exploits
Low Level Exploitshughpearse
 

Viewers also liked (7)

Reliable Windows Heap Exploits
Reliable Windows Heap ExploitsReliable Windows Heap Exploits
Reliable Windows Heap Exploits
 
DbiFuzz framework #ZeroNights E.0x03 slides
DbiFuzz framework #ZeroNights E.0x03 slidesDbiFuzz framework #ZeroNights E.0x03 slides
DbiFuzz framework #ZeroNights E.0x03 slides
 
How2heap
How2heap How2heap
How2heap
 
Attacking the Webkit heap [Or how to write Safari exploits]
Attacking the Webkit heap [Or how to write Safari exploits]Attacking the Webkit heap [Or how to write Safari exploits]
Attacking the Webkit heap [Or how to write Safari exploits]
 
Exploit techniques and mitigation
Exploit techniques and mitigationExploit techniques and mitigation
Exploit techniques and mitigation
 
Reversing & Malware Analysis Training Part 4 - Assembly Programming Basics
Reversing & Malware Analysis Training Part 4 - Assembly Programming BasicsReversing & Malware Analysis Training Part 4 - Assembly Programming Basics
Reversing & Malware Analysis Training Part 4 - Assembly Programming Basics
 
Low Level Exploits
Low Level ExploitsLow Level Exploits
Low Level Exploits
 

Similar to Racing with Droids

NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNoSuchCon
 
CONFidence 2015: when something overflowing... - Peter Hlavaty
CONFidence 2015: when something overflowing... - Peter HlavatyCONFidence 2015: when something overflowing... - Peter Hlavaty
CONFidence 2015: when something overflowing... - Peter HlavatyPROIDEA
 
07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W mattersAlexandre Moneger
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...OpenStack Korea Community
 
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbert
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbertA Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbert
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbertJ On The Beach
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerunidsecconf
 
Under The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureScyllaDB
 
Here comes the Loom - Ya!vaConf.pdf
Here comes the Loom - Ya!vaConf.pdfHere comes the Loom - Ya!vaConf.pdf
Here comes the Loom - Ya!vaConf.pdfKrystian Zybała
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless ContainersAkihiro Suda
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devTomek Borek
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in styleDefconRussia
 
No locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructureNo locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructureAndrew Petukhov
 
VM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingVM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingTamas K Lengyel
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 

Similar to Racing with Droids (20)

NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
 
CONFidence 2015: when something overflowing... - Peter Hlavaty
CONFidence 2015: when something overflowing... - Peter HlavatyCONFidence 2015: when something overflowing... - Peter Hlavaty
CONFidence 2015: when something overflowing... - Peter Hlavaty
 
Docker
DockerDocker
Docker
 
07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
 
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbert
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbertA Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbert
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbert
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerun
 
Under The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database Architecture
 
Here comes the Loom - Ya!vaConf.pdf
Here comes the Loom - Ya!vaConf.pdfHere comes the Loom - Ya!vaConf.pdf
Here comes the Loom - Ya!vaConf.pdf
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Podman rootless containers
Podman rootless containersPodman rootless containers
Podman rootless containers
 
Debugging ZFS: From Illumos to Linux
Debugging ZFS: From Illumos to LinuxDebugging ZFS: From Illumos to Linux
Debugging ZFS: From Illumos to Linux
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless Containers
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy dev
 
EhTrace -- RoP Hooks
EhTrace -- RoP HooksEhTrace -- RoP Hooks
EhTrace -- RoP Hooks
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in style
 
No locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructureNo locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructure
 
Gpgpu intro
Gpgpu introGpgpu intro
Gpgpu intro
 
VM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingVM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzing
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 

Recently uploaded

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
Dust Of Snow By Robert Frost Class-X English CBSE
Dust Of Snow By Robert Frost Class-X English CBSEDust Of Snow By Robert Frost Class-X English CBSE
Dust Of Snow By Robert Frost Class-X English CBSEaurabinda banchhor
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxruthvilladarez
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsRommel Regala
 

Recently uploaded (20)

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
Dust Of Snow By Robert Frost Class-X English CBSE
Dust Of Snow By Robert Frost Class-X English CBSEDust Of Snow By Robert Frost Class-X English CBSE
Dust Of Snow By Robert Frost Class-X English CBSE
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World Politics
 

Racing with Droids

  • 1. Racing with DROIDS @zer0m em
  • 2. #whoami - Peter Hlavaty (@zer0mem) [ KEEN TEAM ]  Background  @K33nTeam  Previously ~4 years in ESET  Contact  twitter : @zer0mem  weibo : weibo.com/u/5238732594  blog : http://zer0mem.sk  src : https://github.com/zer0mem
  • 3. outline TTY ▪ Bug ▪ Resources ▪ SLAB ▪ target ▪ Race DROIDS ▪ TOCTOU + CVE ▪ Out Of Boundary ▪ Information gathering ▪ State of exploitation ▪ Hardenings ▪ 0days, what for ?
  • 5. TTY racing issue weak lock ... 1. Requesting for available space is locked => SAFE 2. Afterwards working with memory not locked, but fast & SHOULD be safe 3. Updating “used” member is NOT locked => BUG
  • 6. TTY racing issue core of the BUG PROBLEM : • TTY { master + slave } • Multithread access! GOAL : • attempt to return there IS a space, even there is NOT! PLAN : • write to master • write to slave • cause RACE-CONDITION TIMING ISSUE : • memcpy + memset prologon execution gap • write(tb->size) to slave (SLOW!) • write(1) to master (FAST!)
  • 7. Race OK! What is next ? 1. Race for size confusion 2. buffer overflow 3. control content of consecutive blocks ! 4. do overwrite to consecutive blocks 5. gain control
  • 8. TTY – problem 1. openpty 1. Lack of implementation in current NDK : armeabi-v7a + API level 19 2. That means even not dlsym! 3. Find out how to implement it : https://github.com/gavinlin/dr opbear-for-android/ blob/master/openpty. c 4. Find out IF IT WORKS! 5. Find out how it works, and implement it for our needs!
  • 9. TTY - PoC vs android vs TTY PoC TTY boosted PoC http://blog.includese curity.com/2014/06/e xploit-walkthrough-cve- 2014-0196-pty-kernel- race-condition. html implementation
  • 10. TTY - PoC vs android vs implementation ▪ write to slave/master are ‘asynchronous’! (ECHO flag!) – not necessary thread for race! ▪ open("/dev/ptmx") instead of openpty – open just master! – used for SLAB ‘magic’ ▪ ioctl calls just for slaves – open slave to master when it comes to exploitation ▪ now it should be clear from code, what is doing! https://blog.nelhage.com/2009/12/a-brief-introduction-to-termios-termios3-and-stty/
  • 11. TTY – problem 2. android debug ? Windows ;) Linux :O
  • 13. Linux debugging – but ... TTY Race – vbox + emulator! Goldfish + Source Inside ?
  • 14. [ PART-II ] TARGET
  • 15. tty_struct perfect candidate! contains ptr to tty_operations bunch of krn func pointers (open, remove, write, ioctl …) Hidden openpty - aka open("/dev/pt mx") easy to create this struct in memory! Pointers
  • 16. Not so hidden tty_operations TTY Bonus! 1. sizeof(tty_struct) == 0x… 2. sizeof(tty_buffer) == 0x… 3. Both covered by same SLAB 4. 0x400 SLAB buffer 5. 1Page == 0x1000 6. SLAB for 0x400 contains 4 consecutive pages! 7. SLAB is very simple algo  PREDICATBLE! 8. but just 4blocks really sucks!
  • 17. SLAB allocator (going to be obsolete) 1. Bonwick paper : https://www.usenix.org/legac y/publications/library/procee dings/bos94/full_papers/bon wick.a 2. Understanding the Linux Virtual Memory Manager : https://www.kernel.org/doc/g orman/pdf/understand.pdf 3. mm/slab.c 4. Btw. Seems good book for windows : What Makes It Page?: The Windows 7 (x64) Virtual Memory Manager
  • 18. SLAB allocator - Array cache 1. Kalloc, takes memory from ARRAY-CACHE 2. ARRAY-CACHE contains XY (0x36, ..) memory blocks 3. Those memory blocks are from SLAB 4. 4TTY possible in one SLAB 5. 5th TTY can be pages away! 6. As seen on the picture, Cache2 is for TTY – different NOT-CONSECUTIVE SLABS 7. Big Object means less predicatable
  • 19. SLAB allocator - Array cache 1. Allocated in order 2. --ac->avail 3. Means predicatable 4. BUT 5. Just 4pages to play with
  • 20. PART III are we done ?
  • 21. __wake_up_common 1. Rewrite tty_struct, be aware to not overwrite all data! 2. tb->char_buf_ptr for chars are controllable 3. tb->flags_buf_ptr are not 4. memset(flags, size) follows memcpy(buf, size) 5. means we memset tty_struct before we reach it by memcpy 6. Fail going to happen!
  • 22. __wake_up_common 1. Need to correctly rewrite rest of struct 2. Did you see another REALLY hidden pointer ? 
  • 23. 30min – 2/3hours on vbox+quemu 20-30sec on patched kernel … sometimes kernel panic ...
  • 24. Am I missing something there … ? x64, SMAP, SMEP (PXN), W^E, KASLR
  • 25. 2 selected common cases on DROIDs Out of Boundary TOCTOU
  • 26. CVE-2014-8299 TOCTOU 1. TOCTOU 2. Direct user deref 3. failed copy_from_user practice 4. Large time window by wait method 5. write-where-what
  • 27. Droid race Prepare data & racer & invoke syscall Racing syscall
  • 29. Out Of Boundary 1. Trivial to exploit 2. Generic implementation 3. write/read – where 4. NO -SMAP 5. but sometimes PXN
  • 30. Information gathering NO-KASLR SWI vector table trick, on some device not available anymore /proc/kallsyms (gather export info, no addresses) ReadVuln + parse symbols / walk structs PoolSpray + (semi)blind overwrite SLAB abusing Relative structs targeting
  • 31. Write / Read WHERE no-KASLR 1. NO – KASLR 2. Read-Where vuln 3. Known base 4. Resolving symbols 5. Walking structures
  • 32. Write / Read WHERE no-KASLR 1. NO – KASLR 2. Read-Where vuln 3. Known base 4. Resolving symbols 5. /proc/kallsyms pairing! https://github.com/fi01/kallsymsprint for more detailed example
  • 33. Droids hardening I. ops pre-read 1. Pre-read buffer to kernel 2. TOCTOU safe 3. But not possible check future calcs from 4. Depends again on safety checks 5. Most common fails => boundary checks
  • 34. Droids hardening II. Camera out of the game ? 1. Media permission needed 2. Finally not able to request by non-root 3. Permissions based on whitelist 4. But it is just DEFAULT config 5. BUT many soc vendors just ADD camera to whitelist anyway 6. camera == backdoor ?
  • 35. Droids hardening / fixing ops hooks Camera for users just as a service PXN W^X Proper copy_from_user Safety checks – what about inner calcs ? NICE ! But still no UDEREF used on droids sure SANE thing … but not solution … still useful for kernel rootkits GOOD ! but patching is nowdays obsolete anyway 
  • 36. Kernel IO framework 1. Basically now you can turn majority of write-where vuln on droids to full KernelIo 2. Really good R/W vuln turns directly into CKernelRW 3. Write nullptr(s) with(out) thread_stack info, turns into CPipe 4. OutOfBoundaries always turn to CAlignedRW, which can be easily transformed To 2. or .3 5. KernelIo means ability to full compromise of system, regardless of protection
  • 37. 一步一步Step-by-step • Resolve symbols • Prepare payload write-where- (semi)what thread_info ->addr_limit • root + su • Leak thread stack • Pool spray – pthread_create(*) Access policy bypass • kernel escape + driver & hook ops Full compromise of system
  • 38. State of exploitation => DROIDS Primitive tech … works! Mixing kernel / user data .. No SMAP Why leaks ? No KASLR successful PWN 1. Need improve technique, if generic simple one works ? 2. No need to sophisticated leaks 3. Easy to use in-context methods 4. PXN can be issue, but no with full read/write to kernel
  • 39. Droids hardening - continue SELinux (SEAndroid) • Root != full control; + customization ROM diversity • Exploit => Root Solution => disaster!! Cut availability of source code • security trough obscurity ? ARM TrustZone • TIMA x64 coming soon! • KASLR, SMEP, SMAP ? http://www.sisa.samsung.com/research-lab/b2b-research-lab
  • 40. State of rooting => DROIDS ▪ Root != FULL control ▪ SEAndroid and customization in place ▪ Strict policy on permissions ▪ Part of config, not open sourced… ▪ Reverse engineering & deep study of policy Patch data in kernel FULL control bypass logic kernel escape Patch code .. bad practice
  • 41. DROID kernel research Exploitation ▪ High ROM diversity ▪ Check device permissions ▪ Dump / Download kernel ▪ Debug kernel & develop exploit Policy (not covered in this talk) ▪ High ROM diversity ▪ Dump / Download Kernel ▪ Bin diff policy changes ▪ Reverse engineer configuration & customizations
  • 42. Debug kernel – private 0day 1. Private 0day 2. Build on it own debugger 3. printk – inform trace 4. Read memory 5. Hooks 1. read data 2. Make loops 3. Change control flow 6. Debug not critical threads 1. Code specific 7. Kernel ARM disasm – Capstone http://www.capstone-engine.org/
  • 43. Acknowledge Thanks to : jfang liac wushi nforest geohot j00ru gynvael
  • 44. We are hiring! ▪ #1 vulnerability research team in China – http://www.k33nteam.org/cvelist.htm ▪ Enjoying research ? – Mobile (Android, iOS, WP) – PC (Windows, OS X, Chrome OS, etc.) ▪ Willing to move to Shanghai ? – Beijing ? ▪ Want to join our team ? – Application security – Kernel security
  • 45. 2014 - $500,000 2015 - $???????? Pick a device, name your own challenge!
  • 46. Q & A follow us @K33nTeam