SlideShare a Scribd company logo
Designing Secure Mobile Apps
           Guerilla Training Camp
           Security BSides Austin

           Dan Cornell




© Copyright 2011 Denim Group - All Rights Reserved
My Background
 • Dan Cornell, founder and CTO of Denim Group
 • Software developer by background (Java, .NET, etc)
 • OWASP San Antonio, Global Membership Committee

 • Denim Group
         – Build software with special security, performance, reliability
           requirements
         – Help organizations deal with the risk associated with their software
                  • Code reviews and application assessments
                  • SDLC consulting
                  • Secure development training – instructor-led and eLearning

© Copyright 2011 Denim Group - All Rights Reserved                                1
Agenda
 • Generic Mobile Application Threat Model
 • Mobile Application Design Concerns
         –     Bypassing Platform Environment Restrictions
         –     Application Permission Model
         –     Local Storage and Encryption
         –     Network Communication and Encryption
         –     Native Code Execution
         –     Browser Behavior
 • In-depth Look at Mobile Browser Content Handling

 • Questions



© Copyright 2011 Denim Group - All Rights Reserved           2
Tradeoffs: Value versus Risk
 • Mobile applications can create tremendous value for organizations
         – New classes of applications utilizing mobile capabilities: GPS, camera, etc
         – Innovating applications for employees and customers
 • Mobile devices and mobile applications can create tremendous risks
         – Sensitive data inevitably stored on the device (email, contacts)
         – Connect to a lot of untrusted networks (carrier, WiFi)


 • Most developers are not trained to develop secure applications
         – Fact of life, but slowing getting better
 • Most developers are new to creating mobile applications
         – Different platforms have different security characteristics and capabilities




© Copyright 2011 Denim Group - All Rights Reserved                                        3
Smart Phones, Dumb Apps
 • Lots of media focus on device and platform security
         – Important because successful attacks give tremendous attacker leverage
 • Most organizations:
         –     Accept realities of device and platform security
         –     Concerned about the security of their custom applications
         –     Concerned about sensitive data on the device because of their apps
         –     Concerned about network-available resources that support their apps


 • Who has smartphone application deployed for customers?

 • Who has had smartphone applications deployed without their
   knowledge?
         – *$!%$# marketing department…

© Copyright 2011 Denim Group - All Rights Reserved                                   4
Secure Mobile Development Reference
 • Platform-specific recommendations
 • Key topic areas

 • Provide specific, proscriptive guidance to developers building mobile
   applications




© Copyright 2011 Denim Group - All Rights Reserved                         5
Specific Platforms
 •     iOS (iPhone, iPad)
 •     Android
 •     Blackberry (in progress)
 •     Windows Phone 7 (in progress)
         – Windows Mobile 6.5 (?)
 • Symbian (?)
 • Others (?)

 • Will be guided by demand, which is focused by new development
   activity



© Copyright 2011 Denim Group - All Rights Reserved                 6
Topics Areas
 • Topic Areas
         –     Overview of Application Development
         –     Overview of Secure Development
         –     Defeating Platform Environment Restrictions
         –     Installing Applications
         –     Application Permissions Model
         –     Local Storage
         –     Encryption APIs
         –     Network Communications
         –     Protecting Network Communications
         –     Native Code Execution
         –     Application Licensing and Payments
         –     Browser URL Handling


© Copyright 2011 Denim Group - All Rights Reserved           7
Generic Mobile Application Threat Model




© Copyright 2011 Denim Group - All Rights Reserved   8
Some Assumptions for Developers
 • Smartphone applications are essentially thick-client applications
         –     That people carry in their pockets
         –     And drop in toilets
         –     And put on eBay when the new iPhone comes out
         –     And leave on airplanes
         –     And so on…


 • Attackers will be able to access:
         – Target user (victim) devices
         – Your application binaries


 • What else should you assume they know or will find out?


