X9: Comment Resultados Digitais peut détecter automatiquement les données sensibles données dans ses référentiels de code

(Vitoria Rio) (9 octobre 2020)

À mesure que les entreprises deviennent plus grandes, avec un nombre toujours croissant de fonctionnalités, les développeurs créent et intègrent constamment de nouveaux morceaux de code sous forme de commits, de pull requests , etc. Avec la popularité croissante des méthodologies agiles, une solution plus rapide pour lanalyse des vulnérabilités devient incontournable. Dès que le code est engagé dans le référentiel, si ce commit contient des informations sensibles, des mesures doivent être prises pour y remédier immédiatement, car cela peut éventuellement conduire à des fuites de données.

Cependant, plonger dans des centaines de commits et Les demandes dextraction ne sont pas une tâche facile, même pour une équipe dingénieurs en sécurité qualifiés, cest là quintervient X9. X9 est un outil open source créé pour automatiser la détection dinformations sensibles dans les référentiels GitHub de lorganisation. Il peut analyser automatiquement le code et créer des notifications via Slack en temps quasi réel.

Architecture

Github nous permet de lire plusieurs événements tels que les commits et les pull requests via lutilisation de Github Webhooks . Par exemple, lorsquun développeur crée un PR, un événement est créé sur la plate-forme Github, qui envoie ensuite une charge utile de message à une route préconfigurée (dans ce cas, linterface X9) contenant des informations détaillées sur cet événement. Cette approche fonctionne mieux lorsque nous considérons que Github nous permet de configurer des webhooks pour toute lorganisation, permettant à X9 danalyser tous les référentiels de cette portée.

En configurant les événements pour lensemble de lorganisation, X9 ne garantit pas seulement que tous les référentiels sont en cours danalyse, mais rationalise également le processus danalyse, donnant aux ingénieurs de sécurité plus de flexibilité et de contrôle sur les menaces de sécurité potentielles de lentreprise.

Dès réception de la charge utile de lévénement, lapplication clone la branche du référentiel et effectue plusieurs opérations de sécurité des tests. Chaque événement est traité par un travailleur indépendant qui peut être mis à léchelle en cas de débit plus élevé. Toutes les vulnérabilités analysées sont ensuite stockées dans une base de données PostgreSQL et notifiées sur un canal Slack. Linterface Slack permet de créer directement un problème sur Github ou de signaler la vulnérabilité comme un faux positif.

Analyse

X9 utilise des signatures et des modèles spécifiques pour détecter les données sensibles dans le code. Ces signatures sont des expressions régulières adaptées à cet objectif spécifique, telles que r"[a-zA-Z0-9]*\@emailexample.com" qui peuvent détecter les e-mails personnels ou les éléments suivants, qui détectent les clés daccès AWS à lintérieur du contenu du fichier (défini plus loin):

Lapplication permet également à lutilisateur de configurer des expressions régulières, permettant une approche plus orientée domaine. Il existe quatre types de contextes de signature pour X9:

  • filename : recherche des noms de fichiers complets
  • extension : recherche des extensions spécifiques (par exemple: .pem, .db)
  • chemin : recherche le chemin complet dun dossier prédéterminé dun fichier sur le référentiel
  • contents : recherche des modèles dans les fichiers

Notifications et actions

Grâce aux Webhooks Slack , X9 envoie des informations détaillées pour chaque résultat à un canal défini par lutilisateur. Il est important de noter que toute information potentiellement sensible est correctement masquée, comme indiqué ci-dessous:

Les composants interactifs ( Problème ouvert et False Positive ) permettent la création directe de problèmes sur GitHub et ne tiennent pas compte de la vulnérabilité comme un faux positif respectivement. Si un problème doit être créé à partir du message, le format de problème suivant est créé sur le référentiel vulnérable:

Tableau de bord

X9 dispose également dun tableau de bord pour la visualisation des vulnérabilités. Ce tableau de bord est une application distincte facultative qui ninterfère pas avec lanalyse de sécurité. Il utilise OpenID Connect pour lauthentification de connexion.

Le tableau de bord est une vue de tableau qui permet le filtrage par nom de référentiel et type de vulnérabilité. Sil est créé, le lien du problème sera également affiché.

Réflexions finales

X9 est toujours un travail en cours et est activement mis à jour, les contributions sont les bienvenues :).

Consultez-le à github.com/ResultadosDigitais/ x9 .

Références

Ce projet a été inspiré par Shhgit et Gitleaks , qui a fourni la plupart des signatures et de la stratégie analytique.

Laisser un commentaire

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