The Savage Curtain: Mobile SSL Failures



Similar documents
SSL implementieren aber sicher!

Mobile SSL Failures. Tony Trummer Tushar Dalvi

Best Practice Guide (SSL Implementation) for Mobile App Development 最 佳 行 事 指 引. Jointly published by. Publication version 1.

Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

Penetration Testing for iphone Applications Part 1

Web Application Entity Session Management using the eid Card Frank Cornelis 03/03/2010. Fedict All rights reserved

SSL Report: ebfl.srpskabanka.rs ( )

Security Protocols/Standards

TLS and SRTP for Skype Connect. Technical Datasheet

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Building a Mobile App Security Risk Management Program. Copyright 2012, Security Risk Advisors, Inc. All Rights Reserved

CS255 Programming Project 2

SSL/TLS: The Ugly Truth

Configuration Guide. BlackBerry Enterprise Service 12. Version 12.0

Clientless SSL VPN Users

Is Your SSL Website and Mobile App Really Secure?

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

Security Engineering Part III Network Security. Security Protocols (I): SSL/TLS

BlackBerry Enterprise Service 10. Universal Device Service Version: Administration Guide

Introduction to Mobile Access Gateway Installation

Version Highlights. CertainT 100 SSL Accelerator. Version International. New hardware and software version. North America

Managing CA-Signed Certificates

Certificate Management

Using EMC Unisphere in a Web Browsing Environment: Browser and Security Settings to Improve the Experience

Transport Layer Security Protocols

Sync Security and Privacy Brief

What is Web Security? Motivation

BYOD Guidance: BlackBerry Secure Work Space

Pass Through Proxy. How-to. Overview:..1 Why PTP?...1

SSL Considerations for CAS: Planning, Management, and Troubleshooting. Marvin Addison Middleware Services Virginia Tech October 13, 2010

How to configure SSL proxying in Zorp 3 F5

Configuration Guide BES12. Version 12.2

SSL BEST PRACTICES OVERVIEW

Wireless Robust Security Networks: Keeping the Bad Guys Out with i (WPA2)

Security Evaluation CLX.Sentinel

Administration Guide. BlackBerry Enterprise Service 12. Version 12.0

Manual for Android 1.5

Mobile Application Security

Clientless SSL VPN End User Set-up

M86 Web Filter USER GUIDE for M86 Mobile Security Client. Software Version: Document Version:

A Guide to Mobile Security For Citizen Journalists

Security Testing Guidelines for mobile Apps

Instructions for Configuring Your Browser Settings and Online Security FAQ s. ios8 Settings for iphone and ipad app

An Application Package Configuration Approach to Mitigating Android SSL Vulnerabilities

Configuration Guide BES12. Version 12.1

SSL Interception Proxies. Jeff Jarmoc Sr. Security Researcher Dell SecureWorks. and Transitive Trust

SSL VPNs: An IETF Perspective

Workday Mobile Security FAQ

ABSTRACT' INTRODUCTION' COMMON'SECURITY'MISTAKES'' Reverse Engineering ios Applications

Administering Jive Mobile Apps

SSL EXPLAINED SSL EXPLAINED

Chapter 17. Transport-Level Security

Sascha Fahl, Marian Harbach, Matthew Smith. Usable Security and Privacy Lab Leibniz Universität Hannover

LBSEC.

The Security Behind Sticky Password

Contents. Identity Assurance (Scott Rea Dartmouth College) IdM Workshop, Brisbane Australia, August 19, 2008

Public Key Infrastructure (PKI)

Guidelines to setup mobile devices to a UOITnet account Google Apps for Education. Information Technology Services

Nithan Sannappa Senior Attorney, Division of Privacy and Identity Protection, Federal Trade Commission

Network Security Essentials Chapter 5

Websense Content Gateway HTTPS Configuration

How To Protect Your Network From Attack

Apache Security with SSL Using Linux

ALTERNATIVES TO CERTIFICATION AUTHORITIES FOR A SECURE WEB

<Insert Picture Here> Oracle Web Cache 11g Overview

Integrated SSL Scanning

BIG-IP Access Policy Manager Tech Note for BIG-IP Edge Client App for ios

Installing Logos SSL Certificates on Mobile Devices

HOW TO: Privacy Aware Mobile Application Development

Project X Mass interception of encrypted connections

Certificate Management

Vulnerabilità dei protocolli SSL/TLS

Proto Balance SSL TLS Off-Loading, Load Balancing. User Manual - SSL.

Infor Xtreme Browser References

Sametime 9 Meetings deployment Open Mic July 23rd 2014

Salesforce1 Mobile Security Guide

RFG Secure FTP. Web Interface

Configuration Guide BES12. Version 12.3

PRODUCT VERSION: LYNC SERVER 2010, LYNC SERVER 2013, WINDOWS SERVER 2008

HTTPS Inspection with Cisco CWS

Ethical Hacking as a Professional Penetration Testing Technique

Topics in Network Security

SSL and Browsers: The Pillars of Broken Security

CS 3251: Computer Networking 1 Security Protocols I

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Specific recommendations

What s Your HTTPS Grade? A Case Study of HTTPS/SSL at Mid Michigan Community College. Brandon bkish@midmich.edu

Achieving PCI Compliance Using F5 Products

