SlideShare a Scribd company logo
1 of 89
Download to read offline
Demystifying Security Best Practices
Conrad Stoll!
Architect
@conradstoll - conradstoll.com
So you want to make software secure?
Well, that’s easy.
Well, that’s easy.
Mobile devices are not secure.
Users assume security.
We are expected to !
secure our software.
Mutual Mobile
Products are judged by the !
quality of the user experience, !
and the absence of security issues.
Security is hard, and a lot of apps !
get it wrong.
goto fail;
Apple actually does take!
security very seriously.
http://images.apple.com/ipad/business/docs/iOS_Security_Feb14.pdf
Security is about being responsible !
with a user’s information.
The type of information your app
handles defines how secure !
it needs to be.
Not everyone is building a banking app.
Security is all about making tradeoffs.
Every app we build has an appropriate
balance between security!
and usability.
Security Best Practices!
(Demystified)
14!
things you can do to build!
more secure software
Number 1:!
NSLog
But logs are helpful!!
What could possibly go wrong?
1
Logging provides helpful debug
information but can accidentally leak
sensitive user data.
Dangers of Over Logging
• User passwords!
• Sensitive web requests!
• Locations!
• Never know what could be storing those
logs (other apps, add ons, etc.).
Any good lumberjack knows not to over-log.
Use a logging macro and limit the scope
of production logs.
How to prevent production logs
• Log only what is required.!
• Super sensitive data should not be logged.!
• Set different logging levels for release build.
Think before you log
#pragma mark - LOGGING
!
//---- To disable all Logs in release mode ----//
#ifdef DEBUG
#define UBLog( s, ... ) NSLog(s, ## __VA_ARGS__)
#else
#define UBLog( s, ... )
#endif
!
Logging Macro
Using a logging macro to programmatically disable logs
We wrote a script to analyze our code
and look for ‘NSLog’ in all of our files
that would fail the build if it found any.
Great case for writing tests
• Build scripts keep everyone honest.!
• Well suited for automation.!
• Works great with a Continuous Integration
system.
Run tests that verify you have no logs on your build system
ruby file_sieve.rb -d Classes/ -e UnionBankGlobals NSLog
Number 2:!
Fast App Switching
Hiding sensitive information when the
app goes to the background can be a
good idea to protect user privacy.
Hiding Sensitive Data
• Blur out sensitive data.!
• Remove sensitive data.!
• Obscure sensitive data.
Hide your kids, hide your text fields
PayPal does
this really well
#pragma mark - Security
!
- (void)applicationDidEnterBackground:(UIApplication *)application {
RootViewController *rootVC = (RootViewController *)self.window.rootViewController;
UIViewController *viewController = (UIViewController *)[rootVC.presentedViewControllers lastObject];
!
/**
If the last presented view controller is a SplashViewController we must not present the splash
screen again.
*/
if (![viewController isKindOfClass:[SplashViewController class]]) {
/**
We're presenting a splash screen when the app backgrounds as a privacy and security feature.
This view needs to block the UI so that a screenshot of sensitive data does not accidentally
get saved to the background.
*/
[self presentSplashViewController];
}
}
!
Hiding Sensitive Data
When the app enters the background
Number 3:!
SSL Pinning
Easy way to prevent MITM
^(make MITM much more difficult)
Compare a server’s certificate!
with a known certificate
Compare the exact certificate used in
the request with the known certificate
included in your app bundle.
Certificate Pinning
• Communication will fail after the certificate
expires.
More secure, but fragile
Compare a known public key to the
network request’s certificate public key.
Public Key Pinning
• Public key’s don’t change when certificates
expire.!
• One public key might be used for several
web services at a large company.
Still secure, less fragile
Built in support for SSL Pinning in 1.0
and 2.0.
AFNetworking
• Super easy to use implementation of SSL
Pinning.!
• AFSecurityPolicy on version 2.0.!
• Allows you to select between certificate or
public key pinning modes.
Most popular Objective-C library on GitHub!
Number 4:!
ARC PIE
An ARC PIE a day!
keeps memory attacks away
In all honesty, protecting against
memory attacks probably is not your job
as an application developer.
Being practical with memory attacks
• No, scribbling over NSString isn’t practical. !
• Don’t make it easy on an attacker.
So, how likely is this really?
1
ARC helps make sure you’re correctly
managing memory.
Use ARC
• Makes sure objects get released and
dealloc’d when they should be.
Don’t let objects you aren’t using stick around
Position Independent Execution
prevents memory address attacks. This
option is enabled by default in Xcode.
Keep PIE enabled
• Prevents an attack against specific memory
addresses.!
• Honestly, there’s no reason to disable this…
Who doesn’t like PIE?
Number 5:!
Keychain
The keychain is more secure if the user
sets a passcode on the device!
Device needs a PIN code
• There’s no way to tell if the user set a
passcode.!
• Encrypted with the device key, so they don’t
transfer to new devices.
Or a really long passcode
Best not to store a user’s password. Try
and store a hash or session token
instead.
Careful what you store in the keychain
• Access controls for when data becomes
available from the keychain.
Would you put your social security number there?
Number 6:!
NSUserDefaults
NSUserDefaults is a great place to store
basic app preferences or bits of state,
like whether or not this is the app’s first
launch. But it should NOT be used to
store anything sensitive.
NSUserDefaults != Keychain
• Unencrypted key value storage.!
• Should never be used to store anything
sensitive.
If you wouldn’t store it in the keychain, definitely don’t store it in NSUserDefaults!
1
Number 7:!
Text Fields
Autocorrect results are stored
unencrypted on the device.
Sensitive Autocorrect
• Autocorrect is disabled by default on secure
text fields.!
• Disable it on yours if you’re not using the
UITextInputTraits secureTextEntry property.!
• Consider disabling it anyway if you
anticipate sensitive data being entered into
a text field or text view.
Be careful what you allow to autocorrect
The pasteboard can be used to share
data between apps. A malicious app
could look for sensitive data on the
pasteboard.
UIPasteBoard
• Avoid storing sensitive data in the
pasteboard.!
• Disable copying on sensitive text input
fields.
Do you trust every app with your bank account number?
Expire sensitive content and mark it as
org.nspasteboard.ConcealedType.
UIPasteBoard
• http://nspasteboard.org!
• 1Password marks content as “concealed”.!
• 1Password removes content after 90
seconds by default.
Protect potentially sensitive pasteboard data
Number 8:!
Asking Permission
Being polite!
when asking for permission
Remember that context for your request
is very important.
How and when you ask is important
• Don’t ask on app launch or login.!
• Ask in response to a user action.!
• Only ask for what you clearly need.!
• Explain why you need permission.
Many users distrust software
Be considerate of a user’s permission,
and don’t overstep your bounds.
Treat user permission with respect
• Don’t copy the user’s address book.!
• Don’t log location data to the server.!
• Don’t transmit user data in the clear.!
• Don’t store passwords on your server.!
• Don’t record all of someone’s conversations
with their microphone and pick up words like
“soda” and attempt to turn around and sell
them “Coke”.
Be a good house guest
Permission Resources
• http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/
Helpful sites talking about permission
Number 9:!
Local Storage
Downloading a file using
NSURLSessionDownloadTask gives
you the ability to download in the
background, but removes the ability to
encrypt files on the fly.
Implementation Trade Offs
• Is it ok to have a file stored in the clear for
10 seconds?!
• What if you know the user is in physical
possession of the device?!
• Would this concern prevent you from
supporting “open in” or “open with” features?
Theoretical versus Practical
Storing data locally can help improve
the user experience. Here’s some things
you can feel pretty safe about storing.
Good things to store
• Most user-generated photography!
• Most user-generated content (todo list)!
• Publicly available content!
• Podcasts, music, videos!
• Application metadata database!
• Application preferences!
!
Pretty much zero risk of storing this kind of stuff
Some apps deal with sensitive data, and
storing this on the device can be
dangerous.
Bad things to store
• Personal medical information!
• Personal financial information!
• Copyrighted content!
• Secret corporate information!
!
Storing this stuff should keep you up at night
Sometimes you want to use Core Data
even though you can’t store anything.
In-Memory Core Data
• In-Memory store is pretty fast!
• Great for facilitating object graph
management and fetching/sorting!
• Easy way to use Core Data if persistence
isn’t an option or a requirement!
!
Core Data, but without the storage part
Number 10:!
Encryption
Use the latest file encryption provided
by common crypto.
File Encryption
• AES 256!
• User generated encryption key
AES all the things!
Pass the salt.
Data Protection APIs provide an easy to
use baseline protection for files on disk.
Data Protection
• Available in iOS 4.0.!
• Enabled by default now in iOS 7.0.!
• Protected by the user passcode and device
key.!
• Makes it harder to access files, but can be
defeated with physical access to the device.!
• Far more secure if the user sets a
passcode.
Apple wants to make this easy for you
Sometimes you really need an
encrypted database. When you do,
there’s NSIncrementalStore +
Encryption.
Encrypted Core Data
• Implement your own encrypted Core Data
persistent store.!
• Several existing implementations are
available.!
• Core Data is already a complex system.
Encrypted Core Data is obviously even
more complex.!
• Consider using a file based encryption
system for small bits of data.
Core Data + Incremental Store + Encryption. What could possibly go wrong?
Encryption Resources
• http://www.stoeger-it.de/en/secureincrementalstore/!
• https://github.com/project-imas/encrypted-core-data!
• http://adcdownload.apple.com//videos/wwdc_2012__sd/
session_714__protecting_the_users_data.mov!
• http://blog.agilebits.com/2013/03/09/guess-why-were-moving-to-256-bit-aes-keys/
Helpful sites talking about encryption
Number 11:!
UIWebView
Prevent local network spoofing attacks
by only allowing UIWebView requests to
specific domains.
Whitelist domains in web views
• Compare requests made by your web view
to a specific list of domains.!
• Enforce HTTPS on all requests from the
web view.
Support safe browsing
#pragma mark - Security
!
/*
Only allow the web view to load requests to whitelisted domains in order to prevent
phishing attacks.
*/
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
if ([self shouldAllowWebViewNavigationToURLRequest:request]) {
return YES;
}
!
[self presentUnsafeBrowsingWarningForRequest:request];
!
return NO;
}
Whitelisting Domains
Teaching someone how not to phish
Web views don’t get challenge
callbacks, so it is hard to implement SSL
Pinning with them (though not
impossible).
No SSL Pinning Support
• Try not to use web views for anything super
sensitive.!
• If you’re relying on a web view for most of
your app, its worth going to the trouble of
bootstrapping SSL Pinning for it.
UIWebView doesn’t benefit from SSL Pinning elsewhere in your app
WebView Resources
• https://www.isecpartners.com/blog/2013/february/ssl-pinning-on-ios.aspx!
• http://stackoverflow.com/questions/11573164/uiwebview-to-view-self-signed-websites-no-private-
api-not-nsurlconnection-i
Helpful sites talking about web views
Number 12:!
Third Party Libraries
Hope is NOT a strategy
You’re responsible for what third party
libraries are doing in your app. If you’re
following the rules above, make sure
they are too.
Third Party Library Security!
• Check and see if they are writing anything to
disk.!
• Look at their networking code to see what
they’re sending over the air.!
• Check on their implementation of debug
logging and whether or not it can be
disabled.
Hope is not a strategy. Make sure libraries are secure.
Number 13:!
Enterprise MDM
There’s lots of powerful security
features in MDM. If you’re building an
enterprise app, make sure your client
knows about this!
If you’re building an enterprise app…
• Force device passcode!
• Per-app VPN!
• Configuration enforcement!
• Encrypted backups!
• Remote wipe
Use MDM Features
Number 14:!
Have a Backup Plan
You can always use a remote server to
force an update. You can lock out the
app in the event of a security breach,
and force users to install the update that
fixes it.
If all else fails…
• Gives you a pretty heavy hammer.!
• Easy to implement.!
• Important for high-risk apps like banking.
The last one standing blows the bridge.
Thanks!!
Secure all the things!
Conrad Stoll!
@conradstoll - conradstoll.com
CocoaConf Austin 2014 | Demystifying Security Best Practices

