
अनटाइटल्ड गूज़ टूल एक मजबूत और लचीला हंट और इंसिडेंट रिस्पॉन्स टूल है, जो किसी ग्राहक के Azure Active Directory (AzureAD), Azure, और M365 वातावरणों के खिलाफ पूर्ण जांच चलाने के लिए नवीन प्रमाणीकरण और डेटा संग्रह विधियों को जोड़ता है।
The Goose is loose.
Untitled Goose Tool एक मजबूत और लचीला हंट और इंसिडेंट रिस्पॉन्स टूल है जो ग्राहक के Microsoft Entra ID, Azure, और M365 वातावरणों के विरुद्ध पूरी जाँच चलाने के लिए नवीन प्रमाणीकरण और डेटा संग्रहण विधियाँ जोड़ता है। Untitled Goose Tool Microsoft Defender for Endpoint (MDE) और Defender for Internet of Things (IoT) (D4IoT) से अतिरिक्त टेलीमेट्री एकत्र करता है।
यह टूल इंसिडेंट रिस्पॉन्स टीमों की सहायता के लिए डिज़ाइन किया गया था ताकि किसी घटना के बाद उन वातावरणों के लिए क्लाउड आर्टिफ़ैक्ट्स को निर्यात किया जा सके जो लॉग को किसी Security Information and Events Management (SIEM) या लॉग के लिए अन्य दीर्घकालिक समाधान में नहीं भेज रहे हैं।
Untitled Goose Tool का उपयोग कैसे करें, इस पर अधिक मार्गदर्शन के लिए कृपया देखें: Untitled Goose Tool Fact Sheet
Python के साथ Untitled Goose Tool चलाने के लिए Python >= 3.9 आवश्यक है। Python 3.12 की अत्यधिक अनुशंसा की जाती है क्योंकि इससे बेहतर लॉगिंग होती है।
Windows मशीन पर, टूल चलाने से पहले आपको Microsoft Visual C++ redistributable package (14.x) इंस्टॉल करना सुनिश्चित करना होगा।
Untitled Goose Tool को virtual environment के भीतर चलाने की भी अनुशंसा की जाती है।
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
Untitled Goose Tool को चलाने और इसे टेनेंट तक केवल-पढ़ने की पहुँच प्रदान करने के लिए निम्नलिखित EntraID/M365 अनुमतियाँ आवश्यक हैं।
कृपया ध्यान दें: उपयोगकर्ता खाता क्लाउड-केवल खाता होना चाहिए (ऑन-प्रिमाइस वातावरण से सिंक नहीं), यह सुनिश्चित करेगा कि टूल के लिए सभी वातावरणों में लॉगिन प्रक्रिया समान रहे।
निम्नलिखित अनुमतियों वाला क्लाउड-केवल उपयोगकर्ता खाता और संबंधित EXO सेवा प्रिंसिपल:
Exchange Online Admin Center
- View-Only Audit Logs
- View-Only Configuration
- View-Only Recipients
- User Options
एक सेवा प्रिंसिपल जिसके पास निम्नलिखित अनुमतियाँ हैं:
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)
Azure सदस्यता IAM भूमिकाएँ
- Reader
- Storage Blob Data Reader
- Storage Queue Data Reader
सुनिश्चित करें कि service principal के लिए "Allow public client flows" सक्षम है।
हमारे पास आवश्यक अनुमतियों के साथ service principal सेटअप करने के लिए एक setup powershell script है। इसके अतिरिक्त, Azure Service Principal का m365 के साथ association वर्तमान में केवल powershell के माध्यम से ही किया जा सकता है और यह कुछ m365 log collection के लिए आवश्यक है।
नीचे स्क्रिप्ट चलाने का एक उदाहरण दिया गया है जो goosey conf कमांड आउटपुट करेगा जिसे आपको उचित जानकारी के साथ config फ़ाइलें बनाने के लिए चलाना होगा
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 ऐसा दिखता है:
[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=