
أداة تحليل جنائي آلي لسجلات تدقيق Google Workspace. تقوم بجمع جميع أنواع السجلات، وربط الأحداث بإطار MITRE ATT&CK Cloud، وتحديد سلاسل الهجوم عبر التسجيل الإحصائي.
حقوق النشر (c) 2026 شركة Invictus Incident Response
المؤلفون الأصليون: Greg Charitonos و BertJanCyber يُحافظ عليها من قبل Invictus Incident Response
ملاحظة حول أنظمة التشغيل المدعومة: تم اختبار ALFA على العديد من توزيعات لينكس (Debian و Ubuntu).
على الرغم من أنه قد يكون من الممكن استخدامه على Windows أو macOS، إلا أن النتائج قد تختلف، لذا تابع على مسؤوليتك الخاصة.
sudo pip install -e . أو sudo pip3 install -e .تثبيت Python 3.9 باستخدام pyenv
يعمل ALFA بشكل أفضل مع Python 3.9. يمكنك استخدام pyenv لإدارة وتثبيت هذا الإصدار.
pyenv بعد، يمكنك ذلك باستخدام Homebrew:
brew install pyenv
pyenv في shell الخاص بك عن طريق إضافة ما يلي إلى ملف التهيئة (مثل ~/.zshrc أو ~/.bashrc):
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
source ~/.zshrc # أو source ~/.bashrc
pyenv:
pyenv install 3.9
pyenv global 3.9
pyenv shell 3.9
(اختياري) إنشاء بيئة افتراضية من الجيد تشغيل المشاريع في بيئة افتراضية لعزل التبعيات. باستخدام إصدار Python 3.9 الذي قمت بتعيينه، قم بإنشاء بيئة افتراضية:
python -m venv alfa
source alfa/bin/activate
تثبيت ALFA
داخل المجلد الذي يحتوي على مشروع ALFA، قم بتثبيته باستخدام pip:
pip install -e .
إذا لم تكن تستخدم بيئة افتراضية، قد تحتاج إلى sudo:
sudo pip install -e .
التحقق من التثبيت
بعد التثبيت، يمكنك التحقق من تثبيت ALFA عن طريق محاولة تشغيل أداة سطر الأوامر alfa.
ملاحظة: لاسترداد credentials.json، يُرجى الاطلاع على CREDENTIALS.md
alfa init projectname. سيؤدي هذا الأمر إلى إنشاء دليل جديد لتخزين التهيئة والبيانات الخاصة بك. مثال: alfa init project_xcredentials.json إلى مجلد config/. **(راجع CREDENTIALS.md) للحصول على التعليمات. **credentials.json، أنت جاهز لاستخدام ALFA.يحتوي ALFA على 3 خيارات كما هو موضح أدناه:
alfa acquirealfa acquire -hيمكنك القيام بجميع أنواع التصفية لتحديد البيانات التي تحصل عليها، بعض الأمثلة أدناه:
alfa acquire --logtype=adminalfa acquire -d /tmp/project_secretalfa acquire --user=insert_usernamealfa acquire --start-time=2022-07-10T10:00:00Z --end-time=2022-07-11T14:26:01Z تنسيق الوقت هو (RFC3339)الآن أنت تعرف كيفية الحصول على البيانات، حان الوقت لبعض الأمور الرائعة لإطلاق قوة ALFA.
تقوم وظيفة التحليل تلقائياً بتحليل جميع بيانات سجلات التدقيق لمنطقة عمل معينة في Google لتحديد النشاط المشبوه.
التصنيف يتم تصنيف كل حدث فردي بناءً على تعيين تم إعداده في alfa/config/event_to_mitre.yml. إذا تطابق حدث مع تلك القائمة، يتم تعيينه إلى تقنية تابعة لإطار عمل MITRE ATT&CK السحابي (https://attack.mitre.org/matrices/enterprise/cloud/).
التسجيل بعد ذلك، يقوم ALFA بتحليل جميع الأحداث المعينة بترتيب زمني لمحاولة تحديد سلاسل القتل أو مسارات الهجوم المنطقية. مثال: سيؤدي حدث تم تعيينه لمرحلة الثبات (Persistence) يتبعه حدث تم تعيينه لمرحلة الوصول إلى بيانات الاعتماد (Credential Access) إلى درجة أعلى.
النتيجة في النهاية، سيعطي ALFA المحلل قائمة بـ "السلاسل الفرعية" (subchains) المحددة التي يمكن تحليلها بشكل أعمق.
alfa analyze والذي سيقوم تلقائياً بتحديد السلاسل (أو لا إذا لم يتم العثور على أي منها). كما سينقلك إلى shell حيث يمكنك تنفيذ أنشطة متابعة.A.subchains() والذي سيعرض لك السلسلة باستخدام التنسيق التالي (رقم_الحدث_الأول_في_السلسلة، رقم_الحدث_الأخير_في_السلسلة، درجة_سلسلة_القتل). حيث تعني الدرجة 1 أنه تم تحديد سلسلة مثالية، وكلما اقتربت من 0 كانت السلسلة أضعف.A.aoi(export='activities.json') لتصدير جميع السلاسل الفرعية المحددة إلى ملف، يمكنك استخدامه لتحليل إضافي.استخدم A = Alfa.load([logname]) لتحميل وتحليل السجلات من التخزين المحلي. استخدم A = Alfa.load('all') لتحميل جميع السجلات. يقوم ALFA بتصفية الأنشطة غير الضارة بشكل افتراضي. لتحميل جميع الأنشطة والأحداث بدون تصفية، استخدم Alfa.load([logname], filter=False).
من الممكن تعديل ملف config/event_to_mitre.yml مباشرة، ولكن لا يُنصح بذلك. تنسيق هذا الملف ليس بديهياً. بدلاً من ذلك، فكر في إجراء تعديلات على utils/mappings.yml. ثم أعد تعبئة config/event_to_mitre.yml عن طريق تشغيل utils/event_mitre_remap.py.
تستخدم وظيفة اكتشاف سلسلة القتل ثوابت مشفرة (hard-coded). يمكن العثور عليها في config/config.yml.
يُنصح محللو الطب الشرعي بمراجعة القيم وإجراء التعديلات على مساحة العمل الخاصة بهم حسب الضرورة.
هذه الثوابت مسؤولة عن كل من إحصائية سلسلة القتل (kcs) واكتشاف سلسلة القتل (subchains).
هل تريد معرفة المزيد عن الإحصائيات والخوارزمية المستخدمة في ALFA؟ لقد كتبنا مقالاً على مدونة هنا (https://medium.com/@invictus-ir/automated-forensic-analysis-of-google-workspace-859ed50c5c92)
يجب عليك إضافة ملف credentials.json إلى مجلد المشروع في الدليل الفرعي 'config'. التعليمات موجودة في ملف 'CREDENTIALS.md'.
هذا يعني أن المنفذ 8089 مشغول بالفعل بواسطة تطبيق آخر. قد يحدث هذا إذا كان لديك خادم ويب يعمل على هذا المنفذ، كما أن Splunk يستخدم المنفذ 8089 افتراضياً. الحل هو (مؤقتاً) إيقاف استخدام ذلك المنفذ لأنه مطلوب لتدفق المصادقة.
أحياناً تحتاج معلومات التفويض إلى التحديث. أسهل طريقة هي حذف 'token.json' من مجلد project_name/config. ثم إعادة تشغيل الأمر. إذا استمرت المشكلة، فاحذف token.json و credentials.json وأعد تسجيل تطبيق OAuth كما هو موضح في
CREDENTIALS.MD
تأكد من وجود الشرطة المائلة (/) في نهاية URI Authorized redirect URIs وهو http://localhost:8089 في تطبيق OAuth 2.0 Client IDs الخاص بك.
