SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
Developing Secure Mobile Applications!
           !
           Dan Cornell!
           @danielcornell




© Copyright 2013 Denim Group - All Rights Reserved
Bio: Dan Cornell
 •  Founder and CTO, Denim Group
 •  Software developer by background (Java, .NET)

 •  OWASP
         –  San Antonio Chapter Leader
         –  Open Review Project Leader
         –  Global Membership Committee


 •  Speaking
         –  RSA, SOURCE Boston
         –  OWASP AppSec, Portugal Summit, AppSecEU Dublin
         –  ROOTS in Norway



© Copyright 2013 Denim Group - All Rights Reserved           2
Denim Group Background

  •  Secure software services and products company
           –  Builds secure software
           –  Helps organizations assess and mitigate risk of in-house developed and third party
              software
           –  Provides classroom training and e-Learning so clients can build software securely
  •  Software-centric view of application security
           –  Application security experts are practicing developers
           –  Development pedigree translates to rapport with development managers
           –  Business impact: shorter time-to-fix application vulnerabilities
  •  Culture of application security innovation and contribution
           –  Develops open source tools to help clients mature their software security programs
                   •  Remediation Resource Center, ThreadFix, Sprajax
           –  OWASP national leaders & regular speakers at RSA, SANS, OWASP, ISSA, CSI
           –  World class alliance partners accelerate innovation to solve client problems


© Copyright 2013 Denim Group - All Rights Reserved                                                 3
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 2013 Denim Group - All Rights Reserved                                         4
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 2013 Denim Group - All Rights Reserved                                   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 2013 Denim Group - All Rights Reserved                                   6
Mobile Application Security
 •  Mobile technologies have their own distinct risks
 •  Many mobile solutions are not as secure as you may think

 •  What goes wrong?
         –    Poor assumptions about what mobile technology “buys you”
         –    Device features that undermine security
         –    Trust in untrustworthy assets
         –    Failure to utilize available solutions




© Copyright 2013 Denim Group - All Rights Reserved
The Distinguishing Features of Mobile
 •  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…


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

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




© Copyright 2013 Denim Group - All Rights Reserved                      8
What Does this Mean for Security?
 •  IMPORTANT: It is really the system as a whole you care about
         –    Application plus…
         –    3rd party web services
         –    Enterprise services
         –    And so on


 •  How can attackers gain unauthorized access?
         –    Attacker steals or accesses a lost device
         –    Malicious application
         –    Attacker reverse engineers an application to access corporate resources
         –    And so on…


 •  The most “interesting” weaknesses and vulnerabilities we find are in
    mobile applications’ interactions with supporting services
© Copyright 2013 Denim Group - All Rights Reserved                                      9
What Does this Mean for Security?
 •  Mobile applications are different than web applications
         –  Can’t just fire up an automated scanner and turn up a bunch of SQL injection and
            XSS vulnerabilities
         –  Usually…




© Copyright 2013 Denim Group - All Rights Reserved                                             10
Mobile Application Security
 •  Typical Mobile Threats
         –  Data Flow
         –  Functional
         –  Abuse Cases


 •  Mobile Security Assessments
         –  Assessment Approaches
         –  Tools for Review and Testing




© Copyright 2013 Denim Group - All Rights Reserved
Existing Resources for Mobile Security
 •  Secure Implementation Guidance
         –  Official development guides do not cover security risks comprehensively
         –  However, they do cover their platform solutions to many security concerns


 •  OWASP Mobile Security Project Top 10 Mobile Risks

 •  Veracode Mobile App Top 10 List




© Copyright 2013 Denim Group - All Rights Reserved                                      12
OWASP Mobile Security Project Top 10 Mobile Risks




© Copyright 2013 Denim Group - All Rights Reserved   13
OWASP Mobile Security Project Top 10 Mobile Risks
 1.  Insecure Data Storage
 2.  Weak Server Side Controls
 3.  Insufficient Transport Layer Protection
 4.  Client Side Injection
 5.  Poor Authorization and Authentication
 6.  Improper Session Handling
 7.  Security Decisions Via Untrusted Inputs
 8.  Side Channel Data Leakage
 9.  Broken Cryptography
 10.  Sensitive Information Disclosure

 https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_Ten_Mobile_Risks
© Copyright 2013 Denim Group - All Rights Reserved                                        14
Mobile App Top 10 List
 A.  Malicious Functionality
        1.      Activity monitoring and data retrieval
        2.      Unauthorized dialing, SMS and payments
        3.      Unauthorized network connectivity (exfiltration or command & control)
        4.      UI Impersonation
        5.      System modification (rootkit, APN proxy config)
        6.      Logic or time bomb
 B.  Vulnerabilities
        1.      Sensitive data leakage (inadvertent or side channel)
        2.      Unsafe sensitive data storage
        3.      Unsafe sensitive data transmission
        4.      Hardcoded passwords/keys


 http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/


© Copyright 2013 Denim Group - All Rights Reserved                                      15
Mobile Attack Scenarios
 •     Borrowed Device
 •     Stolen Device
 •     Malicious Application Functionality
 •     Other Malicious Application
 •     Attacks from Mobile Web Services
 •     Attacks against Mobile Web Services
 •     Attacks from Local Network
 •     Abuse of Device Feature




© Copyright 2013 Denim Group - All Rights Reserved
Approaches for Identifying Threats
 •  Use Cases for Business
         –  Useful for identifying flaws with specific application features
 •  Data Flow for Architecture
         –  What threats can we identify looking at the application’s data flow?
         –  The whole system’s data stores, services, processes, etc.
         –  The interaction among those components
 •  Functional Security
         –  Here are the security features. How could an attacker defeat them?
 •  Attacker’s Goals for Threat Trees
         –  If you are an attacker, what would you want to accomplish?
         –  How would you go about achieving the malicious goal?
         –  Useful for identifying any erroneous security assumptions
 •  No one approach is perfect – these are essentially brain storming
    techniques
© Copyright 2013 Denim Group - All Rights Reserved                                 17
Typical Mobile Threats
                              User
                                                              Mobile	
      Mobile	
  Web	
  
                                                            Application
                                                                             Services



                                         Local	
  App	
  
                                          Storage             Device	
  
                                                             Keychain
                                                                           Main Site Pages
 •     Spoofing: Users to the Mobile Application
 •     Spoofing: Web Services to Mobile Application
 •     Tampering: Mobile Application
 •     Tampering: Device Data Stores
 •     Disclosure: Device Data Stores or Residual Data
 •     Disclosure: Mobile Application to Web Service
 •     Denial of Service: Mobile Application
 •     Elevation of Privilege: Mobile Application or Web Services

© Copyright 2013 Denim Group - All Rights Reserved
Spoofing: Users to the Mobile Application
 •  Borrowed Device
 •  Stolen Device
 •  Other Malicious Application
                                                     Attacker
                                                                                     Mobile	
  
                                                                                   Application




                                                                Local	
  App	
  
                                                                 Storage             Device	
  
                                                                                    Keychain




© Copyright 2013 Denim Group - All Rights Reserved
Spoofing: Attacker to Mobile Web Services
 •  Attacks against Mobile Web Services



                                                      Attacker




                            User
                                                       Mobile	
  
                                                     Application    Mobile	
  Web	
  Services




