Nous étudions MITRE ATT & CK. Matrices mobiles: accès aux appareils. 2e partie

Persistance et escalade des privilèges


Liens vers toutes les parties:
Partie 1. Accès initial à un appareil mobile (accès initial)
Partie 2. Persistance et escalade
Partie 3. Obtention de l'accès aux informations d'identification (accès aux informations d'identification)
Partie 4. Évasion de la défense
Partie 5. Découverte et mouvement latéral

Les techniques d'épinglage décrivent comment obtenir des droits d'accès, modifier la configuration d'un appareil mobile et d'autres actions, grâce auxquelles un attaquant s'assure que sa présence dans le système est constante. Souvent, un adversaire est obligé de conserver l'accès à un appareil mobile malgré une pause du système d'exploitation à la suite d'un redémarrage ou d'une réinitialisation du système aux paramètres d'usine.

Ayant pris pied dans le système, l'adversaire a la possibilité de se «connecter» à un appareil mobile, mais probablement avec des droits très limités. Cependant, en profitant des faiblesses de la défense, un adversaire peut obtenir les privilèges supérieurs nécessaires pour atteindre le but de l'attaque.

L'auteur n'est pas responsable des conséquences possibles de l'application des informations énoncées dans l'article, et s'excuse également pour d'éventuelles inexactitudes faites dans certaines formulations et termes. Les informations publiées sont une nouvelle version gratuite du contenu de ATT @ CK Mobile Matrices: Device Access .

Reliure (persistance)


Abus d'accès de l'administrateur de périphérique pour empêcher la suppression


Plateforme: Android
Description: une application malveillante peut demander à l'utilisateur des droits d'administrateur de périphérique et, si des privilèges sont obtenus, effectuer des manipulations qui rendent difficile sa suppression.

Recommandations de protection:
Vérification préliminaire de l'application
En règle générale, les applications utilisent rarement l'accès administrateur. Dans l'environnement de l'entreprise, la présélection des candidatures doit identifier ces programmes dans le but d'une étude plus approfondie. Maggi et Zanero ont décrit l' approche consistant à effectuer une analyse statique des applications afin d'identifier les applications de ransomware qui abusent de l'accès administrateur de l'appareil. En résumé, la détection des applications de ransomware consiste en la détection précoce des indicateurs suivants dans le fichier apk: texte menaçant, code associé au blocage de l'utilisation de l'appareil par l'appareil (dialogues non effaçables, interdiction des boutons de navigation, remplissage de l'écran avec une fenêtre, etc.), cryptage des données ou abus de l'API d'administration.

Attention lors de l'utilisation de l'accès administrateur de l'appareil
Les utilisateurs d'appareils mobiles doivent être avertis qu'ils ne doivent pas accepter les demandes d'octroi de privilèges d'administrateur aux applications. En outre, l'application doit être vérifiée pour l'utilisation des droits d'administrateur avant son installation, et les applications nécessaires demandant un accès administrateur à l'appareil doivent être soigneusement étudiées et autorisées à utiliser uniquement s'il existe une bonne raison. Les utilisateurs d'Android peuvent afficher la liste des applications disposant de droits d'administrateur dans les paramètres de l'appareil.

Utilisation des dernières versions du système d'exploitation
Les dernières versions du système d'exploitation, en règle générale, contiennent non seulement des correctifs, mais également une architecture de sécurité améliorée qui offre une résistance aux vulnérabilités précédemment non détectées. Par exemple, Android 7 a introduit des modifications pour éviter la possibilité d'abus des droits d'administrateur.

Démarrage automatique de l'application sur le périphérique de démarrage (démarrage automatique de l'application au démarrage du périphérique)


Plateforme: Android
Description: L'application Android peut écouter la diffusion des messages de diffusion BOOT_COMPLITED, ce qui garantit son activation à chaque démarrage de l'appareil, sans attendre que l'utilisateur le démarre manuellement. BOOT_COMPLITED est un événement de diffusion dans Android, informant les applications de la fin du processus de démarrage du système d'exploitation. Toute application équipée d'un récepteur BroadcastRecevier spécial peut recevoir des messages de diffusion et prendre des mesures en fonction de ceux-ci. Une analyse de 1260 applications malveillantes pour Android, publiée en 2012, a montré que 83,3% des malwares écoutaient BOOT_COMPLITED.

Recommandations de protection: Dans un environnement d'entreprise, il est possible d'organiser la vérification des applications afin d'identifier les programmes qui annoncent BroadcastReceiver, qui contient un filtre d'intention par BOOT_COMPLITED. Cependant, étant donné l'énorme augmentation du nombre d'applications avec ce comportement, cette méthode est extrêmement peu pratique.

Modifier le noyau du système d'exploitation ou la partition de démarrage (Modifier le noyau du système d'exploitation ou la partition de démarrage)


