Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gitlab-watchman — GitLab에서 노출된 비밀 및 개인 데이터 찾기 | Kitploit
도구/GitHubGitHub/papermtn/gitlab-watchman
Vulnerability ScannersCode AnalysisData ExfiltrationInformation GatheringDevSecOpsSecret Detection
GitHubpapermtn/gitlab-watchman

gitlab-watchman

GitLab에서 노출된 비밀 및 개인 데이터 찾기

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GitLab Watchman

Python 2.7 and 3 compatible PyPI version License: MIT

GitLab Watchman 소개

GitLab Watchman은 GitLab API를 사용하여 노출된 비밀 및 개인 데이터를 탐지하는 애플리케이션입니다. 또한 GitLab 인스턴스의 유용한 정보를 열거합니다.

기능

비밀 탐지

내부적으로 공유된 프로젝트를 검색하여 다음 항목을 확인합니다:

  • 코드
  • 커밋
  • 위키 페이지
  • 이슈
  • 병합 요청
  • 마일스톤
  • 노트
  • 스니펫

다음 데이터를 찾습니다:

  • GCP 키 및 서비스 계정 파일
  • AWS 키
  • Azure 키 및 서비스 계정 파일
  • Google API 키
  • Slack API 토큰 및 웹훅
  • 비공개 키 (SSH, PGP, 기타 개인 키)
  • 노출된 토큰 (Bearer 토큰, 액세스 토큰, client_secret 등)
  • S3 구성 파일
  • Heroku, PayPal 등의 서비스 토큰
  • 일반 텍스트 비밀번호
  • 그 외
시간 기반 검색

GitLab Watchman을 실행하여 다음 기간까지의 결과를 검색할 수 있습니다:

  • 24시간
  • 7일
  • 30일
  • 전체 기간

즉, 한 번의 전체 검사 후에 GitLab Watchman을 정기적으로 실행하도록 예약하여 선택한 기간의 결과만 반환할 수 있습니다.

열거

GitLab Watchman은 GitLab 인스턴스에서 잠재적으로 유용한 정보를 열거할 수 있습니다:

  • 인스턴스 메타데이터
  • 사용 중인 호출 사용자/토큰 정보
  • 모든 사용자를 CSV 파일로 출력
  • 모든 프로젝트를 CSV 파일로 출력
  • 모든 그룹을 CSV 파일로 출력

시그니처

GitLab Watchman은 사용자 정의 YAML 시그니처를 사용하여 GitLab에서 일치 항목을 탐지합니다. 이 시그니처는 중앙 Watchman Signatures 저장소에서 가져옵니다. Slack Watchman은 런타임에 시그니처 기반을 자동으로 업데이트하여 최신 시그니처로 비밀을 탐지합니다.

시그니처 비활성화

GitLab Watchman 실행 시 비활성화하려는 시그니처를 watchman.conf 파일의 disabled_signatures 섹션에 ID를 추가하여 정의할 수 있습니다. 예:

root@kitploit:~
gitlab_watchman:
  disabled_signatures:
    - tokens_generic_bearer_tokens
    - tokens_generic_access_tokens

시그니처의 ID는 Watchman Signatures 저장소의 개별 YAML 파일에서 찾을 수 있습니다.

로깅

GitLab Watchman은 다음 로깅 옵션을 제공합니다:

  • 터미널 친화적 Stdout
  • JSON을 Stdout으로

옵션이 제공되지 않으면 GitLab Watchman은 기본적으로 터미널 친화적 stdout 로깅을 사용합니다. 이는 사람이 읽기 쉽도록 설계되었습니다.

JSON 로깅도 가능하며, SIEM 또는 다른 로그 분석 플랫폼에 수집하기에 적합합니다.

JSON 형식의 로깅은 아래와 같이 파일로 쉽게 리디렉션할 수 있습니다:

root@kitploit:~
gitlab-watchman --timeframe a --all --output json >> gitlab_watchman_log.json 

요구 사항

GitLab 버전

GitLab Watchman은 v4 API를 사용하며, 다음 GitLab Enterprise Edition 버전에서 작동합니다:

  • 13.0 이상 - 예

  • GitLab.com - 예

  • 12.0 - 12.10 - 가능, 테스트되지 않았지만 v4 API를 사용한다면 작동할 수 있음

GitLab 라이선스 및 Elasticsearch

다음 범위를 검색하려면:

  • 블롭
  • 위키 블롭
  • 커밋

