1 Introduction to Information Security 0368-3065, Spring 2014 Lecture 10: Trusted computing architecture (cont.), Smartphone security Eran Tromer Slides.

Slides:



Advertisements
Similar presentations
Vpn-info.com.
Advertisements

Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
1 GP Confidential © GlobalPlatform’s Value Proposition for Mobile Point of Sale (mPOS)
Lee Hang Lam Wong Kwun Yam Chan Sin Ping Wong Cecilia Kei Ka Mobile Phone OS.
Android Security. N-Degree of Separation Applications can be thought as composed by Main Functionality Several Non-functional Concerns Security is a non-functional.
1 MIS 2000 Class 22 System Security Update: Winter 2015.
Building and Deploying Safe and Secure Android Apps for Enterprise Presented by Technology Consulting Group at Endeavour Software Technologies.
1 Minimal TCB Code Execution Jonathan McCune, Bryan Parno, Adrian Perrig, Michael Reiter, and Arvind Seshadri Carnegie Mellon University May 22, 2007.
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
16.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft® Windows® Server 2003 Active Directory Infrastructure.
Trusted Platform Modules: Building a Trusted Software Stack and Remote Attestation Dane Brandon, Hardeep Uppal CSE551 University of Washington.
Mobile Mobile OS and Application Team: Kwok Tak Chi Law Tsz Hin So Ting Wai.
Script Kiddies; CybercrimeCyber-espionage; Cyber-warfare CybercriminalsState sponsored actions; Unlimited resources Attacks on fortune 500All sectors.
Business Data Communications, Fourth Edition Chapter 10: Network Security.
TCG: Trusted Computing Group CS 155 Spring 2007 Dan Boneh.
Lesson 9-Securing a Network. Overview Identifying threats to the network security. Planning a secure network.
4/17/2017 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Android Security Enforcement and Refinement. Android Applications --- Example Example of location-sensitive social networking application for mobile phones.
William Enck, Machigar Ongtang, and Patrick McDaniel.
Page 1 Sandboxing & Signed Software Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Android Security What is out there? Waqar Aziz. Android Market Share - I 2.
Introduction to InfoSec – Smartphone Security (R13) Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (infosec15 at modprobe.net) Slide Credit: Eran.
Presentation By Deepak Katta
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
A METHODOLOGY FOR EMPIRICAL ANALYSIS OF PERMISSION-BASED SECURITY MODELS AND ITS APPLICATION TO ANDROID.
1 Roei Schuster. Order of Business  Part I: Introduction to Smartphone Security  Why is phone security interesting?  Contemporary and future platforms.
LEVERAGING UICC WITH OPEN MOBILE API FOR SECURE APPLICATIONS AND SERVICES Ran Zhou 1 9/3/2015.
1 Infrastructure Hardening. 2 Objectives Why hardening infrastructure is important? Hardening Operating Systems, Network and Applications.
 Security and Smartphones By Parker Moore. The Smartphone Takeover  Half of mobile phone subscribers in the United States have a smartphone.  An estimated.
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
Masud Hasan Secue VS Hushmail Project 2.
Computer and Information Sciences
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
An approach to on the fly activation and deactivation of virtualization-based security systems Denis Efremov Pavel Iakovenko
TCG: Trusted Computing Group CS 155 Spring Background TCG consortium. Founded in 1999 as TCPA. Main players (promotors): (>200 members) AMD, HP,
Types of Electronic Infection
1 Company Proprietary and ConfidentialThe document name can go here Android OS Security Omar Alaql July 8, 2013 Kent State University Android OS Security.
SEC835 Runtime authentication Secure session management Secure use of cryptomaterials.
Android Security Auditing Slides and projects at samsclass.info.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
Mobile Application Security on Android Originally presented by Jesse Burns at Black Hat
Convenience product security Collin Busch. What is a convenience product? A convenience product is a device or application that makes your life easier.
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Wireless and Mobile Security
1 REMOTE CONTROL SYSTEM V7 2 Introduction.
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
Android Permissions Demystified
1 Information Security – Theory vs. Reality , Winter Lecture 12: Trusted computing architecture (cont.), Eran Tromer Slides credit:
TCG: Trusted Computing Group Dan Boneh CS 155 Spring 2006.
Cybersecurity Test Review Introduction to Digital Technology.
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
Analysis And Research Of System Security Based On.
By Collin Donaldson.   In conventional OS architectures, the user accesses the OS via an account that has certain privileges (admin, guest). They can.
Android and IOS Permissions Why are they here and what do they want from me?
Trusted Computing and SGX
Trusted Component Deployment Trusted Components Bernd Schoeller January 30 th, 2006.
Intro to Digital Technology Review for Final Introduction to Digital Technology Finals Seniors Monday, 5/16 – 2 nd Tuesday 5/17 – 1 st,3 rd Underclassmen.
Google. Android What is Android ? -Android is Linux Based OS -Designed for use on cell phones, e-readers, tablet PCs. -Android provides easy access to.
© 2015 Digital Rights Management in a 3G Mobile Phone and Beyond Thomas S.Messerges, Ezzat A. Dabbish ILKOO LEE.
Module 51 (Mobile Device Fundamentals - Android)
Trusted Computing and the Trusted Platform Module
Understanding Android Security
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
Security of Mobile Operating Systems
Outline What does the OS protect? Authentication for operating systems
Understanding Android Security
Presentation transcript:

1 Introduction to Information Security , Spring 2014 Lecture 10: Trusted computing architecture (cont.), Smartphone security Eran Tromer Slides credit: Dan Boneh, Stanford Roei Schuster, Tel Aviv University

2 Trusted Computing Architecture (continued)

3 Components on TPM chip I/O Crypto Engine: RSA, SHA-1, HMAC, RNG Non Volatile Storage (> 1280 bytes) PCR Registers (  16 registers) Other Junk RSA: 1024, 2048 bit modulus SHA-1: Outputs 20 byte digest LPC bus API calls

4 Protected storage (sealing) Encrypt data using RSA key on TPM TPM_Seal (some) Arguments:  keyhandle: which TPM key to encrypt with  KeyAuth: Password for using key `keyhandle’  PcrValues: PCRs to embed in encrypted blob  data block: at most 256 bytes (2048 bits) Used to encrypt symmetric key (e.g. AES) Returns encrypted blob. Blob can only be decrypted with TPM_Unseal when PCR- reg-vals = PCR-vals in blob. TPM_Unseal will fail othrwise

5 Security? Resetting TPM after boot Attacker can disable TPM until after boot, then extend PCRs arbitrarily (one-byte change to boot block ) [Kauer 07] Software attack: send TPM_Init on LPC bus allows calling TPM_Startup again (to reset PCRs) Simple hardware attack: use a wire to connect TPM reset pin to ground Once PCRs are reset, they can be extended to reflect a fake configuration. Rollback attack on encrypted blobs undo security patches

6 Better root of trust Late launch: securely load OS/VMM, even on a potentially-compromised machine DRTM – Dynamic Root of Trust Measurement New CPU instruction: Intel TXT: SENTER AMD: SKINIT Atomically does: Reset CPU. Reset PCR 17 to 0. Load given Secure Loader (SL) code into I-cache Extend PCR 17 with SL Jump to SL BIOS boot loader is no longer root of trust Avoids TPM_Init attack: TPM_Init sets PCR 17 to

7 Protecting code on an untrusted platform Can we run sensitive code on a potentially- compromised platform, without rebooting/replacing it? Many ways to read and corrupt code! Secure enclave using hardware Possible with SENTER/SKINIT but cumbersome (Flicker project) Intel Software Guard Extensions (SGX) ARM TrustZone Cryptography Fully-homomorphic encryption encryption Succinct zero-knowledge proofs (SNARKs) and Proof-Carrying Data

Attestation 8

9 Attestation: what it does Goal: prove to remote party what software is running on my machine. Good applications: Bank allows money transfer only if customer’s machine runs “up-to-date” OS patches. Enterprise allows laptop to connect to its network only if laptop runs “authorized” software Quake players can join a Quake network only if their Quake client is unmodified. DRM: MusicStore sells content for authorized players only.

10 Attestation: how it works Recall: EK private key on TPM. Cert for EK public-key issued by TPM vendor. Step 1: Create Attestation Identity Key (AIK) Involves interaction with a trusted remote issuer to verify EK Generated: AIK private+public keys, and a certificate signed by issuer

11 Attestation: how it works Step 2: sign PCR values (after boot) Call TPM_Quote (some) Arguments:  keyhandle: which AIK key to sign with  KeyAuth: Password for using key `keyhandle’  PCR List: Which PCRs to sign.  Challenge: 20-byte challenge from remote server Prevents replay of old signatures.  Userdata: additional data to include in sig. Returns signed data and signature.

