Qu'est-ce que le durcissement des applications ?
Le durcissement des applications est un concept et une technique de cybersécurité qui utilise l'obscurcissement du code, la cryptographie en boîte blanche et d'autres techniques pour protéger les applications contre les techniques de fraude mobile, telles que l'ingénierie inverse et la falsification. Le durcissement des applications devrait être une bonne pratique pour les entreprises afin de protéger leurs applications, de réduire les risques de sécurité et de prévenir les abus, la tricherie et le reconditionnement.
Protection de l'application, renforcement de l'application et protection de l'application
Le durcissement et le blindage des applications sont des sous-ensembles de la protection in-app. La protection in-app est conçue pour défendre les applications de l'intérieur et convient parfaitement à une approche de la protection des applications fondée sur la confiance zéro. La protection in-app est utilisée de préférence pour les applications de grande valeur fonctionnant sur des appareils non surveillés ou des environnements non fiables.
Le durcissement des applications comprend des capacités de prévention qui augmentent la difficulté pour un attaquant d'exécuter une attaque. Le blindage des applications implique des mesures anti-tampering conçues pour perturber un attaquant et des capacités de détection qui déterminent si l'environnement des applications est fiable.
La protection in-app englobe également des capacités telles que les technologies anti-bots, la protection contre le clickjacking, l'autoprotection des applications d'exécution, l'authentification multifactorielle et l'analyse des risques.
Les hypothèses de sécurité mobile qui rendent les applications vulnérables
Les développeurs d'applications mobiles ne sont pas en mesure de contrôler tous les environnements dans lesquels leurs applications seront utilisées. Par exemple, les utilisateurs peuvent "jailbreaker" ou "root" leur appareil, ce qui désactive les protections du système d'exploitation. Par conséquent, le renforcement des applications est un élément important de la sécurité des applications mobiles, car il intègre des protections dans l'application elle-même, quel que soit le niveau de sécurité de l'appareil ou du système d'exploitation.
Deux idées fausses courantes augmentent les risques de compromission d'une application mobile.
Tout d'abord, les gens supposent que les magasins d'applications officiels - Apple App Store et Google Play - ne proposent que des applications légitimes et sécurisées à télécharger. Les magasins d'applications officiels analysent les applications que les développeurs leur soumettent pour détecter les logiciels malveillants et vérifient que l'accès des applications aux données des utilisateurs est contrôlé.
Mais la réalité est que les magasins d'applications ne sont pas en mesure d'attraper toutes les applications malveillantes, parce qu'il y a simplement trop d'applications pour éliminer toutes les mauvaises et agir comme un contrôle de sécurité fiable.
Deuxièmement, beaucoup supposent que les systèmes d'exploitation iOS et Android offrent une sécurité adéquate pour les applications mobiles téléchargées sur leurs appareils. La réalité est que les correctifs pour les vulnérabilités d'Android ou d'iOS ne sont pas toujours immédiatement disponibles, et que les utilisateurs ne pratiquent pas toujours la cyberhygiène en mettant régulièrement à jour leurs appareils. En outre, dans certains cas, les développeurs ne mettent pas correctement en œuvre les capacités de cryptage fournies par les systèmes d'exploitation.
Les raisons de durcir vos applications
Trois raisons principales justifient le durcissement des applications : la protection de la propriété intellectuelle, la protection de l'intégrité de l'application et la protection des données sensibles de l'application.
Dans une application, il y a la propriété intellectuelle (PI), comme les concepts, les innovations et les inventions qui donnent à l'entreprise un avantage concurrentiel. La possession d'un code source fonctionnel donne accès à toute propriété intellectuelle encodée dans l'application. En analysant le code source de l'application, un pirate peut voler la propriété intellectuelle. Le durcissement des applications peut assurer la sécurité de la propriété intellectuelle.
L'intégrité des applications est également une préoccupation des développeurs d'applications. Les acteurs malveillants peuvent inspecter et, si possible, modifier une application pour la cloner, voler des données ou récupérer des données via les API. Une application qui n'est pas renforcée par l'obfuscation et la cryptographie en boîte blanche est comme un livre ouvert. Les attaquants peuvent effectuer une analyse statique du code de l'application en clair et trouver des zones à attaquer et à exploiter. Dans le cadre d'une stratégie de défense en couches, les entreprises doivent également disposer de mécanismes permettant d'ajouter des fonctionnalités anti-débogage et anti-sabotage à une application afin de protéger, de détecter et de répondre aux attaques contre son intégrité.
Une technique d'attaque populaire consiste à exploiter les failles de sécurité des applications pour voler des données privées sensibles. Étant donné que les données utilisées pendant l'exécution peuvent être exposées d'une manière différente des données au repos ou en transit, et que les attaquants peuvent apprendre à exploiter cette situation en utilisant des débogueurs, des émulateurs et d'autres outils, la meilleure stratégie consiste à limiter l'utilisation non autorisée des débogueurs, des émulateurs et des autres outils que les pirates utilisent pour accéder aux données des applications et les modifier. En outre, si les clés de chiffrement ne sont pas correctement protégées, un attaquant pourrait voler ces clés et les utiliser pour accéder aux données en transit. Le durcissement des applications et d'autres techniques de protection in-app sécurisent les applications et les données qui y transitent en désactivant les vecteurs d'attaque utilisés par les pirates.
Techniques de durcissement des applications
Le durcissement des applications englobe plusieurs techniques visant à protéger les applications contre les attaquants. Il s'agit notamment de :
Obfuscation du code
L'obscurcissement du code brouille le code de l'application afin de rendre plus difficile l'ingénierie inverse des applications. Il est donc plus difficile de cibler une application en la rendant plus difficile à lire, ce qui rend également plus difficile le vol de sa propriété intellectuelle ou son reconditionnement. L'obfuscation du code utilise plusieurs techniques pour protéger les applications. Les composants logiciels et les identifiants peuvent être renommés. Il est possible d'ajouter un code fictif qui n'est jamais utilisé et de crypter des chaînes de caractères. Le code peut être recompilé et exécuté dans un interpréteur ou une machine virtuelle. D'autres techniques d'obscurcissement du code comprennent la réflexion et l'empaquetage.
Le white boxing ou cryptographie en boîte blanche
Cette approche offre une alternative à l'utilisation des outils natifs des plateformes modernes, tels que le trousseau d'Apple iOS ou le Keystore d'Android. Si une entreprise doit permettre à ses applications de fonctionner sur des appareils jailbreakés, cela peut être une technique cryptographique utile. De même, le white boxing peut être utilisé si l'intrus voit l'emplacement par défaut, tel que Keychain/Secure Enclave pour iOS ou KeyStore pour Android, pour les informations d'identification sur un appareil afin de cibler une attaque.
Autres techniques :
- L'épinglage des certificats, qui permet aux parties impliquées dans un processus d'authentification mutuelle d'épingler des certificats particuliers, peut être utilisé pour contrer les attaques de type "man-in-the-middle".
- Le cryptage des ressources implique le cryptage des composants de l'application, tels que les classes et les chaînes de caractères.
- L'auto-expiration fixe une date limite après laquelle un utilisateur est déconnecté après une période d'inactivité.
- Les claviers autonomes peuvent être utilisés pour stopper les tentatives d'enregistrement des touches, et la détection des claviers indésirables peut être utilisée pour détecter les claviers non autorisés.
- Le polymorphisme est une méthode qui permet de modifier le code pour rendre la rétro-ingénierie plus difficile.
Cas d'utilisation du durcissement des applications
Les applications bancaires mobiles constituent un cas d'utilisation du renforcement des applications. Les utilisateurs mobiles sont de plus en plus nombreux à se fier à leurs appareils pour effectuer leurs opérations bancaires. Les fraudeurs cherchent à tirer profit de toute faille dans la sécurité qu'ils peuvent trouver. Le durcissement des applications permet d'empêcher les fraudeurs de développer des exploitations malveillantes de l'application bancaire mobile, ce qui rend la tâche plus difficile pour un attaquant.
Les applications mobiles de santé traitent des informations de santé protégées (PHI) réglementées par la loi sur la portabilité et la responsabilité de l'assurance maladie (HIPAA). Les prestataires de soins de santé et d'autres personnes risquent de lourdes sanctions si leurs applications de télésanté divulguent des données sur les patients. Le durcissement des applications peut permettre de préserver la confidentialité des patients et d'éviter les amendes HIPAA en empêchant les cyber-attaquants d'accéder aux renseignements médicaux personnels.
Les applications mobiles de vente au détail constituent un autre excellent cas d'utilisation pour le renforcement des applications. Ils traitent les données des cartes de crédit régies par la norme de sécurité des données de l'industrie des cartes de paiement (PCI DSS). Les commerçants en ligne qui ne se conforment pas à la norme PCI DSS s'exposent à des amendes de la part des sociétés de cartes de crédit, à la perte de la confiance des clients, voire à des audits de la Federal Trade Commission.
Le personnel des services publics, tels que les premiers intervenants, les forces de l'ordre et les agences gouvernementales, accèdent, transmettent et stockent des informations sensibles sur leurs applications mobiles. Ces données peuvent être régies par l'HIPAA, les politiques des agences ou les règles de confidentialité. Elles doivent donc être protégées par des mesures de sécurité robustes telles que le durcissement des applications.
Les applications mobiles destinées aux consommateurs constituent un pont entre le monde extérieur et les bases de données internes sensibles des clients, ce qui en fait une cible pour les attaquants. Le durcissement des applications est capable de bloquer ou d'empêcher les attaquants d'exploiter les nombreuses vulnérabilités des applications mobiles qui peuvent entraîner le vol de données.
Le nombre d'appareils et d'applications connectés augmentant de façon exponentielle, la surface d'attaque des pirates pour infiltrer les réseaux à la maison, sur le lieu de travail et à l'usine se développe à un rythme similaire. Les applications qui contrôlent les appareils connectés sont vulnérables aux attaques. Le durcissement des applications peut sécuriser ces applications pour protéger les systèmes embarqués d'une manière que les solutions antivirus et autres outils de sécurité conventionnels ne peuvent pas faire.
Protégez-vous contre ces stratégies d'attaque grâce au durcissement des applications
Le durcissement des applications peut contribuer à les défendre contre plusieurs scénarios d'attaque, notamment l'ingénierie inverse, le reconditionnement et les claviers pirates.
La rétro-ingénierie est la pratique consistant à analyser une application pour en extraire des informations sur sa conception et sa mise en œuvre. Cette technique peut être utilisée à des fins légitimes, mais un attaquant peut également l'utiliser pour analyser le code et développer des logiciels malveillants qui exploitent les applications à des fins néfastes.
Dans le cas d'une attaque par reconditionnement, un pirate procède à l'ingénierie inverse d'une application légitime, y ajoute un code malveillant et la télécharge sur une boutique d'applications. Il s'agit d'une technique favorite des attaquants qui ciblent les applications bancaires mobiles.
Les applications de clavier alternatif, qui sont utilisées par les gens pour personnaliser leur clavier, peuvent également cacher un code malveillant qui vole des données ou effectue d'autres actions malveillantes.
En résumé, le durcissement des applications protège les applications contre les activités malveillantes et préserve les informations sensibles des cybercriminels tout au long de leur cycle de vie. Le durcissement des applications fait partie d'une approche de la sécurité des applications en couches qui comprend la protection de l'exécution, l'authentification forte et d'autres techniques. La sécurité en couches peut contribuer à accélérer les initiatives de transformation numérique, à réduire les coûts opérationnels et à ouvrir de nouvelles opportunités de croissance.