© Copyright 2011 Denim Group - All Rights Reserved                     9
Bypassing Platform Environment Restrictions
 • Mobile platforms, by default, make certain promises about their
   environment
 • Do not depend on these promises to keep your data and code safe
         – iPhone: devices can be jailbroken
         – Android: devices can be rooted
 • Impact:
         – Install arbitrary applications
         – Run applications in a debugger
         – Bypass file access restrictions


 • Malicious users will do this on purpose
         – Legitimate users might have it done without their knowledge


© Copyright 2011 Denim Group - All Rights Reserved                       10
Application Permissions Model
 • Mobile devices have access to all sorts of fun stuff:
         – GPS location, camera, microphone, emails, contacts, SMS, etc
 • How do you determine what an application can do?
         – iPhone: Prompts for access
         – Android: Permissions defined in the AndroidManifest.xml file


 • As a developer you should (obviously) know what your application
   should be able to do
         – Beware 3rd party code included in your application




© Copyright 2011 Denim Group - All Rights Reserved                        11
Local Storage and Encryption
 • Best solution: Just do not store anything sensitive on the device
         – Force the user to log in for every usage – no storage of usernames and passwords
         – Do not cache sensitive data like account numbers, etc
 • But I really want to…
         – Encrypt the data, but…
         – Realize that key management issues make this a reasonably futile pursuit
 • Example: iOS keyring
         –     “Correct” way to store application secrets
         –     http://www.sit.fraunhofer.de/en/forschungsbereiche/projekte/Lost_iPhone.jsp
         –     Oops…
         –     Android is even worse
 • Hope on the horizon?
         –     http://www.engadget.com/2011/02/02/android-3-0-honeycomb-can-encrypt-all-your-data-needs-a-full/


© Copyright 2011 Denim Group - All Rights Reserved                                                                12
Network Communication and Encryption
 • Data returned from calls to network endpoints should be treated as
   untrusted
         – Make sure to inform your static analysis tool…


 • Mobile devices connect to a variety of networks
         – Carrier, trusted wifi, untrusted wifi, bluetooth
 • Encrypt your network traffic
         – And verify server certificates…
         – (Android has a helper class that WORKS AROUND THIS PROTECTION)
                  • SSLCertificateSocketFactory




© Copyright 2011 Denim Group - All Rights Reserved                          13
Native Code Execution
 • iOS: Objective C compiled down to ARM machine code
         – All native, all the time


 • Android: Java compiled to DEX bytecode
         – Can make native calls via the Native Development Kit (NDK)


 • Windows Phone 7:
         – No access to native code
         – Unless you are among a handful of ISVs like Adobe




© Copyright 2011 Denim Group - All Rights Reserved                      14
Browser Behavior
 • Many mobile application are a combination of “apps” and web content
 • Keep track of WebKit vulnerabilities:
         – http://www.webkit.org/
 • Most mobile browsers aggressively cache and might ignore standard
   cache behavior




© Copyright 2011 Denim Group - All Rights Reserved                       15
In-Depth: Mobile Browser Content Handling
    • Many mobile platforms allow you to designate applications to handle
      content found in web pages
            – By URI protocol
            – By content type


    • Provide a “premium” experience for users who have the target app
      installed

    • Examples:
            – tel:// URLs initiating phone calls
            – maps:// URLs to display maps




© Copyright 2011 Denim Group - All Rights Reserved                          16
iPhone/iPad URL Schemes
 • iOS applications can
   be set up to “handle”
   certain URL schemes
 • Defined in the
   application’s Info.plist
 • Binary format:
   annoying



© Copyright 2011 Denim Group - All Rights Reserved   17
Decoding plist Files
                                                     • plutil -convert xml1 Info.plist
                                                     • Much nicer




© Copyright 2011 Denim Group - All Rights Reserved                                       18
iOS URL Handlers
 • XPath: Look for:
 /plist/dict/array/dict[key='CFBundleURLSchemes']/array/string
 • Now you know the URL Schemes the app handles

 • SANS blog post on this issue in iOS:
         – http://software-security.sans.org/blog/2010/11/08/insecure-handling-url-schemes-
           apples-
           ios/?utm_source%253Drss%2526utm_medium%253Drss%2526utm_campaign%2
           53Dinsecure-handling-url-schemes-apples-ios
         – Too long to type? http://bit.ly/ezqdK9




