
Ah shhgit! 코드에서 비밀을 찾으세요. GitHub, GitLab 및 Bitbucket 저장소의 비밀 탐지.
공개 코드 저장소에 실수로 비밀(사용자 이름과 비밀번호, API 토큰 또는 개인 키)을 유출하는 것은 개발자와 보안 팀의 최악의 악몽입니다. 사기꾼들은 이러한 비밀을 찾기 위해 공개 코드 저장소를 지속적으로 스캔하여 시스템에 침투합니다. 코드는 그 어느 때보다 연결되어 있어 이러한 비밀은 종종 클라우드 인프라, 데이터베이스 서버, 결제 게이트웨이, 파일 스토리지 시스템 등 개인 및 민감한 데이터에 대한 액세스를 제공합니다.
shhgit는 코드 저장소를 지속적으로 스캔하여 이러한 비밀을 찾고 경고할 수 있습니다.
두 가지 옵션이 있습니다. 첫 번째 옵션을 추천합니다. shhgit 실시간 웹 인터페이스에 액세스할 수 있기 때문입니다. 명령줄 인터페이스만 원한다면 두 번째 옵션을 사용하세요.
git clone https://github.com/eth0izzle/shhgit.gitdocker-compose buildconfig.yaml 파일을 편집합니다 (예: GitHub 토큰 추가)docker-compose up참고: 이 방법은 shhgit 웹 인터페이스를 포함하지 않습니다.
go get github.com/eth0izzle/shhgit 명령어가 shhgit를 자동으로 다운로드하고 빌드합니다. 또는 이 저장소를 클론하고 go build -v -i를 실행할 수 있습니다.config.yaml 파일을 편집하고 아래 사용법을 참조하세요.shhgit는 두 가지 방식으로 작동합니다: GitHub, Gist, GitLab 및 BitBucket의 공개 API를 사용하거나 로컬 디렉토리의 파일을 처리하는 방식입니다.
기본적으로 shhgit는 전자의 '공개 모드'로 실행됩니다. GitHub 및 Gist의 경우 액세스 토큰을 얻어 제공해야 합니다 (이 가이드 참조; 범위나 권한이 필요하지 않습니다). 그런 다음 config.yaml의 github_access_tokens 아래에 배치합니다. GitLab 및 BitBucket은 API 토큰이 필요하지 않습니다.
또한 서명을 생략하고 사용자 정의 검색 쿼리로 shhgit를 사용할 수 있습니다. 예를 들어 모든 AWS 키를 찾으려면 shhgit --search-query AWS_ACCESS_KEY_ID=AKIA를 사용할 수 있습니다. 로컬 모드로 실행하고 (CI 파이프라인에 통합할 수도 있음) --local 플래그를 전달할 수 있습니다 (아래 사용법 참조).
--clone-repository-timeout
저장소를 클론하는 데 걸리는 최대 시간(초) (기본값 10)
--config-path
config.yaml을 검색할 디렉토리 경로. 설정하지 않으면 shhgit 바이너리 및 현재 디렉토리에서 찾으려고 시도합니다.
--csv-path
발견된 비밀을 CSV로 작성하려는 경우 경로를 지정합니다. 비활성화하려면 비워 둡니다.
--debug
디버깅 정보를 출력합니다.
--entropy-threshold
파일에서 높은 엔트로피 문자열을 찾습니다. 임계값이 높을수록 더 비밀스러운 비밀, 낮을수록 더 많은 오탐지가 발생합니다. 엔트로피 검사를 비활성화하려면 0으로 설정합니다 (기본값 5.0)
--local
스캔할 로컬 디렉토리(절대 경로)를 지정합니다. 주어진 디렉토리를 재귀적으로만 스캔합니다. 로컬 실행 시 Github 토큰이 필요 없습니다.
--maximum-file-size
처리할 최대 파일 크기(KB) (기본값 512)
--maximum-repository-size
다운로드 및 처리할 최대 저장소 크기(KB) (기본값 5120)
--minimum-stars
이 별 수 이상인 저장소만 클론합니다. 별 수를 무시하려면 0으로 설정합니다 (기본값 0)
--path-checks
false로 설정하면 파일 이름/경로 서명 확인을 비활성화합니다. 즉, 정규식 패턴만 일치시킵니다 (기본값 true)
--process-gists
Gist를 실시간으로 감시하고 처리합니다. 비활성화하려면 false로 설정합니다 (기본값 true)
--search-query
서명을 무시하고 이 문자열이 포함된 파일만 필터링할 검색 문자열을 지정합니다 (정규식 호환)
--silent
오류를 제외한 모든 출력을 억제합니다.
--temp-directory
저장소/일치 결과를 저장할 디렉토리 (기본값 "%temp%\shhgit")
--threads
사용할 동시 스레드 수 (기본값 논리 CPU 수)
config.yaml 파일에는 7개의 요소가 있습니다. 기본 파일이 제공됩니다.
github_access_tokens: # provide at least one token
- 'token one'
- 'token two'
webhook: '' # URL to a POST webhook.
webhook_payload: '' # Payload to POST to the webhook URL
blacklisted_strings: [] # list of strings to ignore
blacklisted_extensions: [] # list of extensions to ignore
blacklisted_paths: [] # list of paths to ignore
blacklisted_entropy_extensions: [] # additional extensions to ignore for entropy checks
signatures: # list of signatures to check
- part: '' # either filename, extension, path or contents
match: '' # simple text comparison (if no regex element)
regex: '' # regex pattern (if no match element)
name: '' # name of the signature
shhgit에는 150개의 서명이 포함되어 있습니다. config.yaml 파일을 편집하여 제거하거나 추가할 수 있습니다.
1Password 비밀번호 관리자 데이터베이스 파일, Amazon MWS 인증 토큰, Apache htpasswd 파일, Apple 키체인 데이터베이스 파일, Artifactory, AWS 액세스 키 ID, AWS 액세스 키 ID 값, AWS 계정 ID, AWS CLI 자격 증명 파일, AWS 자격 증명 파일 정보, AWS 비밀 액세스 키, AWS 세션 토큰, Azure 서비스 구성 스키마 파일, Carrierwave 구성 파일, Chef Knife 구성 파일, Chef 개인 키, CodeClimate, 자동 로그인 프로세스 구성 파일, 개인 키 포함, 개인 키 포함, cPanel 백업 ProFTPd 자격 증명 파일, Day One 일기 파일, DBeaver SQL 데이터베이스 관리자 구성 파일, DigitalOcean doctl 명령줄 클라이언트 구성 파일, Django 구성 파일, Docker 구성 파일, Docker 레지스트리 인증 파일, 환경 구성 파일, esmtp 구성, Facebook 액세스 토큰, Facebook 클라이언트 ID, Facebook 비밀 키, FileZilla FTP 구성 파일, FileZilla FTP 최근 서버 파일, Firefox 저장된 비밀번호 DB, git-credential-store 헬퍼 자격 증명 파일, Git 구성 파일, GitHub Hub 명령줄 클라이언트 구성 파일, Github 키, GNOME 키링 데이터베이스 파일, GnuCash 데이터베이스 파일, Google (GCM) 서비스 계정, Google Cloud API 키, Google OAuth 액세스 토큰, Google OAuth 키, Heroku API 키, Heroku 구성 파일, Hexchat/XChat IRC 클라이언트 서버 목록 구성 파일, 높은 엔트로피 문자열, HockeyApp, Irssi IRC 클라이언트 구성 파일, Java 키스토어 파일, Jenkins SSH를 통한 게시 플러그인 파일, Jetbrains IDE 구성, KDE 지갑 관리자 데이터베이스 파일, KeePass 비밀번호 관리자 데이터베이스 파일, LinkedIn 클라이언트 ID, LinkedIn 비밀 키, Little Snitch 방화벽 구성 파일, 로그 파일, MailChimp API 키, MailGun API 키, Microsoft BitLocker 복구 키 파일, Microsoft BitLocker TPM 비밀번호 파일, Microsoft SQL 데이터베이스 파일, Microsoft SQL Server Compact 데이터베이스 파일, Mongoid 구성 파일, Mutt 이메일 클라이언트 구성 파일, MySQL 클라이언트 명령 기록 파일, bcrypt 해시가 포함된 MySQL 덤프, SMTP 자격 증명이 있는 netrc, 네트워크 트래픽 캡처 파일, NPM 구성 파일, NuGet API 키, OmniAuth 구성 파일, OpenVPN 클라이언트 구성 파일, Outlook 팀, Password Safe 데이터베이스 파일, PayPal/Braintree 액세스 토큰, PHP 구성 파일, Picatic API 키, Pidgin 채팅 클라이언트 계정 구성 파일, Pidgin OTR 개인 키, PostgreSQL 클라이언트 명령 기록 파일, PostgreSQL 비밀번호 파일, 잠재적 암호화 개인 키, 잠재적 Jenkins 자격 증명 파일, 잠재적 jrnl 일기 파일, 잠재적 Linux passwd 파일, 잠재적 Linux shadow 파일, 잠재적 MediaWiki 구성 파일, 잠재적 개인 키 (.asc), 잠재적 개인 키 (.p21), 잠재적 개인 키 (.pem), 잠재적 개인 키 (.pfx), 잠재적 개인 키 (.pkcs12), 잠재적 PuTTYgen 개인 키, 잠재적 Ruby On Rails 데이터베이스 구성 파일, 개인 SSH 키 (.dsa), 개인 SSH 키 (.ecdsa), 개인 SSH 키 (.ed25519), 개인 SSH 키 (.rsa), 공개 SSH 키, Python 바이트코드 파일, Recon-ng 웹 정찰 프레임워크 API 키 데이터베이스, Atom용 remote-sync, 원격 데스크톱 연결 파일, Robomongo MongoDB 관리자 구성 파일, Rubygems 자격 증명 파일, Ruby IRB 콘솔 기록 파일, Ruby on Rails 마스터 키, Ruby on Rails 비밀, Ruby On Rails 비밀 토큰 구성 파일, S3cmd 구성 파일, Salesforce 자격 증명, Sauce 토큰, Sequel Pro MySQL 데이터베이스 관리자 북마크 파일, Atom용 sftp-deployment, Atom용 sftp-deployment, SFTP 연결 구성 파일, 셸 명령 별칭 구성 파일, 셸 명령 기록 파일, 셸 구성 파일 (.bashrc, .zshrc, .cshrc), 셸 구성 파일 (.exports), 셸 구성 파일 (.extra), 셸 구성 파일 (.functions), 셸 프로필 구성 파일, Slack 토큰, Slack 웹훅, SonarQube Docs API 키, SQL 데이터 덤프 파일, SQL 덤프 파일, SQLite3 데이터베이스 파일, SQLite 데이터베이스 파일, Square 액세스 토큰, Square OAuth 비밀, SSH 구성 파일, SSH 비밀번호, Stripe API 키, T 명령줄 Twitter 클라이언트 구성 파일, Terraform 변수 구성 파일, Tugboat DigitalOcean 관리 도구 구성, Tunnelblick VPN 구성 파일, Twilio API 키, Twitter 클라이언트 ID, Twitter 비밀 키, URI의 사용자 이름과 비밀번호, Ventrilo 서버 구성 파일, VSCode용 vscode-sftp, Windows BitLocker 전체 볼륨 암호화 데이터 파일, WP-Config
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature이 도구를 어떻게 사용하는지에 대해 저는 어떠한 책임도 지지 않습니다. 나쁘게 굴지 마세요.
MIT. LICENSE를 참조하세요.