
SEDATED® 프로젝트 (민감한 기업 데이터 노출 제거 분석기)

SEDATED® 프로젝트(민감한 엔터프라이즈 데이터 유출 방지 분석기, Sensitive Enterprise Data Analyzer To Eliminate Disclosure)는 사용자 자격 증명 및 토큰과 같은 민감한 데이터가 Git에 푸시되는 것을 방지하는 데 중점을 둡니다.
오늘날의 CICD 환경에서는 수많은 코드 변경이 필요하기 때문에 개발자들은 의도치 않게 민감한 정보를 포함할 수 있는 코드를 끊임없이 푸시하고 있습니다. 이러한 잠재적 민감 데이터 노출은 조직에 큰 위험을 초래합니다 (2017 OWASP Top Ten #3 - 민감 데이터 노출). **SEDATED®**은 들어오는 모든 코드 변경을 자동으로 검토하고 개발자에게 즉각적인 피드백을 제공함으로써 이 문제를 해결합니다. 민감한 데이터를 식별하면 커밋이 Git 서버로 푸시되는 것을 차단합니다.
***참고: 커밋 푸시에서 오직 추가되거나 수정된(패치 파일에서 +로 시작하는) 줄만 **SEDATED®**이 검사합니다. 커밋 푸시에서 제거되는(패치 파일에서 -로 시작하는) 줄은 **SEDATED®*이 검사하지 않습니다.
git clone https://github.com/OWASP/SEDATED.git
cd SEDATED/
.example 파일 업데이트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
/config/custom_configs.sh 변수 및 함수 사용자 정의(원하는 대로)조직별 SEDATED® 구현을 조직이 원하는 Git 저장소(GitHub, GitLab, Git 등)로 푸시하세요.
pre-receive.sh 파일로 pre-receive 훅 지정GitHub Enterprise 인스턴스에서 이를 수행하는 방법에 대한 지침은 GitHub_Enterprise_Setup.md에서 확인할 수 있습니다.
always_reject.sh는 **SEDATED®**의 pre-receive.sh 스크립트로 대체해야 합니다.pre-receive.sh 스크립트에서 액세스할 수 있어야 합니다.pre-receive.sh/config/custom_configs.shpre-receive.sh와 함께 사용되는 SEDATED® 사용자 정의 구성 파일로, pre-receive.sh에서 소싱되는 기본 제공 사용자 정의 변수와 함수를 제공하여 조직이 **SEDATED®**의 pre-receive.sh 파일 내 소스 코드를 수정하지 않고도 자체 SEDATED® 구현을 사용자 정의할 수 있게 합니다./config/enforced_repos_list.txtconfig/custom_configs.sh에 있는 use_enforced_repo_check_custom 플래그가 "True"로 설정된 경우 사용됩니다./*를 추가하면 됩니다./config/enforced_repos_list.txt 파일에 없는 경우, 푸시하는 사람(명령줄에서 푸시하는 경우)은 사용자 정의 가능한 메시지(/config/custom_configs.sh 파일로 사용자 정의)를 보게 되며 **SEDATED®**은 푸시에 포함된 코드를 검사하지 않습니다./config/custom_configs.sh에서 확인할 수 있으며 "True" 또는 "False"로 설정할 수 있습니다.
/config/enforced_repos_list.txt 파일에 나열된 저장소에만 **SEDATED®**이 "강제 적용"됩니다. **SEDATED®**이 "활성화"되어 있지만 /config/enforced_repos_list.txt 파일에 나열되지 않은 다른 모든 저장소는 사용자 정의 메시지만 표시되며 해당 저장소의 푸시에 대한 코드는 검사되지 않습니다.config/custom_configs.sh에서 use_enforced_repo_check_custom 플래그가 "True"로 설정된 경우에만 존재하면 됩니다./config/regexes.jsonpre-receive.sh에서 GNU grep이 -P 플래그와 함께 사용하여 Perl 호환 정규식(PCRE)으로 처리합니다./testing/regex_testing/regex_test_script.sh 스크립트를 사용하는 경우, 업데이트된 정규식과 관련된 테스트 케이스를 추가하거나 제거하여 /testing/regex_testing/test_cases.txt 파일을 업데이트해야 /testing/regex_testing/regex_test_script.sh의 결과가 정확합니다.\가 필요할 수 있습니다./config/whitelists/commit_whitelist.txt/config/whitelists/commit_whitelist.txt.example 파일에 표시된 것처럼 이 파일에서 캐리지 리턴으로 구분해야 합니다.commit_whitelist.txt) 파일에 대한 풀 리퀘스트를 제출하여 검토를 받을 수 있도록 요청하세요./config/whitelists/repo_whitelist.txt/config/whitelists/repo_whitelist.txt.example 파일에 표시된 것처럼 이 파일에서 캐리지 리턴으로 구분해야 합니다./testing/regex_testing/regex_test_script.shtesting/regex_testing/test_cases.txt와 함께 사용되는 SEDATED® 정규식 테스트 스크립트로, config/regexes.json 내부의 정규식이 유효하고 원하는 패턴과 일치하는지, 그리고 원하지 않는 패턴을 제외/불일치하는지 테스트/검증할 수 있는 간단하고 빠른 오프라인 방법입니다.
/testing/regex_testing/test_cases.txt)에 대해 정규식을 테스트합니다./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에 전달할 테스트 케이스 목록입니다.>>pass 또는 >>fail이 추가되어 /testing/regex_testing/regex_test_script.sh 스크립트가 정규식에 대한 기대치를 알 수 있습니다.
>>pass는 앞의 문자열을 포함하는 푸시가 **SEDATED®**에 의해 승인됨을 의미합니다(즉, 정규식이 앞의 문자열을 플래그하지 않음).>>fail은 앞의 문자열을 포함하는 푸시가 **SEDATED®**에 의해 거부됨을 의미합니다(즉, 정규식이 앞의 문자열을 플래그함).