Мало кого можно удивить сбором информации о железе тем или иным приложением. Но конкретно, какая информация может быть доступна мало кто знает. Найти все идентификаторы нашего железа можно различными способами, для любителей консолей есть варианты через poweshell. Я сторонник графического интерфейса, поэтому для этих целей необходимо воспользоваться сторонним софтом. Возьмём, например, CIM Explorer
Теперь рассмотрим некоторые идентификаторы железа с помощью этой программы. Информация хранится во вкладке CIMV2. Чтобы узнать идентификатор нужно по классу нажать ctrl+q и внизу в окошке Output будет результат. Итак, приступим
CIM_Display
CIM_OperatingSystem
Win32_BIOS
Win32_OperatingSystem
Win32_ComputerSystemProduct
Так как это виртуальная машина, то не все значения видны, на реальном железе не будет такого недостатка. Нужно понимать, каждое устройство начиная от материнской платы и заканчивая мышью имеет свой уникальный идентификатор и перечислять их все составит 10 страниц. Имея доступ к этой информации можно на 100% узнать всю историю серфинга любого пользователя. Впн, тор и прочие анонимайзеры будут просто бесполезны, если браузер захочет узнать, например, серийный номер биоса и будет привязан к нему. Такого быть не может? Зачем браузеру такая информация? Это очень хороший вопрос, ответа на него к сожалению, еще нету. Но запрос информации про биос есть. Нам понадобится некий софт, который отлавливает WMI запросы – wmimon. Качаем, например, с гитхаба. Запускаем через консоль wmimon.exe и ждем. Возьмем самый популярный браузер Google Chrome
При запуске браузер требует информацию Manufacturer и Model с раздела Win32_ComputerSystem. А что это? А это материнская плата, вендор и модель. Далее ему нужен серийный номер БИОСа (Serial Number from Win32_BIOS). Наверное, это очень важная информация, без которой браузер не сможет работать. А может эта информация используется несколько для иных целей – идентификации.
Всем известен Chrome своими сборами данных, и тут ничего удивительно. Возьмем браузер Firefox
Здесь разработчики не стали долго думать и запросили полностью всю информацию с Win32_BIOS и Win32_PhysicalMemoryArray. Вот это стало неожиданным.
А как насчет tor браузера? Ведь его называют анонимным и т.д.
Увы, но он основан на Firefox, поэтому тоже запрашивает информацию.
Посмотрим, что делает Opera
Тут целый букет. Материнская плата, процессор, ОС
Возьмем браузер Sphere
Ииии, тут пусто, даже в течении суток не было не одного запроса. Выходит, что браузерам Chrome и Firefox не обязательна та информация, которую они запрашивают.
Немного отвлеклись информацией о браузерах и вернемся к теме статьи. Так как эти идентификаторы находятся в «открытом доступе» ОС, поэтому любой софт спокойно сможет запросить информацию и сделать привязку к железу. Тогда пропадает понятие анонимности в целом, ведь совокупность идентификаторов дает точное представление о истории пользователя, не зависимо от браузера или мессенджера. И что нам дает виртуальная машина? Подмену идентификаторов, ведь виртуальное железо будет иметь отличие от реального. Также нужно понимать, что все идентификаторы виртуальной машины все равно будут неизменны. И при запуске приложение может жестко привязаться к виртуальному железу. Чтобы этого не происходило нужно прибегать к некой хитрости, которая сможет аннулировать почти все идентификаторы и заполнить их новыми значениями. Ничего скачивать не нужно, в Windows утилита эта уже есть. И находится она по адресу C:\Windows\System32\Sysprep\sysprep.exe. запуская ее ставим галочку generalize и ждем окончания. После перезагрузки появится окно установки Windows
В котором указываем имя компьютера, имя пользователя и ждем завершения настройки параметров. Теперь посмотрим, что изменилось
CIM_Display
CIM_OperatingSystem
Win32_BIOS
Win32_OperatingSystem
Win32_ComputerSystemProduct
В итоге мы не изменили серийные номера, в том числе БИОС. Да, все идентификаторы всех устройств были обновлены. Но как же выйти из ситуации, если sysprep’а не хватает? Изнутри системы изменить их не получится, поэтому будем менять снаружи с помощью powershell.
Откроем консоль от имени администратора и впишем некий скрипт на создание новой машины
New-VM -name "111some name" -Generation 2 -MemoryStartupBytes 1024MB -VHDPath "D:\test powershell\test w8.vhdx" -SwitchName "VNC Network"
Полагаю, что тут все ясно, и некие значения подставляем свои. Это лишь пример скрипта, а powershell очень гибкий инструмент и способен полностью автоматизировать создание новой и удаление старой машины. Список команд для гипервизора docs.microsoft.com/en-us/powershell/module/hyper-v/. Нужно заготовить виртуальный диск с примененным sysprep’ом (в самом окне выбрать выключение, а не перезагрузку). Диск оставляем и не изменяем, и каждый раз копируем, затем монтируем к новой виртуальной машине. И процесс копирования можно и нужно автоматизировать.
Создадим новую виртуальную машину и проверим данные идентификаторы.
Win32_BIOS
Win32_ComputerSystemProduct
Наконец-то, они будут отличатся от прежних. Поэтому каждый раз нужно создавать новую виртуальную машину, до устанавливать Windows, потом установить сам браузер (остальной софт можно установить и настроить до sysprep’a).
Теперь рассмотрим некоторые идентификаторы железа с помощью этой программы. Информация хранится во вкладке CIMV2. Чтобы узнать идентификатор нужно по классу нажать ctrl+q и внизу в окошке Output будет результат. Итак, приступим
CIM_Display
CIM_OperatingSystem
Win32_BIOS
Win32_OperatingSystem
Win32_ComputerSystemProduct
Так как это виртуальная машина, то не все значения видны, на реальном железе не будет такого недостатка. Нужно понимать, каждое устройство начиная от материнской платы и заканчивая мышью имеет свой уникальный идентификатор и перечислять их все составит 10 страниц. Имея доступ к этой информации можно на 100% узнать всю историю серфинга любого пользователя. Впн, тор и прочие анонимайзеры будут просто бесполезны, если браузер захочет узнать, например, серийный номер биоса и будет привязан к нему. Такого быть не может? Зачем браузеру такая информация? Это очень хороший вопрос, ответа на него к сожалению, еще нету. Но запрос информации про биос есть. Нам понадобится некий софт, который отлавливает WMI запросы – wmimon. Качаем, например, с гитхаба. Запускаем через консоль wmimon.exe и ждем. Возьмем самый популярный браузер Google Chrome
При запуске браузер требует информацию Manufacturer и Model с раздела Win32_ComputerSystem. А что это? А это материнская плата, вендор и модель. Далее ему нужен серийный номер БИОСа (Serial Number from Win32_BIOS). Наверное, это очень важная информация, без которой браузер не сможет работать. А может эта информация используется несколько для иных целей – идентификации.
Всем известен Chrome своими сборами данных, и тут ничего удивительно. Возьмем браузер Firefox
Здесь разработчики не стали долго думать и запросили полностью всю информацию с Win32_BIOS и Win32_PhysicalMemoryArray. Вот это стало неожиданным.
А как насчет tor браузера? Ведь его называют анонимным и т.д.
Увы, но он основан на Firefox, поэтому тоже запрашивает информацию.
Посмотрим, что делает Opera
Тут целый букет. Материнская плата, процессор, ОС
Возьмем браузер Sphere
Ииии, тут пусто, даже в течении суток не было не одного запроса. Выходит, что браузерам Chrome и Firefox не обязательна та информация, которую они запрашивают.
Немного отвлеклись информацией о браузерах и вернемся к теме статьи. Так как эти идентификаторы находятся в «открытом доступе» ОС, поэтому любой софт спокойно сможет запросить информацию и сделать привязку к железу. Тогда пропадает понятие анонимности в целом, ведь совокупность идентификаторов дает точное представление о истории пользователя, не зависимо от браузера или мессенджера. И что нам дает виртуальная машина? Подмену идентификаторов, ведь виртуальное железо будет иметь отличие от реального. Также нужно понимать, что все идентификаторы виртуальной машины все равно будут неизменны. И при запуске приложение может жестко привязаться к виртуальному железу. Чтобы этого не происходило нужно прибегать к некой хитрости, которая сможет аннулировать почти все идентификаторы и заполнить их новыми значениями. Ничего скачивать не нужно, в Windows утилита эта уже есть. И находится она по адресу C:\Windows\System32\Sysprep\sysprep.exe. запуская ее ставим галочку generalize и ждем окончания. После перезагрузки появится окно установки Windows
В котором указываем имя компьютера, имя пользователя и ждем завершения настройки параметров. Теперь посмотрим, что изменилось
CIM_Display
CIM_OperatingSystem
Win32_BIOS
Win32_OperatingSystem
Win32_ComputerSystemProduct
В итоге мы не изменили серийные номера, в том числе БИОС. Да, все идентификаторы всех устройств были обновлены. Но как же выйти из ситуации, если sysprep’а не хватает? Изнутри системы изменить их не получится, поэтому будем менять снаружи с помощью powershell.
Откроем консоль от имени администратора и впишем некий скрипт на создание новой машины
New-VM -name "111some name" -Generation 2 -MemoryStartupBytes 1024MB -VHDPath "D:\test powershell\test w8.vhdx" -SwitchName "VNC Network"
Полагаю, что тут все ясно, и некие значения подставляем свои. Это лишь пример скрипта, а powershell очень гибкий инструмент и способен полностью автоматизировать создание новой и удаление старой машины. Список команд для гипервизора docs.microsoft.com/en-us/powershell/module/hyper-v/. Нужно заготовить виртуальный диск с примененным sysprep’ом (в самом окне выбрать выключение, а не перезагрузку). Диск оставляем и не изменяем, и каждый раз копируем, затем монтируем к новой виртуальной машине. И процесс копирования можно и нужно автоматизировать.
Создадим новую виртуальную машину и проверим данные идентификаторы.
Win32_BIOS
Win32_ComputerSystemProduct
Наконец-то, они будут отличатся от прежних. Поэтому каждый раз нужно создавать новую виртуальную машину, до устанавливать Windows, потом установить сам браузер (остальной софт можно установить и настроить до sysprep’a).