
Depuis novembre dernier, l’entreprise Fallible a décidé d’automatiser cette tâche eu égard aux sollicitations qui se sont faites croissantes. Pour cela, elle a conçu et mis en ligne un outil permettant de faire de l’ingénierie inverse sur n’importe quelle application Android. Quelques mois après la publication de cet outil sur la toile, les utilisateurs s’en sont servis pour réaliser de l’ingénierie inverse sur environ 16 000 applications.
En examinant le code de ces applications, plusieurs découvertes ont été effectuées. Sur les 16 000 applications examinées, environ 2 500 ont soit une clé soit une clé secrète de service tiers codée en dur dans l’application. Par ailleurs, même s’il est normal pour les applications d’intégrer des clés comme par exemple la clé de l’API Google pour utiliser les services de l’entreprise, les développeurs de l’entreprise ont découvert la présence de nombreuses clés secrètes d’API qui n’avaient finalement pas leur place dans ces applications.
Selon Fallible, ces clés secrètes appartiennent à divers services tiers comme celui d’Uber qui peut être utilisé pour envoyer une notification à partir de l’application Uber. À côté d’Uber, les ingénieurs ont également découvert des clés secrètes d’Amazon Web Service (AWS) également codées en dur dans les applications. Et le plus intrigant, selon Fallible, est que certaines de ces clés secrètes avaient des privilèges complets pour créer ou supprimer des instances.
Pour donner une idée des clés secrètes trouvées dans ces applications, Fallible a publié la liste ci-dessous.
Généralement, les propriétaires des applications ne souhaitent pas que l’on réalise de l’ingénierie inverse sur leurs applications au risque de trouver des choses que l’on ne souhaite pas faire connaître au public. Et c’est ce qui a certainement poussé Mary Ann Davidson, la directrice de la sécurité d’Oracle, à affirmer il y a quelques années qu'un client n’a pas le droit d’appliquer l’ingénierie inverse sur ses produits. Et même s’il trouvait des failles dans le code source d’un produit Oracle en appliquant cette méthode, il lui sera simplement rappelé en guise de remerciement que « le client ne saurait faire du reverse engineering, désassembler, décompiler ou alors tenter de dériver le code source des programmes... », tout en insistant sur le fait qu’il devra détruire les résultats de cette ingénierie inversée et confirmer qu’il l’a fait.
Bien entendu, si Fallible a pu découvrir de nombreuses clés ou jetons d’API et clés secrètes dans ces applications il est clair qu’elles peuvent se retrouver dans n’importe quel produit. Pour inciter à de bonnes pratiques, Fallible recommande aux développeurs de bien réfléchir avant de coder en dur les jetons et clés d’API dans les applications.
Aux services tiers, l’entreprise leur recommande de préconiser aux développeurs de ne pas mettre de clés secrètes directement dans les applications, mais plutôt de créer plusieurs clés secrètes d’API avec différentes portées.
Source : Hackernoon
Et vous ?

Voir aussi