© Copyright 2013 Denim Group - All Rights Reserved
Spoofing: Web Services to Mobile Application
 •  Borrowed Device
 •  Other Malicious Application


                                                                       Malicious
                                                                         Host




                           User
                                                       Mobile	
  
                                                     Application    Mobile	
  Web	
  Services




© Copyright 2013 Denim Group - All Rights Reserved
Tampering: Mobile Application
 •  Borrowed/Stolen Device
 •  Other Malicious Application


                                                     User
                                                                               Tampered	
  
                                                                               Application




                                                            Local	
  App	
  
                                                             Storage             Device	
  
                                                                                Keychain



© Copyright 2013 Denim Group - All Rights Reserved
Disclosure: Device Data Stores or Residual Data
 •  Borrowed/Stolen Device
 •  Malicious Application
    Functionality
 •  Other Malicious Application                      User
                                                                                    Mobile	
  
 •  Attacks from Mobile Web                                                       Application
    Services


                                                            Local	
  SQLIte	
  
                                                              Storage               Device	
  
                                                                                   Keychain




© Copyright 2013 Denim Group - All Rights Reserved
Disclosure: Mobile Application to Web Service
 •  Attacks from Local Network
 •  Other Malicious Application


                                                                    Attacker




                                 User
                                                       Mobile	
  
                                                     Application               Mobile	
  Web	
  Services




© Copyright 2013 Denim Group - All Rights Reserved
Other Data-Flow Threats
 •  Denial of Service
 •  Elevation of Privilege


                  User                                               USAA
                                                                    Attacker
                                                       Mobile	
     Member                          Mobile	
  
                                                     Application                                  Application




                             Local	
  App	
                                    Local	
  App	
  
                              Storage                  Device	
                 Storage             Device	
  
                                                      Keychain                                     Keychain




© Copyright 2013 Denim Group - All Rights Reserved
Functional Security Threats
 •     Authentication                                We have already discussed these
 •     Session Management                            for a general web environment and
 •     Access Control                                will look at them for the mobile
                                                     platforms.
 •     Input Validation
 •     Output Encoding/Escaping
 •     Cryptography
 •     Error Handling and Logging
 •     Data Protection
 •     Communication Security
 •     Configuration



© Copyright 2013 Denim Group - All Rights Reserved                                       26
Abuse Cases
 •  Abuse Cases help identify threats from the attacker’s perspective
         –  What the attacker wants
         –  How they would try to achieve those goals
 •  Look over each application use case
         –  What functionality fulfills that use case?
         –  How would an attacker attempt to abuse that functionality?
 •  If a use-case accounts for a user requesting a document, then the
    abuse case would account for a request to a document that they are
    not allowed to see or one that doesn't exist
 •  If a use-case accounts for a privileged user approving a transaction,
    then the abuse case would account for a lower-level user attempting
    to force approval for the transaction


© Copyright 2013 Denim Group - All Rights Reserved                          27
1.  ---

     Mobile Assessment
     Overview




© Copyright 2013 Denim Group - All Rights Reserved             28
Assessment Activities
 Type of Analysis                                    Activities
 Static Analysis
       Source Code                                   Source code scanning
                                                     Manual source code review
       Binary                                        Reverse engineering
 Dynamic Analysis                                    Debugger execution
                                                     Traffic capture via proxy
                                                     Analyze remote services
 Forensic Analysis                                   File permission analysis
                                                     File content analysis




© Copyright 2013 Denim Group - All Rights Reserved                               29
The General Assessment Approach

 •  Identification
         –  Help identify what applications have highest priority to assess
 •  Preparation
         –  Obtain requisite code and/or access
 •  Baseline Review and Testing
         –  Account for risks inherent to the technology and common features
         –  Commercial scanning tools with manual auditing
 •  Targeted Testing
         –  Account for identified threats, data flow, abuse cases
         –  Follow up with suspect behavior in the baseline review and testing
 •  Reporting
         –  Rate vulnerabilities
         –  Provide remediation recommendations


© Copyright 2013 Denim Group - All Rights Reserved                               30
Static Analysis
 •  Source Code Scanning
 •  Manual Code Reviews
 •  Advantages
         –  Identifies flaws during integration, when it is easier to address issues
         –  Developers can identify flaws in their own code before checking it in
         –  Many projects already have a code review process in-place
 •  Disadvantages
         –    Freeware tools do not address security well
         –    Licensed tools are a significant investment
         –    Manual review can be unstructured and time-consuming without licensed tools
         –    Not ideal for discovering logical vulnerabilities




© Copyright 2013 Denim Group - All Rights Reserved                                          31
Dynamic Analysis
 •     Integrate abuse cases into unit and automated testing
 •     Use application scanning tools
 •     Perform a dedicated penetration test by security staff or a 3rd party
 •     Advantages
         –  Generally more time-efficient than manual code review
         –  Good for discovering logical vulnerabilities
 •  Disadvantages
         –  Requires fully functional features to test
         –  Security staff may not have application security training or experience
         –  Scanning tools may have difficulty with unusual applications




© Copyright 2013 Denim Group - All Rights Reserved                                    32
Tools vs. Manual Review
 •  As we have discussed, some tests are better done manually
 •  Automated tools are well suited to discover implementation flaws
         –    Cross-site scripting
         –    Injection
         –    Information leakage or improper error handling
         –    Transport layer security
 •  Manual testing is a better approach to discover design flaws
         –    Direct object references
         –    Malicious file execution
         –    Cross-site request forgery
         –    Authentication/Authorization




© Copyright 2013 Denim Group - All Rights Reserved                     33
The Scope of Mobile Security Review




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




© Copyright 2013 Denim Group - All Rights Reserved   35
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 2013 Denim Group - All Rights Reserved                      36
Let’s Take Apart Some Apps
  •  Pandemobium Stock Trader Application
  •  Android and iOS versions



  •  Functionality
          –    Log in
          –    Track stock tips
          –    Make stock trades
          –    Get stock tips
          –    Share stock tips



© Copyright 2013 Denim Group - All Rights Reserved   37
Pandemobium Stock Trader Application
 •  We will use as an example through the class

 •  Available for free online
         –  https://code.google.com/p/pandemobium/
         –  Look for updates! Share with your friends!


 •  Components:
         –    iPhone application
         –    Android application
         –    Supporting web services (Java/JSP web application)
         –    User manual (HTML)
         –    Vulnerability list (HTML)


© Copyright 2013 Denim Group - All Rights Reserved                 38
Pandemobium Stock Trader Application




© Copyright 2013 Denim Group - All Rights Reserved   39
So What Does a Bad Guy See? (Android Edition)
 •  Install the application onto a device
 •  Root the device
 •  Pull the application’s APK file onto a workstation for analysis

 •  APK files are ZIP files
 •  They contain:
         –  AndroidManifest.xml
         –  Other binary XML files in res/
         –  classes.dex DEX binary code




© Copyright 2013 Denim Group - All Rights Reserved                    40
Generic Android Application Threat Model




© Copyright 2013 Denim Group - All Rights Reserved   41
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 2013 Denim Group - All Rights Reserved                                                                               42
Much Better
 •  Now we see:
         –  Screens in application
         –  Permissions required
            by the application
         –  Intents applications is
            registered to consume
         –  And so on




