Image demandant une confirmation pour s'authentifier

Article 3/3 : Industrialisation de tests MFA et introduction au RPA – Jonathan Bernales

Nous poursuivons notre série d’articles consacrés aux tests de systèmes intégrant des mécanismes de sécurité Multi-Facteur (MFA ou 2FA) !

Lors de notre premier article, nous avons vu que l’authentification multi-facteur (MFA) est devenue une norme incontournable dans la sécurisation des applications et services en ligne. Son adoption massive nous permet de renforcer la protection des comptes utilisateurs contre les cyberattaques. De plus en plus d’entreprises se penchent sur l’implémentation de ces mesures devenant parfois obligatoires (particulièrement dans la finance).

Dans les entreprises, l’intégration du MFA pose toutefois un défi majeur en matière de tests automatisés. Les flux MFA ne doivent pas simplement être désactivés dans les environnements de test et d’UAT car ceci pourrait compromettre la fiabilité des validations fonctionnelles en créant un environnement qui dévie de la production (= découverte d’anomalies non testées trop tard). Les tests doivent donc inclure l’authentification multi-facteur pour garantir une expérience aussi proche que possible de la réalité en production.

Dans notre précédent article, nous avons exploré les différentes stratégies permettant d’automatiser ces tests MFA. Nous avons également présenté des outils tels que GetMyMFA, MailSlurp et Receive-SMS-Free.cc, qui facilitent l’automatisation de la réception et du traitement des codes MFA.

Dans ce troisième article, nous allons examiner comment les équipes de test peuvent collaborer efficacement dans ces scénarios complexes et comment l’automatisation par RPA (Robotic Process Automation) peut simplifier des processus jusqu’à présent manuels en production.

L’utilisation de webhooks pour travailler de manière collaborative

L’automatisation des tests MFA ne supprime pas la nécessité d’effectuer des tests manuels. Ces tests impliquent souvent des équipes travaillant ensemble sur des comptes partagés, notamment pour les codes transmis par email, SMS ou via des applications TOTP. L’accès à ces codes de manière collaborative peut devenir complexe, car chaque utilisateur doit pouvoir obtenir le code MFA sans qu’il y ait de conflit d’utilisation ou de latence excessive. Une mauvaise organisation peut rapidement devenir un frein à la productivité et à la sécurité des tests. C’est ici que les webhooks apportent une solution efficace en automatisant la transmission des codes MFA à un canal de communication partagé, permettant ainsi à tous les membres d’une équipe d’accéder aux informations en temps réel de manière collaborative.

1.1 Approche avec des services tiers

1.1.1 Pour les codes transmis par email :

Si vous avez la possibilité de demander cela à votre département IT, une approche efficace consiste à créer un groupe Google (Google Groups si vous utilisez Google Workspace) ou une boîte mail partagée (Shared Mailbox si vous êtes sur Microsoft 365). Ces systèmes permettent à plusieurs utilisateurs d’accéder simultanément aux messages contenant les codes MFA sans qu’il soit nécessaire de les transmettre individuellement. En plus cela fonctionne aussi avec la mécanique dite « Plus addressing » (vous permettant de créer autant « sous-comptes » que vous le souhaitez (test+user1@domaine.com, test+user2, etc.)).

Exemple d’un groupe Google Group partagé

1.1.2 Pour les codes transmis par SMS :

Évitons de partager un/des téléphones avec différentes cartes SIM ! Bien que cela puisse dépanner sur le court terme, c’est une solution qui présente des inconvénients, notamment en termes de praticité. L’utilisation d’un numéro de téléphone privé ou partagé via des services comme GetMyMFA (payant) ou Receive-SMS-Free.cc (gratuit) offre une alternative plus viable. Ces services permettent d’accéder aux SMS MFA via une interface web ou une API, facilitant ainsi l’automatisation et le partage des codes entre les testeurs tout en garantissant une configuration identique à celle de votre environnement de production :

Interface de GetMyMFA avec un partage de numéro de téléphone
Interface de GetMyMFA avec un partage de numéro de téléphone

1.1.3 Pour les codes temporaires dits TOTP :

La meilleure approche est d’utiliser des gestionnaires de mots de passe sécurisés tels que Bitwarden ou 1Password. Ces outils permettent de stocker et de partager en toute sécurité les clés secrètes TOTP, garantissant ainsi que chaque membre de l’équipe puisse générer le code MFA requis sans compromettre la confidentialité des données.

En combinant ces différents outils et méthodes, vous pourrez effectuer N tests MFA tout en conservant un haut niveau de sécurité et de collaboration. L’objectif est de rendre l’accès aux codes MFA fluide et adapté aux besoins des tests sans introduire de frictions inutiles.

Interface Bitwarden pour partage de codes TOTP

1.2 Les webhooks pour simplifier encore plus le partage

1.2.1 Qu’est-ce qu’un webhook

Un webhook est un mécanisme permettant d’envoyer des notifications en temps réel d’un système à un autre via une requête HTTP. Contrairement aux API classiques qui nécessitent une interrogation d’un système pour répondre, un webhook permet une communication automatique dès qu’un événement se produit.