© Copyright 2011 Denim Group - All Rights Reserved                                            19
Android Intents
 • Intents are facilities for late-binding messaging between applications
         – http://developer.android.com/guide/topics/intents/intents-filters.html


 • One use is to allow applications to register to receive messages from
   the Browser when certain types of content are received
         – Like iOS URL Schemes but an even more comprehensive IPC mechanism




© Copyright 2011 Denim Group - All Rights Reserved                                  20
What’s Up With My XML Files?
                                                     • Binary encoding

                                                     • Use axml2xml.pl to
                                                       convert them to text




                                                     http://code.google.com/p/android-random/downloads/detail?name=axml2xml.pl



© Copyright 2011 Denim Group - All Rights Reserved                                                                               21
Much Better
 • Now we see:
         – Screens in application
         – Permissions required
           by the application
         – Intents applications is
           registered to consume
         – And so on




© Copyright 2011 Denim Group - All Rights Reserved   22
Intent Filter Example
 <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="danco" />
 </intent-filter>



 • Action: What to do?
 • Data: Scheme is URI “protocol” to handle
 • Category BROWSABLE: Allow this Action to be
   initiated by the browser
© Copyright 2011 Denim Group - All Rights Reserved                  23
Intent Filter Demo – Manual Launch, HTML Page




© Copyright 2011 Denim Group - All Rights Reserved   24
Intent Filter Demo – Anchor Launch, IFrame
 Launch




© Copyright 2011 Denim Group - All Rights Reserved   25
I’m a Security Tester. Why Do I Care?
 • URL handlers are remotely-accessible attack surface

 • This is a way for you to “reach out and touch” applications installed on
   a device if you can get a user to navigate to a malicious page
 • Send in arbitrary URLs via links or (easier) embedded IFRAMEs

 • Example: iOS Skype application used to automatically launch the
   Skype application and initiate a call when it encountered a skype://
   URL
         – Apple’s native Phone handle for tel:// URLs would confirm before a call was made




© Copyright 2011 Denim Group - All Rights Reserved                                            26
I’m a Developer. Why Do I Care?
 • See the previous slide. Bad guys care. So should you. Please.

 • Content passed in via these handlers must be treated as untrusted
         – Positively validate
         – Enforce proper logic restrictions


 • All:
         – Should a malicious web page be able to cause this behavior?
                  • Make phone call, transmit location, take photo, start audio recording, etc
 • iOS:
         – Validate inputs to handleOpenURL: message
 • Android:
         – Validate data brought in from Action.getIntent() method
© Copyright 2011 Denim Group - All Rights Reserved                                               27
So What Should Developers Do?
 • Threat model your smartphone applications
         – More complicated architectures -> more opportunities for problems


 • Watch what you store on the device
         – May have PCI, HIPAA implications


 • Be careful consuming 3rd party services
         – Who do you love? Who do you trust?


 • Be careful deploying enterprise web services
         – Very attractive target for bad guys
         – Often deployed “under the radar”


© Copyright 2011 Denim Group - All Rights Reserved                             28
So What Should Security People Do?
 • Find out about smartphone projects
         – Not always done by your usual development teams
         – R&D, “Office of the CTO,” Marketing


 • Assess the security implications of smartphone applications
         – What data is stored on the device?
         – What services are you consuming?
         – Are new enterprise services being deployed to support the application?




© Copyright 2011 Denim Group - All Rights Reserved                                  29
Online
 • Code, slides and videos online:

         www.smartphonesdumbapps.com




© Copyright 2011 Denim Group - All Rights Reserved   30
Questions?
 Dan Cornell
 dan@denimgroup.com
 Twitter: @danielcornell

 www.denimgroup.com
 (210) 572-4400




© Copyright 2011 Denim Group - All Rights Reserved   31

More Related Content

What's hot (20)

PDF
Mobile Security
Xavier Mertens
 
PDF
Mobile Application Security
Dirk Nicol
 
PPTX
Security testing of mobile applications
GTestClub
 
PPTX
Mobile security
priyanka pandey
 
