
أداة تعداد سلاك واكتشاف الأسرار المكشوفة
مراقبة Slack وتعداد الأسرار المكشوفة فيه
Slack Watchman هو تطبيق يستخدم Slack API للعثور على البيانات الحساسة المحتملة المكشوفة في مساحة عمل Slack، ولتعداد معلومات مفيدة أخرى لفرق الأحمر والأزرق والبنفسجي.
يمكن العثور على مزيد من المعلومات حول Slack Watchman على مدونتي.
يبحث Slack Watchman عن:
يمكنك تشغيل Slack Watchman للبحث عن النتائج التي تعود إلى:
كما يقوم بتعداد ما يلي:
هذا يعني أنه بعد فحص عميق واحد، يمكنك جدولة Slack Watchman ليتم تشغيله بانتظام وإرجاع النتائج من الإطار الزمني الذي اخترته فقط.
يمكنك تشغيل Slack Watchman في وضع الفحص غير المصادق عليه لتعداد خيارات المصادقة والمعلومات الأخرى في مساحة العمل. لا يتطلب هذا وضع رمز مميز، ويعيد:
لتشغيل هذا الوضع، استخدم Slack Watchman مع العلم --probe ونطاق مساحة العمل الذي تريد فحصه:
slack-watchman --probe https://domain.slack.com
يستخدم Slack Watchman بصمات YAML مخصصة لاكتشاف التطابقات في Slack. تُسحب هذه البصمات من مستودع Watchman Signatures المركزي. يقوم Slack Watchman بتحديث قاعدة البصمات تلقائيًا عند التشغيل لضمان استخدام أحدث البصمات لكشف الأسرار.
يمكنك تحديد البصمات التي تريد تعطيلها عند تشغيل Slack Watchman عن طريق إضافة معرفاتها إلى قسم disabled_signatures في ملف watchman.conf. على سبيل المثال:
slack_watchman:
token: ...
cookie: ...
url: ...
disabled_signatures:
- tokens_generic_bearer_tokens
- tokens_generic_access_tokens
يمكنك العثور على معرف البصمة في ملفات YAML الفردية في مستودع Watchman Signatures.
يتيح Slack Watchman خيارات التسجيل التالية:
يستخدم Slack Watchman افتراضيًا تسجيل stdout الملائم للطرفية إذا لم يتم تقديم أي خيار. وهو مصمم ليكون أسهل للقراءة من قبل البشر.
يتوفر أيضًا تسجيل JSON، وهو مثالي للاستيعاب في SIEM أو منصات تحليل السجلات الأخرى.
يمكن بسهولة إعادة توجيه التسجيل المنسق بصيغة JSON إلى ملف كما يلي:
slack-watchman --timeframe a --all --output json >> slack_watchman_log.json
لتشغيل Slack Watchman، ستحتاج إلى رمز وصول OAuth من Slack API. يمكنك القيام بذلك عن طريق إنشاء تطبيق Slack بسيط.
يحتاج التطبيق إلى إضافة نطاقات رمز المستخدم التالية:
channels:read
files:read
groups:read
im:read
links:read
mpim:read
remote_files:read
search:read
team:read
users:read
users:read.email
ملاحظة: تعمل رموز المستخدم نيابة عن المستخدم الذي يصرح بها، لذا أقترح إنشاء هذا التطبيق والتفويض له باستخدام حساب خدمة، وإلا فسيتمكن التطبيق من الوصول إلى محادثاتك ودردشاتك الخاصة.
يمكن إنشاء تطبيقات Slack من بيانات JSON التي تحدد تفاصيل التطبيق والنطاقات التي سيتم الموافقة عليها. يمكن العثور على بيان التطبيق الخاص بـ Slack Watchman في docs/app_manifest.json، ويمكنك استخدامه لتسريع إنشاء تطبيق Slack الخاص بك.
بدلاً من ذلك، يمكن لـ Slack Watchman أيضًا المصادقة إلى Slack باستخدام ملف ارتباط d الخاص بالمستخدم، والذي يتم تخزينه في متصفح كل مستخدم مسجل دخوله إلى مساحة العمل.
لاستخدام مصادقة ملفات الارتباط، ستحتاج إلى توفير ملف الارتباط d وعنوان URL لمساحة العمل المستهدفة. ثم ستحتاج إلى استخدام العلم --cookie عند تشغيل Slack Watchman
يمكن العثور على مزيد من المعلومات حول مصادقة ملفات الارتباط على مدونتي
سيحاول Slack Watchman أولاً الحصول على رمز Slack (بالإضافة إلى رمز ملف الارتباط وعنوان URL إذا تم تحديدهما) من متغيرات البيئة
SLACK_WATCHMAN_TOKENSLACK_WATCHMAN_COOKIESLACK_WATCHMAN_URLإذا فشل ذلك، سيحاول تحميل الرمز (الرموز) من ملف .conf (انظر أدناه).
يمكن تمرير خيارات الإعداد في ملف باسم watchman.conf يجب تخزينه في دليلك الرئيسي. يجب أن يتبع الملف تنسيق YAML، ويجب أن يبدو كما يلي:
slack_watchman:
token: xoxp-xxxxxxxx
cookie: xoxd-%2xxxxx
url: https://xxxxx.slack.com
disabled_signatures:
- tokens_generic_bearer_tokens
- tokens_generic_access_tokens
سيبحث Slack Watchman عن هذا الملف عند التشغيل ويستخدم خيارات الإعداد منه. إذا كنت لا تستخدم مصادقة ملفات الارتباط، فاترك cookie وurl فارغين.
إذا كنت تواجه مشكلات مع ملف .conf، فمرره عبر مدقق YAML.
ملف مثال موجود في docs/example.conf
ملاحظة: قيم ملفات الارتباط وعنوان URL اختيارية، وغير مطلوبة إذا لم تستخدم مصادقة ملفات الارتباط.
الطريقة الموصى بها لتثبيت Slack Watchman هي عبر pipx ، والذي يقوم بتثبيت التطبيق في بيئة معزولة ويجعله متاحًا على PATH في نظامك:
pipx install slack-watchman
بديل: التثبيت عبر pip
يمكنك أيضًا تثبيت Slack Watchman باستخدام pip:
python3 -m pip install slack-watchman
بديل: البناء من المصدر
قم بتنزيل ملفات المصدر الخاصة بالإصدار، ثم ومن الدليل العلوي للمستودع، قم بتشغيل:
python3 -m pip build
python3 -m pip install --force-reinstall dist/*.whl
Slack Watchman متاح أيضًا من Docker Hub كصورة Docker:
docker pull papermountain/slack-watchman:latest
يمكنك بعد ذلك تشغيل Slack Watchman في حاوية، مع التأكد من تمرير متغيرات البيئة المطلوبة:
// help
docker run --rm papermountain/slack-watchman -h
// scan all
docker run --rm -e SLACK_WATCHMAN_TOKEN=xoxp... papermountain/slack-watchman --timeframe a --all --output json
docker run --rm --env-file .env papermountain/slack-watchman --timeframe a --all --output stdout
سيتم تثبيت Slack Watchman كأمر عام، استخدمه كما يلي:
usage: slack-watchman [-h] [--timeframe {d,w,m,a}] [--output {json,stdout}] [--version] [--all] [--users] [--channels] [--pii] [--secrets] [--debug] [--verbose] [--cookie] [--probe PROBE_DOMAIN]
Monitoring and enumerating Slack for exposed secrets
options:
-h, --help show this help message and exit
--timeframe {d,w,m,a}, -t {d,w,m,a}
How far back to search: d = 24 hours w = 7 days, m = 30 days, a = all time
--output {json,stdout}, -o {json,stdout}
Where to send results
--version, -v show program's version number and exit
--all, -a Find secrets and PII
--users, -u Enumerate users and output them to .csv in the current working directory
--channels, -c Enumerate channels and output them to .csv in the current working directory
--pii, -p Find personal data: DOB, passport details, drivers licence, ITIN, SSN etc.
--secrets, -s Find exposed secrets: credentials, tokens etc.
--debug, -d Turn on debug level logging
--verbose, -V Turn on more verbose output for JSON logging. This includes more fields, but is larger
--cookie Use cookie auth using Slack d cookie. REQUIRES either SLACK_WATCHMAN_COOKIE and SLACK_WATCHMAN_URL environment variables set, or both values set in watchman.conf
--probe PROBE_DOMAIN Perform an un-authenticated probe on a workspace for available authentication options and other information. Enter workspace domain to probe
يمكنك تشغيل Slack Watchman للبحث عن كل شيء، وإخراج النتائج إلى stdout الافتراضي:
slack-watchman --timeframe a --all
قد تكون مهتمًا بالتطبيقات الأخرى في عائلة Watchman:
تم إصدار الكود المصدري لهذا المشروع بموجب رخصة جنو العمومية العامة. هذا المشروع غير مرتبط بـ Slack Technologies أو Salesforce.