Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vinifera — 조직 내부 유출을 찾기 위한 GitHub 정찰/모니터링 도구 | Kitploit
도구/GitHubGitHub/zomato/vinifera
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringSecret DetectionIncident Response
GitHubzomato/vinifera

vinifera

조직 내부 유출을 찾기 위한 GitHub 정찰/모니터링 도구

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Vinifera - GitHub 내부 유출 모니터링

GitHub 모니터링 도구 🤖

Vinifera Logo


우리는 2019년 12월부터 프로덕션에서 Vinifera를 사용해 왔으며, 이를 통해 보안 사고를 예방할 수 있었습니다. Vinifera는 공개 기여의 보안 위생을 보장하고 GitHub에서 잠재적인 유출을 모니터링하기 위해 내부 프로젝트로 시작되었습니다. 우리는 이것이 다른 기업들이 GitHub와 같은 공개 출처에 대한 보안 위생을 강화하는 데 도움이 될 것이라고 믿습니다.

Stats

Vinifera란 무엇인가요?

Vinifera는 기업/조직이 공개 자산을 모니터링하여 내부 코드 유출 및 잠재적인 침해에 대한 참조를 찾을 수 있도록 합니다. 때로는 개발자가 실수로 내부 코드와 자격 증명을 유출할 수 있습니다. Vinifera는 기업이 이러한 침해를 적시에 탐지하고 사고에 대응할 수 있도록 지원하는 것을 목표로 합니다.

어떻게 작동하나요?

Vinifera는 조직에 속한 개발자를 모니터링하고, 공개 기여를 모니터링 및 스캔하여 정의된 참조를 찾아 잠재적인 위반 및 내부/비밀/독점 코드의 침해를 탐지합니다.

  • Vinifera는 조직 사용자를 동기화하여 작동합니다.
  • 각 사용자에 대해 모든 공개 자산이 등록됩니다(이미 추적 중이 아닌 경우).
  • 각 자산(Repo, Gist)은 차이점이 있는지 스캔됩니다.
  • 각 차이점은 스캔, 저장 및 보고됩니다(유출이 포함된 경우).

Vinifera Workflow

이름은 무엇을 의미하나요?

도구를 개발하고 구상하는 동안 보안 팀이 포도를 많이 소비했기 때문에 우리가 사랑하는 과일의 이름을 따서 명명했습니다 :) Vinifera는 포도의 이명(二名)에서 영감을 받았습니다.

설정 및 사용법

요구 사항

Vinifera는 다음 도구의 설치가 필요합니다:

  1. PostgreSQL
  2. Redis
  3. Docker
  4. Ruby (rbenv/rvm을 통해 설치)

설정

GitHub 액세스 토큰

조직 구성원을 스캔하려면 Vinifera에 조직 구성원을 읽을 수 있는 토큰이 필요합니다.

새 토큰을 생성하세요 https://github.com/settings/tokens/new (특별한 범위 없이)

관리자는 조직의 모든 사용자를 나열할 수 있으므로, 관리자 사용자(특별한 범위 없음)의 토큰을 사용하는 것이 좋습니다.

https://docs.github.com/en/rest/reference/orgs#list-organization-members

인증된 사용자가 이 조직의 구성원이기도 한 경우, 숨겨진 구성원과 공개 구성원 모두 반환됩니다.

Docker

  • .docker_env.example을 .docker_env로 이름 변경
mv .docker_env.example .docker_env
  • 필요한 변수로 .docker_env 업데이트
GITHUB_ACCESS_TOKEN=<REDACTED>
VINIFERA_ORG_NAME=<Your_org_name>

RAILS_MAX_THREADS=60 # This also controls DB pool

RAILS_MASTER_KEY=<ADD_YOUR_MASTER_KEY_HERE>

# set the environment
RAILS_ENV=<development|production>

# set the following if RAILS_ENV is set to production
SECRET_KEY_BASE=<YOUR_SECRET_KEY> # min 32 bits key is allowed

# add slack incoming webhook URLs for respective slack channels
SLACK_UPDATES_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_TARGETS_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_USER_TRACKING_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_VINIFERA_VIOLATION_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_ERROR_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>

# By default fork and big fork scanning is disabled
VINIFERA_ENABLE_FORK_SCANNING=false
VINIFERA_ENABLE_BIG_FORK_SCANNING=false
  • 빌드
docker-compose build
  • 실행
docker-compose up
  • 변경 후 재빌드
docker-compose up --build
  • GitHub 조직 사용자 동기화
docker exec -it vinifera_sidekiq bundle exec rake periodic_syncs:sync_github_users