PDF
New trends in Payments Security: NFC & Mobile
SISA Information Security Pvt.Ltd
 
PDF
Tips and Tricks for Building Secure Mobile Apps
TechWell
 
PPT
Udløs potentialet i Enterprise Mobility, Vijay Dheap, IBM US
IBM Danmark
 
PDF
Malware on Smartphones and Tablets - The Inconvenient Truth
AGILLY
 
PPTX
Securing Mobile Banking Apps - You Are Only as Strong as Your Weakest Link
IBM Security
 
PDF
IBM Mobile Analyzer Saves the Day
IBM Security
 
PDF
Bringing Government and Enterprise Security Controls to the Android Endpoint
Hamilton Turner
 
PDF
CNIT 128 Ch 1: The mobile risk ecosystem
Sam Bowne
 
PDF
Security Testing Mobile Applications
Denim Group
 
PDF
Mobile security - Intense overview
PrivateWave Italia SpA
 
PPT
Mobile Device Security
John Rhoton
 
PPTX
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Security
 
PPTX
Chapter 4
NorazlinaAbdullah4
 
PDF
Unicom Conference - Mobile Application Security
Subho Halder
 
PDF
How to Hack a Cryptographic Key
IBM Security
 
PPTX
Dark Clouds and Rainy Days, the Bad Side of Cloud Computing
David Rogers
 
Mobile Security
Xavier Mertens
 
Mobile Application Security
Dirk Nicol
 
Security testing of mobile applications
GTestClub
 
Mobile security
priyanka pandey
 
New trends in Payments Security: NFC & Mobile
SISA Information Security Pvt.Ltd
 
Tips and Tricks for Building Secure Mobile Apps
TechWell
 
Udløs potentialet i Enterprise Mobility, Vijay Dheap, IBM US
IBM Danmark
 
Malware on Smartphones and Tablets - The Inconvenient Truth
AGILLY
 
Securing Mobile Banking Apps - You Are Only as Strong as Your Weakest Link
IBM Security
 
IBM Mobile Analyzer Saves the Day
IBM Security
 
Bringing Government and Enterprise Security Controls to the Android Endpoint
Hamilton Turner
 
CNIT 128 Ch 1: The mobile risk ecosystem
Sam Bowne
 
Security Testing Mobile Applications
Denim Group
 
Mobile security - Intense overview
PrivateWave Italia SpA
 
Mobile Device Security
John Rhoton
 
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Security
 
Unicom Conference - Mobile Application Security
Subho Halder
 
How to Hack a Cryptographic Key
IBM Security
 
Dark Clouds and Rainy Days, the Bad Side of Cloud Computing
David Rogers
 

Viewers also liked (11)

PPTX
Android application design
Uday Sharma
 
PDF
SN-Security Architecture for Mobile Computing and IoT
Sukumar Nayak
 
PDF
Cloud-powered Cross-platform Mobile Apps on AWS
Danilo Poccia
 
PPTX
[Vietnam Mobile Day 2013] - Designing input form for smartphone application
AiTi Education
 
PPTX
Designing for Android - Anjan Shrestha
MobileNepal
 
PDF
Android training day 3
Vivek Bhusal
 
PPT
Information Warfare
dibyendupaul
 
PPTX
How iOS and Android Handle Security Webinar
Denim Group
 
PPTX
Mobile Application Security
Ishan Girdhar
 
PDF
Designing an Android App from Idea to Market
Tony Hillerson
 
PPT
Android ppt
blogger at indiandswad
 
Android application design
Uday Sharma
 
SN-Security Architecture for Mobile Computing and IoT
Sukumar Nayak
 
Cloud-powered Cross-platform Mobile Apps on AWS
Danilo Poccia
 
[Vietnam Mobile Day 2013] - Designing input form for smartphone application
AiTi Education
 
Designing for Android - Anjan Shrestha
MobileNepal
 
Android training day 3
Vivek Bhusal
 
Information Warfare
dibyendupaul
 
How iOS and Android Handle Security Webinar
Denim Group
 
Mobile Application Security
Ishan Girdhar
 
Designing an Android App from Idea to Market
Tony Hillerson
 