12 Using attestation (to establish an SSL tunnel) Remote Server PC TPM OS App Generate pub/priv key pair TPM_Quote(AIK, PcrList, chal, pub-key) Send pub-key and certs Attestation Request (20-byte challenge) (SSL) Key Exchange using Cert Validate : 1.Certs 2.PCR vals 3.Challenge Communicate with app using SSL tunnel Attestation must include key-exchange App must be isolated from rest of system

13 Trusted Computing Architecture: Discussion (on whiteboard)

14 Smartphone security

15 Capabilities Sensors: –Microphone –Camera –Touch screen (capacitance sensor array) –Fingerprint sensor –GPS –Accelerometer –Digital compass –Power –Proximity sensor

16 Data Phone calls SMSs Contacts Pictures & videos taken s Credentials (social networks, accounts) More credentials (password reminders) Calendar (events, meetings…) Bank accounts, stock exchange... Browser history Location history Phone number, IMEI …

17 Attack vectors Physical –Lunchtime –Instrusive Connectivity –Cellular Data SMS Low-level GSM –WiFi –Bluetooth –Wired –NFC

18 SMS Fuzzing By fuzzing various fields (including application ports, DCS, PID, etc…) researchers managed to: –Crash/DoS iPhone –Disconnect iPhone –Lock your SIM card on Android "Fuzzing the Phone in your Phone", BH USA '09, Mulliner

19 Bluetooth Vulnerability (‘09, Alberto Moreno Talbado) Applies to HTC Smartphones running Windows Mobile 6/6.1 Bluetooth attack enables full file system access –directory traversal –download files (incl. contacts, mail…) –upload files (“trojan.exe” to \Windows\Startup)

20 Bluetooth Vulnerability (cont.) “Users worried about the vulnerability should avoid pairing their phones with an untrusted handset or computer. They may also want to delete any devices that are already paired with their phones”

21 Near Field Communication RFID tag Samsung TecTiles Open URL, call phone, send SMS, change mode, open app, send contact info… Trigger vulnerability [EUSecWest’12 Pwn2Own]

22 Attack vectors Physical –Lunchtime –Instrusive Connectivity –Cellular Data SMS Low-level GSM –WiFi –Bluetooth –Wired –NFC Content –Files –Applications –Software updates The Cloud

23 Malware [Felt Finifter Chin Hanna Wagner 2011] Analyzed 48 malware pieces (Android, iOS, Symbian), 4 root exploits 61% collect info 52% premium SMS Credential theft, SEO, SMS span, ransom

24 Who owns our information? Government’s powers –Any data transmitted over the mobile network exposes this data to the government via LI mechanisms. Phone provider’s powers –iOS updates delete data for jailbroken phones –Amazon “Big Brother” Kindle –iOS and Android’s location recording scandal –Legal issues, technical non-issues

26 Android Security Updates From the Android Security FAQ: –“The manufacturer of each device is responsible for distributing software upgrades for it, including security fixes. Many devices will update themselves automatically with software downloaded "over the air", while some devices require the user to upgrade them manually.” –De facto updates?

