Secure your mobile apps 
Noé Beuret 
Marc-Henri Primault
WHY YOUR APP NEEDS 
SECURITY?
Source: IBM Software 
75% SECURITY BREACH COMES FROM 
Apple reveals 
government 
data request 
6 nov. 2013 
iOS Banking 
Apps Riddled 
with Holes 
17 Jan. 2014 
MOBILE APP MISCONFIG. (GARTNER) 
Apple Security 
flaw hallow to 
beat encryption 
22 Feb. 2014 
Through 2015, more 
than 75% of mobile 
Apps will fail basic 
security tests
WHY APPS ARE NOT 
SECURE ENOUGH?
MOBILE SECURITY CHALLENGES 
New technologies 
• Heterogeneous OS platforms 
• New version every year 
Developers 
• Focus on features, not security 
• Unaware of underlying flaws 
Mobile security 
• Hard to build knowledge 
• Only for a few products 
• Penetration testing costs
SENSITIVE 
DATA 
INSECURE 
CONNECTION 
INSECURE 
DEVICE 
INSECURE 
CLOUD 
STORAGE 
INSECURE 
APPS 
THREATS
Threats 
- 
Access to local data
Physical access 
access 
Malware 
DATA COMM 
Jailbreak Code
iOS - iExplorer 
DATA COMM
Best practices 
DATA COMM 
 Do I need to store the data? 
 Store in RAM when it is possible 
 Use the basic protection provided by the OS 
 Encrypt all sensitive information 
 Clean keys from the memory 
 Never save the keys or password without protection
Best practices 
DATA COMM 
 Never use the password directly 
Password 
 Jailbreak detection 
Derivation 
+ 
Hash
Threats 
- 
Communicat ion
DATA COMM 
Man in the Middle Attack 
1. Intercept traffic with different attacks 
• ARP Poisoning 
• Rogue access points 
• Evil Twin Attack 
2. Eavesdropp clear packets 
3. Eavesdropp SSL packets 
• SSL Stripping 
• Malicious SSL certificate
SSL Stripping 
DATA COMM 
GET http://mybank.com GET http://mybank.com 
Malicious SSL Certificate 
302 : https://mybank.com 
SSL Handshake 
200 OK http://mybank.com 200 OK https://mybank.com 
HTTPS links replaced by HTTP 
CONNECT https://mybank.com CONNECT https://mybank.com
DATA COMM 
Demo
Protection Measures 
Use SSL / TLS over HTTP 
 Integrity 
 Confidentiality 
DATA COMM
DATA COMM 
Protection Measures 
HTTPS : Best practices 
 Always use a full HTTPS URL 
 Whenever possible, self-signed certificates 
should be forbidden 
 If not possible, DO NOT trust everything ! 
 Trust only your certificate by doing SSL Pinning
Proxy 
 Integrity 
 Confidentiality 
 Anonymity 
DATA COMM 
VPN 
 Integrity 
 Confidentiality 
 Authentication 
 Anonymity 
 Internal network access
QUICK WINS
QUICK WINS 
Storage 
SQLCipher for Android : Encrypted SQLite databases 
sqlcipher/android-database-sqlcipher 
IOCipher : Virtual Encrypted Disks 
guardianproject/IOCipher 
Code analysis 
RootTools : Basic root detection 
stericson/RootTools 
Proguard : Obfuscation & Shrinker tool 
http://proguard.sourceforge.net
QUICK WINS 
Storage 
SQLCipher for ios: Encrypted SQLite databases 
sqlcipher/sqlcipher 
iOS-Crypto-API: Wrapper over security framework 
cstaylor/iOS-Crypto-API 
Network communication 
ADVCertification: SSL Certification 
http://www.advtools.com/Products/ADVcertificator.html 
Code analysis 
ADVDetector: Jailbreak detection 
http://www.advtools.com/Products/ADVdetector.html
TECHNOLOGY
F r a m e w o r k 
+ = 
Y O U R A P P S E C U R E A P P 
F r a m e w o r k 
SENSE 
 Encrypted storage 
 Encrypted communication 
 Proxy HTTP 
 Keys manager 
 Identity manager 
 Jailbreak detection 
 Data leakage prevention