Plateforme: Android, iOS
Description: Nommez une opportunité d'augmenter les privilèges, un adversaire peut essayer de placer du code malveillant dans le noyau du système d'exploitation ou des composants de la partition de démarrage, où le code ne peut pas être détecté, sera enregistré après le redémarrage de l'appareil et ne pourra pas être supprimé par l'utilisateur. Dans certains cas (par exemple, lors de l'utilisation de Samsung Knox ), une attaque peut être détectée, mais entraînera le transfert de l'appareil en mode de fonctionnalité limitée.

De nombreux appareils Android offrent la possibilité de déverrouiller le chargeur de démarrage à des fins de développement, mais cette fonctionnalité offre la possibilité de mettre à jour de manière malveillante le noyau ou de modifier le code de la partition de démarrage. Si le chargeur de démarrage n'est pas déverrouillé, le potentiel reste d'exploiter les vulnérabilités pour mettre à jour le code du noyau.

Recommandations de protection: installez des mises à jour de sécurité, implémentez des systèmes de certification à distance (Android SafetyNet, Samsung KNOX TIMA) et refusez aux appareils non certifiés l'accès aux ressources de l'entreprise. Organisez une vérification de l'état de verrouillage du chargeur de démarrage sur les appareils qui permettent de déverrouiller le chargeur de démarrage (permettant ainsi d'écrire n'importe quel code de système d'exploitation sur l'appareil).

L'API d'attestation Android SafetyNet peut être utilisée pour identifier et répondre à distance aux appareils compromis. Samsung KNOX offre la possibilité de valider à distance les appareils Samsung Android. Les appareils Samsung KNOX incluent un «fusible de bit de garantie Knox non réversible» qui fonctionnera si un noyau non KNOX est chargé sur l'appareil. Lorsqu'ils sont déclenchés, les services de conteneur KNOX d'entreprise ne sont pas disponibles sur l'appareil. Comme décrit dans le Guide de sécurité iOS, les appareils iOS ne peuvent pas démarrer ou autoriser l'activation de l'appareil si des modifications non autorisées sont détectées. De nombreuses applications d'entreprise effectuent leurs propres vérifications pour détecter et répondre aux appareils compromis. Ces contrôles ne sont pas un moyen fiable, mais ils peuvent détecter les principaux signes de compromis.

Modifier la partition système


Plateforme: Android, iOS
Description: si un adversaire peut augmenter les privilèges, il pourra les utiliser pour placer du code malveillant dans la partition système de l'appareil, où il restera après le redémarrage du système d'exploitation et ne sera pas facilement accessible pour être supprimé par l'utilisateur. De nombreux appareils Android vous permettent de déverrouiller le chargeur de démarrage à des fins de développement. Cette fonctionnalité peut également être utilisée par un adversaire pour modifier une partition système.

Recommandations de protection: les appareils Android avec prise en charge du démarrage vérifié effectuent une vérification cryptographique de l'intégrité de la partition système. L'API Android SafetyNet peut être utilisée pour identifier les appareils compromis. Samsung KNOX offre également la possibilité de contrôler à distance les appareils pris en charge. Les appareils IOS ne démarreront pas ou ne permettront pas l'activation d'un appareil dans lequel des modifications non autorisées sont détectées.

Modification TEE (Modify Trusted Execution Environment)


Plateforme: Android
Description: avec les privilèges appropriés, un attaquant peut essayer de placer du code malveillant dans un runtime de confiance (TEE) d'un appareil ou un autre runtime isolé similaire où le code n'est pas détectable, il sera enregistré après le redémarrage de l'appareil et ne pourra pas être supprimé par l'utilisateur. L'exécution de code dans TEE fournira à un adversaire la possibilité de contrôler ou de falsifier le fonctionnement de l'appareil.

Conseils de sécurité: les appareils doivent effectuer des vérifications d'intégrité sur le code qui s'exécute dans TEE au démarrage. iOS ne démarre pas si le code exécuté dans Secure Enclave échoue à la vérification de la signature numérique.

Modifier le code exécutable mis en cache


Plateforme: Android
Description: Afin d'améliorer les performances, Android Runtime (ART) compile le bytecode (classes.dex) en code machine lors de l'installation de l'application. Si un attaquant lève des privilèges, il peut modifier ce code mis en cache. Étant donné que le code a été initialement compilé sur l'appareil, le contrôle d'intégrité ne lui est pas appliqué, contrairement au code de la partition système.

Recommandations de protection: utilisez les dernières versions du système d'exploitation mobile et l'installation obligatoire de correctifs de sécurité.

Escalade de privilèges


Exploiter la vulnérabilité du système d'exploitation Exploiter


Plateforme: Android, iOS
Description: des applications malveillantes peuvent exploiter les vulnérabilités non corrigées du système d'exploitation mobile pour obtenir des privilèges avancés.

Recommandations de protection: recherchez dans l'application des vulnérabilités connues. Installez les mises à jour de sécurité. Utilisation des dernières versions du système d'exploitation.

Exploiter la vulnérabilité TEE Exploit


Plateforme: Android
Description: des applications malveillantes ou d'autres vecteurs d'attaque peuvent être utilisés pour exploiter les vulnérabilités du code exécuté dans un environnement de confiance (TEE). L'adversaire peut alors obtenir les privilèges dont TEE dispose, notamment la possibilité d'accéder à des clés cryptographiques ou à d'autres données sensibles. Pour attaquer TEE, un adversaire peut d'abord avoir besoin de privilèges élevés sur le système d'exploitation. Sinon, les privilèges TEE peuvent être utilisés pour exploiter les vulnérabilités du système d'exploitation.

Recommandations de protection: recherchez dans l'application des vulnérabilités connues. Installez les mises à jour de sécurité. Utilisation des dernières versions du système d'exploitation.

Source: https://habr.com/ru/post/fr454714/


All Articles