Ad

Similar to Designing Secure Mobile Apps (20)

PDF
Smart Phones Dumb Apps
Denim Group
 
PDF
CNIT 128 8: Mobile development security
Sam Bowne
 
PPT
Mobile Apps Security
Xavier Mertens
 
PDF
C0c0n 2011 mobile security presentation v1.2
Santosh Satam
 
PPTX
Building a Mobile Security Program
Denim Group
 
PDF
Mobile Application Security
cclark_isec
 
PPTX
Windows Phone 8 Security and Testing WP8 Apps
Jorge Orchilles
 
PDF
Building & Managing The Lifecycle of Mobile Apps For The Enterprise
Apperian
 
PPTX
Mobile Application Development Unit 1.pptx
DheekshithaPasala
 
PPTX
Workshop 12-06 - Architectures for Enterprise Mobile Applications
RABS
 
PDF
Smart Bombs: Mobile Vulnerability and Exploitation
SecureState
 
PPT
Mobile code mining for discovery and exploits nullcongoa2013
Blueinfy Solutions
 
PDF
Pentesting Mobile Applications (Prashant Verma)
ClubHack
 
PPTX
Virtue Security - The Art of Mobile Security 2013
Virtue Security
 
PPTX
Webinar on Enterprise Security & android
Endeavour Software Technologies
 
PDF
Introduction to IBM Worklight: Building and connecting cross-platform mobile ...
Jeremy Siewert
 
PDF
ICSFTS_Chapter1-8.pdf
CastilloLanz
 
PDF
Dirty Little Secret - Mobile Applications Invading Your Privacy
Tyler Shields
 
PDF
Planning your Dream Mobile App
Sean Katz
 
PDF
Mobile Enterprise Application Platform
Nugroho Gito
 
Smart Phones Dumb Apps
Denim Group
 
CNIT 128 8: Mobile development security
Sam Bowne
 
Mobile Apps Security
Xavier Mertens
 
C0c0n 2011 mobile security presentation v1.2
Santosh Satam
 
Building a Mobile Security Program
Denim Group
 
Mobile Application Security
cclark_isec
 
Windows Phone 8 Security and Testing WP8 Apps
Jorge Orchilles
 
Building & Managing The Lifecycle of Mobile Apps For The Enterprise
Apperian
 
Mobile Application Development Unit 1.pptx
DheekshithaPasala
 
Workshop 12-06 - Architectures for Enterprise Mobile Applications
RABS
 
Smart Bombs: Mobile Vulnerability and Exploitation
SecureState
 
Mobile code mining for discovery and exploits nullcongoa2013
Blueinfy Solutions
 
Pentesting Mobile Applications (Prashant Verma)
ClubHack
 
Virtue Security - The Art of Mobile Security 2013
Virtue Security
 
Webinar on Enterprise Security & android
Endeavour Software Technologies
 
Introduction to IBM Worklight: Building and connecting cross-platform mobile ...
Jeremy Siewert
 
ICSFTS_Chapter1-8.pdf
CastilloLanz
 
Dirty Little Secret - Mobile Applications Invading Your Privacy
Tyler Shields
 
Planning your Dream Mobile App
Sean Katz
 
Mobile Enterprise Application Platform
Nugroho Gito
 
Ad

More from Denim Group (20)

PDF
Long-term Impact of Log4J
Denim Group
 
PDF
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
PDF
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
PDF
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Denim Group
 
PDF
Application Asset Management with ThreadFix
Denim Group
 
PDF
OWASP San Antonio Meeting 10/2/20
Denim Group
 
PDF
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
Denim Group
 
PDF
Using Collaboration to Make Application Vulnerability Management a Team Sport
Denim Group
 
PDF
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Denim Group
 
PDF
Security Champions: Pushing Security Expertise to the Edges of Your Organization
Denim Group
 
PDF
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Denim Group
 
PDF
An Updated Take: Threat Modeling for IoT Systems
Denim Group
 
PPTX
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Denim Group
 
PDF
A New View of Your Application Security Program with Snyk and ThreadFix
Denim Group
 
