
Untitled Goose Tool — это надежный и гибкий инструмент для охоты и реагирования на инциденты, который добавляет новые методы аутентификации и сбора данных для проведения полного расследования в средах Azure Active Directory (AzureAD), Azure и M365 заказчика.
Гусь на свободе.
Untitled Goose Tool — это надёжный и гибкий инструмент для поиска угроз и реагирования на инциденты, который добавляет новые методы аутентификации и сбора данных для проведения полного расследования в средах Microsoft Entra ID, Azure и M365 заказчика. Untitled Goose Tool собирает дополнительные телеметрические данные из Microsoft Defender for Endpoint (MDE) и Defender for Internet of Things (IoT) (D4IoT).
Этот инструмент был разработан для помощи группам реагирования на инциденты: он экспортирует облачные артефакты после инцидента для сред, которые не передают журналы в SIEM (Security Information and Events Management) или другое долгосрочное решение для хранения журналов.
Дополнительные рекомендации по использованию Untitled Goose Tool см. в документе: Untitled Goose Tool Fact Sheet
Для запуска Untitled Goose Tool требуется Python >= 3.9. Настоятельно рекомендуется использовать Python 3.12, так как он обеспечивает более качественное ведение журналов.
На компьютере с Windows перед запуском инструмента необходимо убедиться, что установлен распространяемый пакет Microsoft Visual C++ (14.x).
Также рекомендуется запускать Untitled Goose Tool в виртуальном окружении.
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
### Требования
Для запуска 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
Microsoft Threat Protection:
WindowsDefenderATP:
Microsoft Graph:
Office 365 Exchange Online
Роли IAM в подписке Azure```
- Reader
- Storage Blob Data Reader
- Storage Queue Data Reader
Убедитесь, что для субъекта-службы включена опция "Разрешить общедоступные клиентские потоки".
У нас есть скрипт PowerShell для настройки, который настраивает субъект-службу с необходимыми разрешениями. Кроме того, связывание субъекта-службы Azure с m365 в настоящее время может быть выполнено только через PowerShell и требуется для сбора некоторых журналов m365.
Ниже приведён пример запуска скрипта, который выведет команду goosey conf, которую необходимо выполнить для создания файлов конфигурации с правильной информацией.```powershell
PS > Write-Host "Creating a new Goose Application and Users"
PS > ./Create_SP.ps1 -AppName GooseApp -Create
Кроме того, скрипт может удалить приложение, когда вы закончите его использовать.```powershell
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```sh
docker build . -t goosey
docker run -it -v $PWD:/workdir goosey goosey honk --debug
Untitled Goose Tool требует параметры аутентификации и конфигурацию. Чтобы автоматически создать файл конфигурации, выполните следующее после установки.```sh $ goosey conf
Версия этой команды будет сгенерирована при запуске сценария установки PowerShell для создания/настройки субъекта-службы. Ниже приведён пример с фиктивными значениями параметров.```sh
$ 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]
username=
password=
appid=
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=