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

Il progetto SEDATED® (Sensitive Enterprise Data Analyzer To Eliminate Disclosure) si concentra sulla prevenzione della trasmissione a Git di dati sensibili come credenziali utente e token.
Con la miriade di modifiche al codice richieste nell'ambiente CICD odierno, gli sviluppatori eseguono continuamente push di codice che potrebbe contenere involontariamente informazioni sensibili. Questa potenziale esposizione di dati sensibili rappresenta un enorme rischio per le organizzazioni (2017 OWASP Top Ten #3 - Sensitive Data Exposure). SEDATED® affronta questo problema rivedendo automaticamente tutte le modifiche in arrivo e fornendo un feedback immediato allo sviluppatore. Se identifica dati sensibili, impedisce che i commit vengano inviati tramite push al server Git.
**NOTA: SOLO le righe aggiunte o modificate (che iniziano con + nel file patch) nei push di commit vengono scansionate da SEDATED®. Le righe che vengono rimosse (che iniziano con - nel file patch) nei push di commit NON vengono scansionate da SEDATED®.
git clone https://github.com/OWASP/SEDATED.git
cd SEDATED/
cp /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
Esegui il push dell'implementazione specifica dell'organizzazione di SEDATED® nel repository Git desiderato dall'organizzazione (GitHub, GitLab, Git, ecc...).
Le istruzioni per farlo su un'istanza GitHub Enterprise sono disponibili in GitHub_Enterprise_Setup.md.
always_reject.sh dovrà essere sostituito con lo script pre-receive.sh di SEDATED®.pre-receive.sh.pre-receive.sh, consente alle organizzazioni di personalizzare la propria implementazione di SEDATED® senza dover modificare alcun codice sorgente all'interno del file pre-receive.sh di SEDATED®, fornendo variabili e funzioni personalizzabili integrate che vengono caricate da pre-receive.sh.use_enforced_repo_check_custom di SEDATED® (hook pre-receive) in config/custom_configs.sh è impostato su "True"./* alla fine dell'organizzazione o del nome utente in cui si desidera l'applicazione./config/enforced_repos_list.txt, chi esegue il push (se da riga di comando) vedrà un messaggio personalizzabile (personalizzabile tramite il file /config/custom_configs.sh) e SEDATED® NON scansionerà alcun codice incluso nel push./config/custom_configs.sh e può essere impostato su "True" o "False".
/config/enforced_repos_list.txt avranno SEDATED® "applicato" su di essi. Tutti gli altri repository con SEDATED® "abilitato" ma non elencati nel file /config/enforced_repos_list.txt vedranno solo un messaggio personalizzato; nessun codice verrà scansionato per i push da quei repository.use_enforced_repo_check_custom in config/custom_configs.sh è impostato su "True".pre-receive.sh) con il flag -P, rendendole espressioni regolari compatibili con Perl (PCRE)./testing/regex_testing/regex_test_script.sh, il file /testing/regex_testing/test_cases.txt dovrà essere aggiornato aggiungendo o rimuovendo i casi di test relativi alle regex aggiornate, affinché i risultati di /testing/regex_testing/regex_test_script.sh siano accurati.\ a seconda delle regex desiderate, poiché questo file è in formato JSON./config/whitelists/commit_whitelist.txt.example.commit_whitelist.txt) quando incontrano falsi positivi, così da poterli esaminare./config/whitelists/repo_whitelist.txt.example.testing/regex_testing/test_cases.txt, è un modo semplice, rapido e offline per testare/validare che le espressioni regolari dentro config/regexes.json siano valide, corrispondano ai pattern desiderati ed escludano/non corrispondano come previsto.
/testing/regex_testing/test_cases.txt) per verificare che le regex funzionino come previsto./testing/regex_testing/test_cases.txt).-P)./testing/regex_testing/test_cases.txt./testing/regex_testing/regex_test_script.sh per l'elaborazione.>>pass o >>fail; questi indicano allo script /testing/regex_testing/regex_test_script.sh quale sia l'aspettativa per le regex.
>>pass significa che un push contenente la stringa precedente sarà accettato da SEDATED® (cioè le regex NON segnaleranno la stringa precedente).>>fail significa che un push contenente la stringa precedente sarà rifiutato da SEDATED® (cioè le regex segnaleranno la stringa precedente).Variabili e funzioni personalizzate sono progettate per consentire alle organizzazioni di personalizzare facilmente la propria implementazione specifica di SEDATED® senza modificare il file hook pre-receive principale che svolge tutto il lavoro pesante. Tutte le variabili e funzioni personalizzate si trovano in /config/custom_configs.sh; di seguito sono elencate le spiegazioni delle variabili contenute in questo file.
show_SEDATED_link_custom - "True" per mostrare il link al repository GitHub OWASP/SEDATED (sensibile alle maiuscole), altrimenti impostare su "False".documentation_link_custom - Aggiungi il link alla documentazione specifica dell'organizzazione su come l'organizzazione desidera che gli sviluppatori gestiscano i push rifiutati e/o informazioni generali specifiche dell'organizzazione relative a SEDATED®.
use_enforced_repo_check_custom - "True" o "False" (sensibile alle maiuscole).
/config/enforced_repos_list.txt sopra per maggiori dettagli sul significato di questo flag.enforced_repo_check_true_message_custom con messaggio personalizzato (necessario solo se use_enforced_repo_check_custom è impostato su "True").obfuscate_output_custom - "True" o "False" (sensibile alle maiuscole). Usa questa opzione per mascherare i dati sensibili visualizzati nell'output di SEDATED®.SET_USER_REPO_NAME_CUSTOM
PRINT_ERROR_MESSAGE_CUSTOM
EXIT_SEDATED_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.UNABLE_TO_ACCESS_REPO_WHITELIST_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.PUSH_ACCEPTED_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.UNABLE_TO_ACCESS_REGEXES_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.exit 1 e stamperà un messaggio di errore se non riesce ad accedere alle regex; tuttavia, se desiderato, in questi casi può essere eseguita un'azione personalizzata aggiuntiva (es. stampa di un messaggio di errore aggiuntivo, log, invio metrica, ecc...).PUSH_REJECTED_WITH_VIOLATIONS_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.UNABLE_TO_ACCESS_COMMIT_WHITELIST_CUSTOM
: "non fare nulla" come azione aggiuntiva e non è necessario modificarlo.Compatibile solo con strumenti SCM che utilizzano il sistema di controllo versione Git.
SET_USER_REPO_NAME_CUSTOM per impostare utente/org e nome repository..git/hooks/ (tranne i file/cartelle di documentazione)..sample da pre-receive.sample e copia il codice dal file pre-receive.sh di SEDATED® nel file pre-receive appena creato dal file .sample.SET_USER_REPO_NAME_CUSTOM per impostare utente/org e nome repository.Puoi contribuire in uno dei seguenti modi:
SEDATED® è distribuito sotto la BSD 3-Clause "New" or "Revised" License.
**SEDATED® non è garantito che segnali ogni istanza di credenziali hard-coded, chiavi, segreti, ecc... utilizza il pattern matching tramite regex e, sebbene sia diventato abbastanza bravo a catturare la maggior parte delle istanze, non è perfetto; siamo comunque sempre aperti a idee e/o pull request per contribuire a rendere SEDATED® ancora migliore.