
Прочитайте, поймите и заглушите идентификатор устройства Windows GDID (идентификатор, который отслеживал хакера через VPN). Проверено на реальной виртуальной машине с Windows 11. Честно: он подавляет отправку данных, но не делает вас анонимным.
# no-gdid **Прочитайте, поймите и заглушите Windows Global Device Identifier (GDID) — скрытый идентификатор устройства, привязанный к учётной записи, который помог ФБР найти подозреваемого, использовавшего VPN.** > ⚠️ **Честный дисклеймер сразу:** этот инструмент **не** стирает ваш GDID и **не** > делает вас анонимным. GDID живёт на серверах Microsoft, привязанный к вашей > учётной записи Microsoft, с момента входа в систему. `no-gdid` не даёт вашей машине > *повторно регистрировать и передавать* его — он не может отменить то, что Microsoft уже имеет. Для > настоящей конфиденциальности при чувствительной работе единственный надёжный ответ — не полагаться на Windows. Каждый вывод здесь был воспроизведён на реальной виртуальной машине Windows 11 Pro (сборка 26200) перед тем, как был записан. Ничего теоретического. Смотрите [`docs/technical-writeup.md`](https://github.com/korben00/no-gdid/blob/main/docs/technical-writeup.md) для доказательств, помеченных по уровню уверенности — и [Как это было создано](#how-this-was-built) для того, что эта проверка на самом деле включала. --- ## История В 2026 году ФБР отследило подозреваемого из Scattered Spider, который менял IP-адреса через VPN в трёх странах. Его выдал **GDID** — идентификатор устройства, который Microsoft привязывает к установке Windows и передаёт правоохранительным органам по повестке. Он не меняется при смене IP-адреса. Этот репозиторий разбирает этот идентификатор по частям и показывает, что вы можете реально с ним сделать. ## Что такое GDID на самом деле Не аппаратный хэш — **64-битный MSA Device PUID**, сгенерированный `login.live.com`, кэшируемый локально в реестре, зарегистрированный в графе Device Directory Service от Microsoft и передаваемый через Delivery Optimization. ``` wlidsvc ── mint ──► PUID from login.live.com │ cached at HKCU\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties\LID CDPSvc / CDPUserSvc ── register ──► Device Directory Service (dds.microsoft.com) │ DoSvc ── report ──► UCDOStatus.GlobalDeviceId (Azure Monitor) ``` Значение LID в реестре (hex) соответствует серверному значению `g:<decimal>`. Все PUID устройств Windows находятся в пространстве имён `0x0018…` (проверено: наше тестовое значение и значение из судебных документов попадают в него). ## Быстрый старт Все скрипты написаны на PowerShell, содержат только ASCII и работают в любой кодовой странице. Откройте **PowerShell с повышенными правами**. ```powershell # 1. See your own GDID and which parts of the chain are active (read-only, safe) powershell -ExecutionPolicy Bypass -File .\audit\Get-GDID-Audit.ps1 # 2. Preview what the mitigation would change (no changes yet) powershell -ExecutionPolicy Bypass -File .\mitigate\Disable-GDID-Services.ps1 powershell -ExecutionPolicy Bypass -File .\mitigate\Block-GDID-Endpoints.ps1 # 3. Apply it: stop the report chain + blackhole its endpoints, keep MSA working powershell -ExecutionPolicy Bypass -File .\mitigate\Disable-GDID-Services.ps1 -Apply powershell -ExecutionPolicy Bypass -File .\mitigate\Block-GDID-Endpoints.ps1 -Apply # Undo everything powershell -ExecutionPolicy Bypass -File .\mitigate\Revert-GDID.ps1 ``` **Сначала протестируйте в виртуальной машине со снимком.** Мера защиты отключает системные службы. ## Что делает каждая часть | Путь | Назначение | Вносит изменения? | |---|---|---| | `audit/Get-GDID-Audit.ps1` | Читает ваш GDID + состояние цепочки из 5 служб | Нет | | `audit/Get-GDID-Traffic.ps1` | Определяет реальные сетевые конечные точки цепочки | Нет | | `mitigate/Block-GDID-Endpoints.ps1` | Блокирует конечные точки DDS/DO в `hosts` (сохраняет `login.live.com`) | С `-Apply` | | `mitigate/Disable-GDID-Services.ps1` | Отключает `CDPSvc`/`DoSvc`/`CDPUserSvc` (сохраняет `wlidsvc`) | С `-Apply` | | `mitigate/Revert-GDID.ps1` | Восстанавливает службы + очищает `hosts` | Да | | `experiments/` | Проверки, требующие снимка, для подтверждения выводов | Разрушительные, требуют снимка | | `docs/` | Техническое описание с источниками + FAQ | — | ## Что мы доказали (а что не работает) - **Чтение вашего GDID работает.** Он прямо там, в реестре. - **Удаление — косметическая мера.** Удалите ключ, перезапустите `wlidsvc`, запустите любое приложение Microsoft — он вернётся *идентичным* с сервера. Он привязан к вашей учётной записи. - **Отключение «телеметрии» (DiagTrack) ничего не даёт.** GDID передаётся через CDP/Delivery Optimization, а не через классическую телеметрию. Этот распространённый совет ошибочен. - **Вы можете заглушить передачу данных без выхода из системы.** Отключите службы CDP/DO и заблокируйте их конечные точки; цепочка замолчит, а ваша учётная запись Microsoft продолжит работать. Предупреждение: `DoSvc` отказывается от `Set-Service`, даже если вы администратор — он отключается через реестр `Start=4` (см. описание). - **Прошлого не вернуть.** PUID уже существует на стороне сервера. Блокировка уменьшает будущую корреляцию; она не отменяет того, что было отправлено. ## Компромиссы Отключение этих служб нарушает одноранговое кэширование Delivery Optimization, Phone Link / «Continue on PC» и общий доступ поблизости. `wlidsvc` и `login.live.com` не затрагиваются, поэтому вход в учётную запись Microsoft продолжает работать. ## Документация - [`docs/technical-writeup.md`](https://github.com/korben00/no-gdid/blob/main/docs/technical-writeup.md) — полная цепочка, пути в реестре, конечные точки и каждое утверждение, помеченное по уровню уверенности (`[COURT]`, `[OBSERVED]`, `[STATIC]`, `[NO-GDID VÉRIFIÉ]`). - [`docs/FAQ.md`](https://github.com/korben00/no-gdid/blob/main/docs/FAQ.md) — краткие ответы на очевидные вопросы. ## Как это было создано Этот проект был исследован и написан с серьёзной помощью ИИ (Claude). История коммитов говорит об этом, и этот раздел тоже — вам не придётся копаться в поисках этой информации. Что это значит на практике, честно: - **ИИ управлял исследованием.** Он читал материалы обратной разработки, выстраивал карту цепочки служб, предлагал гипотезы для проверки и написал большую часть PowerShell и текста, который вы читаете. - **Я сам запускал каждый тест на своей собственной виртуальной машине.** Windows 11 Pro, сборка 26200, в VMware, вход в реальную учётную запись Microsoft, снимок перед каждым разрушительным шагом. GDID на скриншотах принадлежит этой виртуальной машине, поэтому я спокойно его показываю. - **Важные утверждения проверялись вручную, а не принимались на веру.** Удаление ключа `LID` и перезапуск `wlidsvc` действительно возвращает *тот же самый* идентификатор, как только любое приложение Microsoft запрашивает его — я видел это своими глазами. `DiagTrack` был уже остановлен на этой виртуальной машине, а GDID всё ещё был там, что и похоронило совет «просто отключите телеметрию». `DoSvc` действительно отказывается от `Set-Service` даже от имени администратора, поэтому скрипт действует через реестр. Каждое из этих утверждений начиналось как гипотеза ИИ, и несколько из них были ошибочными, пока не были проверены. - **Что не моё, я не приписываю себе.** Моё тестирование было на Windows 11 Pro с учётной записью Microsoft. Случай с локальной учётной записью оставался открытым вопросом, пока [@Berbe](https://github.com/Berbe) не добавил наблюдение на Windows 10 LTSC 19044.7417 (LID/GDID существует с момента установки даже с локальной учётной записью). В описании записано, с какой сборки взято каждое наблюдение — если утверждение не содержит номера сборки, считайте его менее надёжным. Если вы найдёте здесь утверждение, которое не подтверждается на вашей машине, откройте issue с вашим номером сборки — это ценнее для репозитория, чем простое согласие. ## Благодарности - Основная обратная разработка: [`SmtimesIWndr/gdid-reversal`](https://github.com/SmtimesIWndr/gdid-reversal). - Наблюдение о локальной учётной записи на Windows 10 LTSC: [@Berbe](https://github.com/Berbe) (PR #3). - Факты дела: *United States v. Peter Stokes*, N.D. Ill., июль 2026 г. ## Лицензия [MIT](https://github.com/korben00/no-gdid/blob/main/LICENSE). Защитный инструментарий, ориентированный на приватность. Используйте его на машинах, которыми владеете.