Dans le cadre des tests MFA, les webhooks sont particulièrement utiles pour automatiser le partage des codes d’authentification entre les membres d’une équipe. Ils permettent d’envoyer instantanément ces codes vers des outils collaboratifs tels que Microsoft Teams, Slack ou Google Workspace, évitant ainsi les délais d’attente et les manipulations manuelles. Ainsi, plus besoin de consulter une API / site web pour récupérer vos informations. Celles-ci arriveront automatiquement dans vos outils préférés.

1.2.2 Comment utiliser les webhooks pour travailler de manière collaborative

L’utilisation des webhooks dans un contexte de test MFA repose sur leur intégration avec des services de gestion des codes d’authentification. Les services comme MailSlurp, Mailosaur ou GetMyMFA proposent ce genre de services. Ainsi, il est possible de configurer un webhook qui récupère les e-mails ou SMS contenant les codes MFA et les transfère automatiquement vers votre canal de communication préféré : Slack, Teams, Google Workspaces, etc.

Si vous souhaitez bricoler, il est aussi possible de setup une solution maison en utilisant l’API Google avec un watcher par exemple, mais c’est un peu plus manuel et lourd à mettre en place.

Si on prend l’exemple de GetMyMFA (ceci est identique pour les autres services) et une plateforme de messagerie, la configuration d’un webhook commence par la sauvegarde d’une URL réceptrice générée par votre plateforme de messagerie. Les plateformes comme Slack ou Teams détaillent comment faire facilement. Chaque fois qu’un code est généré, il est automatiquement partagé avec tous les membres de l’équipe en temps réel. Voici un exemple de résultat sur un channel partagé sur Slack ou Teams :

Un exemple de fonctionnement d’un webhook sur la plateforme Slack


Un exemple de fonctionnement d’un webhook sur la plateforme Slack

Un exemple d’intégration Teams avec des Webhook

Un exemple d’intégration Teams avec des Webhook

En centralisant tous les MFA reçus au même endroit, nous assurons une transmission fluide et instantanée des codes, vous permettant de vous concentrer sur l’exécution des tests sans interruption. De plus, elle renforce la transparence et la traçabilité en offrant un historique des codes partagés directement dans les outils de communication d’entreprise.

1.3 Synthèse

L’approche basée sur les services tiers, que ce soit pour les e-mails, les SMS ou les codes TOTP, permet une meilleure centralisation et facilite l’accès aux informations d’authentification. Par exemple, l’utilisation de boîtes mail partagées ou de groupes Google permet aux équipes QA de consulter les e-mails contenant les codes MFA sans risque de perte d’information ou de double usage. De même, l’adoption de services tiers offre une solution efficace pour la gestion des MFA reçus via SMS, évitant ainsi les problèmes liés à l’utilisation de téléphones physiques partagés. Enfin, les gestionnaires de mots de passe partagés, comme Bitwarden et 1Password, simplifient l’accès aux codes TOTP tout en garantissant un haut niveau de sécurité.

Les webhooks, quant à eux, représentent une solution idéale pour automatiser et fluidifier le partage des codes MFA en temps réel. Leur principal avantage est qu’ils ne nécessitent aucune modification du système émetteur et sans perturber les infrastructures existantes. De plus, en intégrant ces webhooks avec des plateformes de communication comme Slack, Microsoft Teams ou Google Workspace, les entreprises peuvent assurer une collaboration efficace entre les testeurs.

Introduction au RPA

Bien que pas tout à fait dans le domaine du test, la RPA (Robotic Process Automation) est une pratique que pourrait bénéficier de mécanismes de sécurité accrue.

2.1 Qu’est-ce que le « RPA » ?

La RPA est une technologie qui permet d’automatiser des processus informatiques en simulant les actions humaines sur des interfaces logicielles. Elle repose sur l’utilisation de « robots » capables d’exécuter des tâches structurées et récurrentes, sans intervention humaine. Concrètement, la RPA consiste à mettre en place un « bot » qui va pouvoir se faire passer pour un humain et réaliser des tâches facilement automatisables sur des services tiers (par exemple, cela pourrait consister à valider des pièces justificatives lorsqu’un utilisateur transmet un RIB). Qui dit « se faire passer par un humain », dit « s’authentifier comme un humain » et les risques de sécurité associés.

2.2 Pourquoi les entreprises font du RPA ?

L’adoption du RPA par les entreprises répond à plusieurs objectifs stratégiques. Tout d’abord, cette technologie permet de réduire les erreurs humaines en standardisant les procédures et en éliminant les interventions manuelles sujettes aux erreurs. Ensuite, elle permet un gain de temps considérable en exécutant des tâches fastidieuses de manière rapide et efficace, libérant ainsi les équipes pour des activités à plus forte valeur ajoutée.

Un exemple clé serait le processus de validation de pièces justificatives. En complétant le processus RPA d’un OCR, les entreprises sont en mesure d’avoir un robot qui valide des demandes clients et les fait transitionner le statut de traitement de celles-ci sur plusieurs solutions tierces en production (Salesforce, JIRA, etc.).