More Related Content

What's hot

Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationTom Eston
 
Are Your Mobile Apps Secure? (Part I)
Are Your Mobile Apps Secure? (Part I)Are Your Mobile Apps Secure? (Part I)
Are Your Mobile Apps Secure? (Part I)Nagarro
 
Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]Kuba Břečka
 
Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSecureState
 
Owasp mobile top 10
Owasp mobile top 10Owasp mobile top 10
Owasp mobile top 10Pawel Rzepa
 
Harbin clinic iot-mobile-no-vid
Harbin clinic iot-mobile-no-vidHarbin clinic iot-mobile-no-vid
Harbin clinic iot-mobile-no-vidErnest Staats
 
Mobile Application Security Code Reviews
Mobile Application Security Code ReviewsMobile Application Security Code Reviews
Mobile Application Security Code ReviewsDenim Group
 
Security best practices for regular users
Security best practices for regular usersSecurity best practices for regular users
Security best practices for regular usersGeoffrey Vaughan
 
Login cat tekmonks - v3
Login cat   tekmonks - v3Login cat   tekmonks - v3
Login cat tekmonks - v3TEKMONKS
 
Owasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdOwasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdPawel Rzepa
 
Fragments-Plug the vulnerabilities in your App
Fragments-Plug the vulnerabilities in your AppFragments-Plug the vulnerabilities in your App
Fragments-Plug the vulnerabilities in your AppAppsecco
 
