
आपके संगठन से संबंधित आंतरिक लीक खोजने के लिए एक GitHub recon/निगरानी उपकरण।

हम दिसंबर 2019 से 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
संदर्भ के लिए Docker Compose कमांड
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 देखें।