Aller au contenu

Protéger une application

Protégez un APK Android ou un IPA iOS en quelques étapes : envoyez-le, choisissez les vérifications qu'il exécute, protégez-le, puis téléchargez la copie protégée.

L'ADR mobile (détection et réponse des applications mobiles) ajoute le RASP, l'autoprotection des applications à l'exécution, à une copie de votre application Android ou iOS. L'application protégée exécute des vérifications de sécurité sur l'appareil, comme le root ou le jailbreak, un débogueur ou le hooking avec Frida, et signale ce qu'elle détecte sous forme d'événements. Vous choisissez les vérifications qu'elle exécute.

Avant de commencer

  • L'application : un APK Android ou un IPA iOS, construit tel que vous le publieriez, de 2 Go au plus.
  • iOS : envoyez l'IPA que vous exportez depuis Xcode ou votre chaîne de build. Un IPA téléchargé depuis l'App Store est chiffré et ne peut pas être protégé. L'exécutable de l'application doit être compilé pour arm64. L'application protégée prend en charge iOS 12 et les versions ultérieures.
  • Android : l'application protégée nécessite Android 12 (API 31) ou une version ultérieure. Sa version minimale est relevée à 31 si elle est plus basse : elle ne s'installe donc plus sur les appareils plus anciens.
  • Un fichier par version : chaque version d'une application, son android:versionName ou son CFBundleShortVersionString, ne peut être protégée qu'à partir d'un seul fichier. Quand vous modifiez l'application, donnez une nouvelle version au nouveau build.
  • L'application d'origine : envoyez l'application telle que vous l'avez construite, pas une copie déjà protégée.

Ouvrir l'ADR mobile

Rendez-vous sur report.ostorlab.co, puis :

  • Ouvrez le menu et cliquez sur "ADR mobile", sous "Protéger".

    Ouvrir l'ADR mobile

  • Cliquez sur "Protéger une application".

    Cliquer sur Protéger une application

Choisir l'application

  • Déposez l'APK ou l'IPA dans la zone d'envoi, ou cliquez dessus pour choisir le fichier. La plateforme est déduite de l'extension du fichier.

    Envoyer l'application

  • Vérifiez le fichier, puis cliquez sur "Continuer". Le "Résumé de la protection" à droite affiche la plateforme, l'application et les vérifications qu'elle exécutera.

    Continuer vers les vérifications

Choisir les vérifications

  • L'étape liste les vérifications de la plateforme de l'application. Elles sont toutes activées par défaut.

    Les vérifications, toutes activées

  • "Identité de l'application" est toujours activée : elle distingue un build authentique d'une copie reconditionnée, son interrupteur ne peut donc pas être désactivé.

    Identité de l'application est toujours activée

  • Désactivez les vérifications qui ne conviennent pas à vos utilisateurs. Ici, "Hooking et instrumentation" et "Interception réseau" sont désactivées, et le "Résumé de la protection" les retire. Par exemple :

    • Un VPN d'entreprise déclenche "Interception réseau", tout comme un proxy sur iOS : désactivez-la si vos utilisateurs travaillent derrière l'un d'eux.
    • Votre équipe QA teste sur des émulateurs : protégez pour elle un build distinct avec "Émulateur" désactivé.

    Désactiver des vérifications

  • Le compteur à côté de "Continuer" indique combien de vérifications sont activées. Cliquez sur "Continuer".

    Continuer vers la protection

L'ADR mobile compte neuf vérifications, et une application reçoit celles de sa plateforme :

Vérification Android iOS Ce qu'elle détecte
Root ✓ Fichiers de root, partitions système accessibles en écriture, SELinux et propriétés de build.
Jailbreak ✓ Fichiers de jailbreak, sortie du sandbox et création de processus.
Débogueur ✓ ✓ Un débogueur attaché à l'application.
Hooking et instrumentation ✓ ✓ Frida et d'autres bibliothèques injectées dans l'application.
Intégrité du code ✓ Le code de l'application a été modifié après sa protection.
Interception réseau ✓ ✓ Tunnels VPN, et sur iOS proxys.
Identité de l'application ✓ ✓ Distingue un build authentique d'une copie reconditionnée.
Émulateur ✓ ✓ L'application tourne dans un émulateur ou le simulateur iOS.
Virtualisation et clonage d'application ✓ L'application tourne dans le conteneur d'une autre application.

L'application protégée exécute les vérifications activées à son démarrage, puis toutes les minutes tant qu'elle est ouverte. La page Événements liste ce que signale chaque vérification.

La protéger

  • Vérifiez les "Vérifications" du "Résumé de la protection" : seules celles qui sont activées y figurent.

    Les vérifications dans le résumé de la protection

  • Cliquez sur "Protéger". L'application est d'abord envoyée : restez sur la page jusqu'à la fin de l'envoi, ou cliquez sur "Annuler l'import" pour l'arrêter. Elle est ensuite protégée. Cela prend environ une minute, et vous pouvez quitter la page : le build continue et reste dans l'onglet "Builds".

    Cliquer sur Protéger

  • Quand "L'application est protégée" s'affiche, cliquez sur "Télécharger" pour obtenir la copie protégée.

    Télécharger l'application protégée

Une fois l'application protégée installée sur des appareils, ses événements s'affichent dans l'onglet "Événements". Chaque build de l'application reste dans "Applications" et "Builds", où vous pouvez le télécharger à nouveau.

Si l'application ne peut pas être protégée

La raison s'affiche sur la page et sous le statut du build dans l'onglet "Builds". Cliquez sur "Protéger une autre application" pour recommencer. Les messages du serveur s'affichent en anglais, ceux de la console dans votre langue.

Message Que faire
Choisissez un fichier APK ou IPA. Envoyez un fichier dont le nom se termine par .apk ou .ipa.
Le fichier est trop volumineux : la limite est de 2 Go. Envoyez un build plus petit de l'application.
The file is not a valid APK. / The file is not a valid app archive. Envoyez l'APK ou l'IPA tel que votre build l'a produit, sans le renommer ni le recompresser.
The app's AndroidManifest.xml cannot be read. Reconstruisez l'APK et envoyez-le.
The app's executable cannot be protected: it must be an unencrypted arm64 binary. Envoyez l'IPA exporté depuis Xcode ou votre chaîne de build, compilé pour arm64, pas un IPA téléchargé depuis l'App Store.
The app's executable has no room for the runtime. Reconstruisez l'application avec l'option d'éditeur de liens -headerpad_max_install_names, puis envoyez-la.
The app is already protected. Envoyez l'application d'origine, pas une copie protégée.
Version … of … is already protected from another file. Donnez une nouvelle version au nouveau build, puis envoyez-le.
Le build n'a pas pu être demandé L'application est envoyée : cliquez sur "Demander à nouveau".
The app could not be protected. Try again, or contact support if it fails again. Protégez à nouveau l'application. Si l'échec se répète, contactez le support.