© Copyright 2013 Denim Group - All Rights Reserved   43
Do the Same Thing With the Rest of Them
 •  Recurse through the res/ subdirectory
 •  UI layouts, other resources




© Copyright 2013 Denim Group - All Rights Reserved   44
What About the Code?
 •  All of it is stuffed in classes.dex

 •  Android phones use DEX rather than Java bytecodes
         –  Register-based virtual machine rather than stack-based virtual machine


 •  Options:
         –  Look at DEX assembly via de-dexing
         –  Convert to Java bytecode and then to Java source code




© Copyright 2013 Denim Group - All Rights Reserved                                   45
De-Dex to See DEX Assembly
                                                     •  DEX bytecode ~=
                                                        Java bytecode
                                                     •  All code goes in one
                                                        file
                                                     •  Disassemble to DEX
                                                        assembly with dedexer


                                                     http://dedexer.sourceforge.net/
© Copyright 2013 Denim Group - All Rights Reserved                                     46
Lots of Information
 •  Like the fun-fun world
    of Java disassembly
    and decompilation
         –  (We’ll get to the DEX
            decompilation in a
            moment)
 •  LOTS of information
    available


© Copyright 2013 Denim Group - All Rights Reserved   47
But Can I Decompile to Java?
 •  Yes
 •  We
 •  Can

 •  Convert to Java bytecodes with dex2jar
         –  http://code.google.com/p/dex2jar/
         –  (Now you can run static analysis tools like Findbugs)


 •  Convert to Java source code with your favorite Java decompiler
         –  Everyone has a favorite Java decompiler, right?




© Copyright 2013 Denim Group - All Rights Reserved                   48
DEX Assembly Versus Java Source Code
 •  De-DEXing works pretty reliably
 •  DEX assembly is easy to parse with grep
 •  DEX assembly is reasonably easy to manually analyze

 •  Java decompilation works most of the time
 •  Java source code can be tricky to parse with grep
 •  Java source code is very easy to manually analyze

 •  Verdict:
         –  Do both!
         –  Grep through DEX assembly to identify starting points for analysis
         –  Analyze Java source in detail

© Copyright 2013 Denim Group - All Rights Reserved                               49
So What Did We Learn?
 •  Look at the string constants
         –  URLs, hostnames, web paths


 •  Look at the de-DEXed assembly
         –  Method calls
         –  Data flow


 •  Developers: BAD NEWS
         –  The bad guys have all your code
         –  They might understand your app better than you
         –  How much sensitive intellectual property do you want to embed in your mobile
            application now?


© Copyright 2013 Denim Group - All Rights Reserved                                         50
Is There Sensitive Data On the Device?
 •  Look at the disassemled DEX code

 •  Grep for “File”




© Copyright 2013 Denim Group - All Rights Reserved   51
What About Java Source Code?
 •  Get the source code with JD-Gui
         –  http://java.decompiler.free.fr/




© Copyright 2013 Denim Group - All Rights Reserved   52
Look for Files With Bad Permissions
 •  Look for file open operations using
         –  Context.MODE_WORLD_READABLE
         –  (translates to “1”)




© Copyright 2013 Denim Group - All Rights Reserved   53
Next: What Is On the Server-Side
 •  To access sensitive data on a device:
         –  Steal a device
         –  Want more data?
         –  Steal another device


 •  To access sensitive data from web services
         –  Attack the web service


 •  String constants for URLs, hostnames, paths

 •  Examples:
         –  3rd party web services
         –  Enterprise web services
© Copyright 2013 Denim Group - All Rights Reserved   54
So Now What?
 •  3rd Party Web Services
         –  Is data being treated as untrusted?
         –  Google promised to “not be evil”
                  •  For everyone else…


 •  Enterprise Web Services
         –  Did you know these were deployed?
         –  Have these been tested for possible security flaws?
         –  Stealing records en-masse is preferable to stealing them one-at-a-time




© Copyright 2013 Denim Group - All Rights Reserved                                   55
Web Services Example
 •  Trumped up example, but based on real life

 •  Given a web services endpoint, what will a bad guy do?

 •  Sequence:
         –    Request a junk method “abcd”
         –    Get a “No method ‘abcd’ available”
         –    Request a method “<script>alert(‘hi’);</script>”
         –    Hilarity ensues…




© Copyright 2013 Denim Group - All Rights Reserved               56
What Is Wrong With the Example Application?
 •     Sensitive data stored on the device unprotected
 •     Trusts data from 3rd party web services
 •     Exposes enterprise web services to attackers
 •     Enterprise web services vulnerable to reflected XSS attacks
 •     And so on…

 •  This is a trumped-up example with concentrated vulnerabilities, but…

 •  All of these reflect real-world examples of vulnerabilities
         –  Public breaches
         –  Application assessments


© Copyright 2013 Denim Group - All Rights Reserved                         57
What About iPhones/iPads?
 •  Objective-C compiled to ARMv6, ARMv7 machine code
         –  Not as fun (easy) as Java compiled to DEX bytecode
         –  But … subject to buffer overflows, memory handling issues, other native code fun


 •  Apps from iTunes Store
         –  Encrypted
         –  Used to be “easy” (well, mechanical) to break encryption with a jailbroken phone
            and a debugger
         –  Now trickier (but likely not insurmountable)
         –  And the default apps are not encrypted…




© Copyright 2013 Denim Group - All Rights Reserved                                             58
Run “strings” on the Binary
 •  Web services endpoints: URLs, hostnames, paths

 •  Objective-C calling conventions:

 [myThing doStuff:a second:b third:c];!

 becomes

 obj_msgsend(myThing, “doStuff:second:third:”, a, b, c);!




© Copyright 2013 Denim Group - All Rights Reserved      59
Run “otool” on the Binary
 •  otool –l <MyApp>
         –  View the load commands
         –  Segment info, encryption info, libraries in use


 •  otool –t –v <MyApp>
         –  Disassemble the text segment to ARM assembly
         –  If run on an encrypted application you get garbage


 •  otool –o <MyApp>
         –  Print the Objective-C segment


 •  And so on…


© Copyright 2013 Denim Group - All Rights Reserved               60
Net Result for iPhone/iPad
 •  More obscure
         –  But does that mean more secure?


 •  Can still retrieve a tremendous amount of information
 •  Can still observe a running application

 •  “Security” based on obscurity is not durable




© Copyright 2013 Denim Group - All Rights Reserved          61
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 2013 Denim Group - All Rights Reserved                           62
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 2013 Denim Group - All Rights Reserved   63
Decoding plist Files
                                                     •  plutil -convert xml1 Info.plist
                                                     •  Much nicer




© Copyright 2013 Denim Group - All Rights Reserved                                        64
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%253Dinsecure-handling-url-schemes-apples-ios
         –  Too long to type? http://bit.ly/ezqdK9




© Copyright 2013 Denim Group - All Rights Reserved                                             65
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 2013 Denim Group - All Rights Reserved                                   66
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 2013 Denim Group - All Rights Reserved                  67
Intent Filter Demo – Manual Launch, HTML Page




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