Malware on Smartphones and Tablets - The Inconvenient Truth
Malware on Smartphones and  Tablets  - The Inconvenient  TruthMalware on Smartphones and  Tablets  - The Inconvenient  Truth
Malware on Smartphones and Tablets - The Inconvenient TruthAGILLY
 
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...Security Weekly
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation TestJongWon Kim
 
An Introduction To IT Security And Privacy - Servers And More
An Introduction To IT Security And Privacy - Servers And MoreAn Introduction To IT Security And Privacy - Servers And More
An Introduction To IT Security And Privacy - Servers And MoreBlake Carver
 
Android Hacking
Android HackingAndroid Hacking
Android Hackingantitree
 
How to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsHow to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsSecurity Innovation
 

What's hot (20)

Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and Exploitation
 
Are Your Mobile Apps Secure? (Part I)
Are Your Mobile Apps Secure? (Part I)Are Your Mobile Apps Secure? (Part I)
Are Your Mobile Apps Secure? (Part I)
 
Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]
 
Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and Exploitation
 
Mobile Hacking
Mobile HackingMobile Hacking
Mobile Hacking
 
Owasp mobile top 10
Owasp mobile top 10Owasp mobile top 10
Owasp mobile top 10
 
Harbin clinic iot-mobile-no-vid
Harbin clinic iot-mobile-no-vidHarbin clinic iot-mobile-no-vid
Harbin clinic iot-mobile-no-vid
 
Mobile Application Security Code Reviews
Mobile Application Security Code ReviewsMobile Application Security Code Reviews
Mobile Application Security Code Reviews
 
Hacking Mobile Apps
Hacking Mobile AppsHacking Mobile Apps
Hacking Mobile Apps
 
Security best practices for regular users
Security best practices for regular usersSecurity best practices for regular users
Security best practices for regular users
 