27 “App Attack” Apps may need to have access to sensitive information (call history, bank account, etc..). Some apps don’t need it (e.g. Angry Birds). Calls for a special security mechanism – or does it? You needn’t be Microsoft/Adobe to build one that people will use –New, unexploited, easy-to-implement ideas. – App Stores – more equal exposure, easy to access. "App Attack", Mahhaffey & Herring

28 Advertisement SDKs 3 rd party (Actually, 4 th party) components piggy-backed on an application. Developers don’t know the code inside their own application. SDKs will always want to perform targeted marketing…

29 Application Security Models Sandboxing –Permissions –Isolation App stores verification –Open or disclosed source –Apps must prove themselves secure It’s no longer enough to just be secure –Vendors must prove themselves trustworthy –Sometimes signed (BB/Symbian/iOS/Android..) –Some automated review –Some manual review

30 Example: iOS App Store To use an application on your own iOS device you must have a special Developer Account –You yourself have to be approved Costs 99$ Takes time –Still does not mean you can get it on the App Store.

31 Apple developer program enrollment Dear Troy Hakala, We are currently in the process of reviewing your iPhone Developer Program enrollment information. Please fax one of the following forms of identity for your business based on your company form. To assist with this process, please ensure your business documents match your Enrollment information. … Please include your main company corporate telephone number with your faxed documents. … Articles of incorporation Business license Certificate of Formation DBA (Doing Business As…) Fictitious name statement Registration of trademark Charter documents Partnership papers Reseller or vendor license … Thank you, iPhone Developer Program

32 Example: iOS App Store (cont.) “Let us see for ourselves”. –Can’t get an app on App Store without verifying it. –Not 100% effective. Pulled back: Flashlight kid Aurora Faint – contact s, 20M downloads MogoRoad – Sent phone numbers, customers got commercial calls –“Polymorphic” apps (change at runtime) –10K apps submitted per week, 10% of rejections related to malware "iPhone Privacy", Seriot

33 App Store review process (guessed) Static analysis looking for particular strings, API calls etc.. Dynamic analysis –Sniffing –Monitor I/O, API calls –“Fuzzing” Lots of innocent apps punished

34 Android Application Security Model Applications run in a virtual machine called Dalvik –Java  Java Byte Code  Dalvik Byte Code Dalvik itself is no sandbox –Sandboxing at process level –Each app process has a distinct UID, GID, and belongs to some groups. “Permissions” declared statically

35 Android app permission: example (Example by David William Wood) List of permissions in Android API:

36 Android Security User Experience First, obvious problem: users treat permission prompting similar to browser pop-up warnings. –They just don’t care. “Want to get pony wallpapers now.”

37 Android Application Security Model (cont.) How does Android enforce permissions? Enforcement mechanisms: –OS kernel level (files, I/O…) Some behavior inherited from Linux The kernel is patched in some places s.t. process group list is checked in some system calls. This is similar to Linux capabilities (only for non-root processes, and with no one reference monitor). –Inter-Component Communication level Google’s own implementation –Recently: SELinux (Mandatory Access Controls) “Understanding Android Security” Enck, Ongtang & McDaniel

38 Security Expressiveness Microphone AND web access == permission to record you and send it home? User can’t add/remove permissions after install –Permissions are absolute upon granting. An app can’t request one-time permission for specific operations.

39 Analyzing Inter-process Communication in Android [Chin Felt Greenwood Wagner 2011 ] Characterize types of IPC vulnerabilities: –Unauthorized Intent Receipt: Broadcast Theft Activity Hijacking Service Hijacking –Intent Spoofing: Malicious Broadcast Injection Malicious Activity Launch Malicious Service Launch For each – specify how it can happen, how to avoid it. –Avoidance complexity varies.

40 Analyzing Inter-process Communication in Android [Chin Felt Greenwood Wagner 2011 ] ComDroid: Analyzed 100 applications to identify suspicious IPC implementation (e.g. not declaring permissions to use a broadcast receiver..). Outputted warnings. Manually examined 20 applications for: –Vulnerabilities (e.g. sensitive information exposure) –Spoofing Vulnerabilities (security depends on user’s choices in activity intent-resolution dialog) –Unintentional bugs (ignoring good code convention)