2.3 Mitigeons les risques liés au RPA 

Bien que le RPA apporte des avantages significatifs, il est essentiel de s’assurer que son utilisation ne compromet pas la sécurité des systèmes. La gestion des accès du « robot » doit être rigoureusement contrôlée pour éviter tout risque de compromission des identifiants ou d’utilisation malveillante.

Plusieurs bonnes pratiques doivent être mises en place comme par exemple :

  • Mise en place du SSO (Single Sign-On) d’entreprise pour que le robot se connecte avec les mêmes processus que les employées standards.
  • Rotation régulière des mots de passe du robot.
  • Authentification MFA : Permettre au robot d’avoir un double facteur d’authentification se traduit par une sécurité identique à celle des autres utilisateurs en production. Pour cela, des services comme GetMyMFA peuvent être intégrés afin de fournir automatiquement les codes MFA aux processus RPA (via API).

En mettant en place ces mesures de sécurité, les entreprises peuvent exploiter pleinement le potentiel du RPA tout en maintenant un niveau de protection élevé. L’intégration du RPA avec les tests MFA permet ainsi d’optimiser les processus tout en garantissant une expérience utilisateur fluide et sécurisée.

Conclusion et récapitulatif

Nous avons réalisé cette série de 3 articles afin de traiter les bases liées à l’implémentation de la sécurité multi-facteurs et comment celle-ci impacte les processus de tests. En voici une brève synthèse :

  • Article 1 :
    • Le MFA devient la norme dans l’ensemble des applications que les entreprises mettent en place. Plusieurs mécanismes existent comme l’envoi de codes par email, SMS, clés physiques ou la génération de codes temporaires via des « tokens » uniques. Bien qu’il ne soit pas le moyen le plus sécurisé, les entreprises se tournent vers le MFA par email ou par SMS car il est plus facilement compréhensible par les utilisateurs.
  • Article 2 :
    • La sécurisation de flux MFA pose problème lors de l’automatisation des tests (et c’est bien normal car l’un des buts du MFA est de rentre l’authentification robuste). Ainsi, les équipes QA sont bien souvent tentées de désactiver ces flux en environnement de test. Ceci est une mauvaise pratique car l’on finit par découvrir des problématiques de charge et de fonctionnement qu’en production (trop tard). In fine, les flux protégés par MFA sont souvent les plus critiques et nécessitent paradoxalement d’être le plus testés malgré la complexité associée.
    • Pour cela, des solutions permettant de recevoir et transmettre les codes reçus par email et SMS telles que GetMyMFA ou Mailosaurus permettent de mettre en place un juste compromis : tester un comportement identique à celui de production en environnement de test de manière sécurisé. Ceci se traduit par une meilleure posture cyber ainsi qu’une meilleure couverture et pertinence des cas de test.
    • Ces solutions proposent de la même manière des APIs programmatiques, permettant de recevoir et traiter les flux MFA par des outils d’automatisation tests tels que Postman, Playwright ou Cypress pour n’en nommer que quelques-uns.
  • Article 3 :
    • De plus, il est possible de capitaliser sur ces solutions afin de créer un environnement de partage centralisé avec les collaborateurs via l’utilisation de webhooks pouvant arriver sur des messageries communes comme Teams / Slack / Google Workspaces entre autres.
    • Ces outils peuvent de même permettre à des sociétés de sécuriser leurs flux RPA en assurant une connexion protégée par du multi-facteur.

Nous espérons que cette série d’articles vous a plu et que vous en avez tiré des enseignements pertinents ! Naturellement, si vous avez la moindre question ou souhaitez échanger davantage sur ce sujet, nous restons à votre entière disposition 🙂

A propos de l’auteur: Jonathan Bernales

Je suis CTO chez Germen, une InsurTech mettant en place des solutions à destination de clients entreprises et particuliers. Je m’intéresse particulièrement à l’automatisation et aux mécanismes garantissant la livraison de code de qualité dans des environnements complexes, tout en assurant un haut niveau de sécurité.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

non-fonctionnel

Développer des tests de charge avec K6 – Vianney Maerte

K6 est un outil gratuit et open source de test de charge orienté développement disponible ici. Il permet d’exécuter des tests contenant des appels vers une ou plusieurs requêtes http avec différentes options telles que le nombre ou le temps d’itération, le nombre d’utilisateur virtuel devant exécuter le test, …

Lire la suite »
Automatisation

KDT: Keyword Driven Testing

On parle toujours de tests manuels et de tests automatisés mais rarement de Keyword Driven Testing (KDT). A quoi cela correspond exactement le KDT ? Repartons de la base. Les tests manuels Un test manuel bien écrit est une suite d’actions entraînant chacune un résultat à vérifier Prenons un exemple : lire

Lire la suite »
Livrable

La maintenance des tests

Les tests ont pour but de vérifier que l’application fonctionne comme il est prévu. Ces tests peuvent atteindre ce but uniquement s’ils sont à jour, c’est pourquoi il ne faut jamais négliger la maintenance des cas de test. Pourquoi les tests sont-ils amenés à évoluer ? Les cas de tests sont

Lire la suite »