
Untitled Goose Tool è uno strumento robusto e flessibile di caccia e risposta agli incidenti che aggiunge nuovi metodi di autenticazione e raccolta dati per eseguire un'indagine completa sugli ambienti Azure Active Directory (AzureAD), Azure e M365 di un cliente.
L'oca è in libertà.
Untitled Goose Tool è uno strumento di threat hunting e incident response robusto e flessibile che aggiunge nuovi metodi di autenticazione e raccolta dati per eseguire un'indagine completa sugli ambienti Microsoft Entra ID, Azure e M365 di un cliente. Untitled Goose Tool raccoglie telemetria aggiuntiva da Microsoft Defender for Endpoint (MDE) e Defender for Internet of Things (IoT) (D4IoT).
Questo strumento è stato progettato per assistere i team di risposta agli incidenti esportando gli artefatti cloud dopo un incidente per ambienti che non stanno acquisendo i log in un SIEM (Security Information and Events Management) o in un'altra soluzione di conservazione a lungo termine per i log.
Per ulteriori indicazioni su come utilizzare Untitled Goose Tool, consultare: Untitled Goose Tool Fact Sheet
Per eseguire Untitled Goose Tool con Python è richiesto Python >= 3.9. Python 3.12 è fortemente consigliato in quanto garantisce un logging migliore.
Su una macchina Windows, dovrai assicurarti di avere installato il pacchetto ridistribuibile Microsoft Visual C++ (14.x) prima di eseguire lo strumento.
È inoltre consigliato eseguire Untitled Goose Tool all'interno di un ambiente virtuale.
pip3 install virtualenv virtualenv -p python3 .venv source .venv/bin/activate
#### Linux```sh
# You may need to run sudo apt-get install python3-venv first
python3 -m venv .venv
source .venv/bin/activate
python -m venv .venv .venv\Scripts\activate
### Requisiti
Per eseguire Untitled Goose Tool sono necessarie le seguenti autorizzazioni EntraID/M365, che forniscono accesso in sola lettura al tenant.
Nota: l'account utente deve essere un account cloud-only (non sincronizzato con l'ambiente on-premise); questo garantirà che il processo di accesso rimanga lo stesso tra gli ambienti per lo strumento.
Un account utente cloud-only e il relativo service principal EXO con le seguenti autorizzazioni:
Exchange Online Admin Center```
- View-Only Audit Logs
- View-Only Configuration
- View-Only Recipients
- User Options
Un'entità servizio (service principal) con le seguenti autorizzazioni:
Autorizzazioni API``` Log Analytics API
Microsoft Threat Protection:
WindowsDefenderATP:
Microsoft Graph:
Office 365 Exchange Online
Ruoli IAM della sottoscrizione Azure```
- Reader
- Storage Blob Data Reader
- Storage Queue Data Reader
Make sure to enable "Allow public client flows" for the service principal.
We have a setup powershell script to setup a service principal with the needed permissions. Additionally the association of the Azure Service Principal with m365 can only be done via powershell currently and is needed for some of the m365 log collection.
Below is an example of running the script which will output the goosey conf command you need to run to build the config files with the proper information```powershell
PS > Write-Host "Creating a new Goose Application and Users"
PS > ./Create_SP.ps1 -AppName GooseApp -Create
Inoltre, lo script può eliminare l'Applicazione quando hai finito di usarla.```powershell
PS > Write-Host "Creating a new Goose Application and Users"
PS > ./Create_SP.ps1 -AppName GooseApp -Delete
Per installare, clona il repository e poi esegui un pip install:
git clone https://github.com/cisagov/untitledgoosetool.git cd untitledgoosetool python3 -m pip install .
#### Docker```sh
docker build . -t goosey
docker run -it -v $PWD:/workdir goosey goosey honk --debug
Untitled Goose Tool richiede parametri di autenticazione e configurazione. Per creare automaticamente il file di configurazione, esegui quanto segue dopo l'installazione.```sh $ goosey conf
Una versione di questo comando verrà generata quando lo script di installazione PowerShell viene eseguito per creare/configurare il service principal. Di seguito è riportato un esempio con valori dei parametri fittizi.```sh
$ goosey conf --config_tenant=5fd146ad-8b31-4afa-a72f-6f71df5c7173 --config_subscriptionid=all --auth_appid=24fd6377-79e0-445d-838b-3eaa60d3ca21
Dopo questo, i file .auth, .conf, .auth_d4iot e .d4iot_conf dovrebbero essere collocati nella tua directory corrente. Questi file sono utilizzati da Untitled Goose Tool. A meno che non siano stati generati con i parametri sopra indicati, dovresti compilare la sezione superiore [auth] affinché Untitled Goose Tool possa autenticarsi correttamente alle risorse appropriate. Tuttavia, se non ti senti a tuo agio nell'inserire le tue credenziali in un file, puoi scegliere di eliminare .auth e/o .auth_d4iot e il tool ti chiederà le credenziali tramite console.
L'autenticazione minimale essenziale è simile a:``` [auth]
username=
password=
appid=
clientsecret=
La configurazione minimale è la seguente:```
[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=