Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SEDATED — SEDATED® 프로젝트 (민감한 기업 데이터 노출 제거 분석기) | Kitploit
도구/GitHubGitHub/owasp/sedated
Vulnerability ScannersCode AnalysisConfiguration AuditingDevSecOpsSecret DetectionSupply Chain Security
GitHubowasp/sedated

SEDATED

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

저장소 보기
11035306년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SEDATED_logo_full

SEDATED® 프로젝트(민감한 엔터프라이즈 데이터 유출 방지 분석기, Sensitive Enterprise Data Analyzer To Eliminate Disclosure)는 사용자 자격 증명 및 토큰과 같은 민감한 데이터가 Git에 푸시되는 것을 방지하는 데 중점을 둡니다.

목차

  • 목적
  • 설정
    • SEDATED® 클론하기
    • .example 파일 업데이트
    • /config/custom_configs.sh 변수 및 함수 사용자 정의(원하는 대로)
    • 조직별 구현을 포함한 SEDATED® 푸시
    • **SEDATED®**의 pre-receive.sh 파일로 pre-receive 훅 지정
  • 로컬 테스트
  • 파일 설명
    • pre-receive.sh
    • /config/custom_configs.sh
    • /config/enforced_repos_list.txt
    • /config/regexes.json
    • /config/whitelists/commit_whitelist.txt
    • /config/whitelists/repo_whitelist.txt
    • /testing/regex_testing/regex_test_script.sh
    • /testing/regex_testing/test_cases.txt
  • 사용자 정의
    • 사용자 정의 변수
    • 사용자 정의 함수
  • 호환성
    • GitHub
    • GitLab
    • Git
    • 기타 Git SCM 도구
  • 기여
  • 작성자
  • 라이선스

목적