Certificate Management. PAN-OS Administrator s Guide. Version 7.0

Pentesting Mobile Applications

Information. Questions will be answered at the end. Please submit questions to Erick Mendoza using the chat function.

BlackBerry Enterprise Server for Microsoft Office 365 preinstallation checklist

Prerequisites. Creating Profiles

Transcription:

The Savage Curtain: Mobile SSL Failures

Who are these guys? Tony Trummer - Staff Security Engineer aka SecBro Tushar Dalvi - Sr. Security Engineer & Pool Hustler

A Private Little War Our employer generally does not have prior knowledge of, condone, support or otherwise endorse our research

The Menagerie { Apps are mash-ups of native and web code { Java, Objective C, Swift, etc. { Developers control SSL/TLS security settings and warnings

Basics TLS provides several security features { Encryption { Authenticity { Integrity In apps, unlike browsers, whether you see a certificate warning is up to the app developer.

Tomorrow Is Yesterday Before dismissing the idea of large-scale or supply-chain attacks... { Recent reports of pre-installed trojans on low-end Android devices { In 2013, Nokia was found to be performing MitM on customer traffic, reportedly for performance reasons { In 2013, reports surfaced claiming that the NSA and GCHQ ( Flying Pig ) were actually performing real-world MitM attacks { 2015, Lenovo laptops vulnerable due to SuperFish CA certificate pre-installed

Wolf in the Fold { TLS is really the ONLY protection against Man-in-the middle (MitM) attacks { MitM is significantly easier to perform against mobile devices

The Immunity Syndrome Infosec folks often roll their eyes when they read statements on sites or in apps that tout TLS use and how big their keys are

Journey to Babel One night, after a few drinks, we decided to test some apps, starting with proxying their web requests

Into Darkness

First aspect of certificate validation The app or OS must verify the certificate is cryptographically signed by the private key of a trusted Certificate Authority

Proper certificate validation Certificate is signed by the private key of a trusted CA? Is this an intermediate certificate? Trusted Root CA

Forget Something? Tony Tushar

A Piece of the Action

A Taste of Armageddon

The Trouble with Tribbles

The Trouble with Tribbles

Testing for CA validation { Configure device to use proxy { Configure BurpSuite's proxy listener to Generate a CA-signed per-host certificate { DO NOT install the proxy's CA certificate on the test device { Verify you see a certificate warning in the native mobile browser { Step through each section of the app { If you see HTTPS traffic, in Burpsuite, the app failed

Second aspect of validation Does the Subject Common or Alternative name match the hostname of the site you're visiting?

Proper certificate validation Does the Common or Subject Alternative Name Match the hostname? Traces back to Trusted Root CA

By any other name

By any other name

The Apple

And the Children Shall Lead

Amok Time

By any other name

By any other name

Testing for proper hostname validation { Install Portswigger CA cert on device { Configure your device to use a proxy { Configure proxy listener to Generate a CAsigned certificate with a specific hostname { Set the hostname to foobar.com { Verify you see a certificate warning in the native mobile browser { Step through each section of the mobile app { If you see HTTPS traffic, the app failed

Proper certificate validation Does the Common or Subject Alternative Name Match the DNS hostname? Not expired? Not revoked? Traces back to Trusted Root CA

Damn it, Jim!

The Naked Time { Credit card numbers, passwords, and/or session cookies

Dagger of the mind { Unencrypted credit card information { Tier 1 PCI merchant { 10 million+ installations

Court Martial FTC vs. Fandango & Credit Karma { One of the major flaws cited in the suit was failure to validate SSL certificates on mobile applications { Agreed to establish comprehensive security programs { Agreed to undergo independent security assessments every other year for 20 years { Scolded publicly for not keeping their privacy promises to consumers

SSL session caching { During the initial handshake the certificate is validated { Subsequent client requests re-use the previous handshake and do not revalidate the certificate { TOFU (Trust On First Use)

The Enemy Within { Rooted devices, or { Physical access { More likely on mobile

Patterns of Force If I have physical access, couldn't I just... { Install malicious app { Access your data

Turnabout Intruder { SSL session caching only checks the certificate once { Install a CA, for the first connection, then delete it { Viewing cache file via adb or another app requires root access

The City on the Edge of Forever { Server decides how long to accept the cached session (RFC-5077, section 5.6) { In other words, the bad guy gets to decide how long to accept the cached session... { We refer to this feature as EverPWN

Shields Up! { Review your code { Implement policy { Test pre-release { Train developers

Shields Up! In Android, investigate these: { TrustManager { SSLSocket { SSLSocketFactory getinsecure { HostNameVerifier In ios, investigate these areas: { Don't use AFNetworking < v. 2.5.3 { _AFNETWORKING_ALLOW _INVALID_SSL_CERTIFICATES_ { SetAllowsAnyHTTPSCertificate { kcfstreamsslallowsanyroot

Shields Up! { Certificate Pinning { Dev and prod signing certificates are required to be different in both ios and Android { Build validation mode based on which certificate is used to sign the app

Live Long and Prosper Contact and testing instructions: http://www.secbro.com Tony Trummer: http://www.linkedin.com/in/tonytrummer @SecBro1 Tushar Dalvi: http://www.linkedin.com/in/tdalvi @TusharDalvi R.I.P Reggie Destin