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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GitMonitor — Github에서 노출될 수 있는 민감 정보를 지속적으로 모니터링하는 한 가지 방법 | Kitploit
도구/GitHubGitHub/talkaboutcybersecurity/gitmonitor
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringSecret Detection
GitHubtalkaboutcybersecurity/gitmonitor

GitMonitor

Github에서 노출될 수 있는 민감 정보를 지속적으로 모니터링하는 한 가지 방법

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GitMonitor

License: GPL v3

GitMonitor

Github에 노출될 수 있는 민감한 정보를 지속적으로 모니터링하는 한 가지 방법

요약

현재 Github에 유출된 민감한 정보를 찾기 위한 많은 다른 도구들이 있다는 것을 알고 있으며, 저도 여전히 그 중 일부를 사용하고 있습니다. 하지만 제 생각에는 여전히 다음과 같은 기능이 부족합니다:

  • 다른 도구들은 Git 주소를 도구에 전달한 저장소에 존재하는 민감한 정보를 찾는 데 더 중점을 둡니다. 제가 GitMonitor를 개발할 당시에는 먼저 찾아야 할 저장소에 중점을 두고, 모든 관련 저장소를 찾은 다음, 그들 사이에 민감한 정보가 존재하는지 확인하는 유사한 도구는 소수에 불과했습니다.

  • 민감한 정보 확인을 위한 규칙 외에도, 도구에는 관심 있는 저장소를 검색하는 규칙도 필요합니다. 고려해야 할 저장소는 회사나 프로젝트와 관련된 키워드를 포함하는 저장소일 수 있습니다.

  • 버그 바운티 헌터라면 한 번에 몇 개의 대상에만 관심이 있을 것입니다. 하지만 회사의 보안 엔지니어라면 회사나 프로젝트와 관련된 저장소가 나타나고 민감한 정보를 포함할 수 있을 때 이를 알아야 합니다. 이러한 저장소는 Github 어디에나, 어떤 이름으로든, 어떤 계정이 게시하든 나타날 수 있습니다. 또한 그러한 저장소가 나타나는 즉시 알림을 받아야 합니다(지속적인 모니터링).

  • 도구는 유연한 보고 메커니즘을 가지고 있습니다.

그래서 이 도구 GitMonitor를 만들었습니다. GitMonitor는 두 가지 다른 규칙 세트를 사용하여 필요한 것을 찾습니다. 검색 규칙 세트는 조직이나 내부 프로젝트 또는 기타 관련이 있을 수 있는 저장소를 검색하고, 일치하는 저장소를 로컬에 클론합니다. 그런 다음 민감한 정보 필터링 규칙 세트로 해당 저장소에 민감한 정보가 있는지 확인합니다. 마지막으로 Slack을 통해 보고합니다. 이 도구를 Cronjob과 함께 사용하여 Github에 유출된 조직 관련 민감한 정보를 추적하고 Slack을 통해 결과를 받는 지속적인 모니터링 시스템을 만들 수 있습니다.

업데이트 2020년 6월 15일: 버전 1.0으로 업데이트되었습니다. 이 버전은 GitMonitor가 안정적으로 작동할 수 있도록 일부 버그를 수정했습니다. 이전 버전을 사용 중이라면 git pull을 수행할 것을 권장합니다.

기능

  • 두 가지 다른 규칙 세트 사용: 관심 저장소를 검색하기 위한 검색 규칙 세트(yaml)와 해당 저장소에 민감한 정보가 포함되어 있는지 확인하기 위한 필터 규칙 세트(regex)입니다. 검색 규칙(yaml)과 필터링 규칙(regex)은 별도로 정의됩니다. 사용자는 yaml 규칙과 regex를 쉽고 직관적으로 정의할 수 있습니다.

  • 검색 규칙 세트: 서로 다른 yaml 파일을 사용하여 다양한 규칙을 만들 수 있습니다. 규칙을 통해 저장소를 검색하는 방법을 유연하게 정의할 수 있습니다. 키워드 또는 언어, 파일명, 확장자와 결합된 키워드를 사용할 수 있으며, 언어, 파일명 또는 확장자를 기준으로 검색에서 저장소를 제외하도록 정의할 수도 있습니다. 키워드는 저장소 이름, 저장소 코드, 그리고 커밋에서 검색됩니다.

  • 필터 규칙 세트: 저장소에 존재할 수 있는 민감한 정보를 찾기 위해 regex를 쉽게 추가하거나 수정할 수 있습니다.

  • 검색 규칙 세트와 일치하는 첫 번째 저장소는 로컬에 클론됩니다. 그런 다음 필터링 규칙 세트가 이 저장소에 민감한 정보가 있는지 확인합니다. 민감한 정보 확인이 완료되면 GitMonitor는 결과를 기록하고 공간을 절약하기 위해 로컬에서 이 저장소를 자동으로 삭제한 후, 관련된 모든 저장소가 발견되고 확인될 때까지 이 과정을 반복합니다.

  • Slack을 통한 보고.

  • 이 도구는 지속적인 모니터링을 위해 Cronjob으로 예약할 수 있습니다.

