Sécurité : les vérifications à la portée de tout testeur

Mots de passe, sessions, permissions, codes OTP et liens partagés. Ce que tout testeur peut vérifier sans rien attaquer, et ce qui doit rester aux experts.

Sommaire

Pas besoin d’être un pirate pour découvrir une faille. Parfois, il suffit de se déconnecter, de toucher le bouton Retour… et de retrouver son solde, son historique et le bouton « Envoyer de l’argent », parfaitement fonctionnels.

Beaucoup de défauts de sécurité sérieux se voient en utilisant l’app normalement, avec un œil attentif : une session qui survit à la déconnexion, un message d’erreur qui révèle qu’un numéro possède un compte, un lien de reçu qui s’ouvre chez n’importe qui. Ces défauts-là, un testeur non spécialiste peut et doit les repérer.

Cet article vous donne les vérifications à votre portée, sans rien casser ni attaquer, la frontière à ne jamais franchir, et la bonne façon de signaler une faille sans mettre personne en danger, vous compris.

Ce qu’un testeur peut vérifier, et où s’arrête son rôle

Votre rôle consiste à observer comment l’app se comporte quand on l’utilise normalement, ou maladroitement, avec vos propres comptes de test. Le rôle de l’expert consiste à attaquer volontairement le système pour mesurer sa résistance. Le tableau suivant trace la frontière.

À votre portéeRéservé aux experts autorisés
Vérifier la déconnexion, les sessions, les messages d’erreurIntercepter et modifier le trafic entre l’app et le serveur
Tester les règles de mot de passe sur vos comptes de testLancer des scanners ou des attaques automatisées
Observer les permissions demandées et les données affichéesDécompiler l’app pour analyser son code
Ouvrir un lien partagé avec un second compte de testTenter des injections de code ou de requêtes
Vérifier le comportement des codes OTPTester la résistance à une surcharge volontaire

Définition

Test d’intrusion (penetration test, souvent abrégé pentest) : une attaque simulée, menée par un spécialiste, pour trouver les failles avant les vrais attaquants. Il exige une autorisation écrite qui fixe le périmètre (quelles apps, quels serveurs), les dates, les méthodes permises et la personne à prévenir en cas d’incident.

Attention

Ne testez jamais la sécurité d’une app sans autorisation, même « pour rendre service ». Au Cameroun, l’article 65 de la loi n° 2010/012 du 21 décembre 2010 sur la cybersécurité et la cybercriminalité punit l’accès non autorisé à tout ou partie d’un système d’information de cinq à dix ans d’emprisonnement et d’une amende de 5 à 10 millions de francs CFA, ou de l’une de ces peines. Beaucoup de pays ont des lois comparables. Votre mission doit dire par écrit ce que vous avez le droit de faire ; dans le doute, demandez avant d’essayer.

Mots de passe et connexion : ce que vous pouvez contrôler

La référence la plus citée est la publication SP 800-63B-4 du NIST, l’institut national américain des normes et de la technologie, publiée en juillet 2025. Elle s’adresse d’abord aux administrations américaines, mais sert de point de repère bien au-delà. Ses principales règles pour les mots de passe :

  • au moins 15 caractères quand le mot de passe est le seul moyen de connexion, au moins 8 s’il s’accompagne d’un second facteur, comme un code OTP ;
  • au moins 64 caractères acceptés ;
  • pas de règles de composition imposées (une majuscule, un chiffre, un symbole) ni de changement périodique obligatoire ;
  • refus des mots de passe courants ou déjà compromis ;
  • coller et gestionnaires de mots de passe autorisés, avec une option pour afficher le mot de passe saisi ;
  • un nombre limité de tentatives échouées.

Votre projet peut avoir sa propre politique : c’est elle qui fait foi, le NIST sert à la discuter. Avec vos comptes de test, vérifiez ensuite :

  1. Les mots de passe faibles. Essayez « 123456 » ou « azerty ». Sont-ils refusés, avec une explication ?
  2. Les mots de passe longs. Collez un mot de passe de 64 caractères. Est-il accepté en entier, ou tronqué en silence, ce qui empêche ensuite de se reconnecter ?
  3. Les erreurs répétées. Faites une dizaine d’erreurs, à la main, jamais avec un script. L’app impose-t-elle un délai ou un blocage temporaire ?
  4. Le message d’échec. « Identifiant ou mot de passe incorrect » est correct. « Aucun compte n’existe avec ce numéro » révèle qui est client.
  5. Le mot de passe oublié. Le lien ou le code de réinitialisation sert-il une seule fois ? Expire-t-il ? L’ancien mot de passe cesse-t-il de fonctionner ?
  6. Le mot de passe en clair. Il ne doit jamais apparaître dans un SMS, un e-mail de bienvenue ou une adresse web.

