
Git 리포지토리를 복제 및 미러링하고, 델타를 계산하며, 삭제되거나 리셋된 커밋에 숨겨진 시크릿을 탐지하기 위해 gitleaks를 실행하는 셸 스크립트입니다.
이 저장소는 클론된 저장소와 미러 저장소 간의 차이를 다운로드하고 분석하는 데 사용할 수 있는 셸 스크립트를 포함합니다. Git 동작의 기본적인 특성에 대한 자세한 내용은 블로그 게시물을 방문해 주세요.
이 스크립트들은 주어진 Git 저장소를 일반 클론과 미러("--mirror") 옵션 두 가지 방식으로 복제합니다. 그런 다음 두 복제본 간의 델타를 생성하여 미러 모드에서만 사용할 수 있는 저장소 부분을 찾습니다. 마지막으로 gitleaks를 실행하여 델타 부분에 시크릿이 있는지 확인하고, "git log"를 사용하여 커밋 본문을 포함하는 단일 파일을 생성하여 더 쉽게 분석할 수 있도록 합니다.
이 스크립트는 저장소의 세 가지 복사본을 생성하므로 많은 디스크 공간을 사용할 수 있습니다.
다음 두 예제 저장소에서 이 도구를 테스트할 수 있습니다:
Git, Python 3, GitLeaks 및 git-filter-repo가 설치되어 있어야 합니다. MacOS에 설치하는 예시는 다음과 같습니다:
brew install git python3 gitleaks git-filter-repo
저장소에 대해 다음과 같이 실행할 수 있습니다:
git clone https://github.com/nightwatchcybersecurity/gitbleed_tools.git
cd gitbleed_tools
./gitbleed.sh https://github.com/nightwatchcybersecurity/gitbleed_tools.git example
GitHub 및 GitLab 저장소를 스캔하는 데 사용할 수 있는 보조 스크립트도 있습니다:
./gitbleed_gh.sh nightwatchcybersecurity/gitbleed_tools
./gitbleed_gl.sh nwcs/junit_ui_bug
이렇게 하면 example 폴더가 생성되며, 다음 세 개의 하위 폴더가 포함됩니다:
또한 세 개의 파일이 생성됩니다:
GitHub 이슈 트래커를 사용하여 문제를 보고하거나 기능을 제안해 주세요: https://github.com/nightwatchcybersecurity/gitbleed_tools
또한 research /at/ nightwatchcybersecurity [dot] com으로 이메일을 보낼 수 있습니다.