Docker Compose Commands for Reference


수동 설치

  • 필요한 종속성 설치
cd <location_of_cloned_repo>
bundle install
  • DB 및 마이그레이션 설정
bundle exec rails db:create
bundle exec rails db:migrate
  • 환경 변수 및 Slack WebHook 설정 샘플 env 파일은 .example_env에 있습니다.
GITHUB_ACCESS_TOKEN=<REDACTED>
VINIFERA_ORG_NAME=<Your_org_name> # Name of org for which token was generated.

VINIFERA_DATABASE_HOST=<localhost>
VINIFERA_DATABASE_PASSWORD=<YOUR_PASSWORD>

RAILS_MAX_THREADS=60 # This also controls DB pool

RAILS_MASTER_KEY=<REDACTED>


SLACK_UPDATES_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_TARGETS_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_USER_TRACKING_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_VINIFERA_VIOLATION_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>
SLACK_ERROR_GROUP_URL=https://hooks.slack.com/services/<YOUR_CONFIG_HERE>



# Add this only if you are using Docker over TLS, recommended way, if, on the same host as vinifera, you may skip it

DOCKER_CLIENT_CERT_PATH=/home/deployer/.docker
DOCKER_HOST=tcp://<IP>:<PORT>

# By default fork and big fork scanning is disabled
VINIFERA_ENABLE_FORK_SCANNING=false
VINIFERA_ENABLE_BIG_FORK_SCANNING=false

REDIS_URL=redis://<REDIS_URI>
SIDEKIQ_REDIS_URL=redis://<REDIS_URI>

# For PagerDuty Integration
DEFAULT_PD_INTEGRATION_KEY=<xxxxxxxx>
ENABLE_PAGER_DUTY_TRIGGER=true
  • Cron 작업 설정
bundle exec whenever --update-crontab
  • Gitleaks에 대한 사용자 정의 toml 규칙을 설정하세요. 자세한 정보
[[rules]]
# Insert your rules here
# description = "Internal References"
# regex = '''(?i)((.*)<COMPANY_INTERNAL_REFERENCES>(.*))'''
# tags = ["internal", "company","references"]
  • Sidekiq 시작
bundle exec sidekiq
Datadog

또한 위 스크린샷과 같이 Datadog에서 메트릭을 얻으려면 DataDog 에이전트를 사용할 수 있습니다 - https://docs.datadoghq.com/agent/

PagerDuty

팀이 위반 사항을 절대 놓치지 않도록 PagerDuty 통합 옵션이 있습니다:

PagerDuty Incident

PagerDuty 통합을 위해 다음 환경 변수를 true로 설정해야 합니다.

ENABLE_PAGER_DUTY_TRIGGER=true

그런 다음 다음 문서에 설명된 대로 새 서비스와 통합 키를 생성합니다 - https://support.pagerduty.com/docs/services-and-integrations#create-a-new-service

PagerDuty Service

DEFAULT_PD_INTEGRATION_KEY=<xxxxxxxx>

기여하기

우리는 프로젝트에 대한 기여/버그 수정/성능 개선을 환영합니다 :)

기부

저희가 만든 도구가 마음에 드신다면, Vinifera가 기반으로 하는 프로젝트에 자유롭게 기여/기부해 주세요 :)

Vinifera는 다음 오픈소스 소프트웨어 위에 구축되었습니다:

  1. Rails (우리가 가장 좋아하는 웹 프레임워크)
  2. Sidekiq (작업 수명 주기, 스케줄링 및 재시도 처리)
  3. Gitleaks (Gitleaks는 Docker 이미지를 통한 코드 스캔을 제공합니다)
  4. Docker (격리된 환경에서 스캔 실행)
  5. Docker-api (Docker Remote API와 상호작용하기 위한 Ruby 클라이언트)
  6. Sidekiq Throttled (워커 스로틀링용)
  7. Octokit (GitHub API용 Ruby 툴킷)
  8. Whenever (Ruby에서 Cron 작업)

.... (목록은 계속됩니다... 대충 아시겠죠 ;) )

Feeding India에 기부할 수도 있습니다.

면책 조항

Zomato 및 이 도구의 개발자는 이 도구나 그 사용으로 인해 발생한 어떠한 손해에 대해서도 책임을 지지 않습니다. 책임감 있게 사용하세요. 자세한 내용은 LICENSE를 참조하세요.

라이선스

Vinifera는 Apache License, Version 2.0에 따라 라이선스가 부여됩니다. 전체 라이선스 텍스트는 LICENSE를 참조하세요.

도구 다운로드