Login cat tekmonks - v3
Login cat   tekmonks - v3Login cat   tekmonks - v3
Login cat tekmonks - v3
 
Owasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opdOwasp for testing_mobile_apps_opd
Owasp for testing_mobile_apps_opd
 
Help Doctor, my application is an onion!
Help Doctor, my application is an onion!Help Doctor, my application is an onion!
Help Doctor, my application is an onion!
 
Fragments-Plug the vulnerabilities in your App
Fragments-Plug the vulnerabilities in your AppFragments-Plug the vulnerabilities in your App
Fragments-Plug the vulnerabilities in your App
 
Malware on Smartphones and Tablets - The Inconvenient Truth
Malware on Smartphones and  Tablets  - The Inconvenient  TruthMalware on Smartphones and  Tablets  - The Inconvenient  Truth
Malware on Smartphones and Tablets - The Inconvenient Truth
 
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...
Robots, Ninjas, Pirates and Building an Effective Vulnerability Management Pr...
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation Test
 
An Introduction To IT Security And Privacy - Servers And More
An Introduction To IT Security And Privacy - Servers And MoreAn Introduction To IT Security And Privacy - Servers And More
An Introduction To IT Security And Privacy - Servers And More
 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
 
How to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsHow to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection Flaws
 

Viewers also liked

2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?Mutual Mobile
 
The Future of Service
The Future of ServiceThe Future of Service
The Future of ServiceSeven
 
Certificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsCertificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsLuca Bongiorni
 
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv Startup Club
 
Penetrating Android Aapplications
Penetrating Android AapplicationsPenetrating Android Aapplications
Penetrating Android AapplicationsRoshan Thomas
 
Android System Architecture And  Pen-testing of Android applications
Android System Architecture  And  Pen-testing of Android applications Android System Architecture  And  Pen-testing of Android applications
Android System Architecture And  Pen-testing of Android applications yavuzwb
 
Pentesting Android Applications
Pentesting Android ApplicationsPentesting Android Applications
Pentesting Android ApplicationsCláudio André
 
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google Glass
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google GlassUX Design for Wearables: BMW i8 INNOVATION LIVE. for Google Glass
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google GlassVectorform
 
Google Chromecast Group ix cse 100
Google Chromecast Group ix cse 100Google Chromecast Group ix cse 100
Google Chromecast Group ix cse 100Mehedi Farazi
 
Automated Security Analysis of Android & iOS Applications with Mobile Securit...
Automated Security Analysis of Android & iOS Applications with Mobile Securit...Automated Security Analysis of Android & iOS Applications with Mobile Securit...
Automated Security Analysis of Android & iOS Applications with Mobile Securit...Ajin Abraham
 
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Ajin Abraham
 
Hotspots And Screentips In Powerpoint
Hotspots And Screentips In PowerpointHotspots And Screentips In Powerpoint
Hotspots And Screentips In Powerpointrnsmflblogger
 
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...Codemotion
 
SSL Pinning and Bypasses: Android and iOS
SSL Pinning and Bypasses: Android and iOSSSL Pinning and Bypasses: Android and iOS
SSL Pinning and Bypasses: Android and iOSAnant Shrivastava
 

Viewers also liked (19)

2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?
 
Unboxing iOS 7
Unboxing iOS 7Unboxing iOS 7
Unboxing iOS 7
 
The Future of Service
The Future of ServiceThe Future of Service
The Future of Service
 
Certificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsCertificate Pinning in Mobile Applications
Certificate Pinning in Mobile Applications
 
Pentesting iOS Apps
Pentesting iOS AppsPentesting iOS Apps
Pentesting iOS Apps
 
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
 
Penetrating Android Aapplications
Penetrating Android AapplicationsPenetrating Android Aapplications
Penetrating Android Aapplications
 
Android System Architecture And  Pen-testing of Android applications
Android System Architecture  And  Pen-testing of Android applications Android System Architecture  And  Pen-testing of Android applications
Android System Architecture And  Pen-testing of Android applications
 
Pentesting Android Applications
Pentesting Android ApplicationsPentesting Android Applications
Pentesting Android Applications
 
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google Glass
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google GlassUX Design for Wearables: BMW i8 INNOVATION LIVE. for Google Glass
UX Design for Wearables: BMW i8 INNOVATION LIVE. for Google Glass
 
Google Chromecast Group ix cse 100
Google Chromecast Group ix cse 100Google Chromecast Group ix cse 100
Google Chromecast Group ix cse 100
 
Automated Security Analysis of Android & iOS Applications with Mobile Securit...
Automated Security Analysis of Android & iOS Applications with Mobile Securit...Automated Security Analysis of Android & iOS Applications with Mobile Securit...
Automated Security Analysis of Android & iOS Applications with Mobile Securit...
 
Chromecast
ChromecastChromecast
Chromecast
 
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
 
Hotspots And Screentips In Powerpoint
Hotspots And Screentips In PowerpointHotspots And Screentips In Powerpoint
Hotspots And Screentips In Powerpoint
 
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...
Increasing Android app security for free - Roberto Gassirà, Roberto Piccirill...
 
hotspot(wi-fi)
hotspot(wi-fi)hotspot(wi-fi)
hotspot(wi-fi)
 
