418ImATeapot писал(а):
Есть подозрение, что у процессоров Intel все-таки есть внутрисхемная отладка, хотя и недокументированая (а может есть и документированая, я не в курсе).
Конечно есть, сначала ICE (In-Circuit Emulation), потом JTAG. Необходимое железо для этого совсем недемократично стоит, однако ж. Впрочем, в такой отладке на массовых процах (если не рассматривать то что идёт во всякую встроенку) очень мало смысла, всё стараются вылавливать на куда более ранних этапах производства. Но для тестирования на производстве (каждый произведённый экземпляр нужно тщательно протестировать, при этом автоматически на конвеере, а не в собранном ручками компе) и исправления мелких косяков (обновления микрокода не просто так выпускают, не всё получается выловить) конечно приходится оставлять интерфейсы.
418ImATeapot писал(а):
Лично мне не кажется неправдоподобной - все это можно реализовать.
Одно "экспертное" мнение офигительнее другого. Вот все эти "кажется", основанные ни на чём или, в лучшем случае, на "что-то где-то слышал, что-то читал, но сам не делал" - нууу, просто праздник какой-то. Впрочем, я сам этим страдаю, за что иногда и наслушиваюсь нелестного от тех кто в чём-то более хорошо разбирается, бгг.
Юрий Носков писал(а):
Народ,
просьба, если кто что-то знает, просветить по поводу аппаратуры виртуализации
и возможностях виртуализации для современных процессоров х86
http://nnm.me/blogs/kotteyko/kitayskie- ... -shpionah/Хм, а почему ссылка не на ~оригинал в ][ ?
Статья - лажа, автора вживую видел, он оказался, скажем так, не очень адекватен. Но так уж оно написано и так устроены люди, что многие поверили и часто ссылаются, что у меня вызывает дикий БХ.
Краткая выжимка по делу: да, с помощью аппаратной виртуализации можно дофига делать с операционкой, так что она этого почти не заметит при обычном функционировании. Но как бы наличие такого гипервизора либо обнаруживается (особенно из ring0) легко, либо он работает нестабильно и заточен под конкретный чипсет и прочее, либо имеем заметные тормоза, причём зачастую комбинация этого.
Сделать гипервизор с поддержкой вложенной виртуализации (чтобы уж совсем банально не палиться тем что проц явно из тех что поддерживает эти расширения, но они почему-то оказываются недоступны) - очень нефиговый объём труда и кода (критикуемый мной автор, кстати, утверждал что это фигня и всё легко делается, вот только на практике оказалось что он только говорить умеет; кому нужна практика - могут посмотреть, сколько времени и кода заняла реализация этого в KVM, причём сравнить насколько позднее удалось запилить это для Intel по сравнению с AMD), при этом накладные расходы (грубо говоря, тормоза) весьма будут заметны. Спрятать их совсем - невозможно, сильно уменьшить - можно, но всё остаётся возможность задетектить.
В общем, избегайте читать русских^W мастеров словесного розжига. Нормально написано у Рутковской, например (читаем про Blue Pill и Red Pill, ну и ещё у неё и соавторов есть хорошие статьи).
Воть. Чего есть действительно интересного - всякие серверные (но потихоньку появляющиеся и на домашней технике) приблуды для того или иного удалённого доступа (у разных производителей называется по-разному - iKVM, IPMI/KVM и т.д.), реализованные в виде отдельного проца (а иногда и нечто комбинированное, читать про Intel AMT / vPro) с архитектурой вроде MIPS или ARM, своей памятью и немалым доступом к хостовому железу. Вроде, это даже чуточку упомянуто в негодной статье, но это так всегда - берём факты, смешиваем с непросто верифицируемыми небылицами - и народ схавает за чистую монету вообще всё. Вот с этими фичами куда реальнее можно ждать проблем касательно незаметного слива информации и удалённого управления, но как бы везде одинаковых закладок не напихаешь (хотя можно жить и в модели глобального атакующего (даже не наблюдателя), но тогда лучше сразу шапочку из фольги напяливать и в лес идти, молиться и поститься), так что левый сетевой трафик легко обнаруживается. Кстати, вот на левом трафике некоторые китайские производители (huawei, щтоле) очень в своё время попалились.
Впрочем, на фоне вездесущей человеческой глупости ( чего стоит сама эта тема с самого начала - ишь чего, опять чего-то вещают про "сделаем с нуля, не напоремся на очевидные грабли" и особый (уже даже не русский, а российский) путь, хотя казалось бы, с какого перепугу должна ОС быть в чём-то специфичной для страны/народа/whatever? (риторический вопрос) ) странно говорить об аппаратных закладках и уберзащищённых системах для пользователя-неспециалиста. Вот реальный и банальный пример - затарила крупная организация для своей ценной информации СХД (систему хранения данных), естественно с поддержкой и долгой гарантией, поставила софтину от производителя (для мониторинга состояния, обновления прошивок (если кто не в курсе - на HDD нередко выпускаются обновления фирмвари, причём зачастую фиксятся весьма болезненные баги) и прочего, как пример - IBM Storage Manager, не знаю деталей чего именно было в этом случае), насколько понимаю - инет никто особо не обрезал (ведь чудо-софтину порой обновлять надо). Так вот, контора, очень удивилась (мягко говоря), когда вскоре после сбоя одного из дисков с ними связался сервис производителя на предмет замены. Если я неочевидно написал - поясню,
удивление было потому что на тот момент никто из самой конторы ещё в сервис не обращался, так что сразу началось кудахтанье про закладки, опасносте для данных в частности и для лица конторы в целом, вроде как дошло до разрыва сотрудничества с этим производителем и переходом к другому. Читать лицензионные (и другие) соглашения (в который подобные вещи прописаны, ибо производитель не дурак) и думать головой - не, не слышали.
Что-то опять понесло и длинно получилось. Ну ладно, ещё попытка резюмировать:
1) думать надо головой, при этом очень полезно всё же не брезговать институтской физикой и математикой (особенно дискретным анализом и прочими подобными курсами), иначе легко поверить во всякие небылицы
2) программные "закладки" - распространены в виде частей прикладного софта, но работающие выше уровня ОС - редкая редкость, ибо обречены на огромный объём труда и привязанность к конкретному железу (и обнаружимость), так что существуют только в рамках исследовательских работ и работ под конкретные заказы, иначе неокупаемо-с.
2.1) читайте соглашения, зачастую отправка данных там прописана. Ну или хотя бы не мешает вспоминать принцип минимальных привилегий.
2.2) умные вендоры оставляют не закладки для отправки данных, а "дырки" (те или иные косяки в коде/алгоритмах), позволяющие заметно снизить сложность доступа к данным тем кто знает куда соваться. Вот это реально тяжело обнаружить и про такое не пишут в соглашениях.
3) аппаратные "закладки" (не путать с программными, использующими фичи аппаратуры) - штука как бы и реальная, но левый трафик сныкать не так просто, особенно если смотреть его промежуточными узлами, основанными на продуктах других производителей. Если в голове вообще праздник какой-то - можно на ПЛИС делать такие устройства для анализа трафика, если даже в таком варианте чешется сказать про глобальные "волшебные" штучки которые позволят скрыть левый трафик - верная дорога подальше от техники, а то и в заведение, где добрые врачи "кормят вкусными таблетками".
3.1) кстати, многие забывают что на "буржуйскую" технику нельзя полагаться в критичных вещах даже не потому что якобы слив данных, а потому что куда реальнее недокументированные возможности для быстрого приведение в нерабочее состояние (или хотя бы отключение) по тому или иному "сигналу" извне.
Upd: хм, хоть я и не удержался от "тред не читай@сразу отвечай", но выше от
pavia очень хороший ответ уже есть.
Юрий Носков писал(а):
Как ОС вообще учитывает, что тут рядом еще какой-то
процессор сбоку работает с тем же железом (данными).
Если речь идёт про виртуализацию (а не про IPMI), то эти технологии как раз и нужны чтобы гостевая ОС _никак_ не должна была учитывать, что рядом какой-то процессор (вообще говоря, тот же самый, просто в режиме разделения времени) работает с тем же железом (громко сказано, кстати, ибо обычно дело ограничивается оперативкой, остальное физическое железо геморно пробрасывать в гостевую систему, а так чтобы более одной гостевой ОС использовали одно устройство - вообще печаль, ну если не учитывать некоторые устройства, предоставляющие для этого специальные расширения, например, гуглить по Intel Virtual Functions NIC). Ну разве что для уменьшения накладных расходов можно давать некоторую возможность учитывать это с помощью паравиртуализационных драйверов.
Юрий Носков писал(а):
Давайте посмотрим на данный вопрос со стороны разработчика
современной перспективной ОС - новые процессоры имеют
возможности виртуализации, как это все может использовать ОС
для своих внутренних нужд и что может выдать на гора пользователю
в виде API.
Из каких реальных потребностей эти тенденции появились в целом
понятно и дело здесь не в шпионских заморочках, они как бы
всегда присутствуют, но тут все больше говорит о развитии
базовых возможностей в определенную сторону.
Т.е. чего оно даёт? Во-первых, некоторые возможности уменьшить проблемы с использованием legacy софта. Нельзя просто так взять и перестать пользоваться древним софтом, но железо иногда не вечно, да и нерационально держать полку старых компов, когда можно вместо этого держать один современный сервак (который поменьше электричества жрать будет, кстати) и на нём несколько виртуалок, которые друг другу вообще не мешают.
Во-вторых, для разработчика системного (а иногда и не очень) софта это жизнь зачастую упрощает (хотя в итоге на реальном железе и надо тестировать, но многие вещи и так можно отловить, порой даже удобнее).
В-третьих, иногда софт как бы и не старый, но нормально работает только под другую операционку, а перезагружаться между ними - унылая трата времени в современном мире.
В-четвёртых, переход от полки небольших физических компов к одному большому полезен не только в случае старого софта, ибо позволяет более гибко перераспределять между задачами физические ресурсы и меньше оставлять зарезервированных.
В общем, это больше для серверов, чем для домашних пользователей (тем более что если не ограничиваться не очень прогрессивными странами, то вовсю обещается новый виток "тонких" клиентов у пользователей), хотя можно ещё вспомнить работы по использованию этих технологий для усиленной изоляции между приложениями (типа, в одной гостевой операционке ходим по сомнительным сайтам, в другой - пользуемся интернет-банкингом, при этом все окна на одном рабочем столе, т.е. seamless режим), эдакое продолжение идеи микроядер, но имхо это дикое усложнение строения используемой ОС.