41 Results Results show that the Android permission system is confusing to developers, and they misuse it.

42 Jailbreaking / rooting Give application “root” permissions Method: –Flash firmware –Exploit vulnerability Needed for –Backups –Copying apps –Various advanced features Less effective with SELinux –E.g., Samsung Knox –… so users disable SELinux too Vendors detect and: –Void warranty –Prevent security updates

43 Android Application Security Model - Conclusions IPC and shared resources (logs, internet) are a major security issue. Protection of application and user is the developer’s responsibility –Any form of ICC/shared resources should be carefully examined. –In real life, this does not happen. Many apps expose their (and your) secret information through these mechanisms. This includes Android’s built-in applications (e.g. browser).

44 Android’s Application Security Model – Conclusions (cont.) Protection of user’s data is his own responsibility –Security vs. Usability –Users don’t understand security concerns What does CLEAR_APP_CACHE mean? Android’s permission model lacks important expressiveness Android’s Open-Market App Security Model is an extreme and unique choice.

45 iOS Application Security Model Permissions: –No pre-install user prompting –Only one type of exercise-time prompting – “app wants to use your location” Every app is completely isolated from others –If an IPC hack exists, it will probably not be “Apple-Approved” Hidden APIs exist.

46 Caught by App Genome Project (cont.) Lots of simple apps (wallpaper/flasllight etc.) Accessing IMEI, IMSI, Phone number… AND internet… Some don’t hide that they do.

47 Wiresharked – HTTP POST POST /api/wallpapers/log/device_info?locale=enrUS& version_code=422&w=320&h=480&uniquely_code= &api_key=CIEhu15fY4bO4SGcGTq6g&nonc e=9fe79a6119a9c650eb8f9615e2b88a8d&timestamp= &api_sig=11404ee56654c3ad52649fb1e0589e5f HTTP/1.1 Content-Length: 1146 Content-Type: application/x-www-form-urlencoded Host: Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4) Expect: 100-Continue HTTP/ Continue uniquely_code= &device_info=device_id%3D %26device_software_version%3Dnull %26build_board%3Dunknown%26build_brand%3Dgeneric%26build_device%3Dgeneric%26build_display%3Dsdk-eng +2.2+FRF test-keys%26build_fingerprint%3Dgeneric%2Fsdk%2Fgeneric%2F %3A2.2%2FFRF42%2F36942%3Aeng%2Ftest-keys%26build_model%3Dsdk%26build_product%3Dsdk%26build_tags %3Dtest-keys%26build_time%3D %26build_user%3Dandroid-build%26build_type%3Deng%26build_id %3DFRF42%26build_host%3De-honda.mtv.corp.google.com%26build_version_release%3D2.2%26build_version_sdk_int %3D8%26build_version_incremental%3D36942%26density%3D1.0%26height_pixels%3D480%26scaled_density %3D1.0%26width_pixels%3D320%26xdpi%3D160.0%26ydpi%3D160.0%26line1_number %3D %26network_country_iso%3Dus%26network_operator%3D310260%26network_operator_name %3DAndroid%26network_type%3D3%26phone_type%3D1%26sim_country_iso%3Dus%26sim_operator %3D310260%26sim_operator_name%3DAndroid%26sim_serial_number%3D %26sim_state %3D5%26subscriber_id%3D %26voice_mail_number%3D%2B %26imsi_mcc %3D310%26imsi_mnc%3D260%26total_mem%3D

48 Mobile vs. PC Easier: Remote control (uninstall) Jail Finer-grained permissions Single user More uniform hardware Biometrics “Clean slate” Harder: Input Output Patience Sensitivity

49 What can the platform can do about it? Encryption Virtualization (+TrustZone, TXT) Stop the need for jailbreaking Fine-grained permissions Fine-grain protection domains Information flow control –Inadvertant (logs) –Hard to analyze (app interaction) –Malicious –Runtime: TaintDroid –Static (PiOS)