Какие данные о моем реальном железе знает VirtualBox?
Всем привет. Касательно своего вопроса я много информации прочитал, много мнений послушал + с разрабами тоже пообщался, но все же решил послушать спецов в этом деле. Лишним не будет точно!
Есть ноутбук. На котором стоит в качестве хоста kali linux. В качестве гостевой стоит whonix на virtualbox.
Вопрос следующий:
Может ли какой сайт или софт, определить уникальные идентификаторы моего реального железа, если я сижу с whonix и соответственно как-то связать хост с whonix тем самым установить что это один компьютер.
(про мак-адресс можно не писать)
Ссылки
[link1] https://www.whonix.org/wiki/Warning
[link2] https://www.pgpru.com/comment57497
[link3] https://en.wikipedia.org/wiki/CPUID#EAX.3D3:_Processor_Serial_Number
[link4] https://www.pgpru.com/comment17088
[link5] https://www.whonix.org/wiki/Download
[link6] https://www.whonix.org/wiki/Dev/Build_Documentation/Physical_Isolation
[link7] http://tty.org.ru/node/182
[link8] https://superuser.com/questions/625648/virtualbox-how-to-force-a-specific-cpu-to-the-guest
[link9] https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
[link10] http://www.kommersant.ru/Doc/3001495
[link11] https://stackoverflow.com/questions/5045450/how-to-get-cpu-serial-under-linux-without-root-permissions
[link12] https://threatpost.com/judge-tosses-evidence-gathered-by-fbis-tor-exploit/118339/
[link13] https://en.wikipedia.org/wiki/Parallel_construction
[link14] https://groups.google.com/forum/#!topic/qubes-devel/EXrWFgEp5Sg
Так эмпирическим способом не пробовали? В Whonix как и в Tails два браузера. Вы чем любите пользоваться? Если ТВ, то зайдите на сайт типа whoer.net c отключенным noscript, и посмотрите что определится. Есть в инете ресурсы со сканерами, есть wireshark (с последним конечно нужно уметь обращаться).
А можно прочитать здесь и на сайте whonix, что вирт машина не дает 100% защиты.
Warning[link1]
# Информация о железе
$ lspci
# Расширенная информация не предоставляется
$ sudo lshw
# Ежели совсем скучно, то
$ dmesg
whoer и другие чекеры информацию о железе не предоставляют... в том и дело.
100% защиты ничего не дает, но интересно, есть ли какие данные по которым можно связать два "якобы" разных пк..
ВБ видит мой процессор, это вроде не критично. но всё же, не приятно.
возможно стоит сменить virtualbox на аналоги
Кстати, чтоб выудить всё, что можно, нужно запускать такие тулзы от рута с максимальным уровнем вербосити. Если PCI-карточка проброшена в гостевую систему как есть, на этом уровне вербосити пишется марка, прозиводитель и даже название фирмы, производившей ноутбук (видимо, PCI-карта делалась специально под это железо). Теоретически некоторые PCI-карты могут содержать уникальные ID, поэтому с каждым железом надо разбираться отдельно. Однако, без рута в гостевой системе даже эту информацию о железе не получить. Ещё на hdparm рекомендую посмотреть.
Вообще ничто не даёт 100%-ой защиты, даже air gap (тем более, виртуалки[link2]).
Социнжиниринг, коррреляция по трафику, корреляция по отклонению в системном времени, по загрузке процессора и его типу, по схожим конфигурациям обеих систем, схожим их настройкам и конфигам... теоретический список длинный, но к делу его обычно не пришьёшь. Самый реальный способ – ошибки в настройках и конфигурировании, когда, к примеру, в гостевую систему может утекать реальный IP или MAC хостовой системы.
Придётся смириться. Процессор – единственное, что гостевым ОС, как правило, известно. Уникального ID у них нет (после скандальной истории с Pentium III[link3] побоялись возвращать серийник процессору). Некоторые VM скрывают тип проца в том смысле, что его не посмотреть в настройках, однако, по косвенным наблюдениям марка процессора всё равно может быть выяснена[link4].
Если скрыть процессор – единственная цель такой смены, то, имхо, не стоит.
А почему не стоит? Ведь процессор это самый явный идентификатор. Так как остальное подменено на виртуальное...
Так вы на один и тот же ресурс заходите одновременно с хоста и с гостя?
Что за программы вы используете в Whonix, что они могут передавать на сторону индентификационные данные?
Может на большую часть ваших вопросов вы можете найти по вышеуказанной ссылке "Warning"?
Здесь[link5] есть 6-я строчка:
"none advanced x86 compatible"
Суть описана здесь[link6]
Ну или Qubes. Правда приготовте пачку денег на железо.
"root@host:/home/user# lshw
Could not find the database of available applications, run update-command-not-found as root to fix this
lshw: command not found
root@host:/home/user#"
Я ж и говорю:
Что там в Whonix нагородили не в курсе.
Так какое же приложение должно передать такие данные в сеть?
Изменение CPUID для виртуальных машин под управлением VirtualBox[link7]
Virtualbox, how to force a specific CPU to the guest[link8].
Помимо CPUID, VirtualBox по умолчанию передает (можно отключить) гостевой системе ACPI[link9] хоста, в этом случае, к примеру, уровень заряда батареи можно будет читать из гостевого браузера.
ТВ имеет такие уязвимости? Каждое приложение в Whonix ходит через свой порт, что видно из torrc. Даже если будет возможность влезть в ТВ, то информация о системе будет очень скудной и однобокой. И да конечно нужно отдавать себе отчет, что эта система не "Амнезия" как Tails (о чем есть предупреждение на оф сайте).
ФБРовский троян с встроенным локальным рутом, подцепляемым из бразуера при заходе на нужную страницу – так сойдёт?
Явный, но не уникальный. Ну увидит противник, что у вас Intel i5 или Intel i7. Дальше-то что? Таких процессоров миллион, стоят на самом разном железе, на самых разных ноутбуках. Насколько эта информация уникальна?
Это в Whonix так? Возможно, дело в AppArmor. УМВР.
TB имеет обширный список уязвимостей, как и любой firefox. Виртуалка используется для нейтрализации этих уязвимостей. Смотреть надо не на то, что TB может, а на то, что сможет сделать исполнение произвольного кода с правами того пользователя, от которого запускается TB (а там ещё и локальный рут может быть).
Аменизийность всегда можно настроить сторонними средствами, которые будут запускать систему каждый раз с одного и того же чистого образа (время от времени обновляемого безопасным образом).
И этот код в браузере будет исполнен на 100%? Или речь все-таки о целевой атаке?
Ну да. Так ведь ТС упоминает о Whonix.
Так то оно так, но "предохраняться" нужно и никто не отменял NoScript.
С 13 версии идет контроль установленных сторонних приложений в систему. Но это конечно не значит что ничего устанавливать туда нельзя. Каждый сам себе пусть определит что ему нужно.
У меня еще при исполнении LSHW выдает какой то номер непонятный, serial: 0002-0652-0000-0000-0000-0000. Якобы какой то сериал, хотя это не серийник моего corei5. И интел вообще не знают ничего про этот номер, и говорят что к процу он не имеет отношения. Тогда почему в whonix я его вижу? а на хосте например нет.
Это у меня баг какой? Или в чем соль? Может кто пояснит, уже у кого только можно узнавал. Никто не вкурсе что это такое.
Вот подобное в гугле у многих:
product: Intel® Core i3 CPU 540 @ 3.07GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: 6.5.2
serial: 0002-0652-0000-0000-0000-0000
slot: LGA1156
size: 3066MHz
capacity: 3800MHz
width: 64 bits
clock: 133MHz
jack3d (02/06/2016 12:14)
В Whonix эта команда не запускается в штатных условиях
А вы на хосте для какой цели ее запускали? Для интереса? )
На хосте запустил что бы сравнить, как этот номер в вообще связан с моим реальным железом. Но на хосте не увидел его. А вот на whonix почему то вижу. Есть предположение что вообще это такое?
Как оказалось это виртуальная машина симулировала серийник таким образом.
Если на 65%, намного легче будет?
Любая атакая на уязвимость в браузере "целевая". Если малварь кто-то подгружает на интернет-страницы, на которые вы можете зайти, значит, это кому-то нужно. В дикой сети таких атак – пруд пруди, на этом весь рынок браузерных эксплоитов держится. За дыру в TBB 80k$ предлагают[link10] – больше, чем за дыры в чём-либо другом, даже в ОС. Видимо, правительства готовы хорошо заплатить.
NS – мёртвому припарка, тем более, что его код не подписан, а обновляется он в браузере автоматически хрен знает как без проверки подписей. То, что действительно защищает – виртуалки и правильно настроенный фаервол.
Поставьте пакет cpuid и командой cpuid смотрите его хоть в госте, хоть на хосте. Первые цифры, по-видимому, стандарты, и соответствуют марке процессора, а остальные у всех нули[link11]:
VM здесь ни при чём.
Кстати, говорят, KVM в некоторых режимах умеет скрывать (в вышесказанном смысле) тип процессора и сообщать системе, что реальный процессор примитивнее используемого. Общий принцип – можно заявить отсутствие некотрых возможностей процессора, которые есть, но нельзя заявить те возможности, которых нет. Таким образом, "эмулируемый" процессор не может быть более продвинутым, чем реально используемый.
Аналогичный номер выдает у всех почти, у владельцев corei3 \ corei5 и тд.
Вот обьяснение модератора с форума whonix:
The way the serial number is shown is a standard output for when your OEM hasn't implemented the serial enquiry properly. In a VM a number with lots of zero's is shown to simulate this. That's why your host OS probably says "To Be Filled By O.E.M.".
Есть аргументы какие? Или просто лишь бы написать?
Хотелось бы разобраться....
Через sudo dmidecode | grep Serial выдало номер какой то на хосте, вроде как уникальный. это и есть серийник процессора? их же вроде убрали после пентиума 3?
А в виртуалке не отображается ничего.
Я общался с официальным саппортом intel. Они не знают никаких стандартов, и сказали что это вообще левый набор цыфр. По этому скорее всего это уже виртуалка, нет?
Ну видите. Очень полезная информация достанется врагу.
В интернет больше не хожу. Там большие пацаны заставляют на свои сайты ходить и заражают всех.
У меня наверно специальный ТВ везде попадается, в котором NS сам не обновляется. А еще его можно попробовать настроить.
И получим кучу "полезного" мусора для атакующего.
Что имеешь ввиду?
!!С вопросом разобрался, всем кто отписался спасибо!!!
И смысл?[link12]
Поражаюсь вашей наглости. На него трятят своё время, пишут ответы, а он в ответ хамит.
Так где здесь виртуалка-то? При чём тут она? Запусти любую ОС, установи в неё пакет cpuid и выполни команду cpuid – получишь те самые данные. Я на хосте и на госте получаю в качестве вывода одно и то же. Выхлоп определяется тем, какую инфу о проце даёт железо, виртуалка в случае проца его (в моём случае) не меняет. Выглядит примерно так:
Если виртуалка не скрывает типа проца, никакую инфу о нём она тоже скрывать не будет, видно одно и то же: что на хосте, что в госте, что без VM. Последний вариант мне лень явно перепроверять, но он практически очевиден.
Возможно, этот фиктивный серийник общий для всех интелов.
Выполни cpuid.
Ты чем дальше, тем толще и толще становишься, треснешь скоро? На сайте не будет написано, какой пак эксплоитов туда подгружен и подгружен ли.
Раньше обновлялся, даже здесь это обсуждалось. В любом случае, браузер настолько дыряв, что надеяться на NS глупо.
Если параноя так сильно щемит, удали пакет после тестов, но смысла параноить я не вижу. cpuid эту информацию не с астрала снимает. Получит атакующий эту инфу парсингом инфы из /proc или запросом к нужному сисколу вместо выполнения cpuid – тебе легче будет?
Что ты хотел сказать этой ссылкой? Что на основании одного решения по одному делу суда одной страны теперь никакую инфу полученную через эксплоиты никогда нельзя будет использовать для обвинения? Или нельзя её использовать для parallel construction[link13]? Или после этого решения суда весь шпионаж в сети закончился?
Извиняюсь если кого задел)) Не хотел хамить. Просто запутался маленько. Теперь всё понял.
Не только в KVM. Скорей всего, это общий принцип для всех виртуалок. Например, в man xl.cfg для этого предусмотрена опция cpuid, с помощью которой можно задать характеристики процессора.
Длинная дискуссия[link14] в рассылке на тему того, что и как с этим делать:
Joanna Rutkowska:
Напишу сюда, чтобы не плодить темы. Посмотрел VirtualBox и заметил несколько неприятных моментов: Кроме уже упомянутой непонятно зачем допущеной разработчиками утечки параметра процессора, утекает и DNS! Я считаю это серьезная уязвимость! Как можно сделать чтобы для VirtualBox DNS был недоступен всегда (как при пустом resolv.conf)?
И общий вопрос: насколько там защищена сеть внутри VirtualBox? То есть когда сеть поднята и доступна одной группе ОС, а в другой, если выключено в конфиге, то реально отрублено без случайных утечек! Тот же вопрос касается маршрутизации, поднимаемой в пределах VirtualBox (как с Whonix).
Намучался я с VB! Кроме упомянутого слива проца, издевается через мышь: Захватывает управление, так что указатель двигается и в хостовой ОС, но кликать можно только в окне какой-то конкретной запущенной в виртуалке ОС. Еще через какое-то время работы фокус указателя мыши сдвигается примерно на размер одного указателя (стрелки) выше. То есть, если, например ткнуть на текст, то курсор окажется строкой выше, хотя, еще раз: указатель ниже! При этом, настройки в закладке мыши (PS2,USB,планшет) никак на этот глюк не влияют(
Ну и кроме этого, как-то странно распределяет ресурсы: На досточно мощном компе, сжирает все! Независимо от процентных полозков ресурсов проца и количества процов. Еще через каждые десять раз запущенные в виртуалке ОС сами по себе вылетают (не закрывается окно, а запущенная ОС либо мертво виснет, либо в этом же окне перезагружается или перезапускается интерфейс).
Я так понимаю, что сама структура виртуалок такова, что этот софт (VB, другие) использует готовые модули в ядре? Такие как: QEMU/KDM и т.п.? А можно ли как-то научиться запускать под этими модулями ОС буквально из консоли? Или может есть какой более легкий (по глюкам) аналог VB?