작동 다이어그램

요구 사항

  • Python3
  • Python3-pip.
  • Ubuntu 18.04 및 MacOS에서 테스트되었습니다. GitMonitor는 다른 시스템에서도 잘 작동할 것으로 믿습니다.

설정

1. 요구 사항 설치

root@kitploit:~
> python3 -m pip install -r requirements.txt

PyYAML 버전 5x 이상이 설치되어 있는지 확인하십시오 (pip3 install --ignore-installed PyYAML)

2. 설정 파일(config.ini)에 필요한 모든 정보가 구성되었는지 확인

다음 표는 설정 파일의 각 키의 의미를 설명합니다:

3. Github 계정 자격 증명 정의. 두 가지 방법이 있습니다

  • 환경 변수에 자격 증명 정보 정의:
root@kitploit:~
> export GIT_USERNAME=Github 사용자 이름
> export GIT_PASSWORD=Github 개인 키 또는 비밀번호
  • 또는 설정 파일에 자격 증명 정보 정의(권장하지 않음):

    • config.ini 파일을 엽니다.
    • user 및 password 키 값에 자격 증명 정보를 입력합니다.

환경 변수에 자격 증명 정보를 정의한 경우의 설정 파일 예시

예시 설정 파일

4. 규칙 작성 (검색 규칙). rules 디렉터리에 규칙을 넣습니다

여러 키워드를 정의하기 위해 규칙 템플릿과 같은 여러 yaml 파일을 만들 수 있습니다. 규칙 파일은 아래 이미지와 같습니다:

예시 규칙 파일

5. libs/regex.py 파일에 정규 표현식 추가 - 민감한 정보 필터링 규칙 (선택 사항)

6. GitMonitor 실행

root@kitploit:~
> python3 gitmonitor.py

7. Cronjob을 사용하여 도구의 자동 실행을 예약할 수 있습니다

예를 들어:

예시 cronjob

할 일

  • 기능: 이메일을 통한 보고.
  • 기능: Elasticsearch로 결과 전송.
  • 개발: setup.py 작성
  • 개발: Dockerfile 작성

내 팀

  • Tony - 프로젝트 리더
  • musashi137 - 핵심 개발자

특별 감사

  • 정규 표현식 기반 민감한 정보 검색 메커니즘을 제공한 GitMAD

기여

이 프로젝트의 많은 부분이 개선될 수 있으며, 현재 코드 리팩토링 및 새로운 기능 구현과 함께 크게 변경될 수 있습니다. 커뮤니티의 개선 피드백 및 풀 리퀘스트는 높이 평가되며 수락될 것입니다.

일반적으로 "fork-and-pull" Git 워크플로를 따릅니다.

  1. GitHub에서 레포지토리를 포크합니다.
  2. 프로젝트를 로컬 머신에 클론합니다.
  3. 자신의 브랜치에 변경 사항을 커밋합니다.
  4. 작업 내용을 포크에 다시 푸시합니다.
  5. 변경 사항을 검토할 수 있도록 풀 리퀘스트를 제출합니다.

참고: 풀 리퀘스트를 만들기 전에 "upstream"에서 최신 내용을 병합하십시오!

후원

Buy Me A Coffee

도구 다운로드
키설명
userGithub 사용자 이름 - 환경 변수를 통해 Github 자격 증명을 설정한 경우 비워 둡니다.
passGithub 비밀번호 - 환경 변수를 통해 Github 자격 증명을 설정한 경우 비워 둡니다.
webhooksGitMonitor에서 Slack으로 메시지를 보내기 위한 Incoming Webhook 토큰
rule검색 규칙 세트가 포함된 디렉터리
source저장소를 다운로드할 디렉터리
log각 스캔 후 상태를 기록하는 JSON 파일이 포함될 디렉터리. 이 JSON 파일은 스캔 간 결과를 비교하는 데 사용됩니다(새 저장소 식별).
start스캔 시작 배너 및 민감한 필터링 규칙 세트 스캔 결과 배너를 정의 - Slack으로 전송되는 결과에 표시됩니다.
end스캔 종료 배너 및 검색 규칙 세트 스캔 결과 배너를 정의 - Slack으로 전송되는 결과에 표시됩니다.
all모든 저장소 표시 배너를 정의 - Slack으로 전송되는 결과에 표시됩니다.