
あなたの組織に属する内部情報漏洩を発見するためのGitHub偵察/監視ツール。

私たちは2019年12月から本番環境でViniferaを使用しており、セキュリティインシデントの防止に役立っています。Viniferaは、公開コントリビューションのセキュリティ衛生を確保し、GitHub上の潜在的なリークを監視するための内部プロジェクトとして始まりました。これは、GitHubのような公開ソースに関して、他の企業がセキュリティ衛生を強化するのに役立つと信じています。

Viniferaは、企業や組織が公開資産を監視し、内部コードのリークや潜在的な侵害の参照を発見できるようにします。開発者が誤って内部コードや資格情報を漏洩することがあります。Viniferaは、企業がこれらの侵害を適時に検出し、インシデントに対応できるよう支援することを目的としています。
Viniferaは、組織に所属する開発者を監視し、定義された参照を探すことで、内部/秘密/専有コードの潜在的な違反や侵害を検出するために公開コントリビューションを監視・スキャンします。

ツールの開発と発案中、セキュリティチームが大量のブドウを消費したため、私たちが愛する果物にちなんで命名しました :) Viniferaは、ブドウの二名法に触発されています。
Viniferaには以下のツールのインストールが必要です:
組織メンバーをスキャンするために、Viniferaは組織メンバーを読み取る権限を持つトークンを必要とします。
特別なスコープなしで新しいトークンを生成してください https://github.com/settings/tokens/new
管理ユーザーは組織の全ユーザーを一覧表示できるため、管理者ユーザーのトークン(特別なスコープなし)を使用することをお勧めします。
https://docs.github.com/en/rest/reference/orgs#list-organization-members
認証されたユーザーがこの組織のメンバーでもある場合、非公開メンバーと公開メンバーの両方が返されます。
.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
docker exec -it vinifera_sidekiq bundle exec rake periodic_syncs:sync_github_users
cd <location_of_cloned_repo>
bundle install
bundle exec rails db:create
bundle exec rails db:migrate
.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
bundle exec whenever --update-crontab
[[rules]]
# Insert your rules here
# description = "Internal References"
# regex = '''(?i)((.*)<COMPANY_INTERNAL_REFERENCES>(.*))'''
# tags = ["internal", "company","references"]
bundle exec sidekiq
さらに、上記のスクリーンショットのようにDatadogでメトリクスを取得するには、DataDogエージェントを使用できます - https://docs.datadoghq.com/agent/
チームが違反を見逃さないようにするために、PagerDuty統合オプションがあります:

PagerDuty統合には、次の環境変数を true に設定する必要があります
ENABLE_PAGER_DUTY_TRIGGER=true
次に、以下のドキュメントに従って新しいサービスと統合キーを作成します - https://support.pagerduty.com/docs/services-and-integrations#create-a-new-service

DEFAULT_PD_INTEGRATION_KEY=<xxxxxxxx>
私たちのプロジェクトへのコントリビューション/バグ修正/パフォーマンス改善を歓迎します :)
私たちが構築したツールに感謝するなら、Viniferaがその上に構築されているプロジェクトにコントリビュート/寄付してください :)
Viniferaは他のオープンソースソフトウェアの上に構築されています:
....(リストは続きます...、雰囲気はわかりますよね ;))
また、Feeding India に寄付することもできます。
Zomatoも本ツールの開発者も、本ツールまたはその使用によって生じたいかなる損害についても責任を負いません。責任を持って使用してください。詳細については LICENSE を参照してください。
ViniferaはApache License, Version 2.0の下でライセンスされています。完全なライセンステキストについては LICENSE を参照してください。