Les smartphones jouent un rôle majeur qui augmente chaque jour dans nos vies. La sortie d'applications sécurisées est devenue une urgence pour protéger les utilisateurs. Les experts en sécurité ont acquis un rôle important dans l'identification des comportements indésirables, tels que la fuite de données, l'autorisation d'erreurs pour les applications installées sur les appareils, la génération de coûts inattendus ou le refus d'un service spécifique à un utilisateur de téléphone.
Nous avons précédemment partagé quelques conseils pour des développements iOS sécurisés. Il est important de lire ces articles, car ils vous aideront à découvrir certaines erreurs commises par les développeurs lors de la création d'applications iOS. Nous partageons ici les directives suivantes, qui peuvent être utilisées pour soutenir vos analyses.
1 - Mettez-vous dans la peau du programmeur
Essayez de comprendre les personnes derrière le développement du code que vous auditez. Découvrez dans quel langage de programmation ils travaillent ou quel est leur premier langage de balisage (principal). Le style des programmeurs est généralement évident dans la structure de leur code et la nature de leurs erreurs. Connaître ces choses vous met dans la bonne direction quand il s'agit d'enquêtes.
Par exemple, les programmeurs ayant une formation Java itèrent les modèles de conception, supprimant les fonctionnalités encore et encore. C'est différent pour les développeurs mobiles qui s'appuient sur des logiciels Web qui fournissent plus de fonctionnalités déposées dans les applications Web et qui s'appuient fortement sur l'utilisation de WebKit. Les deux types de développeurs sont familiarisés avec l'utilisation des API de haut niveau, mais sont sujets aux erreurs lors de la gestion des API de bas niveau.
2 - Récupérez le code source
Bien que le code source ne se trouve généralement pas là où se trouve l'attaquant, le fait de le posséder vous aidera à découvrir la plupart des erreurs en peu de temps. Les tests d'intrusion sont généralement associés à des ressources limitées en temps et en argent, et il est préférable d'en tirer le meilleur parti. Votre objectif ne doit pas être de reproduire un scénario d'attaque réel, l'objectif est de trouver autant de vulnérabilités que possible pour rendre l'application finale plus sécurisée.
Objective-C fonctionne en reverse engineering et il est possible d'avoir une vision assez claire des mécanismes internes d'une application, même sans partir du code source. Et l'attaquant peut voir, en termes relatifs ou totaux, ce que vous obtiendrez en utilisant le code dans un temps illimité. Il vaut mieux gagner du temps et consacrer ses efforts à trouver ces failles de sécurité.
3 - Considérez les faiblesses de la langue
Bien qu'Objective-C et Cocoa empêchent certains bogues de sécurité courants en C et C++, l'utilisation d'API dangereuses, telles que strcpy et strcat, ou de mécanismes mal implémentés, tels que les classes ou le swizzling, peut provoquer des comportements inattendus qui conduisent à de graves erreurs de sécurité. Pour cette raison, assurez-vous d'étudier comment ces technologies affectent l'application.
4 - Déterminer la possibilité de réutiliser du code faible
Une mauvaise habitude que de nombreux programmeurs ont développée dans les forums de conseil en logiciels en ligne consiste à copier du code sans tester son fonctionnement, en particulier en ce qui concerne les assistants de bas niveau, la mise en réseau et le codage. Il existe également une intégration et un développement tiers dans le code de base sans vérifier les failles de sécurité. Cela peut entraîner un code de mauvaise qualité et cohérent entre plusieurs applications.
5- Utiliser deux équipes de test : une avec jailbreak et l'autre avec factory
Avoir un appareil avec un système d'exploitation d'usine vous aidera à évaluer le comportement de l'application dans l'environnement réel de l'utilisateur final, avec tous les mécanismes de sécurité activés et aucun problème avec la journalisation des notifications push. Alternativement, vous pouvez utiliser l'appareil avec le jailbreak pour analyser le système de fichiers plus en détail et voir comment fonctionne le système d'exploitation.
Nous espérons que ces conseils vous aideront à trouver de nouvelles perspectives analytiques pour l'application sur laquelle vous travaillez.