SENSE
CONCLUSION 
• Do not underestimate security of your app 
• Think about which security level you really 
need 
• Implement best practices 
• Review, test and audit your code
THANK YOU FOR YOUR ATTENTION 
Contact 
Sysmosoft SA 
Rue Galilée 6 - 1400 Yverdon-les-Bains – Switzerland 
info@sysmosoft.com 
+41 24 524 10 36
LINKS 
General 
https://viaforensics.com/resources/reports/best-practices-ios-android-secure-mobile-development/ 
Android 
iOS 
http://www.raywenderlich.com/45645/ios-app-security-analysis-part-1 
http://resources.infosecinstitute.com/ios-application-security-part-1-setting-up-a-mobile-pentesting- 
platform/

Secure Your Mobile Apps

  • 1.
    Secure your mobileapps Noé Beuret Marc-Henri Primault
  • 3.
    WHY YOUR APPNEEDS SECURITY?
  • 4.
    Source: IBM Software 75% SECURITY BREACH COMES FROM Apple reveals government data request 6 nov. 2013 iOS Banking Apps Riddled with Holes 17 Jan. 2014 MOBILE APP MISCONFIG. (GARTNER) Apple Security flaw hallow to beat encryption 22 Feb. 2014 Through 2015, more than 75% of mobile Apps will fail basic security tests
  • 5.
    WHY APPS ARENOT SECURE ENOUGH?
  • 6.
    MOBILE SECURITY CHALLENGES New technologies • Heterogeneous OS platforms • New version every year Developers • Focus on features, not security • Unaware of underlying flaws Mobile security • Hard to build knowledge • Only for a few products • Penetration testing costs
  • 7.
    SENSITIVE DATA INSECURE CONNECTION INSECURE DEVICE INSECURE CLOUD STORAGE INSECURE APPS THREATS
  • 8.
    Threats - Accessto local data
  • 9.
    Physical access access Malware DATA COMM Jailbreak Code
  • 10.
    iOS - iExplorer DATA COMM
  • 11.
    Best practices DATACOMM  Do I need to store the data?  Store in RAM when it is possible  Use the basic protection provided by the OS  Encrypt all sensitive information  Clean keys from the memory  Never save the keys or password without protection
  • 12.
    Best practices DATACOMM  Never use the password directly Password  Jailbreak detection Derivation + Hash
  • 13.
  • 14.
    DATA COMM Manin the Middle Attack 1. Intercept traffic with different attacks • ARP Poisoning • Rogue access points • Evil Twin Attack 2. Eavesdropp clear packets 3. Eavesdropp SSL packets • SSL Stripping • Malicious SSL certificate
  • 15.
    SSL Stripping DATACOMM GET http://mybank.com GET http://mybank.com Malicious SSL Certificate 302 : https://mybank.com SSL Handshake 200 OK http://mybank.com 200 OK https://mybank.com HTTPS links replaced by HTTP CONNECT https://mybank.com CONNECT https://mybank.com
  • 16.
  • 17.
    Protection Measures UseSSL / TLS over HTTP  Integrity  Confidentiality DATA COMM
  • 18.
    DATA COMM ProtectionMeasures HTTPS : Best practices  Always use a full HTTPS URL  Whenever possible, self-signed certificates should be forbidden  If not possible, DO NOT trust everything !  Trust only your certificate by doing SSL Pinning
  • 19.
    Proxy  Integrity  Confidentiality  Anonymity DATA COMM VPN  Integrity  Confidentiality  Authentication  Anonymity  Internal network access
  • 20.
  • 21.
    QUICK WINS Storage SQLCipher for Android : Encrypted SQLite databases sqlcipher/android-database-sqlcipher IOCipher : Virtual Encrypted Disks guardianproject/IOCipher Code analysis RootTools : Basic root detection stericson/RootTools Proguard : Obfuscation & Shrinker tool http://proguard.sourceforge.net
  • 22.
    QUICK WINS Storage SQLCipher for ios: Encrypted SQLite databases sqlcipher/sqlcipher iOS-Crypto-API: Wrapper over security framework cstaylor/iOS-Crypto-API Network communication ADVCertification: SSL Certification http://www.advtools.com/Products/ADVcertificator.html Code analysis ADVDetector: Jailbreak detection http://www.advtools.com/Products/ADVdetector.html
  • 23.
  • 24.
    F r am e w o r k + = Y O U R A P P S E C U R E A P P F r a m e w o r k SENSE  Encrypted storage  Encrypted communication  Proxy HTTP  Keys manager  Identity manager  Jailbreak detection  Data leakage prevention
  • 25.
  • 26.
    CONCLUSION • Donot underestimate security of your app • Think about which security level you really need • Implement best practices • Review, test and audit your code
  • 27.
    THANK YOU FORYOUR ATTENTION Contact Sysmosoft SA Rue Galilée 6 - 1400 Yverdon-les-Bains – Switzerland info@sysmosoft.com +41 24 524 10 36
  • 28.
    LINKS General https://viaforensics.com/resources/reports/best-practices-ios-android-secure-mobile-development/ Android iOS http://www.raywenderlich.com/45645/ios-app-security-analysis-part-1 http://resources.infosecinstitute.com/ios-application-security-part-1-setting-up-a-mobile-pentesting- platform/

