
Démontre une vulnérabilité d’énumération non authentifiée dans un endpoint public de consultation de certificats, exposant des données personnelles telles que le CPF et le RG. Inclut un PoC utilisant des Google dorks et LinkedIn pour collecter les identifiants, avec des détails sur l’impact et les mesures d’atténuation.
Un endpoint public a été identifié, permettant la consultation de certificats à l'aide d'un identifiant prévisible (code du certificat), sans aucun mécanisme d'authentification ou d'autorisation.
En énumérant cet identifiant, un attaquant peut accéder à des données personnelles de tiers, notamment le nom complet, le CPF (numéro d'inscription au registre des personnes physiques brésilien), le RG (numéro de carte d'identité brésilienne), la date de naissance et le lieu de naissance.
Il est également observé que, même lorsque les titulaires de certificats choisissent de partager publiquement leurs diplômes avec des données personnelles partiellement masquées (par exemple, sur des réseaux professionnels ou d'autres plateformes), l'identifiant du certificat reste souvent visible. À partir de cet identifiant, il est possible d'interroger directement l'endpoint et d'obtenir les données complètes, contournant entièrement le mécanisme de masquage implémenté dans l'interface.
https://www.fiap.com.br/consultadocumento
Identifiant à 8 caractères
À des fins de preuve de concept (PoC), des recherches ont été menées à l'aide de techniques de Google dorks pour localiser des images de certificats disponibles publiquement. De plus, des exemples ont été identifiés sur des profils LinkedIn où des titulaires de certificats ont partagé leurs certificats.
À partir de ces sources publiques, il a été possible d'extraire les identifiants des certificats visibles et, sur cette base, de constituer une liste de codes valides. En utilisant ces identifiants sur l'endpoint vulnérable, il a été possible d'accéder aux données complètes associées à chaque certificat, démontrant la faisabilité d'une exploitation à grande échelle.
Il convient de noter que la technique employée utilisait exclusivement des informations publiques et une reconnaissance passive, démontrant qu'un attaquant n'a pas besoin d'un accès privilégié pour exploiter la vulnérabilité.
Voir l'exemple ci-dessous.
La vulnérabilité identifiée permet un accès non autorisé à des données personnelles hautement sensibles, notamment le CPF (identifiant fiscal brésilien), le RG (carte d'identité nationale brésilienne), le nom complet, la date de naissance et le lieu de naissance, sans aucune authentification requise. La possibilité d'énumérer l'identifiant du certificat, combinée à la collecte de ces identifiants à partir de sources publiques, permet l'extraction d'informations à grande échelle, élargissant considérablement la surface d'exposition.
Ce scénario permet une utilisation abusive des données à des fins de fraude, d'usurpation d'identité et d'attaques d'ingénierie sociale hautement ciblées, étant donné que les informations exposées sont largement utilisées comme mécanisme de validation dans le contexte brésilien. En outre, la faille pourrait entraîner des impacts réglementaires significatifs, notamment dans le cadre de la loi générale sur la protection des données (LGPD), compte tenu de l'exposition de données personnelles sans base juridique adéquate ni contrôle d'accès.
Enfin, il convient de souligner que l'exploitation ne nécessite aucun niveau de privilège ni d'authentification et peut être menée par des agents externes de manière automatisée, ce qui augmente considérablement la criticité de la vulnérabilité.
Pour atténuer le risque d'énumération, il est recommandé de remplacer l'identifiant du certificat par une valeur imprévisible, telle qu'un jeton généré de manière sécurisée (par exemple, basé sur un hachage comme MD5 ou, de préférence, des algorithmes plus robustes avec une composante aléatoire), garantissant qu'il n'est pas possible d'inférer ou d'énumérer d'autres certificats valides.
De plus, il est recommandé que les documents publics présentent les données sensibles correctement masquées, et que cette même logique soit appliquée au backend, empêchant l'API de renvoyer des informations complètes. Ainsi, même si le lien est partagé publiquement, l'accès sera limité à une version sécurisée du certificat, préservant la confidentialité du titulaire.
Enfin, il est important de mettre en œuvre des mécanismes de protection complémentaires, tels que la limitation du débit (rate limiting), la surveillance des accès suspects et, le cas échéant, l'utilisation de liens de vérification à validité temporaire, réduisant encore davantage le risque d'exploitation automatisée.