Sessions et déconnexion : les tests qui révèlent le plus

Définition

Session : la période pendant laquelle l’app vous reconnaît après la connexion, grâce à un jeton (token) conservé sur l’appareil. Se déconnecter devrait invalider ce jeton, pas seulement afficher l’écran d’accueil.

Ces six tests prennent dix minutes et trouvent souvent des défauts sérieux :

  1. Déconnexion puis Retour. Touchez Retour, ou le bouton « précédent » du navigateur. Les écrans privés doivent rester inaccessibles et aucune action ne doit fonctionner.
  2. L’adresse copiée. Sur le web, copiez l’adresse d’une page privée, déconnectez-vous, puis collez-la dans une fenêtre de navigation privée. Vous devez arriver sur l’écran de connexion.
  3. Deux appareils. Connectez le même compte de test sur deux téléphones, puis changez le mot de passe sur l’un. Que devient la session de l’autre ? Comparez avec ce que prévoit le cahier des charges.
  4. L’inactivité. Laissez une app sensible, de banque ou de santé, ouverte sans y toucher. Redemande-t-elle une identification après le délai décidé par l’équipe ?
  5. Les apps récentes. Ouvrez la liste des apps récentes : l’aperçu affiche-t-il votre solde ou un code ?
  6. La réinstallation. Désinstallez puis réinstallez l’app. Vos données ou votre session réapparaissent-elles sans connexion ?

Exemple

Un testeur se déconnecte d’une app de tontine en ligne, puis prête son téléphone à un collègue. En touchant Retour, le collègue retrouve la liste des membres du groupe, avec leurs numéros et leurs montants de cotisation. Aucune attaque, aucun outil : juste un bouton Retour. Le défaut est rapporté, classé grave, et corrigé avant la publication.

Données visibles, erreurs bavardes et liens partagés

Les données affichées. Un numéro de carte ne devrait montrer que ses derniers chiffres. Vérifiez aussi ce qu’affichent les notifications sur l’écran verrouillé : un code ou un montant y est-il lisible sans déverrouiller ? Sur le web, regardez l’adresse : un e-mail, un numéro de téléphone ou un jeton n’ont rien à y faire, car l’adresse se retrouve dans l’historique et dans les liens partagés.

Les messages d’erreur bavards. Un message qui affiche une trace technique (« NullPointerException at com.app… »), une requête de base de données, un chemin de fichier ou une version de serveur donne des indices précieux à un attaquant. Provoquez des erreurs ordinaires : champ vide, format invalide, réseau coupé. L’utilisateur doit lire un message simple, et rien d’autre.

Les liens partagés. Reçus, factures, ordonnances, bulletins de notes : ouvrez le lien avec un second compte de test, ou dans une fenêtre de navigation privée. L’accès doit être refusé, sauf si le lien a été voulu public ; il doit alors être impossible à deviner et, idéalement, expirer.

Ne modifiez jamais un numéro dans une adresse pour tomber sur les données d’un vrai client. Ce test se fait uniquement entre vos propres comptes de test, dans un environnement de test, et seulement si votre mission le prévoit.

Les captures d’écran. Code secret, numéro de carte, code OTP : demandez à l’équipe ce qui a été décidé pour ces écrans. Sur Android, une app peut empêcher les captures et les enregistrements de certains écrans. Vérifiez que le comportement réel correspond à la décision, y compris pendant un partage d’écran en appel vidéo.

Permissions et codes OTP : deux zones à surveiller

Les permissions

Chaque permission doit avoir une raison visible. Une app de lampe torche qui veut lire vos contacts doit vous alerter. Android recommande de demander une permission au moment où l’utilisateur lance la fonction qui en a besoin, d’expliquer pourquoi, et de laisser l’app fonctionner si la réponse est non, en désactivant seulement la fonction concernée.

Pour le tester, installez l’app sur un téléphone propre et comptez les demandes au premier lancement. Refusez tout, puis utilisez l’app : plante-t-elle ? Vous harcèle-t-elle ? Retirez ensuite une permission dans les réglages en cours d’usage, et revenez dans l’app.

Les codes OTP

Définition

OTP (one-time password) : un code à usage unique, envoyé par SMS ou par e-mail, ou généré par une application d’authentification. Il prouve que vous possédez bien le téléphone ou la boîte mail.

Vérifiez quatre comportements :

  • Usage unique : un code déjà utilisé doit être refusé.
  • Expiration : le NIST exige que la vérification par un code envoyé sur un autre canal, comme un SMS, soit terminée en 10 minutes au plus.
  • Tentatives limitées : après quelques codes faux saisis à la main, l’app doit ralentir ou bloquer.
  • Renvoi : un délai sépare-t-il deux envois ? L’ancien code reste-t-il valable ? Comparez avec la règle prévue.

