Recherche Pentesting
1. Sécurité des applications mobiles
Les applications mobiles sont vulnérables à plusieurs types de menaces de sécurité. Les
attaques les plus courantes incluent les attaques par hameçonnage, les attaques de
logiciels malveillants et les attaques de réseau. Les vulnérabilités courantes incluent les
erreurs de codage, les vulnérabilités du système d’exploitation et les vulnérabilités des
protocoles de sécurité. Les conséquences de l’insécurité des applications mobiles peuvent
être graves et coûteuses, allant des vols d’identité et des pertes financières aux pertes de
confidentialité des données des utilisateurs.
La sécurité des applications mobiles comprend différents aspects : la sécurité des
applications mobiles elles-mêmes (version iOS ou Android), la sécurité des APIs et la
sécurité des serveurs. La sécurité du back end (APIs et serveurs) est généralement plus
critique que la sécurité du front end (apps iOS / Android), mais ceci dépend du contexte
technique et fonctionnel de l’application elle-même.
1.1. Les meilleures pratiques de sécurité des applications mobiles
Pour protéger les utilisateurs contre les risques de sécurité des applications mobiles, les
développeurs doivent adopter les meilleures pratiques de sécurité suivantes :
La sécurité des données :
les développeurs doivent mettre en place des protocoles de chiffrement pour les données
stockées et transmises par l’application. Ils doivent également être conscients de la gestion
des données personnelles des utilisateurs.
La sécurité du réseau :
les développeurs doivent utiliser des protocoles de sécurité réseau tels que TLS/SSL pour
chiffrer la communication entre l’application et le serveur. L’authentification et l’autorisation
doivent aussi être mises en place pour protéger l’application contre les attaques de réseau.
La sécurité du code :
Les développeurs doivent mettre en place des pratiques de codage sécurisées et effectuer
des tests de sécurité pour détecter et corriger les vulnérabilités de sécurité.
La sécurité du code des applications mobiles est un élément clé pour garantir la protection
des données des utilisateurs. Voici quelques mesures à prendre pour assurer la sécurité du
code des applications mobiles :
● Analyse statique du code : il est important de réaliser une analyse statique du
code pour identifier les vulnérabilités potentielles. Cela permet de détecter les
erreurs de programmation qui pourraient être exploitées par des attaquants.
● Analyse dynamique du code : en plus de l’analyse statique, il est recommandé
de réaliser une analyse dynamique du code pour évaluer le comportement de
l’application en temps réel. Cela permet de détecter les vulnérabilités liées à la
logique de l’application.
● Vérification de la conformité : il est important de s’assurer que le code respecte
les bonnes pratiques de développement sécurisé, comme l’utilisation de fonctions
de chiffrement, la gestion des erreurs et la validation des entrées utilisateurs.
● Utilisation d’outils de protection du code : il est possible d’utiliser des outils de
protection du code pour empêcher la modification ou la lecture du code. Cela
permet de réduire les risques d’attaque liés à la divulgation de secrets de
l’application.
● Formation des développeurs : les développeurs doivent être formés aux bonnes
pratiques de développement sécurisé pour réduire les erreurs de programmation
et éviter les vulnérabilités.
● Tests de sécurité : il est recommandé de réaliser des tests de sécurité réguliers
pour s’assurer que l’application est toujours sécurisée. Cela permet de détecter
les vulnérabilités avant qu’elles ne soient exploitées par des attaquants.
La sécurité de l’utilisateur :
les développeurs doivent sensibiliser les utilisateurs aux risques de sécurité des applications
mobiles et leur fournir une formation sur les bonnes pratiques de sécurité.
1.2. Les outils et technologies de sécurité des applications mobiles
Il existe plusieurs outils et technologies de sécurité pour les applications mobiles, voici
quelques exemples :
1. Analyseur de vulnérabilités : il s’agit d’un outil qui permet de détecter les
vulnérabilités dans les applications mobiles. Il peut scanner les codes sources
pour détecter les failles de sécurité et fournir des recommandations pour les
corriger
2. Protection de l’application : il est possible d’utiliser des outils pour protéger
l’application elle-même. Il peut s’agir de solutions de chiffrement pour les données
sensibles stockées localement sur l’appareil, ou encore de technologies de
protection contre le reverse engineering de l’application.
3. Gestion des identités et des accès : pour sécuriser les données de l’utilisateur,
il est important de mettre en place une solution de gestion des identités et des
accès. Cela permet d’authentifier les utilisateurs et de s’assurer que seuls les
utilisateurs autorisés ont accès aux données sensibles.
4. Solutions de chiffrement : le chiffrement est une méthode de protection des
données qui consiste à les transformer de telle sorte qu’elles ne puissent pas être
lues par des personnes non autorisées. Les solutions de chiffrement sont souvent
utilisées pour protéger les données sensibles stockées sur l’appareil.
5. Firewall d’application : un firewall d’application est une solution qui permet de
protéger l’application contre les attaques externes, en bloquant les tentatives
d’exploitation de vulnérabilités connues.
6. Solution de détection de malware : il est important de détecter les malwares qui
pourraient être installés sur l’appareil mobile. Des solutions de détection de
malware peuvent être utilisées pour identifier les programmes malveillants et les
éliminer.
7. Mise à jour régulière : la mise à jour régulière de l’application est une mesure
importante pour garantir sa sécurité. Les mises à jour permettent de corriger les
failles de sécurité et d’ajouter des fonctionnalités de sécurité.
1.3.Les outils de test de sécurité
● DataDome
● Checkmarx
● NowSecure
● Appknox
● eShard esChecker
● Fortify on Demand
● HCL AppScan
● AppSweep
● Veracode
● Synopsys
2. BYOD et politiques anti-BYOD
2.1.BYOD
L’acronyme « BYOD » est l’abréviation de l’expression anglaise « Bring Your Own Device »
(en français : « Apportez Votre Equipement personnel de Communication » ou AVEC), qui
désigne l'usage d'équipements informatiques personnels dans un contexte professionnel.
Il peut s’agir par exemple d’un employé qui, pour se connecter au réseau de l’entreprise,
utilise un équipement personnel comme son ordinateur, sa tablette ou son smartphone.
La possibilité d’utiliser des outils personnels relève avant tout d’un choix de l’employeur qui
peut tout aussi bien l’autoriser sous conditions, ou l’interdire.
Si le Code du travail demande à l’employeur de fournir à ses employés les moyens
nécessaires à l’exécution de leurs tâches professionnelles, il n’interdit pour autant pas à
l’employeur de permettre l’utilisation des moyens personnels des employés, souvent perçus
comme plus agréables à utiliser.
Cette décision devra cependant être prise après avoir minutieusement mis en balance les
intérêts et les inconvénients présentés par cet usage qui brouille la frontière entre vie
personnelle et vie professionnelle.
2.2.mesures prévoir pour la sécurité des données
● cloisonner les parties de l’outil personnel ayant vocation à être utilisées dans un
cadre professionnel (création d’une « bulle de sécurité ») ;
● contrôler l’accès distant par un dispositif d’authentification robuste de l’utilisateur (si
possible à l’aide d’un certificat électronique, d’une carte à puce, etc.) ;
● mettre en place des mesures de chiffrement des flux d’informations (VPN, HTTPS,
etc.) ;
● prévoir une procédure en cas de panne/perte du terminal personnel (information
de l’administrateur réseau, mise à disposition d’un équipement alternatif
professionnel, effacement à distance des données professionnelles stockées sur le
terminal personnel) ;
● exiger le respect de mesures de sécurité élémentaires telles que le verrouillage du
terminal avec un mot de passe conforme aux bonnes pratiques et l’utilisation d’un
antivirus à jour ;
● sensibiliser les utilisateurs aux risques, formaliser les responsabilités de chacun et
préciser les précautions à prendre dans une charte ayant valeur contraignante ;
● subordonner l’utilisation des équipements personnels à une autorisation préalable
de l’administrateur réseau et/ou de l’employeur
3.Mobile Device Management (MDM)
3.1.C’est quoi un MDM
Une application de mobile device management (MDM) ou « gestion de terminaux mobiles »,
est une application permettant la gestion d'une flotte d'appareils mobiles, qu'il s'agisse de
tablettes, de smartphones, voire d'ordinateurs hybrides au format tablette ou d'ordinateurs
portables. Cette gestion est effectuée au niveau du service informatique de l'organisation
(entreprise, association ou collectivité).
L'objectif du MDM est d'harmoniser et de sécuriser la flotte de la société en s'assurant que
tous les collaborateurs aient des programmes à jour et que leurs appareils soient
correctement sécurisés. Le programme facilite également la propagation de patchs de
sécurité ou de nouveaux logiciels pour l'ensemble des collaborateurs.
La MDM gère des tailles et des types de flottes variées allant d'une dizaine de terminaux
identiques, jusqu'à des milliers de terminaux tous différents et utilisant différents systèmes
d'exploitation.
C'est au début des années 2000 que l'on a vu les solutions de MDM apparaître dans un
premier temps pour les PDA, les assistants personnels numériques précurseurs des
tablettes numériques.
3.2.Les principales fonctionnalités d'un MDM
● FOTA – Firmware over the air : permet de mettre à jour le système d'exploitation des
téléphones et tablettes à distance.
● Monitoring : contrôle les erreurs d'un parc entier de terminaux.
● Possibilité d'accès à distance : le plus souvent utilisée pour dépanner les utilisateurs.
● Gestion d’inventaire : inventaire des terminaux actifs, consultation des
communications en temps réel…
3.3.Sécurité
● Sauvegarde et restauration : les comptes utilisateurs et les données associées sont
enregistrés sur le serveur de l'entreprise, ce qui permet de les restaurer en cas de
changement de mobile.
● Blocage et effacement à distance, dans le cas de la perte ou du vol de téléphone.
● Installation de logiciels à travers le réseau cellulaire (over the air : OTA)
● Performance et diagnostics : information sur l'état du terminal, à l'aide de différents
indicateurs tels que l'état de la batterie, les informations réseaux, la localisation, le
nombre d'heures d'utilisation.
● Gestion du roaming : permet d'interdire ou de limiter l’installation d’applications sur
des terminaux se trouvant hors d’un territoire géographique donné.
3.4.Différents types de MDM
MDM monoplateforme : ceux qui n'acceptent qu'un seul système d'exploitation (Microsoft
avec son System Center MDM 2008)
MDM multiplateforme : une approche dite agnostique puisqu'elle ne se limite pas à un
système d'exploitation mais permet de gérer des mobiles fonctionnant avec les principaux
OS mobiles, parmi lesquels iOS d'Apple, Android, BlackBerry, Windows phone, voire des
systèmes plus anciens tels que Windows Mobile, PalmOS ou Symbian. Y figurent
notamment des acteurs tels que SOTI1, Microsoft Intune2, MDM Mosyle, Mobile Iron,
Absolute Software, BlackBerry Entreprise Server 10, Citrix XenMobile, VMWare AirWatch,
Telelogos Clyd...
4.Les SEs sécurisés
● /e/ : créé en 2017 sous la houlette de Gaël Duval, déjà à l’origine de la distribution
GNU/Linux française Mandrake, /e/ est une version d’Android sans les services
Google.
Le système met l’accent sur la protection des données personnelles. Il est composé
d’une boutique applicative avec des logiciels triés sur le volet et d’un service cloud
permettant de sauvegarder les messages, les contacts, les photos, etc.
Il est possible d’installer néanmoins n’importe quelle application Android. /e/ peut être
installé gratuitement sur 93 modèles de smartphones. Il est également possible
d’acheter des smartphones avec /e/ préinstallé. Sept modèles sont proposés, entre
250 et 500 euros.
● Librem 5 : Depuis 2017, la société Purism s’est lancée dans la fabrication d’un
smartphone qui fonctionne sous PureOS, une distribution GNU/Linux sécurisée.
Baptisé Librem 5, il dispose d’une série d’applications de base, comme le navigateur
PureBrowser ou la messagerie instantanée Matrix. L’appareil est également doté de
plusieurs « killswitchs » permettant de déconnecter physiquement certains
composants comme les modules radio, le microphone ou la caméra.
Purism a démarré début novembre la production de masse de l’appareil, qui est
disponible pour 800 dollars. En passant commande maintenant, vous pourrez le
recevoir d’ici à quelques mois.
● GrapheneOS:Basé sur Android, ce système d’exploitation est porté par le
développeur Daniel Micay. Il est issu à l’origine du projet CopperheadOS, qui a
démarré en 2014 et qui existe toujours.
GrapheneOS ne comporte aucun service Google et intègre toute une série
d’applications « durcies », comme le navigateur Web Vanadium ou le lecteur PDF
View. Une grande partie du projet se focalise sur l’amélioration de la sécurité du
noyau.
Pour autant, le système reste compatible avec les applications Android, et est est
open source, et gratuit.
Il peut être installé sur les smartphones Pixel 2, 3 et 4.