GitLab 인스턴스에 Elasticsearch가 구성되어 있어야 하며, 최소 GitLab Starter 또는 Bronze 라이선스의 Enterprise Edition을 실행 중이어야 합니다.

GitLab 개인 액세스 토큰

GitLab Watchman을 실행하려면 GitLab 개인 액세스 토큰이 필요합니다.

GitLab GUI에서 Settings -> Access Tokens -> Add a personal access token을 통해 개인 액세스 토큰을 생성할 수 있습니다.

토큰은 다음 범위에 대한 권한이 필요합니다:

root@kitploit:~
api

참고: 개인 액세스 토큰은 생성한 사용자를 대신하여 작동하므로, 서비스 계정을 사용하여 토큰을 생성하는 것이 좋습니다. 그렇지 않으면 앱이 개인 저장소에 접근할 수 있습니다.

GitLab URL

또한 GitLab 인스턴스의 URL을 제공해야 합니다.

토큰 및 URL 제공

GitLab Watchman은 환경 변수 GITLAB_WATCHMAN_TOKEN 및 GITLAB_WATCHMAN_URL에서 GitLab 토큰과 URL을 가져옵니다.

watchman.conf 파일

구성 옵션은 홈 디렉토리에 저장된 watchman.conf 파일로 전달할 수 있습니다. 파일은 YAML 형식을 따라야 하며 아래와 같아야 합니다:

root@kitploit:~
gitlab_watchman:
  disabled_signatures:
    - tokens_generic_bearer_tokens
    - tokens_generic_access_tokens

GitLab Watchman은 런타임에 이 파일을 찾아 여기서 구성 옵션을 사용합니다.

설치

pip를 통해 최신 안정 버전을 설치할 수 있습니다:

python3 -m pip install gitlab-watchman

또는 직접 소스에서 빌드하세요. 릴리스 소스 파일을 다운로드한 후 최상위 저장소에서 다음을 실행합니다:

root@kitploit:~
python3 -m build
python3 -m pip install --force-reinstall dist/*.whl

Docker 이미지

GitLab Watchman은 Docker Hub에서 Docker 이미지로도 제공됩니다:

docker pull papermountain/gitlab-watchman:latest

그런 다음 필요한 환경 변수를 전달하여 컨테이너에서 GitLab Watchman을 실행할 수 있습니다:

root@kitploit:~
// help
docker run --rm papermountain/gitlab-watchman -h

// scan all
docker run --rm -e GITLAB_WATCHMAN_TOKEN=abc123 -e GITLAB_WATCHMAN_URL=https://example.gitlab.com papermountain/gitlab-watchman --timeframe a --all
docker run --rm --env-file .env papermountain/gitlab-watchman --timeframe a --all

사용법

GitLab Watchman은 전역 명령어로 설치되며, 다음과 같이 사용합니다:

root@kitploit:~
usage: gitlab-watchman [-h] --timeframe {d,w,m,a} [--output {json,stdout}] [--version] [--all] [--blobs] [--commits] [--wiki-blobs] [--issues]
                   [--merge-requests] [--milestones] [--notes] [--snippets] [--enumerate] [--debug] [--verbose]

Finding exposed secrets and personal data in GitLab

options:
  -h, --help            show this help message and exit
  --output {json,stdout}, -o {json,stdout}
                        Where to send results
  --version, -v         show program's version number and exit
  --all, -a             Find everything
  --blobs, -b           Search code blobs
  --commits, -c         Search commits
  --wiki-blobs, -w      Search wiki blobs
  --issues, -i          Search issues
  --merge-requests, -mr
                        Search merge requests
  --milestones, -m      Search milestones
  --notes, -n           Search notes
  --snippets, -s        Search snippets
  --enumerate, -e       Enumerate this GitLab instance for users, groups, projects.Output will be saved to CSV files
  --debug, -d           Turn on debug level logging
  --verbose, -V         Turn on more verbose output for JSON logging. This includes more fields, but is larger

required arguments:
  --timeframe {d,w,m,a}
                        How far back to search: d = 24 hours w = 7 days, m = 30 days, a = all time

기타 Watchman 앱

Watchman 제품군의 다른 앱에 관심이 있을 수 있습니다:

  • Slack Watchman
  • Slack Watchman for Enterprise Grid
  • GitHub Watchman

라이선스

이 프로젝트의 소스 코드는 GNU General Public Licence 하에 배포됩니다. 이 프로젝트는 GitLab과 관련이 없습니다.

도구 다운로드