PDF
Enabling Developers in Your Application Security Program With Coverity and Th...
Denim Group
 
PDF
AppSec in a World of Digital Transformation
Denim Group
 
PDF
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Denim Group
 
PDF
Enabling Developers in Your Application Security Program With Coverity and Th...
Denim Group
 
PDF
AppSec in a World of Digital Transformation
Denim Group
 
PDF
Enumerating Enterprise Attack Surface
Denim Group
 
Long-term Impact of Log4J
Denim Group
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Denim Group
 
Application Asset Management with ThreadFix
Denim Group
 
OWASP San Antonio Meeting 10/2/20
Denim Group
 
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
Denim Group
 
Using Collaboration to Make Application Vulnerability Management a Team Sport
Denim Group
 
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Denim Group
 
Security Champions: Pushing Security Expertise to the Edges of Your Organization
Denim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Denim Group
 
An Updated Take: Threat Modeling for IoT Systems
Denim Group
 
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Denim Group
 
A New View of Your Application Security Program with Snyk and ThreadFix
Denim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Denim Group
 
AppSec in a World of Digital Transformation
Denim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Denim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Denim Group
 
AppSec in a World of Digital Transformation
Denim Group
 
Enumerating Enterprise Attack Surface
Denim Group
 

Recently uploaded (20)

PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
July Patch Tuesday
Ivanti
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 