Les référentiels OWASP pour parler le langage des experts

Définition

OWASP (Open Worldwide Application Security Project) : une fondation à but non lucratif qui publie gratuitement des référentiels de sécurité. Les plus connus sont l’OWASP Top 10 pour les applications web (version 2025) et l’OWASP Mobile Top 10 (version 2024).

Citer la bonne catégorie aide l’équipe à comprendre et à prioriser. Le tableau suivant relie ce que vous pouvez observer aux catégories des deux classements.

Ce que vous observezCatégorie OWASP
Un reçu s’ouvre depuis un autre compteA01:2025 Broken Access Control
Une erreur affiche une trace techniqueA02:2025 Security Misconfiguration, A10:2025 Mishandling of Exceptional Conditions
« 123456 » accepté, essais illimités, session active après déconnexionA07:2025 Authentication Failures, M3 Insecure Authentication/Authorization
Une clé d’accès ou un mot de passe visible dans l’appM1 Improper Credential Usage
Des permissions ou données personnelles demandées sans raisonM6 Inadequate Privacy Controls
Une page en http, un avertissement de certificatA04:2025 Cryptographic Failures, M5 Insecure Communication

Pour aller plus loin sur mobile, l’OWASP publie aussi le MASVS, un standard d’exigences de sécurité, et le MASTG, un guide de test détaillé. Ce sont les outils des experts : les connaître vous aide à dialoguer avec eux.

Comment signaler une faille sans mettre personne en danger

Une faille se signale autrement qu’un bouton mal aligné :

  • Canal privé : écrivez à la personne désignée par votre mission, jamais dans un groupe WhatsApp, un ticket public ou sur les réseaux sociaux.
  • Minimum de données : masquez toute donnée personnelle sur vos captures et n’utilisez que des comptes de test.
  • Arrêtez-vous : une fois le problème constaté, ne cherchez pas à récupérer davantage de données pour « prouver » la gravité.
  • Discrétion : n’en parlez à personne d’autre tant que la faille n’est pas corrigée.
Titre : session toujours active après déconnexion (bouton Retour)
Gravité proposée : élevée (données personnelles et paiement accessibles)
Environnement : Android 14, app 3.2.0, environnement de test, comptes de test A et B
Étapes : 1. Se connecter avec A  2. Se déconnecter  3. Toucher Retour
Résultat : l'historique s'affiche et le bouton « Envoyer » fonctionne
Attendu : retour à l'écran de connexion, aucune action possible
Catégorie : OWASP A07:2025 Authentication Failures
Pièces jointes : vidéo, données personnelles masquées

Pour le reste de la rédaction, suivez le guide du rapport de bug efficace. Et gardez ces tests dans vos séances de test exploratoire : c’est souvent en sortant du chemin prévu que les failles apparaissent.

Votre liste de contrôle sécurité

Déroulez cette liste à chaque nouvelle version, avec vos comptes de test.

Liste de contrôle

Ces vérifications font partie de ce qu’on attend d’un testeur complet. Si vous voulez en faire votre métier, découvrez comment devenir testeur d’applications, puis rejoignez les testeurs GeekTest.

À retenir

  • Beaucoup de failles graves se voient sans attaquer : déconnexion, sessions, messages d’erreur, liens partagés, permissions, codes OTP.
  • Vous observez avec vos propres comptes de test ; les attaques volontaires restent aux experts, avec une autorisation écrite.
  • Tester sans autorisation est un délit : au Cameroun, un accès non autorisé peut valoir de cinq à dix ans de prison.
  • L’OWASP Top 10:2025 et l’OWASP Mobile Top 10 donnent un vocabulaire commun avec les experts.
  • Une faille se signale en privé, avec le minimum de données, et on s’arrête dès qu’elle est constatée.

Pour aller plus loin

Partager cet article

L’auteur

Donchi

Donchi écrit les guides de l’Académie GeekTest, l’espace d’apprentissage de la plateforme de testeurs de Geek Institut : des conseils concrets pour sortir des applications fiables et faciles à utiliser, et pour progresser comme testeur.

Et maintenant ?

Ne manquez aucun article

Chaque nouvel article de l’Académie est annoncé sur la chaîne WhatsApp GeekTest. Rejoignez-la et abonnez-vous : des conseils de test utiles, sans spam.

Rejoindre la chaîne WhatsApp (nouvel onglet)

Devenez testeur

Testez des applications sur votre téléphone ou votre ordinateur, mettez en pratique ce que vous apprenez ici, et soyez rémunéré.

Devenir testeur

Un projet d’application ?

L’équipe de développement de Geek Institut conçoit et réalise des applications web et mobiles, de l’idée à la publication. Parlons de votre projet.

Parler de mon projet