오늘날의 CICD 환경에서는 수많은 코드 변경이 필요하기 때문에 개발자들은 의도치 않게 민감한 정보를 포함할 수 있는 코드를 끊임없이 푸시하고 있습니다. 이러한 잠재적 민감 데이터 노출은 조직에 큰 위험을 초래합니다 (2017 OWASP Top Ten #3 - 민감 데이터 노출). **SEDATED®**은 들어오는 모든 코드 변경을 자동으로 검토하고 개발자에게 즉각적인 피드백을 제공함으로써 이 문제를 해결합니다. 민감한 데이터를 식별하면 커밋이 Git 서버로 푸시되는 것을 차단합니다.

***참고: 커밋 푸시에서 오직 추가되거나 수정된(패치 파일에서 +로 시작하는) 줄만 **SEDATED®**이 검사합니다. 커밋 푸시에서 제거되는(패치 파일에서 -로 시작하는) 줄은 **SEDATED®*이 검사하지 않습니다.

설정

1. SEDATED® 클론하기

git clone https://github.com/OWASP/SEDATED.git

cd SEDATED/

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

3. /config/custom_configs.sh 변수 및 함수 사용자 정의(원하는 대로)

4. 조직별 구현을 포함한 SEDATED® 푸시

조직별 SEDATED® 구현을 조직이 원하는 Git 저장소(GitHub, GitLab, Git 등)로 푸시하세요.

5. **SEDATED®**의 pre-receive.sh 파일로 pre-receive 훅 지정

GitHub Enterprise 인스턴스에서 이를 수행하는 방법에 대한 지침은 GitHub_Enterprise_Setup.md에서 확인할 수 있습니다.

로컬 테스트

  • GitHub Docker Setup - 로컬 테스트를 위해 pre-receive 훅이 활성화된 Git 서버 역할을 하는 GitHub docker 컨테이너를 설정하기 위한 일반적인 지침입니다.
    • **SEDATED®**이 설계된 대로 작동하려면 몇 가지 수정이 필요합니다.
      • always_reject.sh는 **SEDATED®**의 pre-receive.sh 스크립트로 대체해야 합니다.
      • **SEDATED®**의 관련 파일/폴더 구조가 같은 디렉터리에 포함되거나 pre-receive.sh 스크립트에서 액세스할 수 있어야 합니다.
      • 추가적인 조정도 필요할 수 있지만 위에 링크된 지침은 로컬 테스트를 위한 좋은 출발점입니다.

파일 설명

pre-receive.sh
  • **SEDATED®**의 핵심입니다.
  • **SEDATED®**의 regexes(config/regexes.json)와 함께 사용되는 SEDATED® pre-receive Git 훅 스크립트로, Git 인스턴스로 푸시되는 추가되거나 수정된 코드 줄에서 하드코딩된 자격 증명/민감한 데이터(config/regexes.json에 정의된 대로)를 식별하고, 하드코딩된 자격 증명/민감한 데이터가 포함된 줄이 발견되면 푸시를 차단합니다.
/config/custom_configs.sh
  • pre-receive.sh와 함께 사용되는 SEDATED® 사용자 정의 구성 파일로, pre-receive.sh에서 소싱되는 기본 제공 사용자 정의 변수와 함수를 제공하여 조직이 **SEDATED®**의 pre-receive.sh 파일 내 소스 코드를 수정하지 않고도 자체 SEDATED® 구현을 사용자 정의할 수 있게 합니다.
/config/enforced_repos_list.txt
  • SEDATED®(pre-receive 훅)의 config/custom_configs.sh에 있는 use_enforced_repo_check_custom 플래그가 "True"로 설정된 경우 사용됩니다.
  • **SEDATED®**이 엔터프라이즈 내에서 전역적으로 "활성화"되지만, 이 파일에 나열된 저장소에서만 선택적으로 "강제 적용"되도록 합니다.
  • 특정 조직 또는 사용자 이름 아래의 모든 저장소에 강제 적용하려면 조직 또는 사용자 이름 끝에 /*를 추가하면 됩니다.
  • **SEDATED®**이 조직 내에서 전역적으로 활성화되어 있고 /config/enforced_repos_list.txt 파일에 없는 경우, 푸시하는 사람(명령줄에서 푸시하는 경우)은 사용자 정의 가능한 메시지(/config/custom_configs.sh 파일로 사용자 정의)를 보게 되며 **SEDATED®**은 푸시에 포함된 코드를 검사하지 않습니다.
  • 이 기능을 활성화/비활성화하는 플래그는 /config/custom_configs.sh에서 확인할 수 있으며 "True" 또는 "False"로 설정할 수 있습니다.
    • "False" - **SEDATED®**이 "활성화"된 모든 저장소에는 **SEDATED®**이 "강제 적용"됩니다.
    • "True" - **SEDATED®**이 "활성화"되어 있고 /config/enforced_repos_list.txt 파일에 나열된 저장소에만 **SEDATED®**이 "강제 적용"됩니다. **SEDATED®**이 "활성화"되어 있지만 /config/enforced_repos_list.txt 파일에 나열되지 않은 다른 모든 저장소는 사용자 정의 메시지만 표시되며 해당 저장소의 푸시에 대한 코드는 검사되지 않습니다.
  • 이 파일은 비어 있어도 되며, config/custom_configs.sh에서 use_enforced_repo_check_custom 플래그가 "True"로 설정된 경우에만 존재하면 됩니다.
/config/regexes.json
  • 하드코딩된 자격 증명/민감한 데이터를 플래그하는 데 사용되는 정규식(regexes)을 포함합니다.
  • 이 정규식은 pre-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의 결과가 정확합니다.
  • 이 파일에서 정규식을 추가/수정하는 경우, 파일이 JSON 형식이므로 원하는 정규식에 따라 추가 이스케이프 문자 \가 필요할 수 있습니다.
/config/whitelists/commit_whitelist.txt
  • 오탐(false positive)의 경우, 이 파일에 커밋 ID가 포함된 하나 이상의 커밋을 검사 과정에서 제외할 수 있습니다.
  • 커밋 ID는 /config/whitelists/commit_whitelist.txt.example 파일에 표시된 것처럼 이 파일에서 캐리지 리턴으로 구분해야 합니다.
  • 이 파일은 비어 있어도 되지만 존재해야 합니다.
선택 사항: 개발자가 오탐을 발견하면 이(commit_whitelist.txt) 파일에 대한 풀 리퀘스트를 제출하여 검토를 받을 수 있도록 요청하세요.
/config/whitelists/repo_whitelist.txt
  • 이 파일에 포함된 (조직/사용자 이름)/저장소는 이 목록에서 제거될 때까지 민감한 데이터/하드코딩된 자격 증명 검사에서 완전히 제외됩니다.
  • 대규모 푸시(예: 저장소 마이그레이션)의 경우에 사용됩니다. 이러한 경우 **SEDATED®**은 푸시에 포함된 새 코드/수정된 코드를 5초 창(5초 창은 GitHub 특정 값이며 다른 Git 인스턴스에서는 다를 수 있음) 내에 검사할 수 없습니다.
  • (조직/사용자 이름)/저장소 이름은 /config/whitelists/repo_whitelist.txt.example 파일에 표시된 것처럼 이 파일에서 캐리지 리턴으로 구분해야 합니다.
  • 이 파일은 비어 있어도 되지만 존재해야 합니다.
/testing/regex_testing/regex_test_script.sh
  • testing/regex_testing/test_cases.txt와 함께 사용되는 SEDATED® 정규식 테스트 스크립트로, config/regexes.json 내부의 정규식이 유효하고 원하는 패턴과 일치하는지, 그리고 원하지 않는 패턴을 제외/불일치하는지 테스트/검증할 수 있는 간단하고 빠른 오프라인 방법입니다.
    • 정규식이 예상대로 작동하는지 확인하기 위해 테스트 케이스 목록(/testing/regex_testing/test_cases.txt)에 대해 정규식을 테스트합니다.
    • 긍정 및 부정 테스트 케이스(/testing/regex_testing/test_cases.txt)를 모두 테스트합니다.
    • 스크립트를 실행할 때 GNU grep을 사용해야 합니다. 그렇지 않으면 스크립트가 실패합니다(BSD grep에는 -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®**에 의해 거부됨을 의미합니다(즉, 정규식이 앞의 문자열을 플래그함).
도구 다운로드