Bring Your Own Deception Du besoin d’affaire jusqu’au code

20
The OWASP Foundation http://www.owasp.org Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. HackFest.ca 2012 Québec, QC, Canada Bring Your Own Deception Du besoin d’affaire jusqu’au code Benoit Guérette OWASP Montréal Fondateur, Membre du conseil, Leader 2008-2010 [email protected]

description

HackFest.ca 2012 Québec, QC, Canada. Bring Your Own Deception Du besoin d’affaire jusqu’au code. Benoit Guérette OWASP Montréal Fondateur , Membre du conseil , Leader 2008-2010 [email protected]. BYODeception. SpeedTalk 20 minutes. La présentation. Déploiement BYOD - PowerPoint PPT Presentation

Transcript of Bring Your Own Deception Du besoin d’affaire jusqu’au code

Page 1: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

The OWASP Foundationhttp://www.owasp.org

Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.

HackFest.ca 2012Québec, QC, Canada

Bring Your Own Deception

Du besoin d’affaire jusqu’au code

Benoit GuéretteOWASP Montréal

Fondateur, Membre du conseil, Leader 2008-2010

[email protected]

Page 2: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

2

La présentation

BYODeception

• Déploiement BYOD• Choix du meilleur MDM• Angry Birds

• 3 cas vécus avec des exécutifs• Le chemin vers les tests de sécurité• Le code / recommandations• NSDataWritingFileProtectionComplet

e

SpeedTalk20 minutes

Page 3: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

3

Conférencier

Benoit Guérette

• OWASP Montréal

• Fondateur, Leader 2008-2010

• Membre du conseil

• Équipe de traduction du Top Ten 2010

• WASC (Web Application Security Consorsium)

• (webappsec.org)

• Auteur, SATEC (Static Analysis Tool Evaluation Criteria)

BYODeception

Page 4: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

4

Conférencier

• NorthSec (nsec.io)

• Membre du conseil d’administration (OSBL)

• VP Finances

BYODeception

Page 5: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

5

CAS #1 – The Angry President

• IPAD 64GB – Demande à TI de configurer courriels et envoyer le partage réseau d’entreprise complet sur l’appareil (quoi???)

BYODeception

Page 6: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

6

CAS #2 – The Angry VP

• Demande d’installation d’une suite BYOD qui est leader dans Gartner (coûts en PME importants)

BYODeception

Page 7: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

7

CAS #3 – The Angry IT Director

• J’utilise l’application X, elle est sécuritaire car elle demande un mot de passe… 2 mots de passe ca doit être de la double sécurité lol???

BYODeception

Page 8: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

8

iOS

• Oui, le système de fichier iOS est chiffré

• Par contre, une partie est déchiffrée au démarrage de l’appareil, et accessible sans le PIN

http://code.google.com/p/iphone-dataprotection/wiki/EncryptionKeys

BYODeception

Page 9: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

9

Facon d’analyser la partie publique

• Applications pratiques

• iExplorer

• iPhoneView

• Jailbreak (débridage en français!!!)

• Changez le mot de passe par défaut

• Accès au système de fichiers complet

• Vive grep (efficace!)

BYODeception

#1 OWASP Top Ten Mobile

Insecure Data Storage

TSHIRT OWASP!

!!

Page 10: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

10

PhoneView

BYODeception

Page 11: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

11

Fichiers non protégés

• Le mot de passe sur l’application c’est bien, mais qu’en est-il du fichier?

• Fichier PDF en clair sur l’appareil

• Fichier contenant des mots de passe

• Clés, etc.

BYODeception

L’utilisateur ne veut pas entrer son mot

de passe trop souvent…

Directeur TI – son application

sauvegarde les PDF en clair

Page 12: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

12

Fichiers non protégés• Utilisez le KeyChain d’iOS pour y placer des mots de passe

BYODeception

Ajout dans le KeyChain:KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:_account accessGroup:nil];[keychain setObject:_account forKey:(__bridge id)kSecAttrAccount];[keychain setObject:_passwd forKey:(__bridge id)kSecValueData];  Lecture dans le KeyChain:KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:_account accessGroup:nil];NSString *_myuser = [keychain objectForKey:(__bridge id)kSecAttrAccount];NSString *_mypass = [keychain objectForKey:(__bridge id)kSecValueData]; Destruction dans le KeyChain:KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:_account accessGroup:nil];[keychain resetKeychainItem];

Page 13: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

13

Fichiers non protégés• NSDataWritingFileProtectionComplete

BYODeception

// Obtenir le repertoire DocumentsNSString *homedir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];  // Obtenir le chemin complet incluant le nom de fichierNSString *filepath = [[NSString alloc] init];filepath = [homedir stringByAppendingPathComponent:@"MonFichierSecret.txt"]; // Convertir en format NSDataNSData *data = [@"MonContenuSecret" dataUsingEncoding:NSUTF8StringEncoding]; // Ecrire le fichierNSError *err;BOOL ok = [data writeToFile:filepath options:NSDataWritingFileProtectionComplete error:&err]; if (!ok) { NSLog(@"Error writing file at %@\n%@", filepath, [err localizedFailureReason]); }

Page 14: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

14

Dictionnaires locaux

• « auto-completion » sur les champs HTML rempli un dictionnaire local

BYODeception

Natif:monChamp.autocorrectionType = UITextAutocorrectionTypeNo;

Web:name: <INPUT NAME="monChamp" SIZE=40 AUTOCOMPLETE=OFF>

Web iOS:name: <INPUT NAME="monChamp" SIZE=40 AUTOCORRECT=OFF>

Page 15: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

15

UIWebView

• Fureteur embarqué (embedded browser) non associé à Safari

• Si le code serveur n’a pas désactivé la cache, le paramètre « Private Browsing » ne s’applique pas donc les données sont accumulées sur l’appareil et accessible dans la partie publique

BYODeception

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE,NO-STORE,MUST-REVALIDATE"> <META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">

Page 16: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

16

Snapshot des applications

• Afin d’accélérer l’affichage d’une application ayant été mise en arrière plan (bouton home), iOS prends un snapshot de l’application

• Données bancaires, NAS, infos compromettante?

BYODeception

- (void)applicationDidEnterBackground:(UIApplication *)application { viewController.MonChampSensible.hidden = YES;}

/private/var contient des snapshots de Safari

Page 17: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

17

Protocole

• Contrairement au fureteur, les applications n’ont pas de barre d’adresse.

• Êtes-vous réellement en HTTPS?

• Utilisez l’option de proxy d’iOS avec :

• OWASP ZAP / WebScarab / Burp Intruder

• Squid?

BYODeception

Page 18: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

18

Ne pas oublier

• Désactiver les traces de debug avant de livrer l’application

• Ne pas oublier de retirer les contournements(bypass) de certificats SSL (fréquent en développement)

• Les applications iOS n’accepte pas d’établir une connection SSL avec un certificat invalide…

BYODeception

Page 19: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

19

Références• https://www.owasp.org/index.php/OWASP_Mobile_Security_Project • https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet

Remerciements• Equipe du hackfest.ca 2012• Francois Proulx (dev mobile & spécialiste appsec mobile)• Simon Giroux, Guillaume Ross, Bernard Bolduc & Marc-André Meloche

(longues discussions sur forensic mobiles)

Page 20: Bring Your Own Deception Du  besoin d’affaire jusqu’au  code

Question?