Résultats publics des tests sur le coronavirus – c’est-à-dire comment ne pas sécuriser les données

TL;DR – la date de naissance ou le numéro de pesel n’est pas une bonne idée pour garantir l’accès aux données.

L’énigme – ce qui différencie les deux images ci-dessous?

Commençons par le début, cependant. Malheureusement, comme c’est souvent le cas dans le monde de l’informatique, la commodité ne va pas de pair avec la sécurité. Je pense que c’était la même chose cette fois. Cependant, il existe un ensemble de données sensibles où les compromis ne doivent pas être faits. Ces données sont, entre autres, des informations sur notre état de santé.

Alerté par un message de mon ami Kacpra sur la façon dont l’accès aux résultats des tests de laboratoire est accordé, j’ai décidé d’examiner plus en détail la solution responsable.

Comme le montrent les graphiques ci-dessus, deux informations sont nécessaires pour accéder à votre score grâce à la fonctionnalité de « connexion simplifiée »:

  • l’identifiant de commande, où les numéros de commande successifs sont en hausse;
  • date de naissance de la personne qui commande [day=X&month=X&year=X]

Pour certaines hypothèses, le nombre de combinaisons de dates de naissance atypiables à l’identifiant de commande n’est que d’environ 19 000 combinaisons. Il n’est pas difficile de deviner qu’il n’y a pas beaucoup de problème à générer toutes ces combinaisons et à vérifier si elles correspondent au numéro de commande.

Il s’est avéré que mes suppositions étaient correctes et après quelques centaines d’énumérations, j’ai réussi à faire correspondre les données d’accès:

éneri intruder

Cela a permis d’obtenir des informations sur les patients vulnérables telles que:

  • nom;
  • nom;
  • pesel;
  • date de naissance;
  • adresse de résidence;
  • le résultat des études;
résultats des tests coronavirus
résultats des tests coronavirus

Un autre exemple d’une tentative d’énumération réussie:

énerisation burp intruder
résultats des tests coronavirus

Immédiatement après avoir confirmé mes hypothèses de vulnérabilité, j’ai signalé cette erreur aux responsables du logiciel avec des recommandations de réparation:

courrier signalant une erreur de sécurité

Que faire pour vivre ?

L’une des protections les plus couramment utilisées contre ce type d’attaque est la mise en œuvre du mécanisme captcha. Après plusieurs tentatives infructueuses (par exemple trois) pour accéder aux données de commande, l’utilisateur de l’application sera invité à réécrire le code captcha affiché. Toutefois, il convient de noter que la mise en œuvre d’un tel mécanisme ne constitue qu’un (ou jusqu’à) ralentissement de l’attaquant qui, dans les cas les plus simples, pourra continuer à pousser la date de naissance à l’aide de scanners OCR ou de services de lecture captcha dédiés.

Une meilleure protection que je recommande est d’accéder aux résultats de la commande par un mot de passe aléatoire et suffisamment longqui viendra au numéro de téléphone du donneur d’ordre.

Heureusement, le bogue a été corrigé ement rapidement, grâce à la mise en œuvre du mécanisme reCAPTCHA de google:

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Pour marque-pages : Permaliens.

Laisser un commentaire

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