SSL Pinning and Bypasses: Android and iOS
SSL Pinning and Bypasses: Android and iOSSSL Pinning and Bypasses: Android and iOS
SSL Pinning and Bypasses: Android and iOS
 
Wi-Fi Technology
Wi-Fi TechnologyWi-Fi Technology
Wi-Fi Technology
 

Similar to CocoaConf Austin 2014 | Demystifying Security Best Practices

Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Subhransu Behera
 
CactusCon - Practical iOS App Attack and Defense
CactusCon - Practical iOS App Attack and DefenseCactusCon - Practical iOS App Attack and Defense
CactusCon - Practical iOS App Attack and DefenseSeth Law
 
YOW! Connected 2014 - Developing Secure iOS Applications
YOW! Connected 2014 - Developing Secure iOS ApplicationsYOW! Connected 2014 - Developing Secure iOS Applications
YOW! Connected 2014 - Developing Secure iOS Applicationseightbit
 
Survey Presentation About Application Security
Survey Presentation About Application SecuritySurvey Presentation About Application Security
Survey Presentation About Application SecurityNicholas Davis
 
Getting started with hacking android & i os apps tools, techniques and re...
Getting started with hacking android & i os apps tools, techniques and re...Getting started with hacking android & i os apps tools, techniques and re...
Getting started with hacking android & i os apps tools, techniques and re...n|u - The Open Security Community
 
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesGetting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesOWASP Delhi
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
Ionic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Framework
 
liferay-safe-slides.pdf
liferay-safe-slides.pdfliferay-safe-slides.pdf
liferay-safe-slides.pdfSalini P
 
CodeMash 2.0.1.5 - Practical iOS App Attack & Defense
CodeMash 2.0.1.5 - Practical iOS App Attack & DefenseCodeMash 2.0.1.5 - Practical iOS App Attack & Defense
CodeMash 2.0.1.5 - Practical iOS App Attack & DefenseSeth Law
 
AusCERT - Developing Secure iOS Applications
AusCERT - Developing Secure iOS ApplicationsAusCERT - Developing Secure iOS Applications
AusCERT - Developing Secure iOS Applicationseightbit
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3mPrem Kumar (OSCP)
 
Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security
 
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageOwasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageAnant Shrivastava
 
I Want More Ninja – iOS Security Testing
I Want More Ninja – iOS Security TestingI Want More Ninja – iOS Security Testing
I Want More Ninja – iOS Security TestingJason Haddix
 
The Joy of Proactive Security
The Joy of Proactive SecurityThe Joy of Proactive Security
The Joy of Proactive SecurityAndy Hoernecke
 
OWASP Mobile Security: Top 10 Risks for 2017
OWASP Mobile Security: Top 10 Risks for 2017OWASP Mobile Security: Top 10 Risks for 2017
OWASP Mobile Security: Top 10 Risks for 2017TecsyntSolutions
 
Open Source Defense for Edge 2017
Open Source Defense for Edge 2017Open Source Defense for Edge 2017
Open Source Defense for Edge 2017Adrian Sanabria
 
MacIT 2014 - Essential Security & Risk Fundamentals
MacIT 2014 - Essential Security & Risk FundamentalsMacIT 2014 - Essential Security & Risk Fundamentals
MacIT 2014 - Essential Security & Risk FundamentalsAlison Gianotto
 

Similar to CocoaConf Austin 2014 | Demystifying Security Best Practices (20)

Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1
 
CactusCon - Practical iOS App Attack and Defense
CactusCon - Practical iOS App Attack and DefenseCactusCon - Practical iOS App Attack and Defense
CactusCon - Practical iOS App Attack and Defense
 
YOW! Connected 2014 - Developing Secure iOS Applications
YOW! Connected 2014 - Developing Secure iOS ApplicationsYOW! Connected 2014 - Developing Secure iOS Applications
YOW! Connected 2014 - Developing Secure iOS Applications
 
Survey Presentation About Application Security
Survey Presentation About Application SecuritySurvey Presentation About Application Security
Survey Presentation About Application Security
 
Getting started with hacking android & i os apps tools, techniques and re...
Getting started with hacking android & i os apps tools, techniques and re...Getting started with hacking android & i os apps tools, techniques and re...
Getting started with hacking android & i os apps tools, techniques and re...
 
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resourcesGetting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
Getting Started With Hacking Android & iOS Apps? Tools, Techniques and resources
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
Ionic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassleIonic Native: Native-powered apps, without the hassle
Ionic Native: Native-powered apps, without the hassle
 
liferay-safe-slides.pdf
liferay-safe-slides.pdfliferay-safe-slides.pdf
liferay-safe-slides.pdf
 
CodeMash 2.0.1.5 - Practical iOS App Attack & Defense
CodeMash 2.0.1.5 - Practical iOS App Attack & DefenseCodeMash 2.0.1.5 - Practical iOS App Attack & Defense
CodeMash 2.0.1.5 - Practical iOS App Attack & Defense
 
AusCERT - Developing Secure iOS Applications
AusCERT - Developing Secure iOS ApplicationsAusCERT - Developing Secure iOS Applications
AusCERT - Developing Secure iOS Applications
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3m
 
Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013Virtue Security - The Art of Mobile Security 2013
Virtue Security - The Art of Mobile Security 2013
 
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data LeakageOwasp Mobile Risk Series : M4 : Unintended Data Leakage
Owasp Mobile Risk Series : M4 : Unintended Data Leakage
 
