160 likes | 327 Views
Secure web browsers, malicious hardware, and hardware support for binary translation. Sam King. Browser m otivation. Browsers most commonly used application today Browsers are an application platform Email, banking, investing, shopping, television, and more!
E N D
Secure web browsers, malicious hardware, and hardware support for binary translation Sam King
Browser motivation • Browsers most commonly used application today • Browsers are an application platform • Email, banking, investing, shopping, television, and more! • Browsers are plagued with vulnerabilities • Internet Explorer: 57 vulnerabilities • Mozilla/Firefox: 122 vulnerabilities • Safari + Opera: 66 vulnerabilities • Studies from Microsoft, Google, and University of Washington show web browser is attacker target
The OP Browser • Goal: build a secure web browser • Provide an architecture for secure web browsing • Maintain security guarantees even when compromised • Driven by OS and formal methods design principles
OP design • Decompose into browser subsystems • Web page instance further divided • Use message passing • All messages through browser kernel • Dedicated subsystems for OS operations • Host OS sandboxing
Design enables security • Partitioning and constrained communication enable new security mechanisms • Clean separation of browser functionality and security • Policy • Plugin security policies, xss • Formal methods • SOP + URL address bar invariant
Research questions • OP: more secure browser can be practical • Hopefully no longer weakest link in comp. stack • Can you operate with a malicious OS? • What portions of the OS does browser kernel replicate? • What portions of the OS does browser kernel rely on?
Replicate portions of the OS • Extracts parts of OS needed for web client sec • Custom labeling and access control system • RPC / message passing layer • Window manager (limited extent)
Assumptions about OS • Process-level isolation (easy) • Memory protection • well-known IPC mechanisms • System-level sandboxing (moderate) • Isolate processes from system resources • Restrict system call capabilities • Resource management (hard) • Create processes, message forwarding and naming • Network, disk, screen • Possible techniques for enforcing assumptions • Bottom up: SVA, binary trans, hardware isolation primitives • Top down: Simple web client, not a full browser
Untrusted computing base: defending against malicious hardware
Building secure systems • We make assumptions when designing secure systems • Break secure system, break assumptions • E.g., look for crypto keys in memory • People assume hardware is correct • What if we break this assumption?
Malicious hardware • Is it possible to modify design of processors? • Implementing hardware is difficult • Implementing HW-based attacks is easy! • Small hardware level footholds • Execute high-level high-value attacks WITHOUT exploiting any software bugs
Defenses • Based on insights from foothold devel. • Analyze circuit at design time • Highlight potentially malicious circuits • Closely related to operating systems • Both have symbolic representation, compiled • 3rd party tools and libraries • Principles learned from exercise could apply to OS • Fundamentally an issue untrusted lower layers
H/W for dynamic bin. trans. • Problem: instrument individual inst is slow • Especially true for security applications • Goal: amortize the cost across mult. instructions • Fast path for common case, efficient check for correct • E.g., don’t read tainted memory • Slow path for correct (fully instrumented) case • Solution: hardware support • HW signatures (e.g., bloom filter) to summarize • E.g., addresses for load / store instructions • Apply known tricks to security case • Extra registers, parallel optimization,atomic regions, etc.
Performance • Load latencies do not impact usability Load time in seconds