
SEDATED® Project (Sensitive Enterprise Data Analyzer To Eliminate Disclosure)

Le projet SEDATED® (Sensitive Enterprise Data Analyzer To Eliminate Disclosure) se concentre sur la prévention des fuites de données sensibles, telles que les identifiants utilisateur et les jetons, vers Git.
Avec la myriade de modifications de code nécessaires dans l'environnement CICD actuel, les développeurs poussent constamment du code qui pourrait involontairement contenir des informations sensibles. Cette exposition potentielle de données sensibles représente un risque énorme pour les organisations (2017 OWASP Top Ten #3 - Sensitive Data Exposure). SEDATED® répond à ce problème en examinant automatiquement toutes les modifications de code entrantes et en fournissant un retour instantané au développeur. S'il identifie des données sensibles, il empêche l'envoi du ou des commits vers le serveur Git.
**REMARQUE : Seules les lignes ajoutées ou modifiées (commençant par + dans le fichier de correctif) dans les pushes de commits sont analysées par SEDATED®. Les lignes supprimées (commençant par - dans le fichier de correctif) dans les pushes de commits NE sont PAS analysées par SEDATED®.
git clone https://github.com/OWASP/SEDATED.git
cd SEDATED/
.examplecp /config/whitelists/commit_whitelist.txt.example /config/whitelists/commit_whitelist.txt
cp /config/whitelists/repo_whitelist.txt.example /config/whitelists/repo_whitelist.txt
cp /config/enforced_repos_list.txt.example /config/enforced_repos_list.txt
/config/custom_configs.sh (au besoin)Pousser l'implémentation spécifique à l'organisation de SEDATED® vers le dépôt Git souhaité par l'organisation (GitHub, GitLab, Git, etc.).
pre-receive.sh de SEDATED®Les instructions pour y parvenir sur une instance GitHub Enterprise se trouvent dans GitHub_Enterprise_Setup.md.
always_reject.sh devra être remplacé par le script pre-receive.sh de SEDATED®.pre-receive.sh.pre-receive.sh/config/custom_configs.shpre-receive.sh permet aux organisations de personnaliser leur implémentation de SEDATED® sans avoir à modifier le code source du fichier pre-receive.sh de SEDATED®, grâce à des variables et fonctions personnalisables intégrées qui sont sourcées depuis pre-receive.sh./config/enforced_repos_list.txtuse_enforced_repo_check_custom de SEDATED® (hook pre-receive) dans config/custom_configs.sh est défini sur "True"./* à la fin du nom de l'organisation ou de l'utilisateur concerné./config/enforced_repos_list.txt, le pousseur (s'il pousse depuis la ligne de commande) verra un message personnalisable (personnalisable via le fichier /config/custom_configs.sh) et SEDATED® NE scrutera AUCUN code inclus dans le push./config/custom_configs.sh et peut être défini sur "True" ou "False".
/config/enforced_repos_list.txt verront SEDATED® "appliqué" sur eux. Tous les autres dépôts avec SEDATED® "activé" mais non listés dans le fichier /config/enforced_repos_list.txt verront seulement un message personnalisé affiché, aucun code ne sera scanné pour les pushes en provenance de ces dépôts./config/regexes.jsonpre-receive.sh) avec le drapeau -P, ce qui en fait des expressions régulières compatibles Perl (PCRE)./testing/regex_testing/regex_test_script.sh, le fichier /testing/regex_testing/test_cases.txt devra être mis à jour en ajoutant ou supprimant les cas de test correspondant aux regexes mises à jour afin que les résultats du script /testing/regex_testing/regex_test_script.sh soient précis.\ peuvent être nécessaires selon les regexes souhaitées car ce fichier est au format JSON./config/whitelists/commit_whitelist.txt/config/whitelists/commit_whitelist.txt.example.commit_whitelist.txt) lorsqu'ils rencontrent des faux positifs afin qu'ils puissent être examinés./config/whitelists/repo_whitelist.txt/config/whitelists/repo_whitelist.txt.example./testing/regex_testing/regex_test_script.shtesting/regex_testing/test_cases.txt est un moyen simple et rapide hors ligne de tester/valider que les expressions régulières dans config/regexes.json sont valides et correspondent aux motifs souhaités tout en excluant/ne correspondant pas comme souhaité.
/testing/regex_testing/test_cases.txt) pour vérifier qu'elles fonctionnent comme attendu./testing/regex_testing/test_cases.txt).-P)./testing/regex_testing/test_cases.txt./testing/regex_testing/test_cases.txt/testing/regex_testing/regex_test_script.sh pour consommation.>>pass ou >>fail ajouté à sa suite ; cela permet au script /testing/regex_testing/regex_test_script.sh de connaître l'attente pour les regexes.
>>pass signifie qu'un push contenant la chaîne précédente sera accepté par SEDATED® (c'est-à-dire que les regexes ne signaleront PAS la chaîne précédente).>>fail signifie qu'un push contenant la chaîne précédente sera rejeté par SEDATED® (c'est-à-dire que les regexes signaleront la chaîne précédente).Les variables et fonctions personnalisées sont conçues pour permettre aux organisations de personnaliser facilement leur propre implémentation de SEDATED® sans modifier le fichier principal du hook pre-receive qui effectue tout le travail. Toutes les variables et fonctions personnalisées se trouvent dans /config/custom_configs.sh et les explications des variables contenues dans ce fichier sont listées ci-dessous.
show_SEDATED_link_custom - "True" pour afficher le lien vers le dépôt GitHub OWASP/SEDATED (sensible à la casse), sinon "False".documentation_link_custom - Ajouter un lien vers la documentation spécifique à l'organisation sur la manière dont l'organisation souhaite que les développeurs gèrent les pushes rejetés et/ou des informations générales spécifiques à l'organisation concernant SEDATED®.
use_enforced_repo_check_custom - "True" ou "False" (sensible à la casse).
/config/enforced_repos_list.txt pour plus de détails sur la signification de ce drapeau.enforced_repo_check_true_message_custom avec un message personnalisé (nécessaire uniquement si use_enforced_repo_check_custom est défini sur "True").obfuscate_output_custom - "True" ou "False" (sensible à la casse). Utilisez cette option pour masquer les données sensibles affichées dans la sortie de SEDATED®.SET_USER_REPO_NAME_CUSTOM
GITHUB_REPO_NAME si vous utilisez GitHub.PRINT_ERROR_MESSAGE_CUSTOM
EXIT_SEDATED_CUSTOM
: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.UNABLE_TO_ACCESS_REPO_WHITELIST_CUSTOM
: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.PUSH_ACCEPTED_CUSTOM
Uniquement compatible avec les outils SCM qui utilisent le système de contrôle de version Git.
SET_USER_REPO_NAME_CUSTOM seront nécessaires pour définir le nom d'utilisateur/org et le nom du dépôt..git/hooks/ (sauf le dossier/les fichiers de documentation)..sample de pre-receive.sample et copier le code du fichier pre-receive.sh de SEDATED® dans le fichier pre-receive que nous venons de créer à partir du fichier .sample.SET_USER_REPO_NAME_CUSTOM seront probablement nécessaires pour définir le nom d'utilisateur/org et le nom du dépôt.Vous pouvez contribuer de l'une des manières suivantes :
SEDATED® est sous licence BSD 3-Clause "New" or "Revised" License.
**SEDATED® ne garantit pas de signaler chaque instance d'identifiants, clés, secrets, etc. codés en dur ; il utilise la correspondance de motifs par expressions régulières et bien qu'il soit devenu assez bon pour attraper la plupart des instances, il n'est pas parfait, mais nous sommes toujours ouverts aux idées et/ou pull requests pour aider à rendre SEDATED® encore meilleur.
use_enforced_repo_check_custom dans config/custom_configs.sh est défini sur "True".: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.UNABLE_TO_ACCESS_REGEXES_CUSTOM
: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.exit 1 et affichera un message d'erreur s'il ne peut pas accéder aux regexes, mais une action personnalisée supplémentaire peut être effectuée dans ces cas si souhaité (par exemple, afficher un message d'erreur supplémentaire, journaliser, envoyer une métrique, etc.).PUSH_REJECTED_WITH_VIOLATIONS_CUSTOM
: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.UNABLE_TO_ACCESS_COMMIT_WHITELIST_CUSTOM
: "ne rien faire" comme action supplémentaire, et il n'est pas nécessaire de le changer.