Stocker ses secrets dans Git, une mauvaise pratique pouvant avoir de lourdes conséquences

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines


Résumé

Dans un rapport datant d’avril 2020, GitLab indique que 18 % des dépôts analysés sur gitlab.com comportaient des problèmes de gestion des secrets. Quelles peuvent être les conséquences liées à ces erreurs ? Quelle stratégie adopter pour gérer au mieux ses secrets ?


À une époque où la réduction du Time-To-Market est une priorité, les développeurs subissent une pression toujours plus importante pour délivrer rapidement leurs applications. Les cycles de livraison sont de plus en plus courts et il n’est pas rare de voir des PoC partir en production.

Dans ce contexte, par manque de connaissances ou de solutions plus robustes, il est fréquent de voir apparaître, directement dans le code source stocké sur des dépôts Git, des secrets nécessaires au bon fonctionnement d’un logiciel (token, clé d’API, nom d’utilisateur/mot de passe, etc.).

1. Quels problèmes ?

Le stockage des secrets en clair dans un dépôt Git pose des problèmes de différentes natures :

  • la mauvaise configuration des dépôts peut rendre le code source accessible à une population plus large que souhaitée ;
  • un secret doit idéalement être renouvelé périodiquement. Plus cette rotation implique de changements (changement du code,...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Références

[GITLAB] Top 6 security trends in GitLab-hosted projects : https://about.gitlab.com/blog/2020/04/02/security-trends-in-gitlab-hosted-projects

[GITHUB_ORG] GitHub: About organizations : https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-organizations

[UBER] Uber: Hackers stole 57m passengers, drivers' info : https://www.theregister.com/2017/11/22/uber_2016_data_breach

[GITHUB_RES] JumpCloud API Key leaked via Open Github Repository : https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization

[STARTBUCKS] JumpCloud API Key leaked via Open Github Repository : https://hackerone.com/reports/716292

[GITLEAKS] GitHub Gitleaks : https://github.com/zricethezav/gitleaks

[GG] GitGuardian : Surveillance de dépôts internes : https://www.gitguardian.com/monitor-internal-repositories-for-secrets

[GG_ACCURACY] Assessing model performance in secrets detection: accuracy, precision & recall explained : https://blog.gitguardian.com/secrets-detection-accuracy-precision-recall-explained

[GIT] Git : Removing sensitive data from a repository : https://docs.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository

[GS] git-secret : https://git-secret.io

[PGP] The PGP problem : https://latacora.micro.blog/2019/07/16/the-pgp-problem.html

[AGE] A simple, modern and secure encryption tool : https://github.com/FiloSottile/age

[SOPS] Simple and flexible tool for managing secrets : https://github.com/mozilla/sops

[SAMIR] Shamir's Secret Sharing : https://www.vaultproject.io/docs/concepts/seal#shamir-seals

[VAULT] Hashicorp Vault : https://www.vaultproject.io

[ASM] AWS Secret Manager : https://aws.amazon.com/fr/secrets-manager

[AKV] Azure Key Vault : https://azure.microsoft.com/fr-fr/services/key-vault

[GCSM] Google Cloud Secret Manager : https://cloud.google.com/secret-manager

[VAULT_CERT] Création des certificats : https://github.com/acheronstyix/vault-misc/blob/main/README.md

[VAULT_INSTALL] Installation de Vault : https://learn.hashicorp.com/tutorials/vault/getting-started-install?in=vault/getting-started

[CYBELANGEL] CybelAngel : https://cybelangel.com

[GG_PUBLIC] GitGuardian: Surveillance des dépôts publics GitHub https://www.gitguardian.com/monitor-public-github-for-secrets

[SDLC] A. Lagier « Secure Software Development LifeCycle », MISC n°109, mai-juin 2020



Articles qui pourraient vous intéresser...

Découvrez la programmation différentiable

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

La programmation différentiable est une nouvelle façon de penser la programmation. Le principe consiste à considérer tout un programme comme une fonction qu’on puisse différentier, et donc optimiser. Nous allons construire dans cet article les outils de base pour ce faire, et présenter la librairie JAX, qui facilite la tâche.

La téléportation, de la fiction au SDN

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

L’art de se téléporter n’est plus réservé au cinéma ! Suite au développement de nouveaux paradigmes tels que le SDN, facilitant le déploiement de firewalls, la sécurité du plan de données a considérablement augmenté. Mais est-il possible d’éviter ces points de passage pour exfiltrer des données entre deux extrémités d’un réseau ? Au lieu de chercher un trou dans le mur, ne serait-il pas plus simple de trouver un moyen de le contourner ? C’est là l’ambition des techniques de téléportation. Nous explorerons les différentes techniques exploitant ce concept, puis nous reproduirons l’une de celles-ci sur un contrôleur SDN, ONOS.

Concevoir des tableaux en LaTeX

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Il n'est pas rare de vouloir intégrer de petits tableaux dans ses documents. LaTeX permet de créer rapidement et simplement une telle représentation d'informations. Il est également possible, avec un peu d'huile de coude, de créer des tableaux très complexes ! Ce n'est pas si compliqué... à condition de savoir comment faire !

Spectre, 3 ans après

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

Spectre, et son pendant Meltdown, est une faille qui repose sur l’architecture moderne de nos processeurs. Dans cet article, nous verrons l’impact que cette vulnérabilité a eu sur le développement d’applications web.

De l'usage de l'underscore en Python

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Un underscore avant le nom d'un attribut ou deux, est-ce un caprice de développeur ? Et si je veux utiliser des underscores après le nom de mes variables, est-ce que cela a une signification ? Tout, tout, tout, vous saurez tout sur l'usage des underscores en Python !