I Want More Ninja – iOS Security Testing
I Want More Ninja – iOS Security TestingI Want More Ninja – iOS Security Testing
I Want More Ninja – iOS Security Testing
 
The Joy of Proactive Security
The Joy of Proactive SecurityThe Joy of Proactive Security
The Joy of Proactive Security
 
OWASP Mobile Security: Top 10 Risks for 2017
OWASP Mobile Security: Top 10 Risks for 2017OWASP Mobile Security: Top 10 Risks for 2017
OWASP Mobile Security: Top 10 Risks for 2017
 
Open Source Defense for Edge 2017
Open Source Defense for Edge 2017Open Source Defense for Edge 2017
Open Source Defense for Edge 2017
 
MacIT 2014 - Essential Security & Risk Fundamentals
MacIT 2014 - Essential Security & Risk FundamentalsMacIT 2014 - Essential Security & Risk Fundamentals
MacIT 2014 - Essential Security & Risk Fundamentals
 
iOS Application Pentesting
iOS Application PentestingiOS Application Pentesting
iOS Application Pentesting
 

More from Mutual Mobile

SXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseSXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseMutual Mobile
 
SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...Mutual Mobile
 
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?Mutual Mobile
 
Hacking Wearable Tech
Hacking Wearable TechHacking Wearable Tech
Hacking Wearable TechMutual Mobile
 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework Mutual Mobile
 
Classroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationClassroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationMutual Mobile
 
Lean Mobile Strategy
Lean Mobile StrategyLean Mobile Strategy
Lean Mobile StrategyMutual Mobile
 
What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7Mutual Mobile
 
7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience7 Design Tips for the New Android Experience
7 Design Tips for the New Android ExperienceMutual Mobile
 
3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales ProblemsMutual Mobile
 
Designing the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidDesigning the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidMutual Mobile
 
SXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosSXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosMutual Mobile
 
iPad: Past, Present, and Future
iPad: Past, Present, and FutureiPad: Past, Present, and Future
iPad: Past, Present, and FutureMutual Mobile
 
Selecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionSelecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionMutual Mobile
 
Honeycomb Design For Developers
Honeycomb Design For DevelopersHoneycomb Design For Developers
Honeycomb Design For DevelopersMutual Mobile
 
Android Design Guidelines 1.1
Android Design Guidelines 1.1Android Design Guidelines 1.1
Android Design Guidelines 1.1Mutual Mobile
 

More from Mutual Mobile (18)

SXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseSXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research Universe
 
SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...
 
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
 
Hacking Wearable Tech
Hacking Wearable TechHacking Wearable Tech
Hacking Wearable Tech
 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
 
Classroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationClassroom of the Future: Mobile in Education
Classroom of the Future: Mobile in Education
 
Lean Mobile Strategy
Lean Mobile StrategyLean Mobile Strategy
Lean Mobile Strategy
 
What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7
 
7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience
 
Let's Talk Android
Let's Talk AndroidLet's Talk Android
Let's Talk Android
 
3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems
 
Designing the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidDesigning the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of Android
 
Hackathon
HackathonHackathon
Hackathon
 
SXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosSXSW Dribbble Meetup Photos
SXSW Dribbble Meetup Photos
 
iPad: Past, Present, and Future
iPad: Past, Present, and FutureiPad: Past, Present, and Future
iPad: Past, Present, and Future
 
Selecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionSelecting a Front-End Mobile Solution
Selecting a Front-End Mobile Solution
 
Honeycomb Design For Developers
Honeycomb Design For DevelopersHoneycomb Design For Developers
Honeycomb Design For Developers
 
Android Design Guidelines 1.1
Android Design Guidelines 1.1Android Design Guidelines 1.1
Android Design Guidelines 1.1
 

Recently uploaded

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