Editor's Notes

  • #2 Présentation: Bien mettre l’accent sur la solution de haute sécurité pour mobile.
  • #3 En 2014 le traffic mobile dépasse celui du desktop. Une large majorité des adultes possèdent un smartphone et y stockent des données personnelles. L’utilisation d’appareils mobile dans le cadre professionnel explose. Les entreprises sont en train de définir leur stratégie mobile et leur accorde de plus en plus de places. Certaines entreprises, dont des établissements financiers, ont abandonné les desktop pour n’utiliser que des tablettes.
  • #5 Les entreprises donnent accès à leurs données aux appareils mobile. Ceux-ci étant particulièrement récents, ils sont le maillon faible de la sécurité de l’entreprise. Il est beaucoup plus facile pour un pirate de s’introduire dans un téléphone mobile, ou d’en intercepter ses communications que de s’introduire dans le réseau de l’entreprise
  • #7  Noé D’où viennent ces problèmes de sécurité ? New technologies : Difficile de maintenir des logiciels sur plusieurs plateformes qui évoluent chaque année Developers : Les développeurs se focalisent sur les nouvelles fonctionnalités, et non la sécurité. En effet, il est de plus en plus important de donner aux clients / utilisateurs le maximum de nouvelles features. La sécurité passe en second plan. Les développeurs ne connaissent pas forcément les failles de sécurité de l’OS Mobile Security Demande plus de connaissances de la part de l’équipe de dév. Les audits de sécurité sont coûteux Dans la suite de cette présentation, nous allons parler de deux vecteurs d’attaques important qui sont le stockage des données, ainsi que la communication sur le réseau. Quels sont les risques, comment s’en protéger et quelles sont les difficultés lors de l’implémentation Préciser que nous n’allons pas parler de la mobilité en entreprises (décisions MDM, BYOD, …), mais plus du cas général de la sécurité des applications, qu’elles soient publiques ou privée à l’entreprise.
  • #8 Les cibles: Le smartPhone L’application Communication Cloud Les buts: - Données: Personnel – images, contact, vidéo Commercial – mot de passe, documents Application: Clés cryptographiques Detection de protection Cookies Sessions Suite -> Protection des données locals et protection sur la communication
  • #9 MH ATTENTION -> Bien expliquer le contexte Le but ici, c’est de voir ce que nous stockons sur le smartphone depuis notre application.
  • #10 Comment y accéder ? Appareil volé -> Accès physique Application tierce -> Virus En utilisant l’application sur un appareil jailbreaké ou rooté En explorant les backups
  • #11 ATTENTION: Accès validé à l’avance. Protection par PIN code Exemple simple des données stockées par l’application But: Montrer ce que stocke les applications Bien sûr il faut avoir accès aux données mais c’est tout a fait dans les cordes de certaines personnes. Exemple avec iExplorer Documents Dropbox -> Application support -> Files -> cache.db
  • #12 Comment s’en protéger : Ne pas stocker inutilement des données => Réfléchir et trouver le bon équilibre Utiliser la mémoire de la RAM Utiliser les systèmes mis à disposition par l’OS iOS: Keychain Android: Données privée de l’application Chiffrer les données sensibles Attention à la gestion des clés de chiffrements Ne pas les garder en mémoire Sinon toujours protéger les clés ou mot de passe Créer une clé principale dérivée d’un mot de passe ou récupérer la clé depuis un serveur Trois niveaux: Ne rien chiffrer Utiliser l’OS Utiliser Sense
  • #13 Analyse de code pour trouver comment fonctionne votre application. Modification de l’exécution du programme.
  • #14 Noé ATTENTION -> Bien expliquer le contexte Deuxième vecteur d’attaque : Les communications entre le device et internet … Comment s’en protéger : Analyser la situation et mettre sur une balance la difficulté de l’implémentation de la protection avec la sensibilité des données. Il n’est pas toujours possible et utile de mettre en œuvre une forte sécurité pour des données peu sensibles. Utiliser SSL / TLS Mécanisme standard de protection. Permet une protection contre le vol des données par sniffing, vol de cookies (session sécurisées) Avoir un certificat trusté permet valider l’intégrité et la confidentialité des données. Ne pas hésiter à faire du SSL pinning pour garantir que le certificat est le bon. Proxy HTTP Utiliser un proxy permet d’ajouter l’anonimité des requêtes Proxy public ou d’entreprise (possibilité d’accéder à des données internes, faire attention d’ajouter un moyen d’authentification fiable) Sécurité ultime : VPN Par app (iOS) ou par device (Android). Offre l’authentification, intégrité, anonimité, confidentialité + accès aux ressources internes de l’entreprise
  • #15  Quelles sont les attaques ? Packet Sniffing Analyser le trafic (browsing, …) Capturer les cookies non sécurisés de certains sites (par exemple réseau sociaux), les réutiliser ensuite pour accéder au site Anecdote : SSL est par défaut pour Gmail depuis 2010, Webmail Outlook depuis 2012, Facebook février 2013, Yahoo octobre 2013. http://threatpost.com/last-to-the-party-yahoo-turns-on-ssl-by-default/102592 Rogue access Points Créer un réseau public « Free WiFi », qui fait office d’attaque man-in-the-middle Evil Twin Attack Utiliser le même SSID du WiFi habituel de la cible. Son device va se connecter à celui-ci s’il est à portée.
  • #16  Quelles sont les attaques ? Packet Sniffing Analyser le trafic (browsing, …) Capturer les cookies non sécurisés de certains sites (par exemple réseau sociaux), les réutiliser ensuite pour accéder au site Anecdote : SSL est par défaut pour Gmail depuis 2010, Webmail Outlook depuis 2012, Facebook février 2013, Yahoo octobre 2013. http://threatpost.com/last-to-the-party-yahoo-turns-on-ssl-by-default/102592 Rogue access Points Créer un réseau public « Free WiFi », qui fait office d’attaque man-in-the-middle Evil Twin Attack Utiliser le même SSID du WiFi habituel de la cible. Son device va se connecter à celui-ci s’il est à portée.
  • #17 Instagram Paypal
  • #18 Pour une sécurité fiable, il est important, voir essentiel, de faire toutes les requêtes via HTTPS. Trust SSL Certificate !! SSL Pinning
  • #19 Pour une sécurité fiable, il est important, voir essentiel, de faire toutes les requêtes via HTTPS. Trust SSL Certificate !! SSL Pinning
  • #20 Comme pour le storage, il faut cibler l’information à protéger. La complexité de la mesure de sécurité est proportionnelle à l …. Pour une simple protection, il est possible de faire transiter le trafic via un proxy HTTP Pour une protection presque complète, il est possible de configurer un VPN par app ou au device. Plus compliqué mais efficace, et donne accès à l’intranet.
  • #22 Quelques solutions existantes et open-source pour Android. Chacune d’entre elle peut avoir ses défauts, comme indiqué avant il faut faire la balance entre la sensibilité des données et l’effort de la mise en œuvre. SQLCipher 4 Android : SQLite database extension encrypted with AES 256 IOCipher : Offre un FileSystem virtual chiffré Secure Preferences : Obfusque les préférences des applications. Il ne s’agit que d’une obfuscation car la clé de chiffrement est gérée par la librairie et facilement retrouvable.
  • #23 Quelques solutions existantes pour iOS. SQLCipher iOS-Crypto-API ADVCertification ADVDetector
  • #24 MH
  • #25 Ce que contient notre Framework Ne pas faire confiance seulement au mécanisme de base Chiffrement Gestion des clés Online Proxy Detection du jailbreak Timers de session
  • #26 Ce que contient notre Framework Chiffrement Gestion des clés Online Proxy Detection du jailbreak Timers de session
  • #27 Noé
  • #29 Mettre une conclusion un peu plus importante.