Découverte et mouvement latéral
Liens vers toutes les parties:Partie 1. Accès initial à un appareil mobile (accès initial)Partie 2. Persistance et escaladePartie 3. Obtention de l'accès aux informations d'identification (accès aux informations d'identification)Partie 4. Évasion de la défenseAyant accédé à un appareil mobile, l'adversaire va probablement essayer d'utiliser les moyens habituels du système d'exploitation pour «regarder autour de lui», pour comprendre quel avantage a été obtenu, si cela aide à atteindre l'objectif de l'invasion. Cette étape de l'attaque s'appelle Discovery. Les techniques d'enquête visent à obtenir des informations sur les caractéristiques d'un appareil mobile compromis, ainsi que d'autres systèmes de réseau disponibles.
Après avoir évalué les capacités disponibles dans l'environnement attaqué, l'adversaire tentera d'accéder aux systèmes distants et, éventuellement, de les contrôler, tentera de lancer des outils malveillants sur les systèmes distants. L'activité décrite est appelée mouvement latéral. Les méthodes de déplacement latéral comprennent également des moyens de collecter des informations à partir de systèmes distants sans utiliser d'outils supplémentaires, tels que les utilitaires RAT (outils d'accès à distance).
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 .Plateforme: Android, iOS
Description: afin d'identifier les outils de sécurité du système attaqué, un attaquant peut tenter d'identifier les applications installées sur l'appareil qui peuvent augmenter le risque de détection d'activités malveillantes ou vice versa, afin d'identifier les applications qui seront ciblées par une nouvelle attaque.
Dans Android, les applications peuvent utiliser la
méthode de classe
PackageManager pour répertorier d'autres applications ou d'autres objets avec un accès en ligne de commande pour utiliser la commande
pm . Dans iOS, les applications peuvent utiliser des appels d'API privés pour obtenir une liste des applications installées sur l'appareil. Cependant, une application utilisant des appels d'API privés ne sera probablement pas acceptée dans l'AppStore.
Recommandations de protection: les méthodes de vérification des applications doivent inclure des moyens pour identifier les applications qui utilisent la classe
PackageManager pour répertorier d'autres applications, mais cette approche peut ne pas être pratique car de nombreuses applications appellent les méthodes de la classe
PackageManager dans le cadre de leur travail normal. Dans iOS, les outils de vérification des applications peuvent également rechercher des appels d'API privés.
Plateforme: Android
Description: dans Android, les informations sur le type d'appareil sont disponibles via la classe
android.os.Build . Les informations sur le périphérique peuvent être utilisées pour exploiter davantage les exploits ciblés qui améliorent les privilèges.
Recommandations de protection: lors de la vérification préliminaire, les applications qui utilisent la classe
android.os.Build peuvent être détectées.Cependant, cette mesure n'est pas efficace, car de nombreuses applications utilisent cette fonctionnalité dans le cadre d'un travail normal.
Plateforme: Android
Description: pour répertorier le contenu du système de fichiers dans Android, vous pouvez utiliser les outils de ligne de commande ou l'API Java pour travailler avec des fichiers. Cependant, sous Linux et SELinux, l'accès des applications aux fichiers est généralement très limité (sauf si vous utilisez un exploit pour élever les privilèges). En règle générale, les applications peuvent accéder au contenu du stockage externe, donc le stockage inapproprié de données confidentielles devrait être une préoccupation. L'architecture de sécurité iOS limite généralement la capacité de détecter des fichiers et des répertoires sans avoir de privilèges étendus.
Recommandations de protection: La possibilité d'une élévation de privilèges est compliquée avec chaque nouvelle version d'Android et iOS. Dans les versions récentes d'Android, le bac à sable a été renforcé, limitant la capacité des applications à répertorier le contenu du système de fichiers.
Plateforme: Android, iOS
Description: à l' aide de scanners de ports et de vulnérabilités, les attaquants peuvent essayer d'obtenir une liste des services exécutés sur des appareils distants, y compris ceux qui présentent des vulnérabilités d'exploitation à distance. La présence d'un appareil mobile se connectant au réseau interne de l'entreprise via une connexion locale ou VPN peut être perçue par l'adversaire comme un avantage potentiel.
Plateforme: Android
Description: dans Android jusqu'à la version 5, les applications peuvent recevoir des informations sur d'autres processus exécutés via les méthodes de la classe
ActivityManager . Sur Android plus ancien que la version 7, les applications peuvent obtenir ces informations en exécutant la commande
ps ou en «examinant» le
répertoire / proc . À partir d'Android 7, l'utilisation de la fonction
hidepid du noyau
Linux empêche les applications sans privilèges élevés de recevoir des informations sur d'autres processus.
Recommandations de protection: Utilisation d'Android OS version 7 et supérieure.
Plateforme: Android, iOS
Description: un attaquant pourrait tenter d'obtenir des informations détaillées sur le système d'exploitation et le matériel, notamment la version, les correctifs installés et l'architecture. Sur Android, la plupart des informations système sont disponibles via la classe
android.os.Build . Sur iOS, il existe également des méthodes permettant aux applications d'accéder aux informations système.
Plateforme: Android
Description: dans Android, les détails de configuration de l'interface réseau intégrée sont disponibles pour les applications via la classe
java.net.NetworkInteface . La classe
TelephonyManager peut être utilisée pour collecter des informations telles que IMSI, IMEI et le numéro de téléphone.
Recommandations de protection: Une analyse préliminaire de l'application doit inclure la vérification
si l' application demande des autorisations
ACCESS_NETWORK_STATE (requises pour accéder aux informations
NetworkInterface ) ou
READ_PHONE_STATE (requises pour accéder aux informations
TelephonyManager ). À partir d'Android 6.0, les applications ne peuvent pas accéder aux adresses MAC des interfaces réseau.
Plateforme: Android
Description: les applications peuvent utiliser des API standard pour collecter des données sur les connexions réseau sortantes et entrantes. Par exemple, l'application NetworkConnections disponible sur PlayMarket fournit cette fonctionnalité.
Plateforme: Android
Description: Afin de mener des attaques sur le PC connecté à l'appareil mobile, l'ennemi (ayant des privilèges élevés) peut apporter des modifications au système d'exploitation, après quoi l'appareil mobile usurpera l'identité d'un périphérique USB: clavier, souris, périphérique de stockage d'informations ou périphérique réseau. Cette méthode a été démontrée sur Android. La possibilité de mettre en œuvre cette technique sur iOS n'est pas connue.
Recommandations de
protection: Il est recommandé aux utilisateurs de connecter des appareils mobiles à un PC uniquement s'il y a un besoin raisonnable (par exemple, si cela est nécessaire pour développer et déboguer des applications mobiles).
Plateforme: Android, iOS
Description: un adversaire peut essayer d'utiliser des serveurs d'entreprise, des postes de travail ou d'autres ressources disponibles sur le réseau. Cette méthode est utilisée lors de la connexion d'un appareil mobile à un réseau d'entreprise via une connexion locale ou VPN.