
GitHub의 방대한 공개 데이터에서 민감한 비밀을 신속하게 검색하기 위한 반자동 피드백 기반 도구.
GitGot은 반자동화된 피드백 기반 도구로, 사용자가 GitHub의 방대한 공개 데이터를 신속하게 검색하여 민감한 비밀 정보를 찾을 수 있도록 지원합니다.
검색 세션 동안 사용자는 GitGot에 검색 결과를 무시하도록 피드백을 제공하며, GitGot은 결과 집합을 정리합니다. 사용자는 파일 이름, 저장소 이름, 사용자 이름 또는 파일 내용의 퍼지 매치를 기준으로 파일을 블랙리스트에 추가할 수 있습니다.
이전 세션에서 생성된 블랙리스트는 유사한 쿼리(예: example.com 대 subdomain.example.com 대 Example Org)에 대해 저장하고 재사용할 수 있습니다. 세션은 언제든지 일시 중지 및 재개할 수 있습니다.
반자동화된 인간-루프 설계에 대한 자세한 내용은 다음에서 확인하세요: https://bishopfox.com/blog/semi-automated-vs-automated-security-tools.
[1] 퍼지 해싱을 위한 ssdeep 의존성을 설치합니다.
Ubuntu/Debian (또는 해당 배포판에 맞는 명령어):
apt-get install python3-dev libfuzzy-dev ssdeep
또는 Mac OSX의 경우:
brew install ssdeep
Windows 또는 ssdeep 패키지가 없는 *nix 배포판의 경우 ssdeep 설치 지침을 참조하세요.
[2] ssdeep 설치 후, pip를 사용하여 Python 의존성을 설치합니다:
pip3 install -r requirements.txt
gitgot-docker.sh를 실행하여 GitGot Docker 이미지를 빌드하고(이미 존재하지 않는 경우) docker화된 버전의 GitGot 도구를 실행합니다.
호출 시 gitgot-docker.sh는 호스트의 현재 작업 디렉토리에서 logs 및 states 디렉토리를 생성하고 마운트합니다. 이 gitgot-docker.sh가 GitGot 프로젝트 디렉토리에서 실행되면 gitgot.py 또는 checks/에 대한 변경 사항을 Docker 컨테이너에 업데이트합니다:
./gitgot-docker.sh -q example.com
(구체적인 docker 명령어는 gitgot-docker.sh 참조)
GitHub는 속도 제한을 위해 토큰이 필요합니다. 권한 없음/범위 없음으로 GitHub API 토큰을 생성하세요. 이는 공개 GitHub 액세스와 동일하지만 GitHub 검색 API를 사용할 수 있게 해줍니다. 이 토큰을 gitgot.py 상단에 아래와 같이 설정하세요:
ACCESS_TOKEN = "<NO-PERMISSION-GITHUB-TOKEN-HERE>"
(또는 이 토큰을 GITHUB_ACCESS_TOKEN 환경 변수로 설정할 수 있습니다)
토큰을 추가한 후 사용할 준비가 되었습니다:
# 다른 것이 지정되지 않은 경우 기본 정규식 목록과 로그 파일 위치(/logs/<query>.log)가 사용됩니다.
# 기본 GitHub 검색 동작(토큰화)을 사용하여 문자열 "example.com"을 쿼리합니다.
# 이는 com.example (예: Java) 또는 example.com (웹사이트)을 찾습니다.
./gitgot.py -q example.com
# 자체 호스팅 GitHub 인스턴스 쿼리
./gitgot.py -q example.com -u https://git.example.com
# 정확한 문자열 "example.com"을 쿼리합니다. 자세한 내용은 다음 섹션의 쿼리 구문을 참조하세요.
./gitgot.py -q '"example.com"'
# GitHub gist를 통해 쿼리
./gitgot.py --gist -q CompanyName
# GitHub 고급 검색 구문 사용
./gitgot.py -q "org:github cats"
# 사용자 정의 정규식 목록 및 사용자 정의 로그 파일 위치
./gitgot.py -q example.com -f checks/default.list -o example1.log
# 기존 세션에서 복구
./gitgot.py -q example.com -r example.com.state
# 새 쿼리에 기존 세션(블랙리스트 포함) 사용
./gitgot.py -q "Example Org" -r example.com.state
GitGot 쿼리는 GitHub 코드 검색 API에 직접 전달되므로 더 고급 쿼리 구문은 GitHub 문서를 확인하세요.
/(secretToken))