SlideShare a Scribd company logo
1 of 92
Download to read offline
Operating System Support for
Run-Time Security with a
Trusted Execution Environment
Ph.D Defense
Javier González
March 20, 2015
Innovation
Digital Society
Information FlowUsers
Personal Devices
Service Providers
mails
passwords
ssh-keys
media content
certificatespictures apps
Sensitive!
Digital Society
Information FlowUsers
Personal Devices
Service Providers
mails
passwords
ssh-keys
media content
certificatespictures apps
Distrust
Innovation
‣ We have no control over how sensitive data is handled in our
own personal devices or in the cloud
- Bad policies, vulnerabilities, weak defaults, data leakage
‣ It is very difficult to manage the complexity of the software
enabling innovative services (compilation- and run-time)
- Complexity -> Unspecified behaviour -> Indeterminism
‣ “World-changing innovation is entirely in the code” - Marc
Andreessen
Digital Society
Software is guilty
Digital Society
Information FlowUsers
Personal Devices
Service Providers
mails
passwords
ssh-keys
media content
certificatespictures apps
Trust
Innovation
Usage Control
How do we implement support for usage control in
commodity Operating Systems in order to protect from
today’s cyberattack?
Usage Control is the basis for Run-Time Security
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
- Hardware
- Trusted Cell
- Trusted Services
- Reference Monitor
- Trusted Storage
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
- Reference Monitor
- Trusted Storage
Prototype
3
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Usage Control
What is it?
Subject
Authorizations
ObjectRights
Obligations Conditions
Usage decision
‣ Enforcement: A priori control of usage rights (access control)
‣ Audit: A posteriori control of how rights were use
‣ Usage control is about who accesses an object and how that
object is being used
Jaehong Park and Ravi Sandhu. The UCONabc usage control model. ACM Trans. Inf. Syst. Secur., 7(1):128–174, February 2004.
Usage Control
Attempts to implement it
‣ Reference monitor (policy engine) resides in the same
environment to which the policies apply
‣ The enforcement of the usage decision occurs also in the
same environment
‣ Examples: Proxos, Taintdroid, Saint Framework,…
Usage Control
‣ Considering a realistic attack model:
- The area where the usage policies apply must be considered untrusted
- … that means that the whole commodity OS stack is untrusted!
‣ As a consequence:
- The policy engine (reference monitor) must be isolated from the OS
- The enforcement of usage decisions must also be isolated
How it should be
Untrusted
App
Reference
Monitor
Peripherals
Memory
Untrusted Area Trusted Area
Run-Time Security
‣ Identify Sensitive Assets
- Any software or hardware component that manages sensitive
information: sensitive data, software resources, and peripherals.
‣ Define a TEE (security perimeter) to protect sensitive assets
‣ Enable Run-Time Security Primitives that allow innovative
(untrusted) services to make use of these sensitive assets.
- Innovative services and the commodity OSs are untrusted
- Reference monitor mediates access and usage of sensitive assets
‣ Provide commodity OSs with Trusted Services
Overview
Untrusted Area Trusted Area
TEE
SoftwareHardware
Device
Hardware Separation
Secure Hardware
Operating System
Applications
REE
Trusted
Components
Peripherals
System Bus
Memory Memory
Reference
Monitor
Run-Time Security
Overview
Sensitive
Assets
Run-Time
Security
Primitives
Trusted Services
Usage
Control
Narrowing down
‣ Provide support for usage control in commodity OSs
- Policy engines might vary; we are interested in the framework that can
feed any policy engine and enable the generation of usage policies
‣ Provide support for run-time security in commodity OSs
- Usage control models could generate a perfect set of policies, but
that is not enough if they are not enforced
- Run-Time security is about enforcing usage control!
‣ Assume a realistic attack model responding to today’s attacks
- Both the operating system and innovative applications are untrusted
- Focus on guaranteeing confidentiality and integrity of sensitive assets
‣ In terms of the process:
- We follow an experimental approach - systems research
- We aim at high adoption and value open-source
What are you trying to solve?
Contributions
‣ Exhaustive analysis of the state of the art in run-time security
‣ Hypothesis: Split-Enforcement
- State machine capturing usage of sensitive assets in UAs
- Model for a reference monitor to generate usage decisions
- Two-phase mechanism that allows to enforce usage policies
‣ TEE Support for Linux-based systems
- Make Open Virtualization to an usable level
- Generic TrustZone Driver for Linux kernel (being upstreamed)
‣ Trusted Cell
- Flexible framework to provide trusted services
‣ Trusted Services
- Reference monitor (enforced usage control) using split-enforcement
- Trusted Storage solution
- Certainty Boot (user-centric boot protection mechanism)
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Requirements
‣ The untrusted area is untrusted (yes, the whole software stack!)
‣ The reference monitor should generate usage policies based on
the use of sensitive assets by untrusted area (UA)
‣ These usage policies must be enforced
‣ Run-Time security policies must be available to the UA
‣ The UA must not be constrained in terms of its software stack
‣ The Trusted Area (TA) should minimize complexity (low TCB)
‣ Confidentiality and integrity of sensitive assets is paramount
‣ We must be able to experiment with the solution!
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space ‣ State of the Art
- Use of a Trusted Area to generate
usage decision (in the best case)
- OS is trusted - leap of faith
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space
‣ Secure Drivers
- Large Trusted Computing Base (TCB)
- Replicated complex and community
tested functionality - vulnerabilities!
- Imposed software stack - constrained
innovation
- Reference: seL4, MirageOS
- Certification != Formal Verification
‣ State of the Art
- Use of a Trusted Area to generate
usage decision (in the best case)
- OS is trusted - leap of faith
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Trusted Services
Design Space
‣ Split-Enforcement
- Small TCB
- Locking/Unlocking sensitive assets
‣ Secure Drivers
- Large Trusted Computing Base (TCB)
- Replicated complex and community
tested functionality - vulnerabilities!
- Imposed software stack - constrained
innovation
- Reference: seL4, MirageOS
- Certification != Formal Verification
‣ State of the Art
- Use of a Trusted Area to generate
usage decision (in the best case)
- OS is trusted - leap of faith
Today’s Attack Model
Trusted Services
Design Space
Secure Drivers Split-Enforcement
Split-Enforcement
Formal Model
Untrusted
State
Outsource
State
use non-sensitive
asset
use sensitive
asset
use sensitive asset ||
(free sensitive asset && count(sensitive_assets) > 0)
outsource
sensitive task
result&&
count(sensitive)assets)>
0
Sensitive
State
(free sensitive asset &&
count(sensitive_assets) == 0)
outsource
sensitive task
result&&
count(sensitive)assets)==
0
Reference
Monitor
Untrusted
App
Policy
Decision
Point
Secure
Operation
1. sensitive action 2. pre-action eval.
3., 7. decision
4.b, 8.b abort
4.a execute action5. result
6. post-action eval
4.c continue
8.a result / continue
(state)
(state)
(state)
‣ Represent usage of sensitive assets
- State machine abstraction
- States describe untrusted applications,
transitions depend of sensitive asset use
- Controlled in Trusted Area
‣ Operation
- UAs begin and finish in untrusted state
- Transitions strictly governed by which
sensitive asset the UA is using
- State is used by the reference monitor
(RM) as application metadata to generate
a usage decision
- The PDP keeps a historical record of
sensitive assets in use for each UA in
sensitive state (i.e., mutability)
Split-Enforcement
Challenge
We can generate a usage decision, and represent
usage of sensitive assets by the Untrusted Area…
… but, how do we enforce the usage decision?
Locking Mechanisms
Overview
Peripheral Locking
‣ Mediate usage of
sensitive peripherals
in the system bus
(e.g., Ethernet, I/O
devices)
Memory LockingData Locking
‣ Mediate usage of
sensitive data at rest
‣ Mediate usage of
sensitive data in
motion
‣ They enforce usage policies generated by the reference monitor
‣ They allow to maintain a low TCB in the Trusted Area
‣ We identify three different types of locking mechanisms:
Locking Mechanisms
Peripheral Locking
Source: ARM Security Technology. Building a secure system using trustzone technology. Technical report, ARM, 2009.
‣ Peripheral setup
- Assign peripherals to TA & UA
- Protected by the hardware
- Configure at run-time
- Gatekeeper
‣ Unlocking
- Mediation: reference monitor
- Only from Trusted Area
‣ Locking
- Sensitive per. locked a priori
- Re-lock: Capture interrupts
‣ Technology support
- Protection in system bus
- TrustZone is good alternative,
but there are others!
Locking Mechanisms
Data Locking
‣ Decouple encryption and decryption operations
- Locking: Encryption
- Unlocking: Decryption
• Mediation: Reference monitor
Trusted AreaUntrusted Area
Hardware
UserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Reference Monitor
Secure
Components
Secondary Storage
(i.e., NVRAM)
Memory
Other peripherals
(e.g., Ethernet)
CPU
X
(-X)
Usage decision enforced in secure area - use of secure drivers
Usage decision enforced in untrusted area
Usage Driver
Usage decision enforced in secure area - split enforcement
X
1 2
secure ext4
secure VFS
secure MTD
driver
U
U U
X
Secure AreaCommodity OS
Locking Mechanisms
Memory Locking
‣ Mediate memory accesses in UA through the reference monitor
- All memory accesses are captured (trap-and-emulate)
- Track memory operations to enforce usage policies - lock/unlock
• We provide the framework; a model to track memory is necessary (e.g., CFI, CPI)
- Example:
• If sensitive data is given access to the untrusted area (e.g., contact list) a given
peripheral cannot be accessed (e.g., Ethernet interface)
Sensitive State
Sensitive Assets
accessible to UA
Enforce
Memory policies
Enforce other
usage policies
Track memory usage
Untrusted State
Sensitive Assets NOT
accessible to UA
“Zeroize”
UA memory
Split-Enforcement
What is new?
‣ Sensitive assets are directly accessible by innovative
applications without imposing software stack
‣ Usage control policies can be enforced while (i) maintaining a
minimal TCB, and (ii) not replicating time-tested code
‣ Confidentiality and integrity of sensitive assets is guaranteed
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
Split-Enforcement
Hardware Support
Scope
Tamper-resistance
+-
+
-
Smart Card
TPM
TrustZone
Air-gap
Intel SGX
Honey-pot
Security Utopy
Research
Next Gen
Only Software
Virtualization
IBM CryptoCards
Split-Enforcement
Hardware Support
‣ Secure Peripherals
- TrustZone supports on-the-fly assignment
of peripherals to the trusted and
untrusted areas
‣ Memory Partition
- TrustZone supports to allocate isolated
memory to the trusted and untrusted
areas
‣ TEE
- TrustZone provides an extra privilege
mode to support a trusted area (user
space - kernel space - secure space)
‣ Trusted - Untrusted Integration
- Dynamic security perimeter at run-time
- Cost: no tamper-resistanceMobile Devices ARMv8 Severs
(HP Redstone)
NextGen I/O Devices
(Stealth Start-ups)
Source: http://www.arm.com/products/processors/technologies/trustzone/index.php
TEE Framework
Designing the Trusted Cell
‣ Requirements for the Trusted Area
- Largely independent TEE, high duty cycle, and ~real-time constrains
- Synergy with the untrusted area: Generating and enforcing usage
policies
- Open source: Experimental research in academia
‣ Design limitations
- TrustZone has been a closed, obscure technology since 2004
- 3 years ago, most hardware manufacturers disabled the TrustZone
security extensions. TTBOOK, only on ARM’s VE and Xilinx’s Zynq*
- Open Virtualization (OV) was the first open-source project leveraging
TrustZone (only one back in 2012).
- OV was incomplete, unstable, and targeted Global Platform’s
traditional TrustZone use cases (offload of low duty cycled secure
tasks)… but it was a place to start!
*Today TrustZone available on: Freescalei.MX53, Samsung S3C6410 SoC, Nvidia Tegra 3 and 4, Qualcomm Snapdragon 400 MSM8630, …
TEE Framework
Setup + Contributions
‣ Commercially available hardwar
- Xilinx Zynq-7000 ZC702
- Public secure registers (http://www.xilinx.com/support/documentation/user_guides/ug1019-zynq-trustzone.pdf)
- Uboot, QEMU, Device Tree, compilers, gdb, etc. (https://github.com/xilinx)
‣ TEE
- Open Virtualization
- New Features:
• Communication Interface
• Updated OpenSSL (HeartBleed)
• Refactoring (git friendly) + Porting to kernel submodule + Publication + Documentation [1]
- Bug Fixing:
• L2 cache
• Memory management: 2 memory leaks (4KB and 32KB) - non-GP use cases
- Generic TrustZone driver for Linux kernel (LKLM)
- Trusted Cell
- Trusted Modules
[1] J. González and P. Bonnet. Towards an open framework leveraging a trusted execution environment. In Cyberspace Safety and Security. Springer, 2013.
Contribution
Split-Enforcement
Prototype
ZC702
Trusted Cell
TrustZone
Driver+
Linux-xlnx
OV: http://www.openvirtualization.org
Linux-xlnx: https://github.com/TrustZoneGenericDriver/linux-xlnx
Ubuntu for Zynq: http://javigon.com/2014/09/02/running-ubuntu-on-zynq-7000/
HWSecure
Space
Kernel
Space
User
Space
UserSpaceKernelSpace
Applications
REE Trusted Cell
LSMHooks
TrustZone Kernel Driver
tz_generic
tz1 tz2 tzn
tz_device
REE Trusted Cell
GP
Client API
TEE
API
TEE
API...
1 n
LSM
Trusted Cell
Kernel
Subsystems
Proprietary
TEE API
Untrusted Area Secure Area
TEE Trusted Cell
TrustedCellManager
(Secure)
syscalls
TEE
API
2
Trusted Cell
Manager
sysfs
hash(data)
TIM
hash(metadata)
verify(file)
TIMcache
TSM
encrypt(X)
decrypt(X)
TSMcache
TUM
create(policy)
evaluate(policy)
modify(policy)
TUMqueue
Untrusted Device Drivers
TSPM
Run-time Security
Primitives
dispatch(secure_call)
Metadata
CRYPTO
TC Logs
Policy Engine
(e.g., UCON)
Service Usage
Contract
Device Usage
Policy
TrustedDeviceDrivers
TC driv.
Tamper
Resistant Unit
(secure Element)
Crypto Keys
Memory
Peripherals connected to System Bus
(e.g., secondary storage)
TZPC
Libraries
(e.g., libc)
Trusted Cell
Overall Architecture
Trusted Cell
Reference Monitor
‣ Used Trusted Modules
- TSPM: Expose “Reference Monitor” services to Untrusted Area
- TSM and TIM: Cryptographic operations and trusted logs
- TUM: Usage policy engine
• Peripheral Locking
• Memory tracing (reference implementation)
‣ Functionality
1. REE LSM feeds TUM with untrusted application’s system calls
2. TUM generates a usage decision based on policies
3. Use of sensitive assets are used -> UA sensitive state (mutability)
4. Sensitive asset and memory usage are mediated (lock/unlock)
• Peripheral Locking
• Memory Locking
5. Sensitive assets are unlocked
6. Untrusted application returns to untrusted state
Untrusted
State
Outsource
State
use non-sensitive
asset
use sensitive
asset
use sensitive asset ||
(free sensitive asset && count(sensitive_assets) > 0)
outsource
sensitive task
result&&
count(sensitive)assets)>
0
Sensitive
State
(free sensitive asset &&
count(sensitive_assets) == 0)
outsource
sensitive task
result&&
count(sensitive)assets)==
0
Trusted Cell
Prototype
‣ Modules: TIM, TSM, and TSPM fully implemented
- Encryption, hashing, and verification
- Dispatcher to trusted services using REE Trusted Cell
- Working peripheral locking and data locking
‣ Shortcomings
- Hardware-Assisted Encryption
• No NVRAM and no PCI-e in Zynq (prototype done with SD Card)
• SSDs typically embed a proprietary FTL (but do have cryptoprocessors) - Future work!
- Memory Locking
• TrustZone does not support trap-and-emulate in MMU (2 MMUs - secure/non-secure world)
• Microblaze (FPGA) does not support this either
• No platforms with Virtualization Extensions and TrustZone enabled (doc, community, …)
➡ Provide proof-of-concept implementation!
• We explored the design space to its end - Zynq cannot provide more
• More engineering would not change decisions, or conclusions
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Analytical Evaluation
Requirement Compliance
‣ Untrusted Area is untrusted (commodity OS + applications)
- Split-Enforcement *does not* depend on the untrusted area!
‣ Split-Enforcement (State Machine and Reference Monitor)
- Allows to generate and enforce usage policies with an untrusted OS (TC)
‣ Low TCB
- TrustZone driver + Trusted Cell ~7K LOC (<10K LOC is in the range for
formally verification) - OV (~30K LOC), OpenSSL (~400K LOC)
‣ Security + Innovation
- The untrusted area is not constrained (scope, framework, nor resources)
- No (complex) code replication
- Trusted Cell exposes trusted services to untrusted applications
- Confidentiality and integrity of sensitive assets is guaranteed
Experimental Evaluation
Application Benchmarks
0%
2%
4%
6%
8%
10%
12%
14%
16%
18%
0 ins. 100 ins. 1000 ins. 5000 ins. 10000 ins
OverheadTrustZone/Kernel%
make dd (200M) tar bzip2 untar
‣ Kernel compilation with full monitoring (∀syscalls) < 18% overhead
Experimental Evaluation
Micro Benchmarks
1KB 100KB 500KB 1MB
ALLOC(kmalloc) 30.40% -83.81% -95.58% -97.77%
ALLOC(vmalloc) 27.15% 8.74% -19.58% -48.35%
MEMCPY 730.91% 129.46% 114.85% 113.90%
CALL 20.80% 19.87% 20.52% 20.35%
730.91%
!150%&
!120%&
!90%&
!60%&
!30%&
0%&
30%&
60%&
90%&
120%&
150%&
OverheadTrustZone/Kernel%
ALLOC(kmalloc) ALLOC(vmalloc) MEMCPY CALL
‣ Memory allocator in TEE has a huge impact (OV: memory pool)
‣ Overhead of calls to TEE in < 10µs range (5.3µs in avg.)
Conclusion
Split-Enforcement on TrustZone
‣ Data locking
- I/O latencies today measured in 100s of
µs. in most advanced datacenters today
‣ Memory locking
- Memory operations are measured in ns.;
µs. represent a big overhead - trade-off
- Expect better results with full virtualization
‣ Peripheral locking
- Access to APB bus measured in ns.
- But, …communication with peripherals in
ms. or sec. (specially is humans involved)
- Variable latencies Split-Enforcement
‣ In ARMv8 we expect less overhead by implementing time-critical
locking (e.g., memory locking) directly in the secure monitor (EL3)
Experimental Evaluation
Split-Enforcement on TrustZone
‣ The cost of a secure round trip is in the range of the few
microseconds (5.3µs in avg. at 666MHz.)
‣ Allows to generate and enforce usage policies with an untrusted OS
‣ The overhead of 10000s context switches, executing 1000s of
instructions in secure space < 18%
‣ The Trusted Execution Environment provided by Open Virtualization
is not well suited for long-running tasks in secure spaces
- Secure tasks run to completion without being preempted
- Pre-allocated memory pool
Run-Time
Security
- Usage Control
- State of the Art
- Problem
- Contributions
Split-
Enforcement
- Requirements
- Design Space
- State Machine
- Usage Policy
Enforcement
Prototype
Evaluation
Conclusion + Future Work
Agenda
1 2 3
4
5
- Hardware
- Trusted Cell
- Trusted Modules
- Reference Monitor
Conclusion
‣ Split-Enforcement
- Sensitive assets are directly managed by the untrusted area (low TCB)
- Locking/Unlocking mechanisms enforce usage policies
- Untrusted Area can support innovative, complex services
‣ Operating System Support
- TEE support for Linux: Open Virtualization + TrustZone driver
- Trusted Cell: Modular framework to provide different trusted services
- Prototype:
• Experimental evaluation in real hardware
• TrustZone Support + Trusted Cell + Reference Monitor + Trusted Storage + Certainty Boot
➡ Run-Time Security
How do we implement support for usage control in commodity
Operating Systems in order to protect from today’s cyberattacks?
Generic TrustZone Driver
Current Status
‣ First patch-set sent to LKML
‣ Leading new patch-set
- Collaborators: Linaro, STMicroelectronics, Huawei, and others
- Mailing List: (tee-dev@lists.linaro.org)
- Development: (https://github.com/TrustZoneGenericDriver)
- Proposed new submodule: /drivers/sec-hw (TrustZone, TPM, …)
(http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU)
Generic TrustZone Interface (COMMON)
TrustZone Supported Chips (COMMON)
OP-TEE
(SPECIFIC)
OV
(SPECIFIC)
Others
(SPECIFIC)
Kernel
Submodules
User Space
OP-TEE Client
(SPECIFIC)
OV Client
(SPECIFIC)
TEE Client
(COMMON?)
Target 2Target 1 Target 3 Target n
smc call
• Open/Close (Posix)
• TEE_IOC_CMD
• TEE_IOC_TASK
• TEE_IOC_SHM_ALLOC
• TEE_IOC_SHM_FREE
• TEE_IOC_LOAD_TS
• TEE_IOC_GET_TS_LIST
• …
IOCTL (ongoing discussion)
+ Kernel interface
(sub-modules)
(http://lwn.net/Articles/623380/)
Future Work
‣ Current Trusted Services
- Trusted Storage
• I/O Trusted Cell
• Trusted Cell Communication
• Trusted Area DMA
- Reference Monitor
• Port to ARMv8: TrustZone + Virtualization Extensions
• Use a model to trace memory operations (e.g., CFI, CPI)
‣ New Trusted Services
- Trusted Service Installer
- Trusted Service Store
- Trusted Area Intrusion Detection (using TIM)
- Trusted Cell Verification (using TIM and Certainty Boot)
- Split-Enforcement in other Secure Hardware (e.g., Intel SGX)
Mobile Devices ARMv8 Severs
(HP Redstone)
NextGen I/O Devices
(Stealth Start-ups)
Ph.D Defense
Javier González (javier@javigon.com)
March 20, 2015
Operating System Support for
Run-Time Security with a
Trusted Execution Environment
Support Slides
Ph.D Defense
Javier González (javier@javigon.com)
March 20, 2015
UserSpaceKernelSpace
Applications
REE Trusted Cell
LSMHooks
TrustZone Kernel Driver
tz_generic
tz1 tz2 tzn
tz_device
REE Trusted Cell
GP
Client API
TEE
API
TEE
API...
1 n
LSM
Trusted Cell
Kernel
Subsystems
Proprietary
TEE API
Untrusted Area Secure Area
TEE Trusted Cell
TrustedCellManager
(Secure)
syscalls
TEE
API
2
Trusted Cell
Manager
sysfs
hash(data)
TIM
hash(metadata)
verify(file)
TIMcache
TSM
encrypt(X)
decrypt(X)
TSMcache
TUM
create(policy)
evaluate(policy)
modify(policy)
TUMqueue
Untrusted Device Drivers
TSPM
Run-time Security
Primitives
dispatch(secure_call)
Metadata
CRYPTO
TC Logs
Policy Engine
(e.g., UCON)
Service Usage
Contract
Device Usage
Policy
TrustedDeviceDrivers
TC driv.
Tamper
Resistant Unit
(secure Element)
Crypto Keys
Memory
Peripherals connected to System Bus
(e.g., secondary storage)
TZPC
Libraries
(e.g., libc)
Trusted Cell
Overall Architecture
1
REE Trusted Cell
Trusted Cell
REE Trusted Cell
‣ Kernel submodule support
- Need for well-known interface - kernel is static at run-time
- Linux Security Module (LSM) is a perfect match
• LSM mediates access to kernel space objects in the kernel
• Set of transversal hooks to all kernel submodules: I/O stack, network stack, etc.
• Already implements the concept of policies (though for access control only)
• Inconvenient: Only one LSM at a time*
- LSM Trusted Cell
• New LSM module focused on usage control (AppArmor, SELinux, etc.: for access control)
• Monitor (classes of) system calls - evaluation with worst case
- Introduction of security-critical system primitives
• Validate integrity of kernel image (certainty boot)
• Validate boot sequence at run-time (certainty boot)
• Others: Crypto API, capabilitiy subsystem, and other LSM frameworks
*Casey Schauffer has proposed a new LSM stacking mechanism that is having backup from the kernel community. (LKLM)
Trusted Cell
REE Trusted Cell
‣ User space application support
- Less constrained than kernel - user space is dynamic at run-time
- Different APIs can be implemented on top of tz_device
• We implement a subset of Global Platform’s Client API - proof of concept
• Support TEE-specific (maybe proprietary) libraries
- TEE-frameworks can define their ioctls
• Support TEE-specific (maybe proprietary) operations (e.g., OP-TEE tee-supplicant)
- Possibility to load TEE-specific LKMs directly using kernel interface
• Support TEE-specific (maybe proprietary) operations
‣ REE Trusted Cell management through sysfs
UserSpaceKernelSpace
Applications
REE Trusted Cell
LSMHooks
TrustZone Kernel Driver
tz_generic
tz1 tz2 tzn
tz_device
REE Trusted Cell
GP
Client API
TEE
API
TEE
API...
1 n
LSM
Trusted Cell
Kernel
Subsystems
TEE LKM
TEE API Proprietary
TEE API
Untrusted Area Secure Area
TEE Trusted Cell
TrustedCellManager
Trusted
Service0
Trusted
Service1
...
Trusted
Servicen
Secure Task
Secure Task
Secure Task
Secure Task
Secure Task
Secure Task
0
1
2
3
4
n
...
Secure
syscalls/
TEE
API
2
Trusted Cell
Manager
sysfs
Trusted Cell
REE Trusted Cell
UserSpaceKernelSpace
Applications
REE Trusted Cell
LSMHooks
TrustZone Kernel Driver
tz_generic
tz1 tz2 tzn
tz_device
REE Trusted Cell
GP
Client API
TEE
API
TEE
API...
1 n
LSM
Trusted Cell
Kernel
Subsystems
Proprietary
TEE API
Untrusted Area Secure Area
TEE Trusted Cell
TrustedCellManager
(Secure)
syscalls
TEE
API
2
Trusted Cell
Manager
sysfs
hash(data)
TIM
hash(metadata)
verify(file)
TIMcache
TSM
encrypt(X)
decrypt(X)
TSMcache
TUM
create(policy)
evaluate(policy)
modify(policy)
TUMqueue
Untrusted Device Drivers
TSPM
Run-time Security
Primitives
dispatch(secure_call)
Metadata
CRYPTO
TC Logs
Policy Engine
(e.g., UCON)
Service Usage
Contract
Device Usage
Policy
TrustedDeviceDrivers
TC driv.
Tamper
Resistant Unit
(secure Element)
Crypto Keys
Memory
Peripherals connected to System Bus
(e.g., secondary storage)
TZPC
Libraries
(e.g., libc)
Trusted Cell
Overall Architecture
2
TEE Trusted Cell
Certainty Boot
Architecture
Manufacturer
Applications Secure Tasks
TEE OS
OSBL TEEBL
Trusted
public
keys
Hash of
boot log
Two-phase
bootapplet
Second Stage Bootloader (SSBL)
First Stage Bootloader (FSBL)
Untrusted Area Secure Area Secure Element
Secure
Element
OS
Signature
Root of Trust - Components
Verified Components
SE to application processor
communication via APB
Signature
Mobile OS
Certainty Boot
Boot Sequence
[wrong SS or
canceled]
(1) Power on
(2) Verify OS/OSBL
(6) System running
without SE access
[OS/OSBL verified]
(4) Display unverified
components,
ask for SS
[OS/OSBL not
verified]
[correct SS]
(5) SE adds issuer
public key to list
(3) System running
with SE access
FSBL/SSBL running
Manufacturer
Secure environment & SE
Rich environment
Desired path
Uncertified result
Exchange OS/OSBL
Hardware
Zynq ZC702
Hardware
TrustZone
TrustZone-enabled SoC
Peripherals
Trusted AreaUntrusted Area
Memory Secure World
Memory
Non-Secure
World Memory
Main OS
Applications
Non-Secure World
Secure Monitor
Secure OS
Secure Tasks
Secure World
Hardware
TPM
Communication
Bus Gate Keeper
Trusted AreaUntrusted Area
Crypto
Engine
Random
Number
Generator
PCR Registers
(≥16 registers)
I/O
Non-Volatile
Memory
(≥ 1280 bytes)
Volatile
Memory
Execution
Engine ...
Peripherals
Main Memory
Hardware
Intel SGX
Operating System
Untrusted Area Trusted Area
Hardware
Enclave
Application Stack
Application Code Enclave Code
Enclave Stack
Enclave Heap
Entry Table
Peripherals
Hardware
Smart Card
Communication
Bus
Untrusted Area
Peripherals
Main Memory
Interfaces
Smart Card
Controller
Trusted Area
RAM FLASH
Software is guilty
‣ “Software is eating the world” - Marc Andreessen
‣ “Almost all modern systems share a common Achille’s heel in
the form of software” - Gary McGraw
- The Trinity of Trouble: Complexity, Connectivity, and Extensibility
- 5 to 50 bugs per 1 KLOC
- Linux Kernel +15 million LOC today (not all in kernel image)
‣ Complexity -> Unspecified Behaviour -> Indeterminism
- Intentionally introduced vulnerabilities can be hidden (e.g., back
doors)
- Chances for unintentionally introduced indeterminism augment
- Corner Stone for software attacks
- Examples: Heartbleed, ShellShock, Freak
How do we handle the security of complex software without killing
innovation?
“World-changing is entirely in the code”
Marc Andreessen
“Almost all modern systems share a
common Achille’s heel in the form of
software”
Gary McGraw
Split-Enforcement
Overview
‣ Example usage policies:
- If sensitive data is given access to the untrusted area (e.g., contact
list) a given peripheral cannot be accessed (e.g., Ethernet interface)
- If access to a number of sensitive assets (data, peripherals) has
previously been granted, a given set sensitive asset cannot be
accessed. Decisions made on previous usage (mutability)
Untrusted Area Trusted Area
TEE
Operating System
Applications
REE
Reference
Monitor
Secondary
Storage
Memory
Peripherals
(e.g., Ethernet)
CPU
lock
access unlock
request
unlock
Trusted Cell
TEE Trusted Cell
Secure Area
TEE Trusted Cell
TrustedCellManager
hash(data)
TIM
hash(metadata)
verify(file)
TIMcache
TSM
encrypt(X)
decrypt(X)
TSMcache
TUM
create(policy)
evaluate(policy)
modify(policy)
TUMqueue
TSPM
Run-time Security
Primitives
dispatch(secure_call)
Metadata
CRYPTO
TC Logs
Policy Engine
(e.g., UCON)
Service Usage
Contract
Device Usage
Policy
TrustedDeviceDrivers
TC driv.
‣ Trusted Security Module (TSM)
- Cryptographic operations (AES-128, SHA-3)
- OpenSSL (openssl-1.0.1j - October, 2014)
‣ Trusted Integrity Module (TIM)
- Integrity verification (e.g., IMA in kernel)
- Merkle Hash-Tree
- Trusted logs
‣ Trusted Usage Module (TUM)
- Policy engine (Device usage policy)
‣ Trusted System Primitive Module (TSPM)
- Run-time security primitives in the that the
TEE Trusted Cell
- Dispatcher to Trusted Modules (Services)
[1] J. González and P. Bonnet. Versatile endpoint storage security with trusted integrity modules. ISSN 1600–6100 ISBN 978-87-7949311-7, IT University of Copenhagen, February 2014
[2] J. González and P. Bonnet. Tee-based trusted storage. ISSN 1600–6100 ISBN 978-87- 7949-310-0, IT-Universitetet i København, February 2014
Microsoft’s NGSCB
Overview
‣ Motivation
- DRM, vendor lock-in, exclude competitors
(e.g., Open Office)
- Bruce Schneier: “…will lead us down a road
where our computers are no longer our
computers, but are instead owned by a
variety of factions and companies all looking
for a piece of our wallet.”
‣ Concept
- Full stack solution
- Traditional offload use cases (available)
‣ The technology has not fully materialized
- Motivated BitLocker full disk encryption
- Measured Boot feature in Windows 8 (TPM)
- Subject to timing attacks (by design)
Analytical Evaluation
Security Analysis
Hack Attacks
(software)
Lab Attacks
(complex hardware)
Fab Attacks
(design, hardware, firmware)
Complexity
Out of Scope
Confidentiality
and integrity of
sensitive assets
Guaranteed
Durability and
availability of
sensitive assets
Shack Attacks
(software + simple hardware)
Trusted Services
Trusted Storage: Trusted Data Generation
Trusted AreaUntrusted AreaUserSpaceKernelSpace
Device Drivers (e.g., MTD)
Implementation (e.g., ext4)
Generic Interface (e.g., VFS)
Process
(untrusted app)
Trusted Storage Solution
TrustZone
Driver
Secure AreaCommodity OS
TSM
TIM
Secure
Container
Crypto
Hash
Secure
Element
Shared
Memory
Secondary Storage
‣ Sensitive data never leaves the trusted area unencrypted
‣ Extends the size limitation of tamper-resistant storage (SE)
‣ Secure Containers are as resistant as the encryption algorithm
‣ Provide integrity and confidentiality, not availability or durability*
*Redundancy can help to increase the level of availability and durability, but cannot guarantee it (untrusted area is *fully* untrusted
Trusted Services
Trusted Storage: Untrusted Data Generation
Trusted AreaUntrusted Area
UserSpaceKernelSpace
Process
(untrusted app)
Reference Monitor
Secure AreaCommodity OS
TUM
Secure
Element
Flash
Trusted
Memory
Enclave
Memory
Operations
2
3
TSM
TIM
I/O Stack
(data pages)
SDS I/O device
TEE Trusted Cell
key management
Hypervisor
TEE Trusted Cell
1
4
sensitive data
generation
TrustZone Support
TrustZone-enabled SoC
Peripherals
Trusted AreaUntrusted Area
Memory Secure World
Memory
Non-Secure
World Memory
Commodity OS
Applications
REE (non-secure world)
Secure Monitor
Secure OS
Secure Tasks
TEE (secure world)
TrustZone
Driver
TEE + OS Support
1
2
TrustZone-enabled SoC
Peripherals
Trusted AreaUntrusted Area
Memory Secure World
Memory
Non-Secure
World Memory
Commodity OS
Applications
REE (non-secure world)
Secure Monitor
Secure OS
Secure Tasks
TEE (secure world)
TrustZone
Driver
TEE + OS Support
1
TEE Framework
Designing the Trusted Area
‣ Requirements for the Trusted Area
- Largely independent TEE, high duty cycle, and ~real-time constrains
- Synergy with the untrusted area: Generating and enforcing usage
policies (TOPPERS SafeG)
- Open source: Experimental research in academia
‣ Design limitations
- TrustZone has been a closed, obscure technology since 2004
- 3 years ago, most hardware manufacturers disabled the TrustZone
security extensions. TTBOOK, only on ARM’s VE and Xilinx’s Zynq*
- Open Virtualization (OV) was the first open-source project leveraging
TrustZone (only one back in 2012).
- OV was incomplete, unstable, and targeted Global Platform’s
traditional TrustZone use cases (offload of low duty cycled secure
tasks)… but it was a place to start!
*Today TrustZone available on: Freescalei.MX53, Samsung S3C6410 SoC, Nvidia Tegra 3 and 4, Qualcomm Snapdragon 400 MSM8630, …
TEE Framework
Setup + Contributions
‣ Commercially available hardware
- Xilinx Zynq-7000 ZC702
- Public secure registers (http://www.xilinx.com/support/documentation/user_guides/ug1019-zynq-trustzone.pdf)
- Uboot, QEMU, Device Tree, compilers, gdb, etc. (https://github.com/xilinx)
‣ TEE
- Open Virtualization
- Trigger IP revision
- New Features:
• Communication Interface
• Updated OpenSSL (HeartBleed)
• Refactoring (git friendly) + Porting to kernel submodule + Publication + Documentation [1]
- Bug Fixing:
• L2 cache
• Memory management: 2 memory leaks (4KB and 32KB) - non-GP use cases
[1] J. González and P. Bonnet. Towards an open framework leveraging a trusted execution environment. In Cyberspace Safety and Security. Springer, 2013.
Contribution
TrustZone-enabled SoC
Peripherals
Trusted AreaUntrusted Area
Memory Secure World
Memory
Non-Secure
World Memory
Commodity OS
Applications
REE (non-secure world)
Secure Monitor
Secure OS
Secure Tasks
TEE (secure world)
TrustZone
Driver
TEE + OS Support
2
Generic TrustZone Driver
Background
‣ State of the art
- Kernel TEE framework implements its own TrustZone driver (LKM)
- Necessary to patch the kernel to enable TEE communication (SMC)
- Mostly focus on Global Platform use cases (low-duty cycle offload)
• With the exception of TOPPERS SafeG and (somehow) Genode
‣ Consequences
- Static assignation of secure devices (peripherals, timers, etc.)
- Required to recompile the kernel when making changes
- Required to maintain a set of patches (TEE-enabling) on top of
mainline kernel
- Kernel submodules are excluded
- TrustZone is an underused technology (TrustZone has been a closed,
obscure technology since 2004)
OP-TEE
Generic TrustZone Driver
Proposal
‣ Support for user space applications (as today)
- Kernel support for SMC call - PL1 (ARMv7) and EL1 (ARMv8)
- Support for user space libraries and APIs (e.g., Global Platform)
- Support different frameworks in one single driver (generic + specific)
- Minimize overhead (innovative applications + trusted services)
‣ Support for kernel submodules
- Allow them to access trusted services:
• LKMs do not cover this use case (unknown interface to kernel)
• A generic interface known to the kernel is necessary - upstream
• A way to describe supported trusted services is necessary (run-time security primitives)
- Good candidates: IMA/EVM, kernel keyring, and Crypto API
• IMA/EVM and kernel keyring already use TPM when available
• Maintainers have shown interest on a generic TrustZone interface
Generic TrustZone Driver
ArchitectureUserSpaceKernelSpace
Applications
TrustZone Kernel Driver
Generic Interface
tz1 tz2 tzn
tz_device
Goblal Platform
Client API
TEE
API
TEE
API...
1 n
Kernel
Subsystems
Proprietary
TEE API
Untrusted Area Secure Area
TEE Framework
Task Dispatcher
Secure
Monitor
TEE
API
2 Secure Tasks
Secure
Kernel(open/close read/write)
Boot-Time
Device Tree
(untrusted area)
Device Tree
(trusted area)
1
2
3
Generic TrustZone Driver
Implementation Challenges
‣ Give peripherals the correct base address
- Kernel maps I/O memory for all devices on initialization
- I/O memory is typically reclaimed on graceful shutdown
- Kernel tries to map I/O memory for secure devices -> TZPC blocks
- Consequence: TEE frameworks require TEE-enabling patch
➡ Proposal: “Secure Device Tree”
- Extend device tree with “arm-world” tags
- Assign base address to physical address for secure devices
- Decouple device initialization and termination routines from specific
system events (boot and halt processes)
- Secure devices are loaded and unloaded on-the-fly
- No TEE-enabling patch is necessary!
Generic TrustZone Driver
Implementation Challenges
‣ Introduce secure read/write
- Kernel must forward I/O requests to secure devices
- The TEE serves I/O requests - TZPC blocks untrusted area
- I/O request forwarding is platform specific - depends on base address
- Consequence: TEE frameworks require TEE-enabling patch (again)
➡ Proposal: “Secure Device Tree”
- Use base address to forward I/O requests to TEE
- Add TEE node to the Device Tree
- Allow TEE to add information TEE node at boot-time
- One single Device Tree with secure entries: nodes and tags.
➡ Reference implementation:
- Xilinx Linux-xlns TRD 14.5 (kernel v.3.8)
• https://github.com/TrustZoneGenericDriver/linux-xlnx (FIXME)
Generic TrustZone Driver
Implementation Challenges
‣ Port Open Virtualization
- Port LKM to kernel submodule
- Adapt to generic interface: decouple responsabilities
- Major refactoring: support user space (ioctl) and kernel submodules
- Identify and fix memory leaks
- Use of “arm-world” to tag secure devices
- Use of secure read/secure write to forward I/O requests to TEE
- Port subset of Global Platform’s Internal API - proof of concept
- Enabled for Xilinx linux-xlnx TRD 14.5
- Submitted to LKLM - triggered collaboration with Linaro (OP-TEE group)
- TrustZone gaining traction in Linux community (e.g., Google, Linaro)
(http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU)
(http://lwn.net/Articles/623380/)
Generic TrustZone Driver
Current Status
‣ First patch-set sent to LKML
‣ Working on new patch-set
- Collaborators: Linaro, STMicroelectronics, Huawei, and others
- Mailing List: (tee-dev@lists.linaro.org)
- Development: (https://github.com/TrustZoneGenericDriver)
- Proposed new submodule: /drivers/sec-hw (TrustZone, TPM, …)
- Ongoing discussions for secure Device Tree, secure read/write, etc.
(http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU)
Generic TrustZone Interface (COMMON)
TrustZone Supported Chips (COMMON)
OP-TEE
(SPECIFIC)
OV
(SPECIFIC)
Others
(SPECIFIC)
Kernel
Submodules
User Space
OP-TEE Client
(SPECIFIC)
OV Client
(SPECIFIC)
TEE Client
(COMMON?)
Target 2Target 1 Target 3 Target n
smc call
• Open/Close (Posix)
• TEE_IOC_CMD
• TEE_IOC_TASK
• TEE_IOC_SHM_ALLOC
• TEE_IOC_SHM_FREE
• TEE_IOC_LOAD_TS
• TEE_IOC_GET_TS_LIST
• …
IOCTL (ongoing discussion)
+ Kernel interface
(sub-modules)
(http://lwn.net/Articles/623380/)
Experimental Results
Experimental Evaluation
Micro Benchmarks
N=10 N=100 N=1000 N=10000
PRIMES - CPU 300.00% 27.29% 22.13% -57.10%
PRIMES - MEM -37.31% -37.48% -37.34% -34.26%
300.00%
!100%%
!80%%
!60%%
!40%%
!20%%
0%%
20%%
40%%
60%%
80%%
100%%
OverheadTrustZone/Kernel%
PRIMES - CPU PRIMES - MEM
‣ REE performs better than TEE, but TEE is not preempted
Experimental Evaluation
Micro Benchmarks
N=0$ N=100$ N=1000$ N=10000$
Prime$+$secure$workload$(10.000)$ 43499.13011$ 44651.17005$ 217753.0104$ 23337565.61$
Prime$+$secure$workload$(100)$ 506.790144$ 1658.83008$ 174760.6705$ 23294573.27$
Prime$,$no$secure$workload$ 383.36$ 1535.399936$ 174637.2403$ 23294449.84$
0.1
1
10
100
1000
10000
100000
1000000
10000000
100000000
Timein µseconds
Prime + secure workload (10.000) Prime + secure workload (100) Prime , no secure workload
‣ TEE has always priority over CPU time over REE
Experimental Evaluation
Micro Benchmarks
1KB 100KB 500KB 1MB
AES CBC -3.13% 5.15% 7.99% -5.22%
AES CRT -3.37% 5.11% 8.13% -5.36%
AES ECB 2.17% 10.51% 13.82% -1.40%
-10%
-5%
0%
5%
10%
15%
20%
OverheadTrustZone/Kernel%
AES CBC AES CRT AES ECB
‣ CPU-bound + memory ops. confirm < 18% overhead in TEE

More Related Content

What's hot

Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuArm
 
Unidirectional Security, Andrew Ginter of Waterfall Security
Unidirectional Security, Andrew Ginter of Waterfall Security Unidirectional Security, Andrew Ginter of Waterfall Security
Unidirectional Security, Andrew Ginter of Waterfall Security Digital Bond
 
Fortinet Icon Library
Fortinet Icon LibraryFortinet Icon Library
Fortinet Icon LibraryFortinet
 
BKK16-200 Designing Security into low cost IO T Systems
BKK16-200 Designing Security into low cost IO T SystemsBKK16-200 Designing Security into low cost IO T Systems
BKK16-200 Designing Security into low cost IO T SystemsLinaro
 
Next Generation Embedded Systems Security for IOT: Powered by Kaspersky
Next Generation Embedded Systems Security for IOT:  Powered by KasperskyNext Generation Embedded Systems Security for IOT:  Powered by Kaspersky
Next Generation Embedded Systems Security for IOT: Powered by KasperskyL. Duke Golden
 
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected World
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected WorldJakub Bartoszek (Samsung Electronics) - Hardware Security in Connected World
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected WorldCodiax
 
USB-Lock-RP Technical Datasheet version 11.9
USB-Lock-RP Technical Datasheet version 11.9USB-Lock-RP Technical Datasheet version 11.9
USB-Lock-RP Technical Datasheet version 11.9Javier Arrospide
 
How Security can be stronger than a Firewall: 13 different ways breaking thro...
How Security can be stronger than a Firewall: 13 different ways breaking thro...How Security can be stronger than a Firewall: 13 different ways breaking thro...
How Security can be stronger than a Firewall: 13 different ways breaking thro...Community Protection Forum
 
Unidirectional Network Architectures
Unidirectional Network ArchitecturesUnidirectional Network Architectures
Unidirectional Network ArchitecturesEnergySec
 
PRESENTATION ON PLC AND SCADA
PRESENTATION ON PLC AND SCADAPRESENTATION ON PLC AND SCADA
PRESENTATION ON PLC AND SCADAAnandKumarJha33
 
Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practicesST_World
 
Why TPM in Automotive?
Why TPM in Automotive?Why TPM in Automotive?
Why TPM in Automotive?Alan Tatourian
 
The Future of ICS Security Products
The Future of ICS Security ProductsThe Future of ICS Security Products
The Future of ICS Security ProductsDigital Bond
 
Nist 800 82 ICS Security Auditing Framework
Nist 800 82 ICS Security Auditing FrameworkNist 800 82 ICS Security Auditing Framework
Nist 800 82 ICS Security Auditing FrameworkMarcoAfzali
 
The importance of strong entropy for iot
The importance of strong entropy for iotThe importance of strong entropy for iot
The importance of strong entropy for iotArm
 
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...Digital Bond
 
BSidesAugusta ICS SCADA Defense
BSidesAugusta ICS SCADA DefenseBSidesAugusta ICS SCADA Defense
BSidesAugusta ICS SCADA DefenseChris Sistrunk
 
Waterfall Security Solutions Overview Q1 2012
Waterfall Security Solutions   Overview Q1 2012Waterfall Security Solutions   Overview Q1 2012
Waterfall Security Solutions Overview Q1 2012henkpieper
 
The journey to ICS - Extended
The journey to ICS - Extended The journey to ICS - Extended
The journey to ICS - Extended Larry Vandenaweele
 

What's hot (19)

Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiu
 
Unidirectional Security, Andrew Ginter of Waterfall Security
Unidirectional Security, Andrew Ginter of Waterfall Security Unidirectional Security, Andrew Ginter of Waterfall Security
Unidirectional Security, Andrew Ginter of Waterfall Security
 
Fortinet Icon Library
Fortinet Icon LibraryFortinet Icon Library
Fortinet Icon Library
 
BKK16-200 Designing Security into low cost IO T Systems
BKK16-200 Designing Security into low cost IO T SystemsBKK16-200 Designing Security into low cost IO T Systems
BKK16-200 Designing Security into low cost IO T Systems
 
Next Generation Embedded Systems Security for IOT: Powered by Kaspersky
Next Generation Embedded Systems Security for IOT:  Powered by KasperskyNext Generation Embedded Systems Security for IOT:  Powered by Kaspersky
Next Generation Embedded Systems Security for IOT: Powered by Kaspersky
 
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected World
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected WorldJakub Bartoszek (Samsung Electronics) - Hardware Security in Connected World
Jakub Bartoszek (Samsung Electronics) - Hardware Security in Connected World
 
USB-Lock-RP Technical Datasheet version 11.9
USB-Lock-RP Technical Datasheet version 11.9USB-Lock-RP Technical Datasheet version 11.9
USB-Lock-RP Technical Datasheet version 11.9
 
How Security can be stronger than a Firewall: 13 different ways breaking thro...
How Security can be stronger than a Firewall: 13 different ways breaking thro...How Security can be stronger than a Firewall: 13 different ways breaking thro...
How Security can be stronger than a Firewall: 13 different ways breaking thro...
 
Unidirectional Network Architectures
Unidirectional Network ArchitecturesUnidirectional Network Architectures
Unidirectional Network Architectures
 
PRESENTATION ON PLC AND SCADA
PRESENTATION ON PLC AND SCADAPRESENTATION ON PLC AND SCADA
PRESENTATION ON PLC AND SCADA
 
Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practices
 
Why TPM in Automotive?
Why TPM in Automotive?Why TPM in Automotive?
Why TPM in Automotive?
 
The Future of ICS Security Products
The Future of ICS Security ProductsThe Future of ICS Security Products
The Future of ICS Security Products
 
Nist 800 82 ICS Security Auditing Framework
Nist 800 82 ICS Security Auditing FrameworkNist 800 82 ICS Security Auditing Framework
Nist 800 82 ICS Security Auditing Framework
 
The importance of strong entropy for iot
The importance of strong entropy for iotThe importance of strong entropy for iot
The importance of strong entropy for iot
 
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...
ICS Security from the Plant Floor Up - A Controls Engineers Approach to Secur...
 
BSidesAugusta ICS SCADA Defense
BSidesAugusta ICS SCADA DefenseBSidesAugusta ICS SCADA Defense
BSidesAugusta ICS SCADA Defense
 
Waterfall Security Solutions Overview Q1 2012
Waterfall Security Solutions   Overview Q1 2012Waterfall Security Solutions   Overview Q1 2012
Waterfall Security Solutions Overview Q1 2012
 
The journey to ICS - Extended
The journey to ICS - Extended The journey to ICS - Extended
The journey to ICS - Extended
 

Viewers also liked

LCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEELCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEELinaro
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
Securing the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversSecuring the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversWithTheBest
 
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLD
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLDSECURING ONLINE SERVICES IN A MOBILE FIRST WORLD
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLDForgeRock
 
LAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrLAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrShovan Sargunam
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEELinaro
 
What is a Trusted Service Manager?
What is a Trusted Service Manager?What is a Trusted Service Manager?
What is a Trusted Service Manager?Rambus Inc
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLinaro
 

Viewers also liked (8)

LCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEELCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEE
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
Securing the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversSecuring the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank Chavers
 
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLD
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLDSECURING ONLINE SERVICES IN A MOBILE FIRST WORLD
SECURING ONLINE SERVICES IN A MOBILE FIRST WORLD
 
LAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrLAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT Zephyr
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
 
What is a Trusted Service Manager?
What is a Trusted Service Manager?What is a Trusted Service Manager?
What is a Trusted Service Manager?
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 

Similar to Operating System Support for Run-Time Security with a Trusted Execution Environment (Ph.D Thesis)

Acceleration_and_Security_draft_v2
Acceleration_and_Security_draft_v2Acceleration_and_Security_draft_v2
Acceleration_and_Security_draft_v2Srinivasa Addepalli
 
501 ch 5 securing hosts and data
501 ch 5 securing hosts and data501 ch 5 securing hosts and data
501 ch 5 securing hosts and datagocybersec
 
CISSP Certification- Security Engineering-part1
CISSP Certification- Security Engineering-part1CISSP Certification- Security Engineering-part1
CISSP Certification- Security Engineering-part1Hamed Moghaddam
 
Security Patterns - An Introduction
Security Patterns - An IntroductionSecurity Patterns - An Introduction
Security Patterns - An IntroductionMarcel Winandy
 
ATMOSPHERE at IBERGRID 2018
ATMOSPHERE at IBERGRID 2018ATMOSPHERE at IBERGRID 2018
ATMOSPHERE at IBERGRID 2018ATMOSPHERE .
 
USM appliance datasheet 2024 latest 070324
USM appliance datasheet 2024 latest 070324USM appliance datasheet 2024 latest 070324
USM appliance datasheet 2024 latest 070324MuhammadAmirulSyazwa2
 
Sfa community of practice a natural way of building
Sfa community of practice  a natural way of buildingSfa community of practice  a natural way of building
Sfa community of practice a natural way of buildingChuck Speicher
 
3. security architecture and models
3. security architecture and models3. security architecture and models
3. security architecture and models7wounders
 
McAfee SIEM solution
McAfee SIEM solution McAfee SIEM solution
McAfee SIEM solution hashnees
 
Challenges with Cloud Security by Ken Y Chan
Challenges with Cloud Security by Ken Y ChanChallenges with Cloud Security by Ken Y Chan
Challenges with Cloud Security by Ken Y ChanKen Chan
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01wardell henley
 
UNIT-I-RTOS and Concepts
UNIT-I-RTOS and ConceptsUNIT-I-RTOS and Concepts
UNIT-I-RTOS and ConceptsDr.YNM
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT GatewayLF Events
 
Kernel security of Systems
Kernel security of SystemsKernel security of Systems
Kernel security of SystemsJamal Jamali
 
[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical DeviceICS
 
CISSP Week 22
CISSP Week 22CISSP Week 22
CISSP Week 22jemtallon
 

Similar to Operating System Support for Run-Time Security with a Trusted Execution Environment (Ph.D Thesis) (20)

Coud discovery chap 5
Coud discovery chap 5Coud discovery chap 5
Coud discovery chap 5
 
Acceleration_and_Security_draft_v2
Acceleration_and_Security_draft_v2Acceleration_and_Security_draft_v2
Acceleration_and_Security_draft_v2
 
501 ch 5 securing hosts and data
501 ch 5 securing hosts and data501 ch 5 securing hosts and data
501 ch 5 securing hosts and data
 
CISSP Certification- Security Engineering-part1
CISSP Certification- Security Engineering-part1CISSP Certification- Security Engineering-part1
CISSP Certification- Security Engineering-part1
 
Security Patterns - An Introduction
Security Patterns - An IntroductionSecurity Patterns - An Introduction
Security Patterns - An Introduction
 
PLN9 Surveillance
PLN9 SurveillancePLN9 Surveillance
PLN9 Surveillance
 
ATMOSPHERE at IBERGRID 2018
ATMOSPHERE at IBERGRID 2018ATMOSPHERE at IBERGRID 2018
ATMOSPHERE at IBERGRID 2018
 
USM appliance datasheet 2024 latest 070324
USM appliance datasheet 2024 latest 070324USM appliance datasheet 2024 latest 070324
USM appliance datasheet 2024 latest 070324
 
Sfa community of practice a natural way of building
Sfa community of practice  a natural way of buildingSfa community of practice  a natural way of building
Sfa community of practice a natural way of building
 
3. security architecture and models
3. security architecture and models3. security architecture and models
3. security architecture and models
 
McAfee SIEM solution
McAfee SIEM solution McAfee SIEM solution
McAfee SIEM solution
 
Challenges with Cloud Security by Ken Y Chan
Challenges with Cloud Security by Ken Y ChanChallenges with Cloud Security by Ken Y Chan
Challenges with Cloud Security by Ken Y Chan
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01
 
UNIT-I-RTOS and Concepts
UNIT-I-RTOS and ConceptsUNIT-I-RTOS and Concepts
UNIT-I-RTOS and Concepts
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
 
Kernel security of Systems
Kernel security of SystemsKernel security of Systems
Kernel security of Systems
 
OpenStack Murano
OpenStack MuranoOpenStack Murano
OpenStack Murano
 
[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
CISSP Week 22
CISSP Week 22CISSP Week 22
CISSP Week 22
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Operating System Support for Run-Time Security with a Trusted Execution Environment (Ph.D Thesis)

  • 1. Operating System Support for Run-Time Security with a Trusted Execution Environment Ph.D Defense Javier González March 20, 2015
  • 2. Innovation Digital Society Information FlowUsers Personal Devices Service Providers mails passwords ssh-keys media content certificatespictures apps Sensitive!
  • 3.
  • 4.
  • 5. Digital Society Information FlowUsers Personal Devices Service Providers mails passwords ssh-keys media content certificatespictures apps Distrust Innovation
  • 6. ‣ We have no control over how sensitive data is handled in our own personal devices or in the cloud - Bad policies, vulnerabilities, weak defaults, data leakage ‣ It is very difficult to manage the complexity of the software enabling innovative services (compilation- and run-time) - Complexity -> Unspecified behaviour -> Indeterminism ‣ “World-changing innovation is entirely in the code” - Marc Andreessen Digital Society Software is guilty
  • 7. Digital Society Information FlowUsers Personal Devices Service Providers mails passwords ssh-keys media content certificatespictures apps Trust Innovation Usage Control
  • 8. How do we implement support for usage control in commodity Operating Systems in order to protect from today’s cyberattack? Usage Control is the basis for Run-Time Security
  • 9. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype Evaluation Conclusion + Future Work Agenda 1 2 3 4 5 - Hardware - Trusted Cell - Trusted Modules - Reference Monitor
  • 10. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype - Hardware - Trusted Cell - Trusted Services - Reference Monitor - Trusted Storage Evaluation Conclusion + Future Work Agenda 1 2 3 4 5 - Reference Monitor - Trusted Storage Prototype 3 - Hardware - Trusted Cell - Trusted Modules - Reference Monitor
  • 11. Usage Control What is it? Subject Authorizations ObjectRights Obligations Conditions Usage decision ‣ Enforcement: A priori control of usage rights (access control) ‣ Audit: A posteriori control of how rights were use ‣ Usage control is about who accesses an object and how that object is being used Jaehong Park and Ravi Sandhu. The UCONabc usage control model. ACM Trans. Inf. Syst. Secur., 7(1):128–174, February 2004.
  • 12. Usage Control Attempts to implement it ‣ Reference monitor (policy engine) resides in the same environment to which the policies apply ‣ The enforcement of the usage decision occurs also in the same environment ‣ Examples: Proxos, Taintdroid, Saint Framework,…
  • 13. Usage Control ‣ Considering a realistic attack model: - The area where the usage policies apply must be considered untrusted - … that means that the whole commodity OS stack is untrusted! ‣ As a consequence: - The policy engine (reference monitor) must be isolated from the OS - The enforcement of usage decisions must also be isolated How it should be Untrusted App Reference Monitor Peripherals Memory Untrusted Area Trusted Area
  • 14. Run-Time Security ‣ Identify Sensitive Assets - Any software or hardware component that manages sensitive information: sensitive data, software resources, and peripherals. ‣ Define a TEE (security perimeter) to protect sensitive assets ‣ Enable Run-Time Security Primitives that allow innovative (untrusted) services to make use of these sensitive assets. - Innovative services and the commodity OSs are untrusted - Reference monitor mediates access and usage of sensitive assets ‣ Provide commodity OSs with Trusted Services Overview
  • 15. Untrusted Area Trusted Area TEE SoftwareHardware Device Hardware Separation Secure Hardware Operating System Applications REE Trusted Components Peripherals System Bus Memory Memory Reference Monitor Run-Time Security Overview Sensitive Assets Run-Time Security Primitives Trusted Services Usage Control
  • 16.
  • 17. Narrowing down ‣ Provide support for usage control in commodity OSs - Policy engines might vary; we are interested in the framework that can feed any policy engine and enable the generation of usage policies ‣ Provide support for run-time security in commodity OSs - Usage control models could generate a perfect set of policies, but that is not enough if they are not enforced - Run-Time security is about enforcing usage control! ‣ Assume a realistic attack model responding to today’s attacks - Both the operating system and innovative applications are untrusted - Focus on guaranteeing confidentiality and integrity of sensitive assets ‣ In terms of the process: - We follow an experimental approach - systems research - We aim at high adoption and value open-source What are you trying to solve?
  • 18. Contributions ‣ Exhaustive analysis of the state of the art in run-time security ‣ Hypothesis: Split-Enforcement - State machine capturing usage of sensitive assets in UAs - Model for a reference monitor to generate usage decisions - Two-phase mechanism that allows to enforce usage policies ‣ TEE Support for Linux-based systems - Make Open Virtualization to an usable level - Generic TrustZone Driver for Linux kernel (being upstreamed) ‣ Trusted Cell - Flexible framework to provide trusted services ‣ Trusted Services - Reference monitor (enforced usage control) using split-enforcement - Trusted Storage solution - Certainty Boot (user-centric boot protection mechanism)
  • 19. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype Evaluation Conclusion + Future Work Agenda 1 2 3 4 5 - Hardware - Trusted Cell - Trusted Modules - Reference Monitor
  • 20. Requirements ‣ The untrusted area is untrusted (yes, the whole software stack!) ‣ The reference monitor should generate usage policies based on the use of sensitive assets by untrusted area (UA) ‣ These usage policies must be enforced ‣ Run-Time security policies must be available to the UA ‣ The UA must not be constrained in terms of its software stack ‣ The Trusted Area (TA) should minimize complexity (low TCB) ‣ Confidentiality and integrity of sensitive assets is paramount ‣ We must be able to experiment with the solution!
  • 21. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space
  • 22. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space ‣ State of the Art - Use of a Trusted Area to generate usage decision (in the best case) - OS is trusted - leap of faith
  • 23. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space
  • 24. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space ‣ Secure Drivers - Large Trusted Computing Base (TCB) - Replicated complex and community tested functionality - vulnerabilities! - Imposed software stack - constrained innovation - Reference: seL4, MirageOS - Certification != Formal Verification ‣ State of the Art - Use of a Trusted Area to generate usage decision (in the best case) - OS is trusted - leap of faith
  • 25. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space
  • 26. Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS Trusted Services Design Space ‣ Split-Enforcement - Small TCB - Locking/Unlocking sensitive assets ‣ Secure Drivers - Large Trusted Computing Base (TCB) - Replicated complex and community tested functionality - vulnerabilities! - Imposed software stack - constrained innovation - Reference: seL4, MirageOS - Certification != Formal Verification ‣ State of the Art - Use of a Trusted Area to generate usage decision (in the best case) - OS is trusted - leap of faith Today’s Attack Model
  • 27. Trusted Services Design Space Secure Drivers Split-Enforcement
  • 28. Split-Enforcement Formal Model Untrusted State Outsource State use non-sensitive asset use sensitive asset use sensitive asset || (free sensitive asset && count(sensitive_assets) > 0) outsource sensitive task result&& count(sensitive)assets)> 0 Sensitive State (free sensitive asset && count(sensitive_assets) == 0) outsource sensitive task result&& count(sensitive)assets)== 0 Reference Monitor Untrusted App Policy Decision Point Secure Operation 1. sensitive action 2. pre-action eval. 3., 7. decision 4.b, 8.b abort 4.a execute action5. result 6. post-action eval 4.c continue 8.a result / continue (state) (state) (state) ‣ Represent usage of sensitive assets - State machine abstraction - States describe untrusted applications, transitions depend of sensitive asset use - Controlled in Trusted Area ‣ Operation - UAs begin and finish in untrusted state - Transitions strictly governed by which sensitive asset the UA is using - State is used by the reference monitor (RM) as application metadata to generate a usage decision - The PDP keeps a historical record of sensitive assets in use for each UA in sensitive state (i.e., mutability)
  • 29. Split-Enforcement Challenge We can generate a usage decision, and represent usage of sensitive assets by the Untrusted Area… … but, how do we enforce the usage decision?
  • 30. Locking Mechanisms Overview Peripheral Locking ‣ Mediate usage of sensitive peripherals in the system bus (e.g., Ethernet, I/O devices) Memory LockingData Locking ‣ Mediate usage of sensitive data at rest ‣ Mediate usage of sensitive data in motion ‣ They enforce usage policies generated by the reference monitor ‣ They allow to maintain a low TCB in the Trusted Area ‣ We identify three different types of locking mechanisms:
  • 31. Locking Mechanisms Peripheral Locking Source: ARM Security Technology. Building a secure system using trustzone technology. Technical report, ARM, 2009. ‣ Peripheral setup - Assign peripherals to TA & UA - Protected by the hardware - Configure at run-time - Gatekeeper ‣ Unlocking - Mediation: reference monitor - Only from Trusted Area ‣ Locking - Sensitive per. locked a priori - Re-lock: Capture interrupts ‣ Technology support - Protection in system bus - TrustZone is good alternative, but there are others!
  • 32. Locking Mechanisms Data Locking ‣ Decouple encryption and decryption operations - Locking: Encryption - Unlocking: Decryption • Mediation: Reference monitor Trusted AreaUntrusted Area Hardware UserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Reference Monitor Secure Components Secondary Storage (i.e., NVRAM) Memory Other peripherals (e.g., Ethernet) CPU X (-X) Usage decision enforced in secure area - use of secure drivers Usage decision enforced in untrusted area Usage Driver Usage decision enforced in secure area - split enforcement X 1 2 secure ext4 secure VFS secure MTD driver U U U X Secure AreaCommodity OS
  • 33. Locking Mechanisms Memory Locking ‣ Mediate memory accesses in UA through the reference monitor - All memory accesses are captured (trap-and-emulate) - Track memory operations to enforce usage policies - lock/unlock • We provide the framework; a model to track memory is necessary (e.g., CFI, CPI) - Example: • If sensitive data is given access to the untrusted area (e.g., contact list) a given peripheral cannot be accessed (e.g., Ethernet interface) Sensitive State Sensitive Assets accessible to UA Enforce Memory policies Enforce other usage policies Track memory usage Untrusted State Sensitive Assets NOT accessible to UA “Zeroize” UA memory
  • 34. Split-Enforcement What is new? ‣ Sensitive assets are directly accessible by innovative applications without imposing software stack ‣ Usage control policies can be enforced while (i) maintaining a minimal TCB, and (ii) not replicating time-tested code ‣ Confidentiality and integrity of sensitive assets is guaranteed
  • 35. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype - Hardware - Trusted Cell - Trusted Modules - Reference Monitor Evaluation Conclusion + Future Work Agenda 1 2 3 4 5
  • 36. Split-Enforcement Hardware Support Scope Tamper-resistance +- + - Smart Card TPM TrustZone Air-gap Intel SGX Honey-pot Security Utopy Research Next Gen Only Software Virtualization IBM CryptoCards
  • 37. Split-Enforcement Hardware Support ‣ Secure Peripherals - TrustZone supports on-the-fly assignment of peripherals to the trusted and untrusted areas ‣ Memory Partition - TrustZone supports to allocate isolated memory to the trusted and untrusted areas ‣ TEE - TrustZone provides an extra privilege mode to support a trusted area (user space - kernel space - secure space) ‣ Trusted - Untrusted Integration - Dynamic security perimeter at run-time - Cost: no tamper-resistanceMobile Devices ARMv8 Severs (HP Redstone) NextGen I/O Devices (Stealth Start-ups) Source: http://www.arm.com/products/processors/technologies/trustzone/index.php
  • 38. TEE Framework Designing the Trusted Cell ‣ Requirements for the Trusted Area - Largely independent TEE, high duty cycle, and ~real-time constrains - Synergy with the untrusted area: Generating and enforcing usage policies - Open source: Experimental research in academia ‣ Design limitations - TrustZone has been a closed, obscure technology since 2004 - 3 years ago, most hardware manufacturers disabled the TrustZone security extensions. TTBOOK, only on ARM’s VE and Xilinx’s Zynq* - Open Virtualization (OV) was the first open-source project leveraging TrustZone (only one back in 2012). - OV was incomplete, unstable, and targeted Global Platform’s traditional TrustZone use cases (offload of low duty cycled secure tasks)… but it was a place to start! *Today TrustZone available on: Freescalei.MX53, Samsung S3C6410 SoC, Nvidia Tegra 3 and 4, Qualcomm Snapdragon 400 MSM8630, …
  • 39. TEE Framework Setup + Contributions ‣ Commercially available hardwar - Xilinx Zynq-7000 ZC702 - Public secure registers (http://www.xilinx.com/support/documentation/user_guides/ug1019-zynq-trustzone.pdf) - Uboot, QEMU, Device Tree, compilers, gdb, etc. (https://github.com/xilinx) ‣ TEE - Open Virtualization - New Features: • Communication Interface • Updated OpenSSL (HeartBleed) • Refactoring (git friendly) + Porting to kernel submodule + Publication + Documentation [1] - Bug Fixing: • L2 cache • Memory management: 2 memory leaks (4KB and 32KB) - non-GP use cases - Generic TrustZone driver for Linux kernel (LKLM) - Trusted Cell - Trusted Modules [1] J. González and P. Bonnet. Towards an open framework leveraging a trusted execution environment. In Cyberspace Safety and Security. Springer, 2013. Contribution
  • 40. Split-Enforcement Prototype ZC702 Trusted Cell TrustZone Driver+ Linux-xlnx OV: http://www.openvirtualization.org Linux-xlnx: https://github.com/TrustZoneGenericDriver/linux-xlnx Ubuntu for Zynq: http://javigon.com/2014/09/02/running-ubuntu-on-zynq-7000/ HWSecure Space Kernel Space User Space
  • 41. UserSpaceKernelSpace Applications REE Trusted Cell LSMHooks TrustZone Kernel Driver tz_generic tz1 tz2 tzn tz_device REE Trusted Cell GP Client API TEE API TEE API... 1 n LSM Trusted Cell Kernel Subsystems Proprietary TEE API Untrusted Area Secure Area TEE Trusted Cell TrustedCellManager (Secure) syscalls TEE API 2 Trusted Cell Manager sysfs hash(data) TIM hash(metadata) verify(file) TIMcache TSM encrypt(X) decrypt(X) TSMcache TUM create(policy) evaluate(policy) modify(policy) TUMqueue Untrusted Device Drivers TSPM Run-time Security Primitives dispatch(secure_call) Metadata CRYPTO TC Logs Policy Engine (e.g., UCON) Service Usage Contract Device Usage Policy TrustedDeviceDrivers TC driv. Tamper Resistant Unit (secure Element) Crypto Keys Memory Peripherals connected to System Bus (e.g., secondary storage) TZPC Libraries (e.g., libc) Trusted Cell Overall Architecture
  • 42. Trusted Cell Reference Monitor ‣ Used Trusted Modules - TSPM: Expose “Reference Monitor” services to Untrusted Area - TSM and TIM: Cryptographic operations and trusted logs - TUM: Usage policy engine • Peripheral Locking • Memory tracing (reference implementation) ‣ Functionality 1. REE LSM feeds TUM with untrusted application’s system calls 2. TUM generates a usage decision based on policies 3. Use of sensitive assets are used -> UA sensitive state (mutability) 4. Sensitive asset and memory usage are mediated (lock/unlock) • Peripheral Locking • Memory Locking 5. Sensitive assets are unlocked 6. Untrusted application returns to untrusted state Untrusted State Outsource State use non-sensitive asset use sensitive asset use sensitive asset || (free sensitive asset && count(sensitive_assets) > 0) outsource sensitive task result&& count(sensitive)assets)> 0 Sensitive State (free sensitive asset && count(sensitive_assets) == 0) outsource sensitive task result&& count(sensitive)assets)== 0
  • 43. Trusted Cell Prototype ‣ Modules: TIM, TSM, and TSPM fully implemented - Encryption, hashing, and verification - Dispatcher to trusted services using REE Trusted Cell - Working peripheral locking and data locking ‣ Shortcomings - Hardware-Assisted Encryption • No NVRAM and no PCI-e in Zynq (prototype done with SD Card) • SSDs typically embed a proprietary FTL (but do have cryptoprocessors) - Future work! - Memory Locking • TrustZone does not support trap-and-emulate in MMU (2 MMUs - secure/non-secure world) • Microblaze (FPGA) does not support this either • No platforms with Virtualization Extensions and TrustZone enabled (doc, community, …) ➡ Provide proof-of-concept implementation! • We explored the design space to its end - Zynq cannot provide more • More engineering would not change decisions, or conclusions
  • 44. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype Evaluation Conclusion + Future Work Agenda 1 2 3 4 5 - Hardware - Trusted Cell - Trusted Modules - Reference Monitor
  • 45. Analytical Evaluation Requirement Compliance ‣ Untrusted Area is untrusted (commodity OS + applications) - Split-Enforcement *does not* depend on the untrusted area! ‣ Split-Enforcement (State Machine and Reference Monitor) - Allows to generate and enforce usage policies with an untrusted OS (TC) ‣ Low TCB - TrustZone driver + Trusted Cell ~7K LOC (<10K LOC is in the range for formally verification) - OV (~30K LOC), OpenSSL (~400K LOC) ‣ Security + Innovation - The untrusted area is not constrained (scope, framework, nor resources) - No (complex) code replication - Trusted Cell exposes trusted services to untrusted applications - Confidentiality and integrity of sensitive assets is guaranteed
  • 46. Experimental Evaluation Application Benchmarks 0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 0 ins. 100 ins. 1000 ins. 5000 ins. 10000 ins OverheadTrustZone/Kernel% make dd (200M) tar bzip2 untar ‣ Kernel compilation with full monitoring (∀syscalls) < 18% overhead
  • 47. Experimental Evaluation Micro Benchmarks 1KB 100KB 500KB 1MB ALLOC(kmalloc) 30.40% -83.81% -95.58% -97.77% ALLOC(vmalloc) 27.15% 8.74% -19.58% -48.35% MEMCPY 730.91% 129.46% 114.85% 113.90% CALL 20.80% 19.87% 20.52% 20.35% 730.91% !150%& !120%& !90%& !60%& !30%& 0%& 30%& 60%& 90%& 120%& 150%& OverheadTrustZone/Kernel% ALLOC(kmalloc) ALLOC(vmalloc) MEMCPY CALL ‣ Memory allocator in TEE has a huge impact (OV: memory pool) ‣ Overhead of calls to TEE in < 10µs range (5.3µs in avg.)
  • 48. Conclusion Split-Enforcement on TrustZone ‣ Data locking - I/O latencies today measured in 100s of µs. in most advanced datacenters today ‣ Memory locking - Memory operations are measured in ns.; µs. represent a big overhead - trade-off - Expect better results with full virtualization ‣ Peripheral locking - Access to APB bus measured in ns. - But, …communication with peripherals in ms. or sec. (specially is humans involved) - Variable latencies Split-Enforcement ‣ In ARMv8 we expect less overhead by implementing time-critical locking (e.g., memory locking) directly in the secure monitor (EL3)
  • 49. Experimental Evaluation Split-Enforcement on TrustZone ‣ The cost of a secure round trip is in the range of the few microseconds (5.3µs in avg. at 666MHz.) ‣ Allows to generate and enforce usage policies with an untrusted OS ‣ The overhead of 10000s context switches, executing 1000s of instructions in secure space < 18% ‣ The Trusted Execution Environment provided by Open Virtualization is not well suited for long-running tasks in secure spaces - Secure tasks run to completion without being preempted - Pre-allocated memory pool
  • 50. Run-Time Security - Usage Control - State of the Art - Problem - Contributions Split- Enforcement - Requirements - Design Space - State Machine - Usage Policy Enforcement Prototype Evaluation Conclusion + Future Work Agenda 1 2 3 4 5 - Hardware - Trusted Cell - Trusted Modules - Reference Monitor
  • 51. Conclusion ‣ Split-Enforcement - Sensitive assets are directly managed by the untrusted area (low TCB) - Locking/Unlocking mechanisms enforce usage policies - Untrusted Area can support innovative, complex services ‣ Operating System Support - TEE support for Linux: Open Virtualization + TrustZone driver - Trusted Cell: Modular framework to provide different trusted services - Prototype: • Experimental evaluation in real hardware • TrustZone Support + Trusted Cell + Reference Monitor + Trusted Storage + Certainty Boot ➡ Run-Time Security How do we implement support for usage control in commodity Operating Systems in order to protect from today’s cyberattacks?
  • 52. Generic TrustZone Driver Current Status ‣ First patch-set sent to LKML ‣ Leading new patch-set - Collaborators: Linaro, STMicroelectronics, Huawei, and others - Mailing List: (tee-dev@lists.linaro.org) - Development: (https://github.com/TrustZoneGenericDriver) - Proposed new submodule: /drivers/sec-hw (TrustZone, TPM, …) (http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU) Generic TrustZone Interface (COMMON) TrustZone Supported Chips (COMMON) OP-TEE (SPECIFIC) OV (SPECIFIC) Others (SPECIFIC) Kernel Submodules User Space OP-TEE Client (SPECIFIC) OV Client (SPECIFIC) TEE Client (COMMON?) Target 2Target 1 Target 3 Target n smc call • Open/Close (Posix) • TEE_IOC_CMD • TEE_IOC_TASK • TEE_IOC_SHM_ALLOC • TEE_IOC_SHM_FREE • TEE_IOC_LOAD_TS • TEE_IOC_GET_TS_LIST • … IOCTL (ongoing discussion) + Kernel interface (sub-modules) (http://lwn.net/Articles/623380/)
  • 53. Future Work ‣ Current Trusted Services - Trusted Storage • I/O Trusted Cell • Trusted Cell Communication • Trusted Area DMA - Reference Monitor • Port to ARMv8: TrustZone + Virtualization Extensions • Use a model to trace memory operations (e.g., CFI, CPI) ‣ New Trusted Services - Trusted Service Installer - Trusted Service Store - Trusted Area Intrusion Detection (using TIM) - Trusted Cell Verification (using TIM and Certainty Boot) - Split-Enforcement in other Secure Hardware (e.g., Intel SGX) Mobile Devices ARMv8 Severs (HP Redstone) NextGen I/O Devices (Stealth Start-ups)
  • 54. Ph.D Defense Javier González (javier@javigon.com) March 20, 2015 Operating System Support for Run-Time Security with a Trusted Execution Environment
  • 55. Support Slides Ph.D Defense Javier González (javier@javigon.com) March 20, 2015
  • 56. UserSpaceKernelSpace Applications REE Trusted Cell LSMHooks TrustZone Kernel Driver tz_generic tz1 tz2 tzn tz_device REE Trusted Cell GP Client API TEE API TEE API... 1 n LSM Trusted Cell Kernel Subsystems Proprietary TEE API Untrusted Area Secure Area TEE Trusted Cell TrustedCellManager (Secure) syscalls TEE API 2 Trusted Cell Manager sysfs hash(data) TIM hash(metadata) verify(file) TIMcache TSM encrypt(X) decrypt(X) TSMcache TUM create(policy) evaluate(policy) modify(policy) TUMqueue Untrusted Device Drivers TSPM Run-time Security Primitives dispatch(secure_call) Metadata CRYPTO TC Logs Policy Engine (e.g., UCON) Service Usage Contract Device Usage Policy TrustedDeviceDrivers TC driv. Tamper Resistant Unit (secure Element) Crypto Keys Memory Peripherals connected to System Bus (e.g., secondary storage) TZPC Libraries (e.g., libc) Trusted Cell Overall Architecture 1 REE Trusted Cell
  • 57. Trusted Cell REE Trusted Cell ‣ Kernel submodule support - Need for well-known interface - kernel is static at run-time - Linux Security Module (LSM) is a perfect match • LSM mediates access to kernel space objects in the kernel • Set of transversal hooks to all kernel submodules: I/O stack, network stack, etc. • Already implements the concept of policies (though for access control only) • Inconvenient: Only one LSM at a time* - LSM Trusted Cell • New LSM module focused on usage control (AppArmor, SELinux, etc.: for access control) • Monitor (classes of) system calls - evaluation with worst case - Introduction of security-critical system primitives • Validate integrity of kernel image (certainty boot) • Validate boot sequence at run-time (certainty boot) • Others: Crypto API, capabilitiy subsystem, and other LSM frameworks *Casey Schauffer has proposed a new LSM stacking mechanism that is having backup from the kernel community. (LKLM)
  • 58. Trusted Cell REE Trusted Cell ‣ User space application support - Less constrained than kernel - user space is dynamic at run-time - Different APIs can be implemented on top of tz_device • We implement a subset of Global Platform’s Client API - proof of concept • Support TEE-specific (maybe proprietary) libraries - TEE-frameworks can define their ioctls • Support TEE-specific (maybe proprietary) operations (e.g., OP-TEE tee-supplicant) - Possibility to load TEE-specific LKMs directly using kernel interface • Support TEE-specific (maybe proprietary) operations ‣ REE Trusted Cell management through sysfs
  • 59. UserSpaceKernelSpace Applications REE Trusted Cell LSMHooks TrustZone Kernel Driver tz_generic tz1 tz2 tzn tz_device REE Trusted Cell GP Client API TEE API TEE API... 1 n LSM Trusted Cell Kernel Subsystems TEE LKM TEE API Proprietary TEE API Untrusted Area Secure Area TEE Trusted Cell TrustedCellManager Trusted Service0 Trusted Service1 ... Trusted Servicen Secure Task Secure Task Secure Task Secure Task Secure Task Secure Task 0 1 2 3 4 n ... Secure syscalls/ TEE API 2 Trusted Cell Manager sysfs Trusted Cell REE Trusted Cell
  • 60. UserSpaceKernelSpace Applications REE Trusted Cell LSMHooks TrustZone Kernel Driver tz_generic tz1 tz2 tzn tz_device REE Trusted Cell GP Client API TEE API TEE API... 1 n LSM Trusted Cell Kernel Subsystems Proprietary TEE API Untrusted Area Secure Area TEE Trusted Cell TrustedCellManager (Secure) syscalls TEE API 2 Trusted Cell Manager sysfs hash(data) TIM hash(metadata) verify(file) TIMcache TSM encrypt(X) decrypt(X) TSMcache TUM create(policy) evaluate(policy) modify(policy) TUMqueue Untrusted Device Drivers TSPM Run-time Security Primitives dispatch(secure_call) Metadata CRYPTO TC Logs Policy Engine (e.g., UCON) Service Usage Contract Device Usage Policy TrustedDeviceDrivers TC driv. Tamper Resistant Unit (secure Element) Crypto Keys Memory Peripherals connected to System Bus (e.g., secondary storage) TZPC Libraries (e.g., libc) Trusted Cell Overall Architecture 2 TEE Trusted Cell
  • 61. Certainty Boot Architecture Manufacturer Applications Secure Tasks TEE OS OSBL TEEBL Trusted public keys Hash of boot log Two-phase bootapplet Second Stage Bootloader (SSBL) First Stage Bootloader (FSBL) Untrusted Area Secure Area Secure Element Secure Element OS Signature Root of Trust - Components Verified Components SE to application processor communication via APB Signature Mobile OS
  • 62. Certainty Boot Boot Sequence [wrong SS or canceled] (1) Power on (2) Verify OS/OSBL (6) System running without SE access [OS/OSBL verified] (4) Display unverified components, ask for SS [OS/OSBL not verified] [correct SS] (5) SE adds issuer public key to list (3) System running with SE access FSBL/SSBL running Manufacturer Secure environment & SE Rich environment Desired path Uncertified result Exchange OS/OSBL
  • 64. Hardware TrustZone TrustZone-enabled SoC Peripherals Trusted AreaUntrusted Area Memory Secure World Memory Non-Secure World Memory Main OS Applications Non-Secure World Secure Monitor Secure OS Secure Tasks Secure World
  • 65. Hardware TPM Communication Bus Gate Keeper Trusted AreaUntrusted Area Crypto Engine Random Number Generator PCR Registers (≥16 registers) I/O Non-Volatile Memory (≥ 1280 bytes) Volatile Memory Execution Engine ... Peripherals Main Memory
  • 66. Hardware Intel SGX Operating System Untrusted Area Trusted Area Hardware Enclave Application Stack Application Code Enclave Code Enclave Stack Enclave Heap Entry Table Peripherals
  • 67. Hardware Smart Card Communication Bus Untrusted Area Peripherals Main Memory Interfaces Smart Card Controller Trusted Area RAM FLASH
  • 68. Software is guilty ‣ “Software is eating the world” - Marc Andreessen ‣ “Almost all modern systems share a common Achille’s heel in the form of software” - Gary McGraw - The Trinity of Trouble: Complexity, Connectivity, and Extensibility - 5 to 50 bugs per 1 KLOC - Linux Kernel +15 million LOC today (not all in kernel image) ‣ Complexity -> Unspecified Behaviour -> Indeterminism - Intentionally introduced vulnerabilities can be hidden (e.g., back doors) - Chances for unintentionally introduced indeterminism augment - Corner Stone for software attacks - Examples: Heartbleed, ShellShock, Freak How do we handle the security of complex software without killing innovation?
  • 69. “World-changing is entirely in the code” Marc Andreessen “Almost all modern systems share a common Achille’s heel in the form of software” Gary McGraw
  • 70. Split-Enforcement Overview ‣ Example usage policies: - If sensitive data is given access to the untrusted area (e.g., contact list) a given peripheral cannot be accessed (e.g., Ethernet interface) - If access to a number of sensitive assets (data, peripherals) has previously been granted, a given set sensitive asset cannot be accessed. Decisions made on previous usage (mutability) Untrusted Area Trusted Area TEE Operating System Applications REE Reference Monitor Secondary Storage Memory Peripherals (e.g., Ethernet) CPU lock access unlock request unlock
  • 71. Trusted Cell TEE Trusted Cell Secure Area TEE Trusted Cell TrustedCellManager hash(data) TIM hash(metadata) verify(file) TIMcache TSM encrypt(X) decrypt(X) TSMcache TUM create(policy) evaluate(policy) modify(policy) TUMqueue TSPM Run-time Security Primitives dispatch(secure_call) Metadata CRYPTO TC Logs Policy Engine (e.g., UCON) Service Usage Contract Device Usage Policy TrustedDeviceDrivers TC driv. ‣ Trusted Security Module (TSM) - Cryptographic operations (AES-128, SHA-3) - OpenSSL (openssl-1.0.1j - October, 2014) ‣ Trusted Integrity Module (TIM) - Integrity verification (e.g., IMA in kernel) - Merkle Hash-Tree - Trusted logs ‣ Trusted Usage Module (TUM) - Policy engine (Device usage policy) ‣ Trusted System Primitive Module (TSPM) - Run-time security primitives in the that the TEE Trusted Cell - Dispatcher to Trusted Modules (Services) [1] J. González and P. Bonnet. Versatile endpoint storage security with trusted integrity modules. ISSN 1600–6100 ISBN 978-87-7949311-7, IT University of Copenhagen, February 2014 [2] J. González and P. Bonnet. Tee-based trusted storage. ISSN 1600–6100 ISBN 978-87- 7949-310-0, IT-Universitetet i København, February 2014
  • 72. Microsoft’s NGSCB Overview ‣ Motivation - DRM, vendor lock-in, exclude competitors (e.g., Open Office) - Bruce Schneier: “…will lead us down a road where our computers are no longer our computers, but are instead owned by a variety of factions and companies all looking for a piece of our wallet.” ‣ Concept - Full stack solution - Traditional offload use cases (available) ‣ The technology has not fully materialized - Motivated BitLocker full disk encryption - Measured Boot feature in Windows 8 (TPM) - Subject to timing attacks (by design)
  • 73. Analytical Evaluation Security Analysis Hack Attacks (software) Lab Attacks (complex hardware) Fab Attacks (design, hardware, firmware) Complexity Out of Scope Confidentiality and integrity of sensitive assets Guaranteed Durability and availability of sensitive assets Shack Attacks (software + simple hardware)
  • 74. Trusted Services Trusted Storage: Trusted Data Generation Trusted AreaUntrusted AreaUserSpaceKernelSpace Device Drivers (e.g., MTD) Implementation (e.g., ext4) Generic Interface (e.g., VFS) Process (untrusted app) Trusted Storage Solution TrustZone Driver Secure AreaCommodity OS TSM TIM Secure Container Crypto Hash Secure Element Shared Memory Secondary Storage ‣ Sensitive data never leaves the trusted area unencrypted ‣ Extends the size limitation of tamper-resistant storage (SE) ‣ Secure Containers are as resistant as the encryption algorithm ‣ Provide integrity and confidentiality, not availability or durability* *Redundancy can help to increase the level of availability and durability, but cannot guarantee it (untrusted area is *fully* untrusted
  • 75. Trusted Services Trusted Storage: Untrusted Data Generation Trusted AreaUntrusted Area UserSpaceKernelSpace Process (untrusted app) Reference Monitor Secure AreaCommodity OS TUM Secure Element Flash Trusted Memory Enclave Memory Operations 2 3 TSM TIM I/O Stack (data pages) SDS I/O device TEE Trusted Cell key management Hypervisor TEE Trusted Cell 1 4 sensitive data generation
  • 77. TrustZone-enabled SoC Peripherals Trusted AreaUntrusted Area Memory Secure World Memory Non-Secure World Memory Commodity OS Applications REE (non-secure world) Secure Monitor Secure OS Secure Tasks TEE (secure world) TrustZone Driver TEE + OS Support 1 2
  • 78. TrustZone-enabled SoC Peripherals Trusted AreaUntrusted Area Memory Secure World Memory Non-Secure World Memory Commodity OS Applications REE (non-secure world) Secure Monitor Secure OS Secure Tasks TEE (secure world) TrustZone Driver TEE + OS Support 1
  • 79. TEE Framework Designing the Trusted Area ‣ Requirements for the Trusted Area - Largely independent TEE, high duty cycle, and ~real-time constrains - Synergy with the untrusted area: Generating and enforcing usage policies (TOPPERS SafeG) - Open source: Experimental research in academia ‣ Design limitations - TrustZone has been a closed, obscure technology since 2004 - 3 years ago, most hardware manufacturers disabled the TrustZone security extensions. TTBOOK, only on ARM’s VE and Xilinx’s Zynq* - Open Virtualization (OV) was the first open-source project leveraging TrustZone (only one back in 2012). - OV was incomplete, unstable, and targeted Global Platform’s traditional TrustZone use cases (offload of low duty cycled secure tasks)… but it was a place to start! *Today TrustZone available on: Freescalei.MX53, Samsung S3C6410 SoC, Nvidia Tegra 3 and 4, Qualcomm Snapdragon 400 MSM8630, …
  • 80. TEE Framework Setup + Contributions ‣ Commercially available hardware - Xilinx Zynq-7000 ZC702 - Public secure registers (http://www.xilinx.com/support/documentation/user_guides/ug1019-zynq-trustzone.pdf) - Uboot, QEMU, Device Tree, compilers, gdb, etc. (https://github.com/xilinx) ‣ TEE - Open Virtualization - Trigger IP revision - New Features: • Communication Interface • Updated OpenSSL (HeartBleed) • Refactoring (git friendly) + Porting to kernel submodule + Publication + Documentation [1] - Bug Fixing: • L2 cache • Memory management: 2 memory leaks (4KB and 32KB) - non-GP use cases [1] J. González and P. Bonnet. Towards an open framework leveraging a trusted execution environment. In Cyberspace Safety and Security. Springer, 2013. Contribution
  • 81. TrustZone-enabled SoC Peripherals Trusted AreaUntrusted Area Memory Secure World Memory Non-Secure World Memory Commodity OS Applications REE (non-secure world) Secure Monitor Secure OS Secure Tasks TEE (secure world) TrustZone Driver TEE + OS Support 2
  • 82. Generic TrustZone Driver Background ‣ State of the art - Kernel TEE framework implements its own TrustZone driver (LKM) - Necessary to patch the kernel to enable TEE communication (SMC) - Mostly focus on Global Platform use cases (low-duty cycle offload) • With the exception of TOPPERS SafeG and (somehow) Genode ‣ Consequences - Static assignation of secure devices (peripherals, timers, etc.) - Required to recompile the kernel when making changes - Required to maintain a set of patches (TEE-enabling) on top of mainline kernel - Kernel submodules are excluded - TrustZone is an underused technology (TrustZone has been a closed, obscure technology since 2004) OP-TEE
  • 83. Generic TrustZone Driver Proposal ‣ Support for user space applications (as today) - Kernel support for SMC call - PL1 (ARMv7) and EL1 (ARMv8) - Support for user space libraries and APIs (e.g., Global Platform) - Support different frameworks in one single driver (generic + specific) - Minimize overhead (innovative applications + trusted services) ‣ Support for kernel submodules - Allow them to access trusted services: • LKMs do not cover this use case (unknown interface to kernel) • A generic interface known to the kernel is necessary - upstream • A way to describe supported trusted services is necessary (run-time security primitives) - Good candidates: IMA/EVM, kernel keyring, and Crypto API • IMA/EVM and kernel keyring already use TPM when available • Maintainers have shown interest on a generic TrustZone interface
  • 84. Generic TrustZone Driver ArchitectureUserSpaceKernelSpace Applications TrustZone Kernel Driver Generic Interface tz1 tz2 tzn tz_device Goblal Platform Client API TEE API TEE API... 1 n Kernel Subsystems Proprietary TEE API Untrusted Area Secure Area TEE Framework Task Dispatcher Secure Monitor TEE API 2 Secure Tasks Secure Kernel(open/close read/write) Boot-Time Device Tree (untrusted area) Device Tree (trusted area) 1 2 3
  • 85. Generic TrustZone Driver Implementation Challenges ‣ Give peripherals the correct base address - Kernel maps I/O memory for all devices on initialization - I/O memory is typically reclaimed on graceful shutdown - Kernel tries to map I/O memory for secure devices -> TZPC blocks - Consequence: TEE frameworks require TEE-enabling patch ➡ Proposal: “Secure Device Tree” - Extend device tree with “arm-world” tags - Assign base address to physical address for secure devices - Decouple device initialization and termination routines from specific system events (boot and halt processes) - Secure devices are loaded and unloaded on-the-fly - No TEE-enabling patch is necessary!
  • 86. Generic TrustZone Driver Implementation Challenges ‣ Introduce secure read/write - Kernel must forward I/O requests to secure devices - The TEE serves I/O requests - TZPC blocks untrusted area - I/O request forwarding is platform specific - depends on base address - Consequence: TEE frameworks require TEE-enabling patch (again) ➡ Proposal: “Secure Device Tree” - Use base address to forward I/O requests to TEE - Add TEE node to the Device Tree - Allow TEE to add information TEE node at boot-time - One single Device Tree with secure entries: nodes and tags. ➡ Reference implementation: - Xilinx Linux-xlns TRD 14.5 (kernel v.3.8) • https://github.com/TrustZoneGenericDriver/linux-xlnx (FIXME)
  • 87. Generic TrustZone Driver Implementation Challenges ‣ Port Open Virtualization - Port LKM to kernel submodule - Adapt to generic interface: decouple responsabilities - Major refactoring: support user space (ioctl) and kernel submodules - Identify and fix memory leaks - Use of “arm-world” to tag secure devices - Use of secure read/secure write to forward I/O requests to TEE - Port subset of Global Platform’s Internal API - proof of concept - Enabled for Xilinx linux-xlnx TRD 14.5 - Submitted to LKLM - triggered collaboration with Linaro (OP-TEE group) - TrustZone gaining traction in Linux community (e.g., Google, Linaro) (http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU) (http://lwn.net/Articles/623380/)
  • 88. Generic TrustZone Driver Current Status ‣ First patch-set sent to LKML ‣ Working on new patch-set - Collaborators: Linaro, STMicroelectronics, Huawei, and others - Mailing List: (tee-dev@lists.linaro.org) - Development: (https://github.com/TrustZoneGenericDriver) - Proposed new submodule: /drivers/sec-hw (TrustZone, TPM, …) - Ongoing discussions for secure Device Tree, secure read/write, etc. (http://www.phoronix.com/scan.php?page=news_item&px=MTg1MDU) Generic TrustZone Interface (COMMON) TrustZone Supported Chips (COMMON) OP-TEE (SPECIFIC) OV (SPECIFIC) Others (SPECIFIC) Kernel Submodules User Space OP-TEE Client (SPECIFIC) OV Client (SPECIFIC) TEE Client (COMMON?) Target 2Target 1 Target 3 Target n smc call • Open/Close (Posix) • TEE_IOC_CMD • TEE_IOC_TASK • TEE_IOC_SHM_ALLOC • TEE_IOC_SHM_FREE • TEE_IOC_LOAD_TS • TEE_IOC_GET_TS_LIST • … IOCTL (ongoing discussion) + Kernel interface (sub-modules) (http://lwn.net/Articles/623380/)
  • 90. Experimental Evaluation Micro Benchmarks N=10 N=100 N=1000 N=10000 PRIMES - CPU 300.00% 27.29% 22.13% -57.10% PRIMES - MEM -37.31% -37.48% -37.34% -34.26% 300.00% !100%% !80%% !60%% !40%% !20%% 0%% 20%% 40%% 60%% 80%% 100%% OverheadTrustZone/Kernel% PRIMES - CPU PRIMES - MEM ‣ REE performs better than TEE, but TEE is not preempted
  • 91. Experimental Evaluation Micro Benchmarks N=0$ N=100$ N=1000$ N=10000$ Prime$+$secure$workload$(10.000)$ 43499.13011$ 44651.17005$ 217753.0104$ 23337565.61$ Prime$+$secure$workload$(100)$ 506.790144$ 1658.83008$ 174760.6705$ 23294573.27$ Prime$,$no$secure$workload$ 383.36$ 1535.399936$ 174637.2403$ 23294449.84$ 0.1 1 10 100 1000 10000 100000 1000000 10000000 100000000 Timein µseconds Prime + secure workload (10.000) Prime + secure workload (100) Prime , no secure workload ‣ TEE has always priority over CPU time over REE
  • 92. Experimental Evaluation Micro Benchmarks 1KB 100KB 500KB 1MB AES CBC -3.13% 5.15% 7.99% -5.22% AES CRT -3.37% 5.11% 8.13% -5.36% AES ECB 2.17% 10.51% 13.82% -1.40% -10% -5% 0% 5% 10% 15% 20% OverheadTrustZone/Kernel% AES CBC AES CRT AES ECB ‣ CPU-bound + memory ops. confirm < 18% overhead in TEE