© Copyright 2013 Denim Group - All Rights Reserved   69
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 2013 Denim Group - All Rights Reserved                                             70
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 2013 Denim Group - All Rights Reserved                                                71
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 2013 Denim Group - All Rights Reserved                              72
Secure Mobile Development Reference
 •  Platform-specific recommendations
 •  Key topic areas

 •  Provide specific, proscriptive guidance to developers building mobile
    applications




© Copyright 2013 Denim Group - All Rights Reserved                          73
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 2013 Denim Group - All Rights Reserved                  74
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 2013 Denim Group - All Rights Reserved          75
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 2013 Denim Group - All Rights Reserved                                   76
Resources
 •  axml2xml.pl (Convert Android XML files to normal XML)
         –  http://code.google.com/p/android-random/downloads/detail?name=axml2xml.pl
 •  Dedexer (Convert DEX bytecodes into DEX assembler)
         –  http://dedexer.sourceforge.net/
 •  Dex2jar (Convert DEX bytecode in Java bytecode)
         –  http://code.google.com/p/dex2jar/
 •  JD-GUI (Convert Java bytecode to Java source code)
         –  http://java.decompiler.free.fr/
 •  otool (Get information about iPhone binaries)
         –    http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/otool.1.html




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

         www.smartphonesdumbapps.com




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

 www.denimgroup.com
 blog.denimgroup.com
 (210) 572-4400




© Copyright 2013 Denim Group - All Rights Reserved   79

Contenu connexe

Tendances

How to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingHow to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingDaniel Knott
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingSoftheme
 
Security Testing Mobile Applications
Security Testing Mobile ApplicationsSecurity Testing Mobile Applications
Security Testing Mobile ApplicationsDenim Group
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingvodQA
 
Mobile operating system ppt
Mobile operating system pptMobile operating system ppt
Mobile operating system pptSantosh Kumar
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsPaul Sons
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppttirupathinews
 
Introduction to mobile application
Introduction to mobile applicationIntroduction to mobile application
Introduction to mobile applicationK Senthil Kumar
 
Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On AndroidTeachMission
 
Comparative Study On Mobile Operating Systems
  Comparative Study On Mobile Operating Systems   Comparative Study On Mobile Operating Systems
Comparative Study On Mobile Operating Systems Hardik Jain
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobiGnosis
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applicationsHassan Dar
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing StrategyankitQA
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorialLokesh Agrawal
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with AppiumKnoldus Inc.
 

Tendances (20)

How to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App TestingHow to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App Testing
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Security Testing Mobile Applications
Security Testing Mobile ApplicationsSecurity Testing Mobile Applications
Security Testing Mobile Applications
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Mobile operating system ppt
Mobile operating system pptMobile operating system ppt
Mobile operating system ppt
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Introduction to mobile application
Introduction to mobile applicationIntroduction to mobile application
Introduction to mobile application
 
Google Firebase presentation - English
Google Firebase presentation - EnglishGoogle Firebase presentation - English
Google Firebase presentation - English
 
Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On Android
 
Comparative Study On Mobile Operating Systems
  Comparative Study On Mobile Operating Systems   Comparative Study On Mobile Operating Systems
Comparative Study On Mobile Operating Systems
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with Appium
 

En vedette

Designing Secure Mobile Apps
Designing Secure Mobile AppsDesigning Secure Mobile Apps
Designing Secure Mobile AppsDenim Group
 
Mobile Application Security Code Reviews
Mobile Application Security Code ReviewsMobile Application Security Code Reviews
Mobile Application Security Code ReviewsDenim Group
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSukumar Nayak
 
Mobile application security and threat modeling
Mobile application security and threat modelingMobile application security and threat modeling
Mobile application security and threat modelingShantanu Mitra
 
What Einstein Feared
What Einstein FearedWhat Einstein Feared
What Einstein FearedOH TEIK BIN
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSDanilo Poccia
 
Android application design
Android application designAndroid application design
Android application designUday Sharma
 
Attacking and Defending Mobile Applications
Attacking and Defending Mobile ApplicationsAttacking and Defending Mobile Applications
Attacking and Defending Mobile ApplicationsJerod Brennen
 
