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
Spécialités


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...

CVE-2020-2805 : utiliser cent fois une vulnérabité pour casser cent JVM

Magazine
Marque
MISC
Numéro
116
Mois de parution
juillet 2021
Spécialités
Résumé

Après un article sur une confusion de type [1] et sur la sérialisation [2], il faut bien que l’on vous présente une combinaison des deux avec en bonus, un TOCTOU et des objets pas vraiment immuables dedans. Eh oui ma p’tite dame, tout cela est bien dans le CVE-2020-2805 la dernière vulnérabilité Java qui permet de s’échapper de la sandbox. Du code Java c’est comme Freddie, ça veut toujours se libérer.

Zéro SQLi malgré les développeurs

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Spécialités
Résumé

Nous proposons une méthode pour effectuer des requêtes SQL qui garantit l'invulnérabilité aux injections SQL, y compris lorsqu'elle est utilisée par un développeur pressé ou incompétent, contrairement aux requêtes paramétrées. Basée sur l'utilisation d'arbres de syntaxe abstraite, elle permet facilement de construire des requêtes dynamiques et est plus facile à mettre en œuvre qu'un ORM. Nous proposons une bibliothèque Java implémentant nos idées, mais la méthode peut s'appliquer à d'autres langages de programmation et d'autres types de requêtes.

Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Spécialités
Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…