SlideShare a Scribd company logo
1 of 45
Attacking DRM subsystem to gain kernel privilege
on Chromebooks
Di Shen a.k.a. Retme (@returnsme)
Keen Lab of Tencent
• Di Shen a.k.a. Retme
• Sr. Security Researcher of Keen Lab, Tencent
• Kernel vulnerability hunting and exploitation since 2014
• @returnsme
• github.com/retme7
• Fan of console games, anime and mystery novels( )
• Chrome OS security: a brief look
• Choose a better attack surface: for Chrome PWNium
• The Direct Rendering Manager(DRM)
• CVE-2019-16508: analysis and exploitation
• Demonstration
• running the Linux-
based Chrome OS
• Different brands and
models
• HP,Dell,ASUS,Lenovo…
• Not for video gamers
• But still good enough to
finish daily work
• Easy to use
• Some models can be very
cheap
• It is very SECURE.
• Chrome browser
• Sandbox
• Both apps and system services are isolated and sandboxed.
• Secure file system / storage
• Read-only root file system
• Verified boot and dm-verity
• Additional Linux security module is stacked ahead of SELinux
• Automatic updates
• Fix known bugs ASAP
• Apply security patches to the kernel regularly
• Use minijail0 to execute system services
• Apply different kind of restrictions:
• User id
• Capabilities
• Namespace
• Seccomp filter policy
• SeLinux policy
• More details check the official documents [1] [2]
• Firmware, root disk(kernel),system partition can be
verified
• System partition is verified by dm-verity in kernel.
• Details of verified boot [1]
• Used by Chrome OS and Android
• Implemented in Linux kernel.
• Protect system partition from being modified.
• Will calculate the checksum of every block on the disk
before I/O operation.
• Will crash the whole system if the checksum is wrong.
• ‘Persistence’ means keep your malicious process
persistently alive across reboots
• Chrome OS has multiple features to stop persistent
attack
• dm-verity
• noexec mount for writable data partition
• Linux security module (LSM)
• Have other mitigations for specific persistent
exploits in the history
) ( )
• A Linux security module
• Reject symlinks that will redirect system’s write actions
during boot (designed_docs)
• Refuse to mount a path with symlinks
• Hardening against loading module/firmware
• Chrome OS security: a brief look
• Choose a better attack surface: for Chrome PWNium
• The Direct Rendering Manager(DRM)
• CVE-2019-16508: analysis and exploitation
• Demonstration
• “We have a standing $150,000 reward for participants
that can compromise a Chromebook or Chromebox with
device persistence in guest mode (i.e. guest to guest
persistence with interim reboot, delivered via a web
page).” – Chrome VRP
• Previously it was $100k, raised to $150k this July.
) ( (
• Chrome browser Renderer RCE (in guest mode)
• Sandbox escape
• OS Persistence
'
• CVE-2019-5825: Out-of-bounds write in V8
• CVE-2019-5826: Use-after-free in IndexedDB
• CVE-2019-16508: Privilege escalation in kernel mode
• CVE-2019-13690: Privilege escalation in user mode
• CVE-2019-13689: Chrome OS persistence bug
• Credit goes to Gengming Liu, Jianyu Chen, Zhen Feng,
Jessica Liu and Retme at Tencent Keenlab
CVE-2019-5825
By Jessica on Kcon, Beijing
CVE-2019-5826
By Gengming
on Blackhat USA, Las Vegas
CVE-2019-16508
By Retme
on Code Blue, Tokyo
CVE-2019-13690 & CVE-2019-13689
By Gengming & Melody
on POC, Seoul
• The end of March,2019
• We already had V8 bug for RCE and sandbox escape
• But no privilege escalation and Persistence
• We need ROOT privilege to trigger the persistent
exploitation
• I didn’t need to find a Linux kernel vulnerability that
affect all Linux distribution.
• A bug targeted at official Chrome OS hardware will be
fine.
• Need to make it within 30 days or so
• Let’s find a vendor bug on specific Chromebook.
• Mediatek, the paradise for bug hunter…
• Lenovo S330
• Based on MT8173 platform
• Board name ”hana” (-?)
Mitigation Enabled
PXN * Yes
PAN Yes
UAO No
KASLR No
Any others No
* PXN : Privileged eXecute Never
PAN : Privileged Access Never
UAO : User Access Override
• Bought Lenovo S330 from Amazon UK…
• Then wait 2 weeks for the global delivery
• Think about which part of code may be vulnerable
during my wait
• It ‘s Direct Rendering Manager
• Chrome OS security: a brief look
• Choose a better attack surface: for Chrome pwnium
• The Direct Rendering Manager(DRM)
• CVE-2019-16508: analysis and exploitation
• Demonstration
• a subsystem of the Linux kernel
• drivers/gpu/drm/
• responsible for interfacing with GPUs
• MT8173 is using PowerVR GPU by Imagination
• There will be card0,card1,card2… , if you have multiple
video card
• It is accessible for normal user (chronos) on Chrom OS.
• It exposes IOCTL interface for users
) ( ( )
• We have no permission to
request the commands which
is set these flags:
• DRM_ROOT_ONLY
• DRM_MASTER
• DRM_AUTH
• Few commands are OK to
request
• Not a big attack surface
• Will call vendor’s private IOCTL
handler if nr >
DRM_COMMAND_BASE
• /dev/dri/card0
• mkt_ioctls()
• /dev/dri/card1
• pvr_drm_ioctls()
• Handles PVR_SRVKM_CMD request
• Argument
• bridge_id [0-24]
• bridge_func_id [0-N]
• Handles PVR_SRVKM_CMD request
• Argument
• bridge_id [0-24]
• bridge_func_id [0-N]
• (bridge_id*bridge_func_id) interfaces can be accessed
by user mode
• Exactly the attack surface I want!
• Recompile the kernel and flash it to Chromebook [1][2]
• Define fuzzing rules targeting PowerVR interface
PVR_SRVKM_CMD
• Run the fuzzer via SSH and wait for one night
• Maybe play some games on PS4 during my wait …
• Chrome OS security: a brief look
• Choose a better attack surface: for Chrome pwnium
• The Direct Rendering Manager(DRM)
• CVE-2019-16508: analysis and exploitation
• Demonstration
• Stack trace
• PVRSRVBridgeSyncPrimOpCreate()
• bridge_id = 2; bridge_func_id = 8
) ( )
• Miss checking buffer size coming from user input
psSyncPrimOpCreateIN, which may lead to an integer
overflow.
• It’s able to convert this bug to a heap out-of-bound
write, then achieve arbitrary memory overwriting.
• ui32BufferSize
overflowed
• A smaller buffer
pArrayArgsBuffer
• Heap OOB Write
• Compromise pipe subsystem (check my talk on CodeBlue 17)
• After OSCopyFromUser()
• Write pipe_fd to copy buffer to kaddr (arbitrary kernel
address)
iov_base iov_len iov_base iov_len …pArrayArgsBuffer
0x2000 bytes 0x2000 bytes
pArrayArgsBuffer Kaddr iov_len iov_base iov_len …
Overwriting starts from here.
• Kernel may crash in 50% by “HARDENED_USERCOPY”
• That happens when my heap spray failed, the
copy_from_user() overwrite some small heap slots.
128 128 128 128 …pArrayArgsBuffer
kmalloc-8192 kmalloc-128
copy_from_user(ptr-object-128,buffer-8192,8192)
KERNEL PANIC BY HARDENED_USERCOPY
• Seems was back ported to Linux 3.18 by chromium
• Boundary check in copy_from/to_user() by
instrumentation
• check_copy_size()
• I copied 8192 bytes to object-128 previously
• Actually copying 0x20 bytes is good enough to
overwrite iov_base.
• The copied content is {0, 0, kADDR, iov_len}
128 128 128 128 …pArrayArgsBuffer
kmalloc-8192 kmalloc-128
copy_from_user(ptr-object-128,buffer-8192,0x20)
It will NOT crash when my spray failed any more.
• Chrome OS security: a brief look
• Choose a better attack surface: for Chrome pwnium
• The Direct Rendering Manager(DRM)
• CVE-2019-16508: analysis and exploitation
• Demonstration
@returnsme
github.com/retme7
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di Shen

More Related Content

What's hot

10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
 
強化学習入門
強化学習入門強化学習入門
強化学習入門
Shunta Saito
 

What's hot (20)

ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
二人零和マルコフゲームにおけるオフ方策評価
二人零和マルコフゲームにおけるオフ方策評価二人零和マルコフゲームにおけるオフ方策評価
二人零和マルコフゲームにおけるオフ方策評価
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
Network miner 使ってみた
Network miner 使ってみたNetwork miner 使ってみた
Network miner 使ってみた
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
[DL輪読会]Grandmaster level in StarCraft II using multi-agent reinforcement lear...
[DL輪読会]Grandmaster level in StarCraft II using multi-agent reinforcement lear...[DL輪読会]Grandmaster level in StarCraft II using multi-agent reinforcement lear...
[DL輪読会]Grandmaster level in StarCraft II using multi-agent reinforcement lear...
 
ファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックスファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックス
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
lsh
lshlsh
lsh
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 
強化学習入門
強化学習入門強化学習入門
強化学習入門
 
Cpu pipeline basics
Cpu pipeline basicsCpu pipeline basics
Cpu pipeline basics
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法
 

Similar to [CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di Shen

Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
DefconRussia
 
XPDS16: Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrig...XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
XPDS16: Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
The Linux Foundation
 
Google chrome sandbox
Google chrome sandboxGoogle chrome sandbox
Google chrome sandbox
Nephi Johnson
 
Securing your Cloud with Xen - SUSECon 2013
Securing your Cloud with Xen - SUSECon 2013Securing your Cloud with Xen - SUSECon 2013
Securing your Cloud with Xen - SUSECon 2013
The Linux Foundation
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMU
OpenStack Foundation
 

Similar to [CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di Shen (20)

Derbycon Bromium Labs: Sandboxes
Derbycon Bromium Labs: SandboxesDerbycon Bromium Labs: Sandboxes
Derbycon Bromium Labs: Sandboxes
 
Introduction to chrome os
Introduction to chrome osIntroduction to chrome os
Introduction to chrome os
 
Chrome os
Chrome osChrome os
Chrome os
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructure
 
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Chrome os
Chrome osChrome os
Chrome os
 
Chromium os architecture report
Chromium os  architecture reportChromium os  architecture report
Chromium os architecture report
 
Bridging the Semantic Gap in Virtualized Environment
Bridging the Semantic Gap in Virtualized EnvironmentBridging the Semantic Gap in Virtualized Environment
Bridging the Semantic Gap in Virtualized Environment
 
XPDS16: Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrig...XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
XPDS16: Display Handler, a Client Display Framework for Xen - Brendan Kerrig...
 
Google chrome sandbox
Google chrome sandboxGoogle chrome sandbox
Google chrome sandbox
 
Securing your Cloud with Xen - SUSECon 2013
Securing your Cloud with Xen - SUSECon 2013Securing your Cloud with Xen - SUSECon 2013
Securing your Cloud with Xen - SUSECon 2013
 
Owning computers without shell access 2
Owning computers without shell access 2Owning computers without shell access 2
Owning computers without shell access 2
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
 
DEF CON 27 - JESSE MICHAEL - get off the kernel if you can't drive
DEF CON 27 - JESSE MICHAEL - get off the kernel if you can't driveDEF CON 27 - JESSE MICHAEL - get off the kernel if you can't drive
DEF CON 27 - JESSE MICHAEL - get off the kernel if you can't drive
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
 
EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMU
 
Trusted Computing _plate form_ model.ppt
Trusted Computing _plate form_ model.pptTrusted Computing _plate form_ model.ppt
Trusted Computing _plate form_ model.ppt
 
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
 

More from 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] 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] 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

Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
raffaeleoman
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
Kayode Fayemi
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
David Celestin
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
amilabibi1
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
Kayode Fayemi
 

Recently uploaded (15)

My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 

[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di Shen

  • 1. Attacking DRM subsystem to gain kernel privilege on Chromebooks Di Shen a.k.a. Retme (@returnsme) Keen Lab of Tencent
  • 2. • Di Shen a.k.a. Retme • Sr. Security Researcher of Keen Lab, Tencent • Kernel vulnerability hunting and exploitation since 2014 • @returnsme • github.com/retme7 • Fan of console games, anime and mystery novels( )
  • 3. • Chrome OS security: a brief look • Choose a better attack surface: for Chrome PWNium • The Direct Rendering Manager(DRM) • CVE-2019-16508: analysis and exploitation • Demonstration
  • 4. • running the Linux- based Chrome OS • Different brands and models • HP,Dell,ASUS,Lenovo…
  • 5. • Not for video gamers • But still good enough to finish daily work • Easy to use • Some models can be very cheap • It is very SECURE.
  • 6. • Chrome browser • Sandbox • Both apps and system services are isolated and sandboxed. • Secure file system / storage • Read-only root file system • Verified boot and dm-verity • Additional Linux security module is stacked ahead of SELinux • Automatic updates • Fix known bugs ASAP • Apply security patches to the kernel regularly
  • 7. • Use minijail0 to execute system services • Apply different kind of restrictions: • User id • Capabilities • Namespace • Seccomp filter policy • SeLinux policy • More details check the official documents [1] [2]
  • 8. • Firmware, root disk(kernel),system partition can be verified • System partition is verified by dm-verity in kernel. • Details of verified boot [1]
  • 9. • Used by Chrome OS and Android • Implemented in Linux kernel. • Protect system partition from being modified. • Will calculate the checksum of every block on the disk before I/O operation. • Will crash the whole system if the checksum is wrong.
  • 10. • ‘Persistence’ means keep your malicious process persistently alive across reboots • Chrome OS has multiple features to stop persistent attack
  • 11. • dm-verity • noexec mount for writable data partition • Linux security module (LSM) • Have other mitigations for specific persistent exploits in the history
  • 12. ) ( ) • A Linux security module • Reject symlinks that will redirect system’s write actions during boot (designed_docs) • Refuse to mount a path with symlinks • Hardening against loading module/firmware
  • 13. • Chrome OS security: a brief look • Choose a better attack surface: for Chrome PWNium • The Direct Rendering Manager(DRM) • CVE-2019-16508: analysis and exploitation • Demonstration
  • 14. • “We have a standing $150,000 reward for participants that can compromise a Chromebook or Chromebox with device persistence in guest mode (i.e. guest to guest persistence with interim reboot, delivered via a web page).” – Chrome VRP • Previously it was $100k, raised to $150k this July.
  • 15. ) ( ( • Chrome browser Renderer RCE (in guest mode) • Sandbox escape • OS Persistence
  • 16. ' • CVE-2019-5825: Out-of-bounds write in V8 • CVE-2019-5826: Use-after-free in IndexedDB • CVE-2019-16508: Privilege escalation in kernel mode • CVE-2019-13690: Privilege escalation in user mode • CVE-2019-13689: Chrome OS persistence bug • Credit goes to Gengming Liu, Jianyu Chen, Zhen Feng, Jessica Liu and Retme at Tencent Keenlab
  • 17.
  • 18. CVE-2019-5825 By Jessica on Kcon, Beijing CVE-2019-5826 By Gengming on Blackhat USA, Las Vegas CVE-2019-16508 By Retme on Code Blue, Tokyo CVE-2019-13690 & CVE-2019-13689 By Gengming & Melody on POC, Seoul
  • 19. • The end of March,2019 • We already had V8 bug for RCE and sandbox escape • But no privilege escalation and Persistence • We need ROOT privilege to trigger the persistent exploitation
  • 20. • I didn’t need to find a Linux kernel vulnerability that affect all Linux distribution. • A bug targeted at official Chrome OS hardware will be fine. • Need to make it within 30 days or so • Let’s find a vendor bug on specific Chromebook.
  • 21.
  • 22. • Mediatek, the paradise for bug hunter… • Lenovo S330 • Based on MT8173 platform • Board name ”hana” (-?)
  • 23. Mitigation Enabled PXN * Yes PAN Yes UAO No KASLR No Any others No * PXN : Privileged eXecute Never PAN : Privileged Access Never UAO : User Access Override
  • 24. • Bought Lenovo S330 from Amazon UK… • Then wait 2 weeks for the global delivery • Think about which part of code may be vulnerable during my wait • It ‘s Direct Rendering Manager
  • 25. • Chrome OS security: a brief look • Choose a better attack surface: for Chrome pwnium • The Direct Rendering Manager(DRM) • CVE-2019-16508: analysis and exploitation • Demonstration
  • 26. • a subsystem of the Linux kernel • drivers/gpu/drm/ • responsible for interfacing with GPUs • MT8173 is using PowerVR GPU by Imagination
  • 27. • There will be card0,card1,card2… , if you have multiple video card • It is accessible for normal user (chronos) on Chrom OS. • It exposes IOCTL interface for users
  • 28. ) ( ( ) • We have no permission to request the commands which is set these flags: • DRM_ROOT_ONLY • DRM_MASTER • DRM_AUTH • Few commands are OK to request • Not a big attack surface
  • 29. • Will call vendor’s private IOCTL handler if nr > DRM_COMMAND_BASE
  • 30. • /dev/dri/card0 • mkt_ioctls() • /dev/dri/card1 • pvr_drm_ioctls()
  • 31. • Handles PVR_SRVKM_CMD request • Argument • bridge_id [0-24] • bridge_func_id [0-N]
  • 32. • Handles PVR_SRVKM_CMD request • Argument • bridge_id [0-24] • bridge_func_id [0-N]
  • 33. • (bridge_id*bridge_func_id) interfaces can be accessed by user mode • Exactly the attack surface I want!
  • 34. • Recompile the kernel and flash it to Chromebook [1][2] • Define fuzzing rules targeting PowerVR interface PVR_SRVKM_CMD • Run the fuzzer via SSH and wait for one night • Maybe play some games on PS4 during my wait …
  • 35. • Chrome OS security: a brief look • Choose a better attack surface: for Chrome pwnium • The Direct Rendering Manager(DRM) • CVE-2019-16508: analysis and exploitation • Demonstration
  • 36. • Stack trace • PVRSRVBridgeSyncPrimOpCreate() • bridge_id = 2; bridge_func_id = 8
  • 37. ) ( ) • Miss checking buffer size coming from user input psSyncPrimOpCreateIN, which may lead to an integer overflow. • It’s able to convert this bug to a heap out-of-bound write, then achieve arbitrary memory overwriting.
  • 38. • ui32BufferSize overflowed • A smaller buffer pArrayArgsBuffer • Heap OOB Write
  • 39. • Compromise pipe subsystem (check my talk on CodeBlue 17) • After OSCopyFromUser() • Write pipe_fd to copy buffer to kaddr (arbitrary kernel address) iov_base iov_len iov_base iov_len …pArrayArgsBuffer 0x2000 bytes 0x2000 bytes pArrayArgsBuffer Kaddr iov_len iov_base iov_len … Overwriting starts from here.
  • 40. • Kernel may crash in 50% by “HARDENED_USERCOPY” • That happens when my heap spray failed, the copy_from_user() overwrite some small heap slots. 128 128 128 128 …pArrayArgsBuffer kmalloc-8192 kmalloc-128 copy_from_user(ptr-object-128,buffer-8192,8192) KERNEL PANIC BY HARDENED_USERCOPY
  • 41. • Seems was back ported to Linux 3.18 by chromium • Boundary check in copy_from/to_user() by instrumentation • check_copy_size()
  • 42. • I copied 8192 bytes to object-128 previously • Actually copying 0x20 bytes is good enough to overwrite iov_base. • The copied content is {0, 0, kADDR, iov_len} 128 128 128 128 …pArrayArgsBuffer kmalloc-8192 kmalloc-128 copy_from_user(ptr-object-128,buffer-8192,0x20) It will NOT crash when my spray failed any more.
  • 43. • Chrome OS security: a brief look • Choose a better attack surface: for Chrome pwnium • The Direct Rendering Manager(DRM) • CVE-2019-16508: analysis and exploitation • Demonstration