Mobile web development techniques (and Opera's developer tools)
Mobile web development techniques (and Opera's developer tools)Mobile web development techniques (and Opera's developer tools)
Mobile web development techniques (and Opera's developer tools)Andreas Bovens
 
Information Warfare
Information WarfareInformation Warfare
Information Warfaredibyendupaul
 
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)OWASP Ottawa
 
SEO,Android Mobile Apps,Website Software company in Patna
SEO,Android Mobile Apps,Website Software company in PatnaSEO,Android Mobile Apps,Website Software company in Patna
SEO,Android Mobile Apps,Website Software company in PatnaArition Infotech Pvt. Ltd.
 
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...Raj Lal
 
How iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarHow iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarDenim Group
 
The curious case of mobile app security.pptx
The curious case of mobile app security.pptxThe curious case of mobile app security.pptx
The curious case of mobile app security.pptxAnkit Giri
 
2010: Mobile Security - WHYMCA Developer Conference
2010: Mobile Security - WHYMCA Developer Conference2010: Mobile Security - WHYMCA Developer Conference
2010: Mobile Security - WHYMCA Developer ConferenceFabio Pietrosanti
 

En vedette (18)

Designing Secure Mobile Apps
Designing Secure Mobile AppsDesigning Secure Mobile Apps
Designing Secure Mobile Apps
 
Mobile Application Security Code Reviews
Mobile Application Security Code ReviewsMobile Application Security Code Reviews
Mobile Application Security Code Reviews
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoT
 
Mobile application security and threat modeling
Mobile application security and threat modelingMobile application security and threat modeling
Mobile application security and threat modeling
 
What Einstein Feared
What Einstein FearedWhat Einstein Feared
What Einstein Feared
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWS
 
Android application design
Android application designAndroid application design
Android application design
 
Attacking and Defending Mobile Applications
Attacking and Defending Mobile ApplicationsAttacking and Defending Mobile Applications
Attacking and Defending Mobile Applications
 
Mobile App Security Testing -2
Mobile App Security Testing -2Mobile App Security Testing -2
Mobile App Security Testing -2
 
Mobile web development techniques (and Opera's developer tools)
Mobile web development techniques (and Opera's developer tools)Mobile web development techniques (and Opera's developer tools)
Mobile web development techniques (and Opera's developer tools)
 
Information Warfare
Information WarfareInformation Warfare
Information Warfare
 
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
Security Code Review for .NET - Sherif Koussa (OWASP Ottawa)
 
Mobile_app_security
Mobile_app_securityMobile_app_security
Mobile_app_security
 
SEO,Android Mobile Apps,Website Software company in Patna
SEO,Android Mobile Apps,Website Software company in PatnaSEO,Android Mobile Apps,Website Software company in Patna
SEO,Android Mobile Apps,Website Software company in Patna
 
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
 
How iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarHow iOS and Android Handle Security Webinar
How iOS and Android Handle Security Webinar
 
The curious case of mobile app security.pptx
The curious case of mobile app security.pptxThe curious case of mobile app security.pptx
The curious case of mobile app security.pptx
 
2010: Mobile Security - WHYMCA Developer Conference
2010: Mobile Security - WHYMCA Developer Conference2010: Mobile Security - WHYMCA Developer Conference
2010: Mobile Security - WHYMCA Developer Conference
 

Similaire à Developing Secure Mobile Applications

Tips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTechWell
 
Tips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTechWell
 
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...IBM Security
 
Software Security for Project Managers: What Do You Need To Know?
Software Security for Project Managers: What Do You Need To Know?Software Security for Project Managers: What Do You Need To Know?
Software Security for Project Managers: What Do You Need To Know?Denim Group
 
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...IBM Security
 
Mobile Payments: Protecting Apps and Data from Emerging Risks
Mobile Payments: Protecting Apps and Data from Emerging RisksMobile Payments: Protecting Apps and Data from Emerging Risks
Mobile Payments: Protecting Apps and Data from Emerging RisksIBM Security
 
Appsecurity, win or loose
Appsecurity, win or looseAppsecurity, win or loose
Appsecurity, win or looseBjørn Sloth
 
SecurityWhitepaper 7-1-2015
SecurityWhitepaper 7-1-2015SecurityWhitepaper 7-1-2015
SecurityWhitepaper 7-1-2015Francisco Anes
 
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...eightbit
 
ISACA CACS 2012 - Mobile Device Security and Privacy
ISACA CACS 2012 - Mobile Device Security and PrivacyISACA CACS 2012 - Mobile Device Security and Privacy
ISACA CACS 2012 - Mobile Device Security and PrivacyMichael Davis
 
Symantec Mobile Security Webinar
Symantec Mobile Security WebinarSymantec Mobile Security Webinar
Symantec Mobile Security WebinarSymantec
 
Symantec Mobile Security Whitepaper June 2011
Symantec Mobile Security Whitepaper June 2011Symantec Mobile Security Whitepaper June 2011
Symantec Mobile Security Whitepaper June 2011Symantec
 
CNIT 128 8: Mobile development security
CNIT 128 8: Mobile development securityCNIT 128 8: Mobile development security
CNIT 128 8: Mobile development securitySam Bowne
 
Mobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the AttackerMobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the Attackerbugcrowd
 
Top Strategies to Capture Security Intelligence for Applications
Top Strategies to Capture Security Intelligence for ApplicationsTop Strategies to Capture Security Intelligence for Applications
Top Strategies to Capture Security Intelligence for ApplicationsDenim Group
 
Bringing Government and Enterprise Security Controls to the Android Endpoint
Bringing Government and Enterprise Security Controls to the Android EndpointBringing Government and Enterprise Security Controls to the Android Endpoint
Bringing Government and Enterprise Security Controls to the Android EndpointHamilton Turner
 
Develop and Enforce a Bring-Your-Own-Device (BYOD) Policy
Develop and Enforce a Bring-Your-Own-Device (BYOD) PolicyDevelop and Enforce a Bring-Your-Own-Device (BYOD) Policy
Develop and Enforce a Bring-Your-Own-Device (BYOD) PolicyOracleIDM
 
Skeletons in the Closet: Securing Inherited Applications
Skeletons in the Closet: Securing Inherited ApplicationsSkeletons in the Closet: Securing Inherited Applications
Skeletons in the Closet: Securing Inherited ApplicationsDenim Group
 

Similaire à Developing Secure Mobile Applications (20)

Tips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile Apps
 
Tips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile AppsTips and Tricks for Building Secure Mobile Apps
Tips and Tricks for Building Secure Mobile Apps
 
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
IBM Mobile Security: A Comprehensive Approach to Securing and Managing the Mo...
 
Software Security for Project Managers: What Do You Need To Know?
Software Security for Project Managers: What Do You Need To Know?Software Security for Project Managers: What Do You Need To Know?
Software Security for Project Managers: What Do You Need To Know?
 
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...
5 Key Ways to Incorporate Security Protection into your Organization’s Mobile...
 
Mobile Payments: Protecting Apps and Data from Emerging Risks
Mobile Payments: Protecting Apps and Data from Emerging RisksMobile Payments: Protecting Apps and Data from Emerging Risks
Mobile Payments: Protecting Apps and Data from Emerging Risks
 
Appsecurity, win or loose
Appsecurity, win or looseAppsecurity, win or loose
Appsecurity, win or loose
 
SecurityWhitepaper 7-1-2015
SecurityWhitepaper 7-1-2015SecurityWhitepaper 7-1-2015
SecurityWhitepaper 7-1-2015
 
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
 
ISACA CACS 2012 - Mobile Device Security and Privacy
ISACA CACS 2012 - Mobile Device Security and PrivacyISACA CACS 2012 - Mobile Device Security and Privacy
ISACA CACS 2012 - Mobile Device Security and Privacy
 
Symantec Mobile Security Webinar
Symantec Mobile Security WebinarSymantec Mobile Security Webinar
Symantec Mobile Security Webinar
 
Mobile Apps Security Testing -1
Mobile Apps Security Testing -1Mobile Apps Security Testing -1
Mobile Apps Security Testing -1
 
Webinar on Enterprise Security & android
Webinar on Enterprise Security & androidWebinar on Enterprise Security & android
Webinar on Enterprise Security & android
 
Symantec Mobile Security Whitepaper June 2011
Symantec Mobile Security Whitepaper June 2011Symantec Mobile Security Whitepaper June 2011
Symantec Mobile Security Whitepaper June 2011
 
CNIT 128 8: Mobile development security
CNIT 128 8: Mobile development securityCNIT 128 8: Mobile development security
CNIT 128 8: Mobile development security
 
Mobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the AttackerMobile Application Security Threats through the Eyes of the Attacker
Mobile Application Security Threats through the Eyes of the Attacker
 
Top Strategies to Capture Security Intelligence for Applications
Top Strategies to Capture Security Intelligence for ApplicationsTop Strategies to Capture Security Intelligence for Applications
Top Strategies to Capture Security Intelligence for Applications
 
Bringing Government and Enterprise Security Controls to the Android Endpoint
Bringing Government and Enterprise Security Controls to the Android EndpointBringing Government and Enterprise Security Controls to the Android Endpoint
Bringing Government and Enterprise Security Controls to the Android Endpoint
 
Develop and Enforce a Bring-Your-Own-Device (BYOD) Policy
Develop and Enforce a Bring-Your-Own-Device (BYOD) PolicyDevelop and Enforce a Bring-Your-Own-Device (BYOD) Policy
Develop and Enforce a Bring-Your-Own-Device (BYOD) Policy
 
Skeletons in the Closet: Securing Inherited Applications
Skeletons in the Closet: Securing Inherited ApplicationsSkeletons in the Closet: Securing Inherited Applications
Skeletons in the Closet: Securing Inherited Applications
 

Plus de Denim Group

Long-term Impact of Log4J
Long-term Impact of Log4JLong-term Impact of Log4J
Long-term Impact of Log4JDenim Group
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
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 ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Denim Group
 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleOptimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleDenim Group
 
Application Asset Management with ThreadFix
 Application Asset Management with ThreadFix Application Asset Management with ThreadFix
Application Asset Management with ThreadFixDenim Group
 
OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20Denim Group
 
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA ProgramAppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA ProgramDenim Group
 
Using Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team SportUsing Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team SportDenim Group
 
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...Denim Group
 
Security Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your OrganizationSecurity Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your OrganizationDenim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsDenim Group
 
An Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT SystemsAn Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT SystemsDenim Group
 
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...Denim Group
 
A New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFixA New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFixDenim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Denim Group
 
AppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationAppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationDenim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsDenim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Denim Group
 
AppSec in a World of Digital Transformation
 AppSec in a World of Digital Transformation AppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationDenim Group
 
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceEnumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceDenim Group
 

Plus de Denim Group (20)

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

Dernier

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Developing Secure Mobile Applications

  • 1. Developing Secure Mobile Applications! ! Dan Cornell! @danielcornell © Copyright 2013 Denim Group - All Rights Reserved
  • 2. Bio: Dan Cornell •  Founder and CTO, Denim Group •  Software developer by background (Java, .NET) •  OWASP –  San Antonio Chapter Leader –  Open Review Project Leader –  Global Membership Committee •  Speaking –  RSA, SOURCE Boston –  OWASP AppSec, Portugal Summit, AppSecEU Dublin –  ROOTS in Norway © Copyright 2013 Denim Group - All Rights Reserved 2
  • 3. Denim Group Background •  Secure software services and products company –  Builds secure software –  Helps organizations assess and mitigate risk of in-house developed and third party software –  Provides classroom training and e-Learning so clients can build software securely •  Software-centric view of application security –  Application security experts are practicing developers –  Development pedigree translates to rapport with development managers –  Business impact: shorter time-to-fix application vulnerabilities •  Culture of application security innovation and contribution –  Develops open source tools to help clients mature their software security programs •  Remediation Resource Center, ThreadFix, Sprajax –  OWASP national leaders & regular speakers at RSA, SANS, OWASP, ISSA, CSI –  World class alliance partners accelerate innovation to solve client problems © Copyright 2013 Denim Group - All Rights Reserved 3
  • 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 2013 Denim Group - All Rights Reserved 4
  • 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 2013 Denim Group - All Rights Reserved 5
  • 6. 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 2013 Denim Group - All Rights Reserved 6
  • 7. Mobile Application Security •  Mobile technologies have their own distinct risks •  Many mobile solutions are not as secure as you may think •  What goes wrong? –  Poor assumptions about what mobile technology “buys you” –  Device features that undermine security –  Trust in untrustworthy assets –  Failure to utilize available solutions © Copyright 2013 Denim Group - All Rights Reserved
  • 8. The Distinguishing Features of Mobile •  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… •  What else should you assume they know or will find out? •  Attackers will be able to access: –  Target user (victim) devices –  Your application binaries © Copyright 2013 Denim Group - All Rights Reserved 8
  • 9. What Does this Mean for Security? •  IMPORTANT: It is really the system as a whole you care about –  Application plus… –  3rd party web services –  Enterprise services –  And so on •  How can attackers gain unauthorized access? –  Attacker steals or accesses a lost device –  Malicious application –  Attacker reverse engineers an application to access corporate resources –  And so on… •  The most “interesting” weaknesses and vulnerabilities we find are in mobile applications’ interactions with supporting services © Copyright 2013 Denim Group - All Rights Reserved 9
  • 10. What Does this Mean for Security? •  Mobile applications are different than web applications –  Can’t just fire up an automated scanner and turn up a bunch of SQL injection and XSS vulnerabilities –  Usually… © Copyright 2013 Denim Group - All Rights Reserved 10
  • 11. Mobile Application Security •  Typical Mobile Threats –  Data Flow –  Functional –  Abuse Cases •  Mobile Security Assessments –  Assessment Approaches –  Tools for Review and Testing © Copyright 2013 Denim Group - All Rights Reserved
  • 12. Existing Resources for Mobile Security •  Secure Implementation Guidance –  Official development guides do not cover security risks comprehensively –  However, they do cover their platform solutions to many security concerns •  OWASP Mobile Security Project Top 10 Mobile Risks •  Veracode Mobile App Top 10 List © Copyright 2013 Denim Group - All Rights Reserved 12
  • 13. OWASP Mobile Security Project Top 10 Mobile Risks © Copyright 2013 Denim Group - All Rights Reserved 13
  • 14. OWASP Mobile Security Project Top 10 Mobile Risks 1.  Insecure Data Storage 2.  Weak Server Side Controls 3.  Insufficient Transport Layer Protection 4.  Client Side Injection 5.  Poor Authorization and Authentication 6.  Improper Session Handling 7.  Security Decisions Via Untrusted Inputs 8.  Side Channel Data Leakage 9.  Broken Cryptography 10.  Sensitive Information Disclosure https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_Ten_Mobile_Risks © Copyright 2013 Denim Group - All Rights Reserved 14
  • 15. Mobile App Top 10 List A.  Malicious Functionality 1.  Activity monitoring and data retrieval 2.  Unauthorized dialing, SMS and payments 3.  Unauthorized network connectivity (exfiltration or command & control) 4.  UI Impersonation 5.  System modification (rootkit, APN proxy config) 6.  Logic or time bomb B.  Vulnerabilities 1.  Sensitive data leakage (inadvertent or side channel) 2.  Unsafe sensitive data storage 3.  Unsafe sensitive data transmission 4.  Hardcoded passwords/keys http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/ © Copyright 2013 Denim Group - All Rights Reserved 15
  • 16. Mobile Attack Scenarios •  Borrowed Device •  Stolen Device •  Malicious Application Functionality •  Other Malicious Application •  Attacks from Mobile Web Services •  Attacks against Mobile Web Services •  Attacks from Local Network •  Abuse of Device Feature © Copyright 2013 Denim Group - All Rights Reserved
  • 17. Approaches for Identifying Threats •  Use Cases for Business –  Useful for identifying flaws with specific application features •  Data Flow for Architecture –  What threats can we identify looking at the application’s data flow? –  The whole system’s data stores, services, processes, etc. –  The interaction among those components •  Functional Security –  Here are the security features. How could an attacker defeat them? •  Attacker’s Goals for Threat Trees –  If you are an attacker, what would you want to accomplish? –  How would you go about achieving the malicious goal? –  Useful for identifying any erroneous security assumptions •  No one approach is perfect – these are essentially brain storming techniques © Copyright 2013 Denim Group - All Rights Reserved 17
  • 18. Typical Mobile Threats User Mobile   Mobile  Web   Application Services Local  App   Storage Device   Keychain Main Site Pages •  Spoofing: Users to the Mobile Application •  Spoofing: Web Services to Mobile Application •  Tampering: Mobile Application •  Tampering: Device Data Stores •  Disclosure: Device Data Stores or Residual Data •  Disclosure: Mobile Application to Web Service •  Denial of Service: Mobile Application •  Elevation of Privilege: Mobile Application or Web Services © Copyright 2013 Denim Group - All Rights Reserved
  • 19. Spoofing: Users to the Mobile Application •  Borrowed Device •  Stolen Device •  Other Malicious Application Attacker Mobile   Application Local  App   Storage Device   Keychain © Copyright 2013 Denim Group - All Rights Reserved
  • 20. Spoofing: Attacker to Mobile Web Services •  Attacks against Mobile Web Services Attacker User Mobile   Application Mobile  Web  Services © Copyright 2013 Denim Group - All Rights Reserved
  • 21. Spoofing: Web Services to Mobile Application •  Borrowed Device •  Other Malicious Application Malicious Host User Mobile   Application Mobile  Web  Services © Copyright 2013 Denim Group - All Rights Reserved
  • 22. Tampering: Mobile Application •  Borrowed/Stolen Device •  Other Malicious Application User Tampered   Application Local  App   Storage Device   Keychain © Copyright 2013 Denim Group - All Rights Reserved
  • 23. Disclosure: Device Data Stores or Residual Data •  Borrowed/Stolen Device •  Malicious Application Functionality •  Other Malicious Application User Mobile   •  Attacks from Mobile Web Application Services Local  SQLIte   Storage Device   Keychain © Copyright 2013 Denim Group - All Rights Reserved
  • 24. Disclosure: Mobile Application to Web Service •  Attacks from Local Network •  Other Malicious Application Attacker User Mobile   Application Mobile  Web  Services © Copyright 2013 Denim Group - All Rights Reserved
  • 25. Other Data-Flow Threats •  Denial of Service •  Elevation of Privilege User USAA Attacker Mobile   Member Mobile   Application Application Local  App   Local  App   Storage Device   Storage Device   Keychain Keychain © Copyright 2013 Denim Group - All Rights Reserved
  • 26. Functional Security Threats •  Authentication We have already discussed these •  Session Management for a general web environment and •  Access Control will look at them for the mobile platforms. •  Input Validation •  Output Encoding/Escaping •  Cryptography •  Error Handling and Logging •  Data Protection •  Communication Security •  Configuration © Copyright 2013 Denim Group - All Rights Reserved 26
  • 27. Abuse Cases •  Abuse Cases help identify threats from the attacker’s perspective –  What the attacker wants –  How they would try to achieve those goals •  Look over each application use case –  What functionality fulfills that use case? –  How would an attacker attempt to abuse that functionality? •  If a use-case accounts for a user requesting a document, then the abuse case would account for a request to a document that they are not allowed to see or one that doesn't exist •  If a use-case accounts for a privileged user approving a transaction, then the abuse case would account for a lower-level user attempting to force approval for the transaction © Copyright 2013 Denim Group - All Rights Reserved 27
  • 28. 1.  --- Mobile Assessment Overview © Copyright 2013 Denim Group - All Rights Reserved 28
  • 29. Assessment Activities Type of Analysis Activities Static Analysis Source Code Source code scanning Manual source code review Binary Reverse engineering Dynamic Analysis Debugger execution Traffic capture via proxy Analyze remote services Forensic Analysis File permission analysis File content analysis © Copyright 2013 Denim Group - All Rights Reserved 29
  • 30. The General Assessment Approach •  Identification –  Help identify what applications have highest priority to assess •  Preparation –  Obtain requisite code and/or access •  Baseline Review and Testing –  Account for risks inherent to the technology and common features –  Commercial scanning tools with manual auditing •  Targeted Testing –  Account for identified threats, data flow, abuse cases –  Follow up with suspect behavior in the baseline review and testing •  Reporting –  Rate vulnerabilities –  Provide remediation recommendations © Copyright 2013 Denim Group - All Rights Reserved 30
  • 31. Static Analysis •  Source Code Scanning •  Manual Code Reviews •  Advantages –  Identifies flaws during integration, when it is easier to address issues –  Developers can identify flaws in their own code before checking it in –  Many projects already have a code review process in-place •  Disadvantages –  Freeware tools do not address security well –  Licensed tools are a significant investment –  Manual review can be unstructured and time-consuming without licensed tools –  Not ideal for discovering logical vulnerabilities © Copyright 2013 Denim Group - All Rights Reserved 31
  • 32. Dynamic Analysis •  Integrate abuse cases into unit and automated testing •  Use application scanning tools •  Perform a dedicated penetration test by security staff or a 3rd party •  Advantages –  Generally more time-efficient than manual code review –  Good for discovering logical vulnerabilities •  Disadvantages –  Requires fully functional features to test –  Security staff may not have application security training or experience –  Scanning tools may have difficulty with unusual applications © Copyright 2013 Denim Group - All Rights Reserved 32
  • 33. Tools vs. Manual Review •  As we have discussed, some tests are better done manually •  Automated tools are well suited to discover implementation flaws –  Cross-site scripting –  Injection –  Information leakage or improper error handling –  Transport layer security •  Manual testing is a better approach to discover design flaws –  Direct object references –  Malicious file execution –  Cross-site request forgery –  Authentication/Authorization © Copyright 2013 Denim Group - All Rights Reserved 33
  • 34. The Scope of Mobile Security Review © Copyright 2013 Denim Group - All Rights Reserved
  • 35. Generic Mobile Application Threat Model © Copyright 2013 Denim Group - All Rights Reserved 35
  • 36. 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 2013 Denim Group - All Rights Reserved 36
  • 37. Let’s Take Apart Some Apps •  Pandemobium Stock Trader Application •  Android and iOS versions •  Functionality –  Log in –  Track stock tips –  Make stock trades –  Get stock tips –  Share stock tips © Copyright 2013 Denim Group - All Rights Reserved 37
  • 38. Pandemobium Stock Trader Application •  We will use as an example through the class •  Available for free online –  https://code.google.com/p/pandemobium/ –  Look for updates! Share with your friends! •  Components: –  iPhone application –  Android application –  Supporting web services (Java/JSP web application) –  User manual (HTML) –  Vulnerability list (HTML) © Copyright 2013 Denim Group - All Rights Reserved 38
  • 39. Pandemobium Stock Trader Application © Copyright 2013 Denim Group - All Rights Reserved 39
  • 40. So What Does a Bad Guy See? (Android Edition) •  Install the application onto a device •  Root the device •  Pull the application’s APK file onto a workstation for analysis •  APK files are ZIP files •  They contain: –  AndroidManifest.xml –  Other binary XML files in res/ –  classes.dex DEX binary code © Copyright 2013 Denim Group - All Rights Reserved 40
  • 41. Generic Android Application Threat Model © Copyright 2013 Denim Group - All Rights Reserved 41
  • 42. 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 2013 Denim Group - All Rights Reserved 42
  • 43. Much Better •  Now we see: –  Screens in application –  Permissions required by the application –  Intents applications is registered to consume –  And so on © Copyright 2013 Denim Group - All Rights Reserved 43
  • 44. Do the Same Thing With the Rest of Them •  Recurse through the res/ subdirectory •  UI layouts, other resources © Copyright 2013 Denim Group - All Rights Reserved 44
  • 45. What About the Code? •  All of it is stuffed in classes.dex •  Android phones use DEX rather than Java bytecodes –  Register-based virtual machine rather than stack-based virtual machine •  Options: –  Look at DEX assembly via de-dexing –  Convert to Java bytecode and then to Java source code © Copyright 2013 Denim Group - All Rights Reserved 45
  • 46. De-Dex to See DEX Assembly •  DEX bytecode ~= Java bytecode •  All code goes in one file •  Disassemble to DEX assembly with dedexer http://dedexer.sourceforge.net/ © Copyright 2013 Denim Group - All Rights Reserved 46
  • 47. Lots of Information •  Like the fun-fun world of Java disassembly and decompilation –  (We’ll get to the DEX decompilation in a moment) •  LOTS of information available © Copyright 2013 Denim Group - All Rights Reserved 47
  • 48. But Can I Decompile to Java? •  Yes •  We •  Can •  Convert to Java bytecodes with dex2jar –  http://code.google.com/p/dex2jar/ –  (Now you can run static analysis tools like Findbugs) •  Convert to Java source code with your favorite Java decompiler –  Everyone has a favorite Java decompiler, right? © Copyright 2013 Denim Group - All Rights Reserved 48
  • 49. DEX Assembly Versus Java Source Code •  De-DEXing works pretty reliably •  DEX assembly is easy to parse with grep •  DEX assembly is reasonably easy to manually analyze •  Java decompilation works most of the time •  Java source code can be tricky to parse with grep •  Java source code is very easy to manually analyze •  Verdict: –  Do both! –  Grep through DEX assembly to identify starting points for analysis –  Analyze Java source in detail © Copyright 2013 Denim Group - All Rights Reserved 49
  • 50. So What Did We Learn? •  Look at the string constants –  URLs, hostnames, web paths •  Look at the de-DEXed assembly –  Method calls –  Data flow •  Developers: BAD NEWS –  The bad guys have all your code –  They might understand your app better than you –  How much sensitive intellectual property do you want to embed in your mobile application now? © Copyright 2013 Denim Group - All Rights Reserved 50
  • 51. Is There Sensitive Data On the Device? •  Look at the disassemled DEX code •  Grep for “File” © Copyright 2013 Denim Group - All Rights Reserved 51
  • 52. What About Java Source Code? •  Get the source code with JD-Gui –  http://java.decompiler.free.fr/ © Copyright 2013 Denim Group - All Rights Reserved 52
  • 53. Look for Files With Bad Permissions •  Look for file open operations using –  Context.MODE_WORLD_READABLE –  (translates to “1”) © Copyright 2013 Denim Group - All Rights Reserved 53
  • 54. Next: What Is On the Server-Side •  To access sensitive data on a device: –  Steal a device –  Want more data? –  Steal another device •  To access sensitive data from web services –  Attack the web service •  String constants for URLs, hostnames, paths •  Examples: –  3rd party web services –  Enterprise web services © Copyright 2013 Denim Group - All Rights Reserved 54
  • 55. So Now What? •  3rd Party Web Services –  Is data being treated as untrusted? –  Google promised to “not be evil” •  For everyone else… •  Enterprise Web Services –  Did you know these were deployed? –  Have these been tested for possible security flaws? –  Stealing records en-masse is preferable to stealing them one-at-a-time © Copyright 2013 Denim Group - All Rights Reserved 55
  • 56. Web Services Example •  Trumped up example, but based on real life •  Given a web services endpoint, what will a bad guy do? •  Sequence: –  Request a junk method “abcd” –  Get a “No method ‘abcd’ available” –  Request a method “<script>alert(‘hi’);</script>” –  Hilarity ensues… © Copyright 2013 Denim Group - All Rights Reserved 56
  • 57. What Is Wrong With the Example Application? •  Sensitive data stored on the device unprotected •  Trusts data from 3rd party web services •  Exposes enterprise web services to attackers •  Enterprise web services vulnerable to reflected XSS attacks •  And so on… •  This is a trumped-up example with concentrated vulnerabilities, but… •  All of these reflect real-world examples of vulnerabilities –  Public breaches –  Application assessments © Copyright 2013 Denim Group - All Rights Reserved 57
  • 58. What About iPhones/iPads? •  Objective-C compiled to ARMv6, ARMv7 machine code –  Not as fun (easy) as Java compiled to DEX bytecode –  But … subject to buffer overflows, memory handling issues, other native code fun •  Apps from iTunes Store –  Encrypted –  Used to be “easy” (well, mechanical) to break encryption with a jailbroken phone and a debugger –  Now trickier (but likely not insurmountable) –  And the default apps are not encrypted… © Copyright 2013 Denim Group - All Rights Reserved 58
  • 59. Run “strings” on the Binary •  Web services endpoints: URLs, hostnames, paths •  Objective-C calling conventions: [myThing doStuff:a second:b third:c];! becomes obj_msgsend(myThing, “doStuff:second:third:”, a, b, c);! © Copyright 2013 Denim Group - All Rights Reserved 59
  • 60. Run “otool” on the Binary •  otool –l <MyApp> –  View the load commands –  Segment info, encryption info, libraries in use •  otool –t –v <MyApp> –  Disassemble the text segment to ARM assembly –  If run on an encrypted application you get garbage •  otool –o <MyApp> –  Print the Objective-C segment •  And so on… © Copyright 2013 Denim Group - All Rights Reserved 60
  • 61. Net Result for iPhone/iPad •  More obscure –  But does that mean more secure? •  Can still retrieve a tremendous amount of information •  Can still observe a running application •  “Security” based on obscurity is not durable © Copyright 2013 Denim Group - All Rights Reserved 61
  • 62. 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 2013 Denim Group - All Rights Reserved 62
  • 63. 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 2013 Denim Group - All Rights Reserved 63
  • 64. Decoding plist Files •  plutil -convert xml1 Info.plist •  Much nicer © Copyright 2013 Denim Group - All Rights Reserved 64
  • 65. 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%253Dinsecure-handling-url-schemes-apples-ios –  Too long to type? http://bit.ly/ezqdK9 © Copyright 2013 Denim Group - All Rights Reserved 65
  • 66. 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 2013 Denim Group - All Rights Reserved 66
  • 67. 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 2013 Denim Group - All Rights Reserved 67
  • 68. Intent Filter Demo – Manual Launch, HTML Page © Copyright 2013 Denim Group - All Rights Reserved 68
  • 69. Intent Filter Demo – Anchor Launch, IFrame Launch © Copyright 2013 Denim Group - All Rights Reserved 69
  • 70. 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 2013 Denim Group - All Rights Reserved 70
  • 71. 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 2013 Denim Group - All Rights Reserved 71
  • 72. 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 2013 Denim Group - All Rights Reserved 72
  • 73. Secure Mobile Development Reference •  Platform-specific recommendations •  Key topic areas •  Provide specific, proscriptive guidance to developers building mobile applications © Copyright 2013 Denim Group - All Rights Reserved 73
  • 74. 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 2013 Denim Group - All Rights Reserved 74
  • 75. 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 2013 Denim Group - All Rights Reserved 75
  • 76. 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 2013 Denim Group - All Rights Reserved 76
  • 77. Resources •  axml2xml.pl (Convert Android XML files to normal XML) –  http://code.google.com/p/android-random/downloads/detail?name=axml2xml.pl •  Dedexer (Convert DEX bytecodes into DEX assembler) –  http://dedexer.sourceforge.net/ •  Dex2jar (Convert DEX bytecode in Java bytecode) –  http://code.google.com/p/dex2jar/ •  JD-GUI (Convert Java bytecode to Java source code) –  http://java.decompiler.free.fr/ •  otool (Get information about iPhone binaries) –  http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/otool.1.html © Copyright 2013 Denim Group - All Rights Reserved 77
  • 78. Online •  Code, slides and videos online: www.smartphonesdumbapps.com © Copyright 2013 Denim Group - All Rights Reserved 78
  • 79. Questions? Dan Cornell dan@denimgroup.com Twitter: @danielcornell www.denimgroup.com blog.denimgroup.com (210) 572-4400 © Copyright 2013 Denim Group - All Rights Reserved 79