CocoaConf Austin 2014 | Demystifying Security Best Practices

  • 1. Demystifying Security Best Practices Conrad Stoll! Architect @conradstoll - conradstoll.com
  • 2. So you want to make software secure?
  • 5. Mobile devices are not secure.
  • 7. We are expected to ! secure our software.
  • 9.
  • 10. Products are judged by the ! quality of the user experience, ! and the absence of security issues.
  • 11. Security is hard, and a lot of apps ! get it wrong.
  • 13. Apple actually does take! security very seriously.
  • 15. Security is about being responsible ! with a user’s information.
  • 16. The type of information your app handles defines how secure ! it needs to be.
  • 17. Not everyone is building a banking app.
  • 18. Security is all about making tradeoffs.
  • 19. Every app we build has an appropriate balance between security! and usability.
  • 21. 14! things you can do to build! more secure software
  • 23. But logs are helpful!! What could possibly go wrong?
  • 24.
  • 25. 1
  • 26. Logging provides helpful debug information but can accidentally leak sensitive user data. Dangers of Over Logging • User passwords! • Sensitive web requests! • Locations! • Never know what could be storing those logs (other apps, add ons, etc.). Any good lumberjack knows not to over-log.
  • 27. Use a logging macro and limit the scope of production logs. How to prevent production logs • Log only what is required.! • Super sensitive data should not be logged.! • Set different logging levels for release build. Think before you log
  • 28. #pragma mark - LOGGING ! //---- To disable all Logs in release mode ----// #ifdef DEBUG #define UBLog( s, ... ) NSLog(s, ## __VA_ARGS__) #else #define UBLog( s, ... ) #endif ! Logging Macro Using a logging macro to programmatically disable logs
  • 29.
  • 30. We wrote a script to analyze our code and look for ‘NSLog’ in all of our files that would fail the build if it found any. Great case for writing tests • Build scripts keep everyone honest.! • Well suited for automation.! • Works great with a Continuous Integration system. Run tests that verify you have no logs on your build system ruby file_sieve.rb -d Classes/ -e UnionBankGlobals NSLog
  • 31. Number 2:! Fast App Switching
  • 32.
  • 33. Hiding sensitive information when the app goes to the background can be a good idea to protect user privacy. Hiding Sensitive Data • Blur out sensitive data.! • Remove sensitive data.! • Obscure sensitive data. Hide your kids, hide your text fields
  • 35. #pragma mark - Security ! - (void)applicationDidEnterBackground:(UIApplication *)application { RootViewController *rootVC = (RootViewController *)self.window.rootViewController; UIViewController *viewController = (UIViewController *)[rootVC.presentedViewControllers lastObject]; ! /** If the last presented view controller is a SplashViewController we must not present the splash screen again. */ if (![viewController isKindOfClass:[SplashViewController class]]) { /** We're presenting a splash screen when the app backgrounds as a privacy and security feature. This view needs to block the UI so that a screenshot of sensitive data does not accidentally get saved to the background. */ [self presentSplashViewController]; } } ! Hiding Sensitive Data When the app enters the background
  • 37. Easy way to prevent MITM ^(make MITM much more difficult)
  • 38. Compare a server’s certificate! with a known certificate
  • 39. Compare the exact certificate used in the request with the known certificate included in your app bundle. Certificate Pinning • Communication will fail after the certificate expires. More secure, but fragile
  • 40. Compare a known public key to the network request’s certificate public key. Public Key Pinning • Public key’s don’t change when certificates expire.! • One public key might be used for several web services at a large company. Still secure, less fragile
  • 41. Built in support for SSL Pinning in 1.0 and 2.0. AFNetworking • Super easy to use implementation of SSL Pinning.! • AFSecurityPolicy on version 2.0.! • Allows you to select between certificate or public key pinning modes. Most popular Objective-C library on GitHub!
  • 43. An ARC PIE a day! keeps memory attacks away
  • 44. In all honesty, protecting against memory attacks probably is not your job as an application developer. Being practical with memory attacks • No, scribbling over NSString isn’t practical. ! • Don’t make it easy on an attacker. So, how likely is this really?
  • 45. 1
  • 46. ARC helps make sure you’re correctly managing memory. Use ARC • Makes sure objects get released and dealloc’d when they should be. Don’t let objects you aren’t using stick around
  • 47. Position Independent Execution prevents memory address attacks. This option is enabled by default in Xcode. Keep PIE enabled • Prevents an attack against specific memory addresses.! • Honestly, there’s no reason to disable this… Who doesn’t like PIE?
  • 49. The keychain is more secure if the user sets a passcode on the device! Device needs a PIN code • There’s no way to tell if the user set a passcode.! • Encrypted with the device key, so they don’t transfer to new devices. Or a really long passcode
  • 50. Best not to store a user’s password. Try and store a hash or session token instead. Careful what you store in the keychain • Access controls for when data becomes available from the keychain. Would you put your social security number there?
  • 52. NSUserDefaults is a great place to store basic app preferences or bits of state, like whether or not this is the app’s first launch. But it should NOT be used to store anything sensitive. NSUserDefaults != Keychain • Unencrypted key value storage.! • Should never be used to store anything sensitive. If you wouldn’t store it in the keychain, definitely don’t store it in NSUserDefaults!
  • 53. 1
  • 55. Autocorrect results are stored unencrypted on the device. Sensitive Autocorrect • Autocorrect is disabled by default on secure text fields.! • Disable it on yours if you’re not using the UITextInputTraits secureTextEntry property.! • Consider disabling it anyway if you anticipate sensitive data being entered into a text field or text view. Be careful what you allow to autocorrect
  • 56. The pasteboard can be used to share data between apps. A malicious app could look for sensitive data on the pasteboard. UIPasteBoard • Avoid storing sensitive data in the pasteboard.! • Disable copying on sensitive text input fields. Do you trust every app with your bank account number?
  • 57. Expire sensitive content and mark it as org.nspasteboard.ConcealedType. UIPasteBoard • http://nspasteboard.org! • 1Password marks content as “concealed”.! • 1Password removes content after 90 seconds by default. Protect potentially sensitive pasteboard data
  • 59.
  • 60.
  • 61. Being polite! when asking for permission
  • 62. Remember that context for your request is very important. How and when you ask is important • Don’t ask on app launch or login.! • Ask in response to a user action.! • Only ask for what you clearly need.! • Explain why you need permission. Many users distrust software
  • 63. Be considerate of a user’s permission, and don’t overstep your bounds. Treat user permission with respect • Don’t copy the user’s address book.! • Don’t log location data to the server.! • Don’t transmit user data in the clear.! • Don’t store passwords on your server.! • Don’t record all of someone’s conversations with their microphone and pick up words like “soda” and attempt to turn around and sell them “Coke”. Be a good house guest
  • 66. Downloading a file using NSURLSessionDownloadTask gives you the ability to download in the background, but removes the ability to encrypt files on the fly. Implementation Trade Offs • Is it ok to have a file stored in the clear for 10 seconds?! • What if you know the user is in physical possession of the device?! • Would this concern prevent you from supporting “open in” or “open with” features? Theoretical versus Practical
  • 67. Storing data locally can help improve the user experience. Here’s some things you can feel pretty safe about storing. Good things to store • Most user-generated photography! • Most user-generated content (todo list)! • Publicly available content! • Podcasts, music, videos! • Application metadata database! • Application preferences! ! Pretty much zero risk of storing this kind of stuff
  • 68. Some apps deal with sensitive data, and storing this on the device can be dangerous. Bad things to store • Personal medical information! • Personal financial information! • Copyrighted content! • Secret corporate information! ! Storing this stuff should keep you up at night
  • 69. Sometimes you want to use Core Data even though you can’t store anything. In-Memory Core Data • In-Memory store is pretty fast! • Great for facilitating object graph management and fetching/sorting! • Easy way to use Core Data if persistence isn’t an option or a requirement! ! Core Data, but without the storage part
  • 71. Use the latest file encryption provided by common crypto. File Encryption • AES 256! • User generated encryption key AES all the things!
  • 73. Data Protection APIs provide an easy to use baseline protection for files on disk. Data Protection • Available in iOS 4.0.! • Enabled by default now in iOS 7.0.! • Protected by the user passcode and device key.! • Makes it harder to access files, but can be defeated with physical access to the device.! • Far more secure if the user sets a passcode. Apple wants to make this easy for you
  • 74. Sometimes you really need an encrypted database. When you do, there’s NSIncrementalStore + Encryption. Encrypted Core Data • Implement your own encrypted Core Data persistent store.! • Several existing implementations are available.! • Core Data is already a complex system. Encrypted Core Data is obviously even more complex.! • Consider using a file based encryption system for small bits of data. Core Data + Incremental Store + Encryption. What could possibly go wrong?
  • 75. Encryption Resources • http://www.stoeger-it.de/en/secureincrementalstore/! • https://github.com/project-imas/encrypted-core-data! • http://adcdownload.apple.com//videos/wwdc_2012__sd/ session_714__protecting_the_users_data.mov! • http://blog.agilebits.com/2013/03/09/guess-why-were-moving-to-256-bit-aes-keys/ Helpful sites talking about encryption
  • 77. Prevent local network spoofing attacks by only allowing UIWebView requests to specific domains. Whitelist domains in web views • Compare requests made by your web view to a specific list of domains.! • Enforce HTTPS on all requests from the web view. Support safe browsing
  • 78. #pragma mark - Security ! /* Only allow the web view to load requests to whitelisted domains in order to prevent phishing attacks. */ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([self shouldAllowWebViewNavigationToURLRequest:request]) { return YES; } ! [self presentUnsafeBrowsingWarningForRequest:request]; ! return NO; } Whitelisting Domains Teaching someone how not to phish
  • 79. Web views don’t get challenge callbacks, so it is hard to implement SSL Pinning with them (though not impossible). No SSL Pinning Support • Try not to use web views for anything super sensitive.! • If you’re relying on a web view for most of your app, its worth going to the trouble of bootstrapping SSL Pinning for it. UIWebView doesn’t benefit from SSL Pinning elsewhere in your app
  • 80. WebView Resources • https://www.isecpartners.com/blog/2013/february/ssl-pinning-on-ios.aspx! • http://stackoverflow.com/questions/11573164/uiwebview-to-view-self-signed-websites-no-private- api-not-nsurlconnection-i Helpful sites talking about web views
  • 82. Hope is NOT a strategy
  • 83. You’re responsible for what third party libraries are doing in your app. If you’re following the rules above, make sure they are too. Third Party Library Security! • Check and see if they are writing anything to disk.! • Look at their networking code to see what they’re sending over the air.! • Check on their implementation of debug logging and whether or not it can be disabled. Hope is not a strategy. Make sure libraries are secure.
  • 85. There’s lots of powerful security features in MDM. If you’re building an enterprise app, make sure your client knows about this! If you’re building an enterprise app… • Force device passcode! • Per-app VPN! • Configuration enforcement! • Encrypted backups! • Remote wipe Use MDM Features
  • 86. Number 14:! Have a Backup Plan
  • 87. You can always use a remote server to force an update. You can lock out the app in the event of a security breach, and force users to install the update that fixes it. If all else fails… • Gives you a pretty heavy hammer.! • Easy to implement.! • Important for high-risk apps like banking. The last one standing blows the bridge.
  • 88. Thanks!! Secure all the things! Conrad Stoll! @conradstoll - conradstoll.com