
أداة Untitled Goose Tool هي أداة قوية ومرنة للبحث والاستجابة للحوادث تضيف طرقًا جديدة للمصادقة وجمع البيانات من أجل إجراء تحقيق كامل ضد بيئات Azure Active Directory (AzureAD) وAzure وM365 الخاصة بالعميل.
الإوزة طليقة.
أداة الإوزة بلا عنوان هي أداة قوية ومرنة للبحث والاستجابة للحوادث، تضيف أساليب مبتكرة للمصادقة وجمع البيانات من أجل إجراء تحقيق كامل ضد بيئات Microsoft Entra ID وAzure وM365 الخاصة بالعميل. تجمع أداة الإوزة بلا عنوان بيانات قياس عن بُعد إضافية من Microsoft Defender for Endpoint (MDE) وDefender for Internet of Things (IoT) (D4IoT).
صُممت هذه الأداة لمساعدة فرق الاستجابة للحوادث من خلال تصدير القطع الأثرية السحابية بعد وقوع حادث للبيئات التي لا تُدخل السجلات في نظام إدارة المعلومات والأحداث الأمنية (SIEM) أو أي حل آخر طويل الأمد للسجلات.
لمزيد من الإرشادات حول كيفية استخدام أداة الإوزة بلا عنوان، يُرجى الاطلاع على: صحيفة معلومات أداة الإوزة بلا عنوان
يتطلب تشغيل أداة الإوزة بلا عنوان باستخدام Python إصدار Python >= 3.9. يُوصى بشدة باستخدام Python 3.12 لأنه يؤدي إلى تسجيل أفضل.
على جهاز يعمل بنظام Windows، ستحتاج إلى التأكد من تثبيت حزمة Microsoft Visual C++ القابلة لإعادة التوزيع (14.x) قبل تشغيل الأداة.
يُوصى أيضًا بتشغيل أداة الإوزة بلا عنوان داخل بيئة افتراضية.
pip3 install virtualenv
virtualenv -p python3 .venv
source .venv/bin/activate
# You may need to run sudo apt-get install python3-venv first
python3 -m venv .venv
source .venv/bin/activate
# You can also use py -3 -m venv .venv
python -m venv .venv
.venv\Scripts\activate
الأذونات التالية الخاصة بـ EntraID/M365 مطلوبة لتشغيل Untitled Goose Tool، وتوفر له وصولاً للقراءة فقط إلى المستأجر.
يرجى ملاحظة: يجب أن يكون حساب المستخدم حسابًا سحابيًا فقط (غير مُزامَن مع البيئة المحلية)، وهذا يضمن بقاء عملية تسجيل الدخول كما هي عبر البيئات المختلفة للأداة.
حساب مستخدم سحابي فقط والخدمة الرئيسية المرتبطة به EXO مع الأذونات التالية:
مركز إدارة Exchange Online
- View-Only Audit Logs
- View-Only Configuration
- View-Only Recipients
- User Options
مبدأ خدمة (service principal) يمتلك الأذونات التالية:
أذونات API
Log Analytics API
- Data.Read (Application)
Microsoft Threat Protection:
- AdvancedHunting.Read.All (Application)
WindowsDefenderATP:
- AdvancedQuery.Read.All (Application)
- Alert.Read.All (Application)
- Library.Manage (Application)
- Machine.Read.All (Application)
- SecurityRecommendation.Read.All (Application)
- Software.Read.All (Application)
- Ti.ReadWrite (Application)
- Vulnerability.Read.All (Application)
Microsoft Graph:
- APIConnectors.Read.All (Application)
- AuditLog.Read.All (Application)
- ConsentRequest.Read.All (Application)
- Directory.Read.All (Application)
- Domain.Read.All (Application)
- IdentityProvider.Read.All (Application)
- IdentityRiskEvent.Read.All (Application)
- IdentityRiskyServicePrincipal.Read.All (Application)
- IdentityRiskyUser.Read.All (Application)
- MailboxSettings.Read (Application)
- Policy.Read.All (Application)
- Policy.Read.PermissionGrant (Application)
- Reports.Read.All (Application)
- RoleManagement.Read.All (Application)
- SecurityActions.Read.All (Application)
- SecurityAlert.Read.All (Application)
- SecurityEvents.Read.All (Application)
- UserAuthenticationMethod.Read.All (Application)
Office 365 Exchange Online
- Exchange.ManageAsApp (Application)
أدوار IAM لاشتراك Azure
- Reader
- Storage Blob Data Reader
- Storage Queue Data Reader
تأكد من تمكين "السماح بتدفقات العميل العامة" للهوية الخدمية.
لدينا سكربت PowerShell للإعداد لإعداد هوية خدمية بالأذونات المطلوبة. بالإضافة إلى ذلك، لا يمكن حاليًا ربط هوية خدمة Azure مع m365 إلا عبر PowerShell، وهو أمر مطلوب لبعض عمليات جمع سجلات m365.
فيما يلي مثال على تشغيل السكربت الذي سيُخرج أمر goosey conf الذي تحتاج إلى تشغيله لبناء ملفات الإعداد بالمعلومات الصحيحة
PS > Write-Host "Creating a new Goose Application and Users"
PS > ./Create_SP.ps1 -AppName GooseApp -Create
بالإضافة إلى ذلك، يمكن للسكربت حذف التطبيق عند الانتهاء من استخدامه
PS > Write-Host "Creating a new Goose Application and Users"
PS > ./Create_SP.ps1 -AppName GooseApp -Delete
للتثبيت، استنسخ المستودع ثم نفّذ pip install:
git clone https://github.com/cisagov/untitledgoosetool.git
cd untitledgoosetool
python3 -m pip install .
docker build . -t goosey
docker run -it -v $PWD:/workdir goosey goosey honk --debug
تتطلب أداة Untitled Goose Tool معاملات المصادقة والإعدادات. لإنشاء ملف الإعدادات تلقائيًا، شغّل الأمر التالي بعد التثبيت.
$ goosey conf
سيتم إنشاء نسخة من هذا الأمر عند تشغيل نص تثبيت powershell لإنشاء/إعداد مدير الخدمة. فيما يلي مثال بقيم معاملات وهمية
$ goosey conf --config_tenant=5fd146ad-8b31-4afa-a72f-6f71df5c7173 --config_subscriptionid=all --auth_appid=24fd6377-79e0-445d-838b-3eaa60d3ca21
بعد ذلك، يجب وضع ملفات .auth و.conf و.auth_d4iot و.d4iot_conf في دليلك الحالي. تُستخدم هذه الملفات بواسطة Untitled Goose Tool. وما لم يكن قد تم إنشاؤها باستخدام المعاملات أعلاه، ينبغي عليك ملء القسم العلوي [auth] حتى يتمكن Untitled Goose Tool من المصادقة بشكل صحيح على الموارد المناسبة. ومع ذلك، إذا لم تكن مرتاحًا لإدخال بيانات اعتمادك في ملف، يمكنك اختيار حذف .auth و/أو .auth_d4iot وسيطالبك الأداة ببيانات الاعتماد عبر وحدة التحكم بدلاً من ذلك.
تبدو المصادقة الأساسية كما يلي:
[auth]
# The username of your account. ex: [email protected]
username=
# The password of your account. ex: AAD_password
password=
# The application ID of your service principal
appid=
# The client secret value of your service principal (not the secret ID)
clientsecret=
الإعداد الأساسي يبدو كالتالي:
[config]
# The tenant ID of your AAD tenant
tenant=
# If you have a GCC High tenant
us_government=False
# If you have a GCC tenant with MDE
mde_gcc=False
# If you have a GCC High tenant with MDE
mde_gcc_high=False
# If your M365 tenant is a government tenant
exo_us_government=False
# If you want to check all of your Azure subscriptions, set this to All, otherwise enter your Azure subscription ID. For multiple IDs, separate it with commas, no spaces
subscriptionid=All
[filters]
# Format should be YYYY-MM-DD. If not set will default to the earliest date for log retention
date_start=
# Format should be YYYY-MM-DD. Will default to the present day
date_end=