
أداة استطلاع/مراقبة لجيتهاب لاكتشاف التسريبات الداخلية التي تخص مؤسستك.

لقد كنا نستخدم فينيفيرا في الإنتاج منذ ديسمبر 2019 وقد ساعدنا في منع حوادث أمنية. بدأت فينيفيرا كمشروع داخلي لضمان النظافة الأمنية لمساهماتنا العامة ومراقبة التسريبات المحتملة على جيثب. نعتقد أن هذا سيساعد الشركات الأخرى على تعزيز نظافتها الأمنية عندما يتعلق الأمر بالمصادر العامة مثل جيثب.

تسمح فينيفيرا للشركات/المؤسسات بمراقبة الأصول العامة للعثور على مراجع لتسريبات الكود الداخلي والانتهاكات المحتملة. قد يقوم المطورون أحيانًا بتسريب الكود الداخلي وبيانات الاعتماد عن طريق الخطأ. تهدف فينيفيرا إلى مساعدة الشركات على اكتشاف تلك الانتهاكات في الوقت المناسب والاستجابة للحادث.

أثناء تطوير الأداة وإنشائها، استهلك فريق الأمن الكثير من العنب، لذلك قمنا بتسميتها على اسم الفاكهة التي نحبها :) فينيفيرا مستوحاة من الاسم الثنائي للعنب
تتطلب فينيفيرا تثبيت الأدوات التالية:
لمسح أعضاء مؤسستك، تتطلب فينيفيرا رمزًا لديه القدرة على قراءة أعضاء المؤسسة.
قم بإنشاء رمز جديد https://github.com/settings/tokens/new بدون نطاق خاص
سترغب في استخدام رمز مستخدم مسؤول (بدون نطاق خاص)، حيث يمكن للمسؤول سرد جميع مستخدمي المؤسسة.
https://docs.github.com/en/rest/reference/orgs#list-organization-members
إذا كان المستخدم المصادق عليه أيضًا عضوًا في هذه المؤسسة، فسيتم إرجاع كل من الأعضاء المخفيين والعامين.
.docker_env.example إلى .docker_envmv .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
ملف 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
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>
نحن منفتحون للمساهمات/إصلاح الأخطاء/تحسينات الأداء في مشروعنا :)
إذا كنت تقدر الأداة التي بنيناها، فلا تتردد في المساهمة/التبرع للمشاريع التي بنيت فينيفيرا على قمتها :)
تم بناء فينيفيرا فوق برامج مفتوحة المصدر أخرى:
.... (ستستمر القائمة ...، فهمت الفكرة ;) )
يمكنك أيضًا التبرع لـ Feeding India
لا تتحمل Zomato ولا مطورو هذه الأداة أي مسؤولية عن أي ضرر يسببه هذه الأداة أو استخدامها. استخدم بمسؤولية. راجع LICENSE لمزيد من التفاصيل.
فينيفيرا مرخصة بموجب رخصة Apache، الإصدار 2.0. انظر LICENSE لنص الترخيص الكامل.