Designing Secure Mobile Apps

  • 1. Designing Secure Mobile Apps Guerilla Training Camp Security BSides Austin Dan Cornell © Copyright 2011 Denim Group - All Rights Reserved
  • 2. My Background • Dan Cornell, founder and CTO of Denim Group • Software developer by background (Java, .NET, etc) • OWASP San Antonio, Global Membership Committee • Denim Group – Build software with special security, performance, reliability requirements – Help organizations deal with the risk associated with their software • Code reviews and application assessments • SDLC consulting • Secure development training – instructor-led and eLearning © Copyright 2011 Denim Group - All Rights Reserved 1
  • 3. Agenda • Generic Mobile Application Threat Model • Mobile Application Design Concerns – Bypassing Platform Environment Restrictions – Application Permission Model – Local Storage and Encryption – Network Communication and Encryption – Native Code Execution – Browser Behavior • In-depth Look at Mobile Browser Content Handling • Questions © Copyright 2011 Denim Group - All Rights Reserved 2
  • 4. Tradeoffs: Value versus Risk • Mobile applications can create tremendous value for organizations – New classes of applications utilizing mobile capabilities: GPS, camera, etc – Innovating applications for employees and customers • Mobile devices and mobile applications can create tremendous risks – Sensitive data inevitably stored on the device (email, contacts) – Connect to a lot of untrusted networks (carrier, WiFi) • Most developers are not trained to develop secure applications – Fact of life, but slowing getting better • Most developers are new to creating mobile applications – Different platforms have different security characteristics and capabilities © Copyright 2011 Denim Group - All Rights Reserved 3
  • 5. Smart Phones, Dumb Apps • Lots of media focus on device and platform security – Important because successful attacks give tremendous attacker leverage • Most organizations: – Accept realities of device and platform security – Concerned about the security of their custom applications – Concerned about sensitive data on the device because of their apps – Concerned about network-available resources that support their apps • Who has smartphone application deployed for customers? • Who has had smartphone applications deployed without their knowledge? – *$!%$# marketing department… © Copyright 2011 Denim Group - All Rights Reserved 4
  • 6. Secure Mobile Development Reference • Platform-specific recommendations • Key topic areas • Provide specific, proscriptive guidance to developers building mobile applications © Copyright 2011 Denim Group - All Rights Reserved 5
  • 7. Specific Platforms • iOS (iPhone, iPad) • Android • Blackberry (in progress) • Windows Phone 7 (in progress) – Windows Mobile 6.5 (?) • Symbian (?) • Others (?) • Will be guided by demand, which is focused by new development activity © Copyright 2011 Denim Group - All Rights Reserved 6
  • 8. Topics Areas • Topic Areas – Overview of Application Development – Overview of Secure Development – Defeating Platform Environment Restrictions – Installing Applications – Application Permissions Model – Local Storage – Encryption APIs – Network Communications – Protecting Network Communications – Native Code Execution – Application Licensing and Payments – Browser URL Handling © Copyright 2011 Denim Group - All Rights Reserved 7
  • 9. Generic Mobile Application Threat Model © Copyright 2011 Denim Group - All Rights Reserved 8
  • 10. Some Assumptions for Developers • Smartphone applications are essentially thick-client applications – That people carry in their pockets – And drop in toilets – And put on eBay when the new iPhone comes out – And leave on airplanes – And so on… • Attackers will be able to access: – Target user (victim) devices – Your application binaries • What else should you assume they know or will find out? © Copyright 2011 Denim Group - All Rights Reserved 9
  • 11. Bypassing Platform Environment Restrictions • Mobile platforms, by default, make certain promises about their environment • Do not depend on these promises to keep your data and code safe – iPhone: devices can be jailbroken – Android: devices can be rooted • Impact: – Install arbitrary applications – Run applications in a debugger – Bypass file access restrictions • Malicious users will do this on purpose – Legitimate users might have it done without their knowledge © Copyright 2011 Denim Group - All Rights Reserved 10
  • 12. Application Permissions Model • Mobile devices have access to all sorts of fun stuff: – GPS location, camera, microphone, emails, contacts, SMS, etc • How do you determine what an application can do? – iPhone: Prompts for access – Android: Permissions defined in the AndroidManifest.xml file • As a developer you should (obviously) know what your application should be able to do – Beware 3rd party code included in your application © Copyright 2011 Denim Group - All Rights Reserved 11
  • 13. Local Storage and Encryption • Best solution: Just do not store anything sensitive on the device – Force the user to log in for every usage – no storage of usernames and passwords – Do not cache sensitive data like account numbers, etc • But I really want to… – Encrypt the data, but… – Realize that key management issues make this a reasonably futile pursuit • Example: iOS keyring – “Correct” way to store application secrets – http://www.sit.fraunhofer.de/en/forschungsbereiche/projekte/Lost_iPhone.jsp – Oops… – Android is even worse • Hope on the horizon? – http://www.engadget.com/2011/02/02/android-3-0-honeycomb-can-encrypt-all-your-data-needs-a-full/ © Copyright 2011 Denim Group - All Rights Reserved 12
  • 14. Network Communication and Encryption • Data returned from calls to network endpoints should be treated as untrusted – Make sure to inform your static analysis tool… • Mobile devices connect to a variety of networks – Carrier, trusted wifi, untrusted wifi, bluetooth • Encrypt your network traffic – And verify server certificates… – (Android has a helper class that WORKS AROUND THIS PROTECTION) • SSLCertificateSocketFactory © Copyright 2011 Denim Group - All Rights Reserved 13
  • 15. Native Code Execution • iOS: Objective C compiled down to ARM machine code – All native, all the time • Android: Java compiled to DEX bytecode – Can make native calls via the Native Development Kit (NDK) • Windows Phone 7: – No access to native code – Unless you are among a handful of ISVs like Adobe © Copyright 2011 Denim Group - All Rights Reserved 14
  • 16. Browser Behavior • Many mobile application are a combination of “apps” and web content • Keep track of WebKit vulnerabilities: – http://www.webkit.org/ • Most mobile browsers aggressively cache and might ignore standard cache behavior © Copyright 2011 Denim Group - All Rights Reserved 15
  • 17. In-Depth: Mobile Browser Content Handling • Many mobile platforms allow you to designate applications to handle content found in web pages – By URI protocol – By content type • Provide a “premium” experience for users who have the target app installed • Examples: – tel:// URLs initiating phone calls – maps:// URLs to display maps © Copyright 2011 Denim Group - All Rights Reserved 16
  • 18. iPhone/iPad URL Schemes • iOS applications can be set up to “handle” certain URL schemes • Defined in the application’s Info.plist • Binary format: annoying © Copyright 2011 Denim Group - All Rights Reserved 17
  • 19. Decoding plist Files • plutil -convert xml1 Info.plist • Much nicer © Copyright 2011 Denim Group - All Rights Reserved 18
  • 20. iOS URL Handlers • XPath: Look for: /plist/dict/array/dict[key='CFBundleURLSchemes']/array/string • Now you know the URL Schemes the app handles • SANS blog post on this issue in iOS: – http://software-security.sans.org/blog/2010/11/08/insecure-handling-url-schemes- apples- ios/?utm_source%253Drss%2526utm_medium%253Drss%2526utm_campaign%2 53Dinsecure-handling-url-schemes-apples-ios – Too long to type? http://bit.ly/ezqdK9 © Copyright 2011 Denim Group - All Rights Reserved 19
  • 21. Android Intents • Intents are facilities for late-binding messaging between applications – http://developer.android.com/guide/topics/intents/intents-filters.html • One use is to allow applications to register to receive messages from the Browser when certain types of content are received – Like iOS URL Schemes but an even more comprehensive IPC mechanism © Copyright 2011 Denim Group - All Rights Reserved 20
  • 22. What’s Up With My XML Files? • Binary encoding • Use axml2xml.pl to convert them to text http://code.google.com/p/android-random/downloads/detail?name=axml2xml.pl © Copyright 2011 Denim Group - All Rights Reserved 21
  • 23. Much Better • Now we see: – Screens in application – Permissions required by the application – Intents applications is registered to consume – And so on © Copyright 2011 Denim Group - All Rights Reserved 22
  • 24. Intent Filter Example <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="danco" /> </intent-filter> • Action: What to do? • Data: Scheme is URI “protocol” to handle • Category BROWSABLE: Allow this Action to be initiated by the browser © Copyright 2011 Denim Group - All Rights Reserved 23
  • 25. Intent Filter Demo – Manual Launch, HTML Page © Copyright 2011 Denim Group - All Rights Reserved 24
  • 26. Intent Filter Demo – Anchor Launch, IFrame Launch © Copyright 2011 Denim Group - All Rights Reserved 25
  • 27. I’m a Security Tester. Why Do I Care? • URL handlers are remotely-accessible attack surface • This is a way for you to “reach out and touch” applications installed on a device if you can get a user to navigate to a malicious page • Send in arbitrary URLs via links or (easier) embedded IFRAMEs • Example: iOS Skype application used to automatically launch the Skype application and initiate a call when it encountered a skype:// URL – Apple’s native Phone handle for tel:// URLs would confirm before a call was made © Copyright 2011 Denim Group - All Rights Reserved 26
  • 28. I’m a Developer. Why Do I Care? • See the previous slide. Bad guys care. So should you. Please. • Content passed in via these handlers must be treated as untrusted – Positively validate – Enforce proper logic restrictions • All: – Should a malicious web page be able to cause this behavior? • Make phone call, transmit location, take photo, start audio recording, etc • iOS: – Validate inputs to handleOpenURL: message • Android: – Validate data brought in from Action.getIntent() method © Copyright 2011 Denim Group - All Rights Reserved 27
  • 29. So What Should Developers Do? • Threat model your smartphone applications – More complicated architectures -> more opportunities for problems • Watch what you store on the device – May have PCI, HIPAA implications • Be careful consuming 3rd party services – Who do you love? Who do you trust? • Be careful deploying enterprise web services – Very attractive target for bad guys – Often deployed “under the radar” © Copyright 2011 Denim Group - All Rights Reserved 28
  • 30. So What Should Security People Do? • Find out about smartphone projects – Not always done by your usual development teams – R&D, “Office of the CTO,” Marketing • Assess the security implications of smartphone applications – What data is stored on the device? – What services are you consuming? – Are new enterprise services being deployed to support the application? © Copyright 2011 Denim Group - All Rights Reserved 29
  • 31. Online • Code, slides and videos online: www.smartphonesdumbapps.com © Copyright 2011 Denim Group - All Rights Reserved 30
  • 32. Questions? Dan Cornell [email protected] Twitter: @danielcornell www.denimgroup.com (210) 572-4400 © Copyright 2011 Denim Group - All Rights Reserved 31