Вокруг вопроса наличия аппаратных закладок в процессорах циркулирует большое количество слухов и спекуляций. Угроза их присутствия в современных процессорах очень часто является едва ли не основным лейтмотивом в обосновании необходимости использования только отечественной компонентной базы в России. Более того, зачастую, некоторые горе-эксперты, подвизавшиеся зарабатывать славу на ниве темы отечественной микроэлектроники, постулируют наличие недокументируемых возможностей в зарубежных CPU как вопрос самоочевидный. В данной статье хотелось бы обрисовать общую картину того, какова ситуация с потенциальным наличием аппаратных закладок в реальности и насколько эта угроза представляет проблему.
Для начала немного определимся с дефинициями. Аппаратной закладкой в процессоре мы будем называть некоторый намеренно скрытый от пользователя на этапе создания (проектирования, производства) и зашитый в кремнии аппаратный блок в процессоре, который может в определённых случаях (по команде, в назначененное время) позволить неавторизованное пользователем действие (дать управление процессором, дать доступ к данным, вывести из строя процессор или изменить его характеристики). Здесь особенно стоит оговориться, что мы не говорим о злонамеренном системном ПО или прошивках, которые могут быть изменены после производства процессора (производителем уже конечных устройств или просто любым пользователем). Также я буду говорить об аппаратных закладках именно в CPU, а не в конечных продуктах, построенных на их базе, как то компьютерах, планшетах, различных промышленных устройствах, составных комплектующих (например, материнских платах) и т.д. И ещё один важный момент – мы будем говорить об индустриальных процессорах от известных компаний типа Intel, AMD, Qualcomm и т.д., доступных на массовом рынке. Ибо очевидно, что в ноунейм процессоре от АНБ/ФСБ может быть потенциально всё, что угодно.
Начнём с главного посыла всей статьи. В последние годы тема исследования методов внедрения и обнаружения аппаратных закладок становится всё более популярной. Проводятся конференции, исследовательские группы публикуют статьи различной степени полезности о методах внедрения закладок в процессоры. Но во всей этой академической дискуссии есть один факт, который необходимо понимать при чтении опубликованных материалов – за десятилетия развития кремниевой микроэлектронники не обнаружено НИ ОДНОЙ достоверно доказанной аппаратной закладки в массовых промышленных процессорах. Таким образом можно констатировать, что данная угроза является на данный момент чисто теоретической, но не нашедшей (по-крайней мере пока) своё применение на практике. Попробуем разобраться, почему так происходит.
Современный микропроцессор является крайне сложным инженерным продуктом, который может содержать несколько десятков миллиардов транзисторов (и не только транзисторов). В общем-то на первый взгляд выглядит так, что при таком количестве элементов не составляет труда добавить некоторые цепи, которые потенциально могут выполнять скрытые от пользователя действия. Но внедрение закладки имеет, если грубо, два аспекта: технический и бизнесовый. Разберём их отдельно.
Технические аспекты внедрения закладок
Примерно так выглядит академический взгляд на проблему аппаратных троянов:
Не углубляясь в таксономию аппаратных закладок, рассмотрим три наиболее важных для понимания класса проблем с вышеприведённой схемы:
Способы появления закладки в процессоре.
Виды закладок по механизмам активации.
Результат несанкционированного воздействия.
Остальные детали не влияют принципиально на общее понимание вопроса.
Результат несанкционированного воздействия
Начнём с последнего пункта – ведь именно для его реализации существуют все остальные. Чтобы упростить вопрос, давайте за возможные варианты срабатывания аппаратной закладки примем два – выход процессора из строя и утечка информации. По-большому счёту, другие приведённые варианты (ухудшение характеристик и изменение поведения процессора) являются в пределе выходом процессора из строя и для более лёгкого восприятия материала вполне допустимо, я считаю, свести их к одному пункту.
Способы появления закладок в процессоре
Для упрощения понимания данный вопрос я хотел бы рассмотреть несколько с другим подходом, чем предлагают авторы вышеприведённой классификации.
Здесь для начала стоит напомнить, что современное производство микропроцессоров крайне глобализировано и имеет большое разделение труда. Есть компании-разработчики процессоров, например, из зарубежных: Intel, AMD, Nvidia, Qualcomm, MediaTek и т.д., из отечественных: Байкал Электроникс, МЦСТ, НИИСИ, Элвис и т.д. Но отвечая непосредственно за разработку, эти компании для создания конечного продукта в цепочку производства привлекают множество сторонних предприятий. Например, все вышеуказанные компании осуществляют непосредственное производство большинства своих процессоров на фабриках TSMC в Тайване (кроме Intel, который также имеет собственное производство и заказывает на TSMC пока лишь небольшую часть своих процессоров). Также все компании используют стороннее ПО для проектирования процессоров, в первую очередь от компаний Synopsis и Cadence. Массово используются лицензированные IP-блоки, где-то больше, где-то меньше, но они есть везде. Поэтому тут стоит разделить вопрос потенциального появления аппаратных закладок в процессоре на две части – когда она появляется по умыслу непосредственно разработчика, или когда она появляется скрытно от компании-разработчика из-за использования в производстве сторонних компаний или результатов их интеллектуального труда
Внедрение закладки непосредственно разработчиком процессора
Тут нет никаких технических сложностей добавить в процессор ту логику, которую создатель пожелает, это очевидно. Но возникает проблема - каким образом потом такой закладкой воспользоваться? А также разнообразные организационные сложности и последствия. Об этом мы поговорим чуть ниже.
Внедрение закладки третьими лицами при производстве процессора.
Данный вариант стоит признать куда более сложным (я бы сказал практически нереалистичным). Он обладает всеми теми же техническими и организационными сложностями (и даже больше), что и предыдущий пункт, но с той лишь разницей, что разработчику процессора куда легче контролировать возникновение неавторизованных изменений. Любая более-менее сложная цепь, неожиданно вдруг появившаяся при компиляции исходного кода проекта, вряд ли сможет ускользнуть от бдительных глаз инженеров. Высокая степень разделения труда при создании процессора также является препятствием на пути внедрения закладок, т.к. в общем случае не даёт злоумышленнику знаний о том, каковы характеристики и особенности остальных звеньев производства. Например, создание фотошаблонов, как правило, разделено от производства на фабрике, корпусирование также осуществляется в других местах, не говоря уж о том, что внедрение любого транзистора на данном этапе без ведома разработчика может превратить чип в кирпич.
Но давайте допустим, что зловредный разработчик процессора таки решил сделать секретный бэкдор, что бы им не двигало в таком желании. Опуская организационные сложности (о них далее), есть чисто технические аспекты, делающие такое решение достаточно малоосмысленным.
Виды закладок по механизмам активации
Закладки можно грубо разделить на 2 категории – требующих активации (по команде извне через различные каналы, или включающихся по достижению определённого события, например, по внутреннему некому счётчику) и работающих постоянно
Закладки через активацию.
В теории, активировать закладку можно различными способами:
По событию внутреннего счётчика (достижения определённого времени, количества срабатываний цепи включения питания и т.д.). Проблема данных закладок очевидна – они не контролируемы. Каким образом можно предугадать, сколько раз будет включаться компьютер, один или тысячи? Или когда вам потребуется отключить процессор – через год, два, или пять лет?
По команде извне. В данном случае опять-таки возникает вопрос – каким образом передать команду на нужный процессор? Если компьютер с уязвимым процессором стоит в удалённом датацентре в железном корпусе и над ним стоит ещё пяток таких же стоек, то никакими радио или оптическими сигналами закладку не активируешь. Остаётся только вариант каким-то образом через сеть передать на исполнение на процессор сложную последовательность команд, которая будет триггером для включения. Но для того, чтобы такое сделать, необходимо иметь возможность непосредственно запустить код на процессоре. Здесь возможны следующие случаи:
Компьютер не подключен к глобальной сети напрямую. В таком случае, активировать закладку с помощью запуска нужной последовательности команд будет невозможно – вы просто не достучитесь до процессора физически.
Сервер с уязвимым процессором используется для предоставления удалённого доступа для клиентов (например, это сервис по аренде виртуалок). В таком случае запустить нужный код проще простого – вы арендуете виртуалку и в ней запускаете нужную последовательность инструкций.
Машина с уязвимым процессором имеет доступ к глобальной сети и предоставляет наружу определённые сервисы(но не позволяет напрямую запустить пользовательский код). В теории можно пофантазировать, что определённым воздействием на сервис (например, каким-то особым запросом), мы можем активировать в софте крайне редко работающую ветку кода, в которой будет находиться нужная для активации последовательность. Но тут проблема вполне очевидна – а как гарантировать, что на интересующей нас машине работает именно тот софтварный стэк, который нам требуется, вплоть до его бинарной идентичности? За время создания процессора, которое может занять несколько лет, может поменяться как сам софтварный стэк, так и версии его компонентов, библиотек, компиляторов и т.д. И малейшее изменение во всём этом ПО приведёт к бессмысленности вашей аппаратной закладки. И это я не говорю о всех прелестях преодоления сетевого оборудования/стэка, которое тоже может внести непреодолимые препятствия.
Возможна ещё одна вариация для п.3 – машина с сервисом взламывается через программную уязвимость, а потом на ней запускается нужный код. Но в таком случае смысл аппаратной закладки практически теряется – если можно взломать компьютер чисто программно, зачем заморачиваться с аппаратными бэкдорами? Разве что активировать закладку, которая физически уничтожит процессор.
Закладки, работающие постоянно
Но допустим, мы решили обойти все сложности с активацией аппаратной закладки и сделали её работающей сразу «с завода». Таким образом ваш процессор сразу же при включении начнёт пытаться передавать некую информацию куда-то. Проблема заключается как раз в этих «некую» и «куда-то». Процессор должен как-то определить, какая из всего обрабатываемого им массива информация ценная и куда её посылать. Даже если допустить, что ни один сетевой админ в мире не заметит постоянно фонящий непонятный траффик по своей сети, проблема в том, что на уровне имплементации логики процессора сложно определить, куда и как правильно отправить любые данные во внешний мир. Если в процессоре есть встроенный Ethernet-controller, то его аппаратную имплементацию (в которую, очевидно, и имеет смысл ставить закладку) надо ещё подружить со стэком драйверов машины и используемого в сети оборудования. Это может оказаться, мягко говоря, непростой задачей. А что если пользователь использует внешнюю сетевую карту? Для этого придётся каким-то образом внедряться в работу PCI интерфейса и при этом не разломать работу неизвестной сетевой карты и произвольных драйверов к ней. Звучит практически нереально. Но самое главное, даже если преодолеть все указанные трудности, непонятно как преодолеть вполне стандартные настройки безопасности на сетевом оборудовании. Сеть может быть организована разным образом, нужно знать адреса шлюзов, причём многие настройки находятся на уровнях OSI выше канального, на котором оперирует Ethernet-адаптер. Просто посылка пакета с зашитым в кремний IP-адресом получателя в любой минимально сложной сети приведёт к его отбраковке на первом же сетевом устройстве. В итоге, минимальные усилия по правильной организации внутренней сети делают сетевую закладку бессмысленным набором транзисторов. Реализовать в кремнии такой функционал, который сможет интеллектуально обходить сетевые настройки безопасности, выглядит из разряда фантастики
Все вышеописанные сложности также актуальны для закладок с активацией, в том случае, если мы как-то смогли активировать зловредный функционал и его цель – именно передача информации с процессора во внешний мир
Так какие аппаратные закладки реалистичны?
Если подытожить, то технически реалистичным вариантом выглядит ситуация, когда разработчик процессора сам заложил аппаратную закладку в процессор и она может быть активирована с помощью некоей специальной поледовательности команд. Использовать такую закладку можно только имея возможность напрямую запустить код на интересующем нас процессоре, что актуально для сервисов аренды виртуальных машин/серверов. В таком случае можно как получить доступ к чужим данным, так и уничтожить процессор физически. Также для машин, предоставляющих сервисы в глобальную сеть, можно использовать комбинацию программных уязвимостей и аппаратных закладок, чтобы уничтожить процессор физически.
Все остальные варианты выглядят как технически разумно нереализуемые.
Бизнес-аспекты внедрения закладок
Помимо технических, у умышленного внедрения закладок в чипы есть другие аспекты для компании-разработчика, которые мы можем грубо обобщить под термином «бизнесовые»:
-
Репутационные потери
Тут я думаю всё очевидно – если вдруг выяснится, что кто-то намеренно внедряет закладки в свои процессоры, данную компанию будут обходить стороной все, у кого будет для этого малейшая возможность
-
Риск утечки информации о механизмах эксплуатации аппаратной закладки третьим лицам
Реализация аппаратной закладки в процессоре требует вовлечения сотрудников компании, причём скорее всего в количестве более одного человека. Каждый из них может потом слить данную информацию, например, криминальным структурам или разведкам других стран. В итоге возникает опасность несанкционированного использования бэкдора
-
Юридические
Если эксплуатирование закладки приведёт к утечкам данных, или, тем более, к техногенным катастрофам, то разработчик такого чипа будет просто уничтожен в судах. Причём хочу отдельно отметить, что никакими методами организации поставок уязвимых чипов только в «нужные» страны этот вопрос не решить. Потому что физически невозможно проконтролировать движение всех чипов при миллионных тиражах. И гарантии, что процессора с закладкой не окажется на АЭС в Индии от РосАтома не даст никто
-
Экономические
Создание закладок требует дополнительных финансовых расходов. В пределе для этого потребуется создание отдельной линейки процессоров, с соответствующими затратами на создание отдельных фотошаблонов и производственного цикла в целом. Это крайне недешёвое удовольствие. Также внедрение сколь-либо сложной логики в процессор может привести к ухудшению его характеристик, как, например, снижение частоты или повышение энергопотребления. Что также имеет экономические последствия.
Что получается в итоге?
Резюмируя вышесказанное, можно сказать, что реализация аппаратных закладок в процессоре, с одной стороны, имеет множество рисков и негативных последствий для разработчика, которые могут просто уничтожить любую компанию. С другой стороны, с технической точки зрения внедрение закладки непосредственно в процессор не даёт желаемого результата – сценарии использования крайне ограничены и часто легко парируются простыми организационными мерами. Намного проще и эффективнее внедрять закладки на уровне создания прошивок, системного софта или конечных продуктов (оборудования, материнских плат и т.д.). Именно поэтому на текущий момент и сложилась такая ситуация, что будучи теоретически возможными для реализации, на практике аппаратные закладки в процессорах никогда не обнаруживались.
Известные заблуждения, принятые считать «аппаратными закладками в процессорах»
Для полноты картины, хотел бы пройтись по наиболее муссируемым в сети примерами «аппаратных закладок в процессорах», которые такими при ближайшем рассмотрении, конечно же, не являются:
-
Иранские центрифуги.
История с выведением из строя иранского ядерного объекта имеет тривиальную причину в виде внедрения (намеренного или нет) программного вируса Stuxnet
-
Не вдаваясь в рассуждения о том, насколько данные технологии безопасны, можно просто констатировать, что они реализованы на базе отдельного процессора на материнской плате и не являются частью CPU.
-
Разоблачение от бывшего сотрудника ЦРУ/АНБ даёт большой материал для анализа методов, используемых американской разведкой для получения необходимой информации без согласия пользователей. Но аппаратных закладок в индустриальных процессорах в нём нет.
-
Здесь имеем подозрение на небезопасную прошивку флеш-памяти модуля BMC.
-
VIA God Mode
Это достаточно интересный и наиболее близкий к аппаратной закладке случай. Авторы статьи, опубликованной в 2018-ом году, даже громко назвали его «первым когда-либо обнаруженным бэкдором в x86-процессорах». Всё бы ничего, но если бы авторы внимательно читали документацию на процессоры VIA, то обнаружили, что описание данной «закладки» там присутствует аж с 2004-го года. Поэтому назвать её недокументированной точно нельзя. Да и её активация требует включения в БИОСе, что тоже не позволяет её признать скрытой аппаратной закладкой.
Ещё одним косвенным (но очень весомым) доказательством отсутствия аппаратных закладок в процессорах являются события, развернувшиеся после 24 февраля 2022 года. После начала СВО на Украине, уровень противостояния России с США и ЕС достиг критического уровня. Фактически, стороны используют практически все возможные методы нанесения ущерба, кроме прямого военного столкновения армий государств. В том числе осуществляются регулярные хакерские атаки на информационную инфраструктуру России, что приводило к обрушению некоторых государственных сервисов. Но всё это происходило только с использованием программных уязвимостей. Я думаю, ни у кого не возникает сомнения, что при наличии аппаратных закладок в процессорах Intel/AMD (на которых построена вся инфраструктура страны), они были бы использованы. Но этого мы не наблюдаем. Более того, секретом Полишинеля является тот факт, что несмотря на массу бравурных заявлений для прессы про успехи импортозамещения в критических отраслях, даже в военной технике применялось и до сих пор широко применяется иностранная компонентная база. По данному поводу Минторг США даже инициировал отдельное расследование. Британский think tank RUSI опубликовал интересный отчёт с анализом компонентной базы в обломках ракет от Искандер-М и Торнадо, а в конце привёл детальный список зарубежных изделий в захваченной на Украине станции РЭБ Борисоглебск-2. И тем не менее, каких- либо массовых проблем с выходом военной техники из строя из-за активации закладок мы также не наблюдаем.
Так зачем нам отечественные процессоры, если не для борьбы с закладками?
Проблема активного муссирования пугалок про аппаратные закладки в том, что будучи не более, чем маркетинговым инструментом в недобросовестных руках, он порождает ложные пути развития отечественной микроэлектронной индустрии. Если наша цель именно обеспечение безопасности с точки зрения аппаратных закладок, то организация сборки конечных продуктов в России на базе любых комплектующих (включая иностранные) плюс контроль над безопасностью стэка системного ПО даёт желаемый результат – аппаратных закладок в отечественных вычислительных системах и оборудовании не будет. Как это не парадоксально звучит, но для решения проблемы аппаратных закладок разработка собственных процессоров, по большому счёту, не нужна.
Так зачем тогда нам отечественные процесссоры? Как минимум, для 2-х вполне очевидных целей:
Информационная безопасность. Только не в виде избавления от мифических аппаратных закладок, а в виде физического доступа к минимально современным процессорам. Актуальность данной проблемы в нынешних условиях, я думаю, всем более чем очевидна. В деревянных счетах точно нет закладок, но вряд ли это тот результат, который мы хотели бы достичь.
Создание развитой технологической отрасли, что приводит к повышению технологического уровня страны, уровня её экономического развития, и как следствие, наличие возможности продолжать конкурировать в области разработки новых технологий.
Как мне кажется, крайне важно понимать, что именно данные цели являются основополагающими. А снижение риска наличия потенциальных аппаратных закладок – просто приятный, но в реальности достаточно эфемерный бонус.
Комментарии (308)
Jef239
21.07.2022 06:00+20Для мобильника/планшета все сильно проще. Результат воздействия - отключение сильного шифрования в GSM/4G без индикации отключения. Активация - передачей координат, в которых надо активировать, и нужной страны в интерфейсе - через ЭФИ GPS.
В суперкадре GPS 10-20 свободных битов есть. Длина суперкадра - 12.5 минут. Таким образом, за сутки можно передать 1-2 килобита, что для активации достаточно.
Да, на нынешнем уровне это не аппаратная закладка, но лет 10-15 назад для такой закладки требовались аппаратные части.Armmaster Автор
21.07.2022 11:14+1Это хорошее замечание, оно применимо для криптографии в целом. Я на самом деле его намеренно опустил, т.к. статья и так получилась суховатая, и добавлять туда разборки с криптографией мне показалось совсем перебором. Просто для обычных CPU вопрос криптографии малоактуален - она делается либо программно, ну либо уже ставятся специальные модули от кого-надо. Поэтому для простоты я не стал вдаваться в тему криптографии, она для простых пользователей никак принципиально выводы не меняет
Jef239
22.07.2022 16:37+1Ну отключение Trusted Platform Module - вполне себе цель воздействия. Точнее перевод его в режим имитации шифрования. Программный взлом это может сильно облегчить.
Насколько можно запрятать в чип детектор спутникового сигнала - это большой вопрос. Или обойтись детектором сетевых пакетов.
Для "простых пользователей" такие закладки и нет смысла делать, никому их тайны не нужны. А вот чтобы порушить систему запуска ядерных ракет противника - можно и потрудиться. То есть, если закладки есть - они на уровне АНБ/ФСБ, поэтому часть ваших аргументов отпадает. Грубо говоря - скандал будет замят требование подписки о неразглашении со всех, кто полез в анализ.
lorc
21.07.2022 19:56Это нужно чтобы у вас GPS ресивер и GSM модем находились в одном чипе. Допустим, сейчас это скорее правило чем исключение, но раньше было не так.
Дальше, нужно чтобы инженер условного Квалкома внес такую фичу в прошивку и не проболтался об этом. А потом еще нужно как-то гарантировать что исследователи которые обязательно расковыряют прошивку не найдут этот бэкдор. Какие шансы?И вопрос - в сетях 3G/4G/5G вообще можно отключить шифрование?
Aelliari
21.07.2022 20:26исследователи которые обязательно расковыряют прошивку
Вай, что то бинарные блобы от QC совсем не потрошатся энтузиастами-исследователями...
lorc
21.07.2022 20:32+1Беглый гуглеж родил вот это, например: https://bkerler.github.io/2019/11/15/bring-light-to-the-darkness/
Jef239
22.07.2022 16:26+1Поскольку эта фича завязана на передачу секретной информации со спутников GPS - это прерогатива АНБ. Соответственно инженер - под подпиской АНБ, исследователи - под подпиской АНБ или ФСБ или просто не хотят с ними ссорится. Вот вы бы хотели опубликовать гостайну с угрозой сесть на 20 лет? Причем сесть и в РФ и на западе. Ибо и там и там - гостайна.
Могу привести полтора аналогичных примера. Из утекшей инструкции к одной из американских ракет известно, что по GPS передаются секретные недельные ключи. Так вот, в каких битах они передаются - информации нет. Возможность прокопать самостоятельно - есть, а вот желания - нету. Нафига мне обладать гостайной США, я как-то хочу жить спокойно.
Вторая половина этого примера - есть АНБшная микросхема, которая на основе ключа генерирует Y-code для дешифровки P(Y) code сигнала. Сама микросхема в лапы ФСБ попадала, а вот о её реверс-инжиниринге неизвестно ничего. Или вскрыли и молчат или - не вскрыли.
Ну третья часть - новый М-code GPS, про который неизвестно ровно ничего.
Ну и аналогичные возможности могут быть в китайских чипах с BEIDOU.
А всплывают такие вещи неожиданно. Лет 20 назад, когда в GPS ввели Y-code, США опубликовали полиномы для военного P-code. А заодно - полиномы для российского военного ВТ-code. :-)
SagePtr
21.07.2022 06:13+6Если в процессоре есть встроенный Ethernet-controller, то его аппаратную имплементацию (в которую, очевидно, и имеет смысл ставить закладку) надо ещё подружить со стэком драйверов машины и используемого в сети оборудования
Легко, если это сервер - то в 99% случаев ICMP-пакеты будут дотуда долетать. Далее, если по сигнатурам пакета определяем входящий ping с определённым пейлоадом - то на обратный адрес отправляем содержимое определённого блока оперативной памяти по определённому адресу, обозначенному в этом пейлоаде. И вуаля, небольшими порциями злоумышленник сможет вытащить критические данные.
K0styan
21.07.2022 07:59+6Ну для этого нужно, чтобы процессор понимал, что те числа, которые он обрабатывает вот сейчас - это сигнатура пакета. CPU этого знать просто так не может. Либо в нём должен быть встроенный Ethernet контроллер, либо нужно много чего шаманить на уровне драйверов.
Второй момент: как определять тот самый нужный адрес в ОЗУ, данные которого надо сливать? Снаружи вообще нереально. Изнутри... Опять же, CPU не может в общем случае понимать, какой софт в каком блоке памяти свои данные держит. Можно научить его по сигнатурам это фиксировать, наверно: детектить алгоритмы шифрования и помечать те блоки ОЗУ, где лежат ключи, как потенциально интересные для слива, но это тоже так себе ценность.
apro
21.07.2022 08:48+3CPU этого знать просто так не может
В теории встроить детектирование выполнения кода пары основных TCP/IP стеков (Linux, Windows) все-таки не является невыполнимой задачей. Наверняка там есть какие-нибудь уникальные последовательности инструкций, которые обновления ПО редко затрагивают, а если даже и затронут, то обновлением микрокода это можно парировать.
Второй момент: как определять тот самый нужный адрес в ОЗУ,
Ну после того как CPU "активирован" пакетом из сети, нужно всего лишь сигнализировать соседу по плате, что доступ с такого-то IP к "Intel ME, Intel AMT" должен работать без проблем. А дальше уже дело техники.
maledog
21.07.2022 11:02+2Но ведь большинство массовых сетевых адаптеров(realtek например) дают драйверу доступ к оборудованию через загружаемый firmware. Для wifi это объясняется законами, которые требуют сделать невозможным выбрать диапазон частот для другой страны. Чем руководствуются производители LAN-адаптеров не очень понятно.
Так что саботировать работу сети при помощи сетевого адаптера вполне возможно. Притом так что ОС узнает только факте саботажа, но не о причине.
Armmaster Автор
21.07.2022 11:16+9Если сервер стоит за правильно настроенным сетевым оборудованием, то никакой icmp до него не будет долетать
hogstaberg
21.07.2022 21:37+2Неправильно настроенным.
Не нужно бездумно блокировать Internet Control Message Protocol. Это не только пинги, знаете ли. Да и даже банальные пинги я лично по тупо icmp type+code отрезать не спешил бы.
DreamingKitten
21.07.2022 15:00+1то на обратный адрес отправляем
а как вы изнутри контроллера отправите icmp пакет мимо tcp/ip стека операционной системы?
HardWrMan
21.07.2022 15:47А как это делает AMT/IME? Он же имеет доступ к буферу сетевой карты и позволяет организовать коммуникацию вообще без ОС.
Nilomar
21.07.2022 06:16+23В слитых данных Сноудена был такой документ, где описывалось, что именно надо строго отрицать и среди оных таки были как аппаратные закладки, так и закладки в криптоалгоритмах, а также факты сотрудничества с их создателями, а также любые факты работ и прогресс по квантовым компьютерам, в том числе предназначенных для расшифровки данных
Из этого можно предположить, что библиотеки с постквантовыми алгоритмами шифрования пробуксовывают не просто так
А ещё можно предположить, что если у какой-то страны есть возможности для создания аппаратных закладок, есть возможности для закладок в алгоритмы и так далее, и специальные службы могут их внедрить, то они обязательно с гарантией близкой к 100 процентам будут внедрены
Например в статье не рассматривается вариант, что закладки создаёт ASML степпер во благо демократии и мира в мире, а вероятность, что ASML сотрудничает с специальным службами нельзя назвать нулевой
По поводу раскрытия - США не угрожают риски, зачем им раскрывать свои инструмент сейчас?
Для примера можно посмотреть число лет в течение которых швейцарская компания продавала устройства шифрования, как она была связана со специальными службами и как быстро или не очень это вскрылось - https://habr.com/ru/news/t/528020/
leok
21.07.2022 08:45+3А как же наши бравые специалисты не раскрыли ни одной закладки, или США и сюда добрались?
Sergeant101
21.07.2022 10:51+6Сколько миллиардов ключей в современном процессоре?
Каковы у наших бравых специалистов знания в современной микропроцессорной технике? Как у пигмеев об реактивном двигателе?
tsypanov
22.07.2022 12:05-1Каковы у наших бравых специалистов знания в современной микропроцессорной технике?
И каковы же?
vaalberith
21.07.2022 09:43+9Например в статье не рассматривается вариант, что закладки создаёт ASML
степпер во благо демократии и мира в мире, а вероятность, что ASML
сотрудничает с специальным службами нельзя назвать нулевойИзменение структуры цифровых цепей в схеме с большой вероятностью приведёт к детектированию данных изменений при производственном тестировании на предмет брака, когда специально размещённые на чипе отладочные компоненты начинают гонять вектора данных и их обрабатывать.
Ну и в целом, внедрять закладку в дизайн поведенческий и топологический - это на порядок разные уровни сложности. А уж в фотошаблон - так вообще сложность зашкаливает вплоть до невозможного, имхо.Sergeant101
21.07.2022 10:56+2Структура цифровых цепей это миллионы и миллиарды транзисторов, интерфейсы - десятки регистров процессоров самых разных назначений.
Изменение структуры цифровых цепей?
Ну выпустила компания новый чип с новым функционалом, поди раскрути зачем они поменяли миллион ключей?
Почему не рассматривается вариант что запуск встроенной уязвимости запускается строго определенным набором битов в разных регистрах процессора?
В современных процах одних только регистров общего назначения четыре по 64 бита. Количество перестановок уже немалое, пока оттестируешь хотя бы их уже новый проц выйдет.
iig
21.07.2022 11:05+10Почему не рассматривается вариант что запуск встроенной уязвимости
запускается строго определенным набором битов в разных регистрах
процессора?Должна существовать программа или набор данных для произвольной программы, которая сформирует этот набор битов.
Нужно решить ещё несколько задач:
доставить и запустить эту программу или данные там где нужно
ни в коем случае не доставлять и не запускать ее где не нужно
Если вы можете себе позволить запускать нужные вам программы где вам нужно - зачем вам какие-то закладки, у вас и так god mode on.
Sergeant101
21.07.2022 11:17+1Ну при должном желании доставить программу можно и по сети 220 В. Гугли связь PLC по электрическим сетям, их там несколько видов.
То есть оборудованию не обязательно нужно быть подключенным к какой либо сети передачи данных, достаточно розетки.
Sergeant101
21.07.2022 11:23+6К слову без лишних теорий: иранские центрифуги вывели из строя вирусом, хотя последние небыли в сети.
Вирус им принесли сами же разработчики ПО для центрифуг сами не ведая о том.
Вирус для центрифуг был тайно внедрён в их компьютеры-программаторы.
Вот и думай.
Serge78rus
21.07.2022 15:59+2Не факт, что вирус попал в ПЛК через компьютер, выполняющий роль программатора. Это мог быть и любой АРМ на WinCC.
Русский перевод анализа кода Stuxnet
Serge78rus
21.07.2022 15:34+3То есть оборудованию не обязательно нужно быть подключенным к какой либо сети передачи данных, достаточно розетки.
Нет, розетки не достаточно. В оборудовании еще должен быть PLC модем, а если он не предусмотрен «легально» в данном виде оборудования, то внедрить его скрытно гораздо сложнее, чем мифическую закладку в процессор. Да и куда внедрять? В источник питания до входных фильтров?Sergeant101
21.07.2022 20:38+1Ну фильтр и фильтр, hart же как то функционирует поверх токового интерфейса 4-20 mA при подключении Point-to-Point., а там полюбому хотя бы кондёр стоять какой должен для сглаживания шума.
Да и модем необязательно должен быть размером с коробку ADSL.
Serge78rus
22.07.2022 01:29там полюбому хотя бы кондёр стоять какой должен для сглаживания шума.
Никто же не заставляет фильтровать аналоговый сигнал примо на линии. А после шунта вполне можно поставить ФНЧ (хотя бы простейшую RC цепочку) так, чтобы он не подавлял цифровой ВЧ сигнал в линии. Кстати, hart, насколько помню, даже налагает некоторые ограничения на погонную емкость кабеля.Да и модем необязательно должен быть размером с коробку ADSL.
Да, PLC модем — это всего одна микросхема, но ее обвязка в той части, где подключение к сети 220 В, получается довольно габаритной (если, конечно, соблюдать требования электробезопасности)checkpoint
23.07.2022 04:28+1Все это конечно же работает до ближайшего трансформатора (подстанции), но этого может быть вполне достаточно для утечки.
На счет PLC модема - ничего не нужно. Достаточно модулировать входное напряжение коммутацией большой нагрузки, читай - один мощный полевой транзистор сток и исток которого включены между фазой и нолём. Отслежива фазу напряжения и умело манипулируя затвором такого транзистора можно творить чудеса.
checkpoint
23.07.2022 04:39+1Б$я! Начал размышлять на эту тему и вспомнил, что в каждом правильном импульсном БП присутствует такой транзистор для активной коррекции коэффициента мощности, управляется он с контроллера. В общем, все средства уже давно присутствутю в наших ПК начиная с блока питания! :)
tzlom
21.07.2022 09:51+4что именно надо строго отрицать
Это не означает что у них есть подобные технологии, это способ введения в заблуждение.
Например в статье не рассматривается вариант, что закладки создаёт ASML степпер
Потому что это физически не возможно
Для примера можно посмотреть
Вроде как в статье объяснили реалистичность этого сценария с процессорами, но эксперту по заговорам оно конечно видней.
Armmaster Автор
21.07.2022 11:21+5Безусловно, на любой технический аргумент можно привести возражение из теорий заговора. Но если хотя бы немного понимать, что из себя представляет степпер ASML, сразу становится понятно, что заложить туда функционал для создания "закладок" физически невозможно. Это как заложить функионал для создания закладок в топор, или, например, в инертный газ.
checkpoint
23.07.2022 04:23+1Тут Вы полность неправы. Чем сложнее система, тем больше места для монёвра. Топор и иннертный газ слишком просты (на данном этапе нашего понимания мироутсройства). А вот в бензопилу вполне можно заложить закладку или допустить баг, который оставит пользователя этого простого инструмента без обеих рук. Что касаемо оборудования для производства микросхем, то в их производстве, помимо степпера, участвует еще сотня установок и все они катастрофически сложны. Не стоит сомневаться в том, что рано или поздно найдется пытливый разум который придумает как такое поле для деятельности использовать во благо своего отечества.
Armmaster Автор
23.07.2022 20:22+2Нет, тут я полностью прав. Степпер ASML - это "топор" для производства чипов. Условно, в него вставляется пластина, вставляется фотошаблон, и инженеры используют степпер, чтобы на пластине появилось то, что нарисовано на фотошаблоне. Каким образом вы представляете себе здесь возможность для несанкционированного появления закладки?
Lutra90
21.07.2022 06:27+6Закладку можно активировать при обновлении например, нет?
Armmaster Автор
21.07.2022 11:22+1Это фактически случай с возможностью запустить код на машине. Возможно, конечно.
event1
21.07.2022 16:07+3Можно, но если я могу легально инсталлировать софт на какую-то машину, зачем мне аппаратная закладка? SolarWinds, например, без всяких закладок распространил лишнего два года назад
Wesha
21.07.2022 06:29+6По команде извне. В данном случае опять-таки возникает вопрос – каким образом передать команду на нужный процессор?
Вот, например, сейчас из головы придумал:
в процессор прошиты секретные значения S и D.
изначально счётчик n = 0
если процессор в течение N секунд встретил на шине 64-битное слов (S + D * n), то n = n + 1, иначе n = 0
если n достигло некоего значения — скажем, 256, — то активируется код закладки.
Для активизации закладки посылаем на компьютер-жертву 256 ICMP-пакетов, у которых в payload записаны наши ключевые значения (по одному в пакете). Процессор будет вынужден так или иначе прочитать payload пакетов в память — например, чтобы посчитать их контрольную сумму, — тем самым закладка триггернётся. А то вероятность появления целых 256 "правильных" слов в обычном потоке данных крайне низка.
tzlom
21.07.2022 09:58+5При современной пропускной способности вероятность случайного срабатывания этой закладки стремится к единице. И главный вопрос - что дальше? Ну предположим вы умеете убивать процессор удаленно, но в чем интерес убивать пограничные устройства? Условный Яндекс так положить можно, а вот даже банковскую сферу уже нет.
А делать что-то осмысленное вроде отправки сообщений назад - как это вообще должно быть реализовано? И надо понимать что в любой защищенной среде есть мониторы активности которые ищут не закладки а следы активности вирусов, но с так же хорошо сработают и на активность закладки.
Wesha
21.07.2022 10:07+6При современной пропускной способности вероятность случайного срабатывания этой закладки стремится к единице.
Вы не теоритизируйте, а возьмите в руки калькулятор, ежели в уме не могёте. Я не зря сказал, что числа 64-битные. Даже если процессор выполняет 100 млрд обращений к шине в секунду, окно N — 5 минут, и все числа на шине разные, то за это время он успеет обозреть всего-навсего 2^44-с-копейками чисел. Нет, 64-битные числа, удовлетворяющих условию, за заданное время не могут появиться случайно, тем более в правильном порядке и в нужном количестве.
Sergeant101
21.07.2022 11:02+2Условия с таким же успехом могут быть чередующиеся. Если три пакета подряд не просят условие - сбрасываем счётчик.
iig
21.07.2022 10:45+1Для активизации закладки посылаем на компьютер-жертву 256 ICMP-пакетов
У моего компьютера IP 192.168.2.120. Можете попинговать ;) С вероятностью около 33% интересующий вас компьютер не подключен с интернетам, 33% - за 2 NAT-ами. И я уверен, что аномалии в ICMP траффике те, кому это интересно - детектируют.
Wesha
21.07.2022 19:16+1Вы уж определитесь, как
в том анекдоте
— Рядовой Джонс, даю вводную: слева из-за кустов появляется вьетконговец, ваши действия?
— Пристреливаю его из своей верной М-16, сэр!
— Хорошо, Джонс, новая вводная: слева — пять вьетконговцев, справа восемь вьетконговцев, ваши действия?
— Пристреливаю правых М-16, в левых кидаю две гранаты, сэр!
— Джонс, новая вводная: слева — 20 вьетконговцев, справа 30 вьетконговцев, прямо перед вами танк, ваши действия?
— Кидаю в правых все четыре гранаты, опустошаю в левых оба магазина, достаю из-за плеча базуку и хреначу танк, сэр!
— Хорошо, новая вводная: слева — 80 вьетконговцев, справа 120 вьетконговцев, прямо перед вами 3 танка, в воздухе 2 вражеских вертолёта, ваши действия?
— Сэр, простите, сэр, но я не понял: вы за меня или за вьетконговцев?Я привёл общую идею. Конкретику для каждой хитровыдуманной ситуации на ее основе можете развить, история Stuxnet в помощь.
checkpoint
23.07.2022 04:13Ваши представления о функционировании сети Интернет слишком поверхностны. Возможно для Вас будет откровением тот факт, что Ваш компьютер, даже сидя за NAT-ом регулярно посылает DNS запросы к хоcтам полностью подконтрольных правительству неждужественных стран. Достаточно одной невзрачной записи в DNS ответе от 8.8.8.8, что бы ваш комп накрылся медным тазом.
Wesha
23.07.2022 09:23+2Кстати, напомнило (в 2013 году ещё работало)
$ traceroute 216.81.59.173 traceroute to 216.81.59.173 (216.81.59.173), 64 hops max, 52 byte packets 1 192.168.1.1 (192.168.1.1) 1.599 ms 0.899 ms 0.693 ms 2 * * * 3 201.17.0.24 (201.17.0.24) 13.554 ms 15.223 ms * 4 201.17.0.11 (201.17.0.11) 14.616 ms 14.337 ms 12.423 ms 5 embratel-t0-5-0-0-tacc01.rjo.embratel.net.br (200.209.203.37) 11.323 ms 10.444 ms 9.883 ms 6 ebt-t0-12-2-0-tcore01.rjoen.embratel.net.br (200.244.40.162) 121.094 ms 129.549 ms 124.419 ms 7 ebt-bundle-pos1223-intl03.mianap.embratel.net.br (200.230.220.58) 123.225 ms 123.339 ms 135.035 ms 8 ae7.mia10.ip4.tinet.net (199.168.63.185) 138.100 ms 137.263 ms 140.316 ms 9 xe-9-3-0.atl11.ip4.tinet.net (89.149.186.54) 156.184 ms xe-2-1-0.atl11.ip4.tinet.net (89.149.184.21) 138.867 ms 140.443 ms 10 epik-networks-gw.ip4.tinet.net (77.67.69.158) 139.277 ms 142.052 ms 138.384 ms 11 po0-3.dsr2.atl.epikip.net (216.81.59.2) 265.091 ms 187.443 ms 148.042 ms 12 * * * 13 episode.iv (206.214.251.1) 195.419 ms 203.293 ms 204.416 ms 14 * * a.new.hope (206.214.251.6) 190.368 ms 15 it.is.a.period.of.civil.war (206.214.251.9) 186.485 ms * 201.178 ms 16 rebel.spaceships (206.214.251.14) 198.124 ms 196.950 ms 199.873 ms 17 striking.from.a.hidden.base (206.214.251.17) 190.799 ms 187.185 ms 186.014 ms 18 have.won.their.first.victory (206.214.251.22) 189.309 ms * 186.856 ms 19 against.the.evil.galactic.empire (206.214.251.25) 186.338 ms 187.599 ms 187.299 ms 20 during.the.battle (206.214.251.30) 196.446 ms 186.946 ms 194.876 ms 21 rebel.spies.managed (206.214.251.33) 187.233 ms 189.262 ms 199.052 ms 22 to.steal.secret.plans (206.214.251.38) 197.307 ms 190.922 ms 193.837 ms 23 to.the.empires.ultimate.weapon (206.214.251.41) 184.529 ms 186.058 ms 187.633 ms 24 the.death.star (206.214.251.46) 186.455 ms 189.034 ms 185.790 ms 25 an.armored.space.station (206.214.251.49) 193.579 ms 187.846 ms 195.018 ms 26 with.enough.power.to (206.214.251.54) 185.083 ms 189.343 ms 189.328 ms 27 destroy.an.entire.planet (206.214.251.57) 186.215 ms 189.290 ms 186.109 ms 28 pursued.by.the.empires (206.214.251.62) 195.273 ms 191.793 ms 190.517 ms 29 sinister.agents (206.214.251.65) 187.039 ms 188.804 ms 187.624 ms 30 princess.leia.races.home (206.214.251.70) 186.240 ms 186.882 ms 186.541 ms 31 aboard.her.starship (206.214.251.73) 187.450 ms 187.514 ms 183.118 ms 32 custodian.of.the.stolen.plans (206.214.251.78) 192.317 ms 199.285 ms 190.805 ms 33 * that.can.save.her (206.214.251.81) 191.760 ms 189.075 ms 34 people.and.restore (206.214.251.86) 191.862 ms 187.393 ms 207.627 ms 35 freedom.to.the.galaxy (206.214.251.89) 238.458 ms 182.943 ms * 36 0-------------------0 (206.214.251.94) 207.047 ms 191.910 ms 188.673 ms 37 0------------------0 (206.214.251.97) 186.644 ms 195.268 ms 191.572 ms 38 0-----------------0 (206.214.251.102) 188.439 ms 189.972 ms 193.201 ms 39 0----------------0 (206.214.251.105) 190.922 ms 193.357 ms 188.912 ms 40 0---------------0 (206.214.251.110) 186.507 ms 184.564 ms 191.742 ms 41 0--------------0 (206.214.251.113) 192.090 ms 196.204 ms 198.646 ms 42 0-------------0 (206.214.251.118) 192.050 ms 194.693 ms 193.584 ms 43 0------------0 (206.214.251.121) 210.551 ms 203.319 ms 206.128 ms 44 0-----------0 (206.214.251.126) 196.063 ms 187.018 ms 191.168 ms 45 0----------0 (206.214.251.129) 195.823 ms 186.796 ms 186.539 ms 46 0---------0 (206.214.251.134) 188.513 ms 196.209 ms 193.685 ms 47 0--------0 (206.214.251.137) 189.089 ms 193.633 ms 193.627 ms 48 0-------0 (206.214.251.142) 187.584 ms 189.968 ms 190.705 ms 49 0------0 (206.214.251.145) 187.504 ms 248.454 ms 192.051 ms 50 0-----0 (206.214.251.150) 187.074 ms 193.943 ms 194.519 ms 51 0----0 (206.214.251.153) 189.772 ms 197.175 ms 186.302 ms 52 0---0 (206.214.251.158) 190.615 ms 194.354 ms 194.294 ms 53 0--0 (206.214.251.161) 191.223 ms 191.043 ms 190.195 ms 54 0-0 (206.214.251.166) 190.226 ms 192.666 ms 197.095 ms 55 00 (206.214.251.169) 187.891 ms 187.339 ms 192.929 ms 56 i (206.214.251.174) 191.085 ms 190.565 ms 193.807 ms 57 by.ryan.werber (206.214.251.177) 186.479 ms 185.109 ms 189.946 ms 58 when.ccies.get.bored (206.214.251.182) 203.553 ms 209.289 ms 204.333 ms 59 ccie.38168 (206.214.251.185) 199.093 ms 191.404 ms 188.264 ms 60 * * * 61 * * * 62 * * * 63 * * * 64 * * *
DreamingKitten
23.07.2022 11:15Достаточно одной невзрачной записи в DNS ответе от 8.8.8.8, что бы ваш комп накрылся медным тазом.
Да что вы.
И какого же типа должна быть эта запись?
checkpoint
23.07.2022 15:51Она может быть совершенно любого типа. Я описал направление атаки, если Вы не поняли. Подавляющее большинство дешманских китайских домашных маршрутизаторов настроены на использование гуглового DNS, с которого могут подсунуть все что угодно, при необходимости.
DreamingKitten
23.07.2022 15:53То, что в DNS ответ могут подсунуть всё что угодно -- я согласен.
А вот то, что от DNS ответа «компьютер накроется медным тазом», извините -- бред.
checkpoint
23.07.2022 16:08Моет быть и бред, но на сколько Вы уверены в том, что в ОС Windows установленной на Вашем ПК нет соответствующих закладок ? А в том, что их нет в BIOS-е, в сетевой карте и в микропроцессоре ?
DreamingKitten
23.07.2022 16:17Для вас большим открытием будет то, что винда регулярно проходит различные аудиты и сертификации на соответствие требованиям безопасности? В том числе по исходному коду. И что существует множество групп исследователей, независимых от MS и властей, которые шерстят её бинарный код вдоль и поперек в поисках таких закладок? И находят даже. И публикуют. Но пока что всё найденное проходит по статье «рукожопые программисты» а не «супершпионская закладка». И я не вижу причин, почему эта тенденция должна резко измениться.
geher
23.07.2022 17:26А вы знаете, сколько усилий пришлось приложить этому гениальному программисту, чтобы его закладка при обнаружении выглядела поделием рукожопа?
DreamingKitten
23.07.2022 17:28Вы привлекаете лишние сущности. Оккам недоволен.
geher
23.07.2022 17:51Оккам хороший. Он придумал гениальную отговорку, позволяющую прикрыть любое безобразие по крайней мере на некоторое достаточно длительное время.
Введите в свою работу много лишних сущностей, и все будут делать максимально простые выводы, но не подумают так, как оно было на самом деле.
В данном примере они будут видеть творение рукожопа. В Хемингуэ́е они видели простого психа (считая, что агенты ФБР - это лишняя сущность, в то время как за ним таки реально следили). Ну и так далее в том же духе.
DreamingKitten
23.07.2022 17:57Он не придумал, а открыл. Одно из положений системного анализа.
Нет, не позволяющую. Есть достаточно низкий порог сложности системы\плана\заговора и т.п. выше которого выдать его за простой уже невозможно.
См. лунный заговор, который, если бы его реализовать всерьёз, вышел бы значительно дороже и сложнее, чем на самом деле слетать на Луну.
Wesha
23.07.2022 22:28> чтобы его закладка при обнаружении выглядела поделием рукожопа?
Вы привлекаете лишние сущности. Оккам недоволен.
А вот история, бессердечная щука, говорит, что Оккам может заткнуться.
if ((options == (__WCLONE|__WALL)) && (current->uid = 0)) retval = -EINVAL;
Выглядит как изделие рукожопа. Закладка.
DreamingKitten
23.07.2022 22:54Да ладно? Вы что-то однозначно утверждаете? Не может быть!!!
Так-то malicious intent не доказан. Согласно вашей же логике доказательности, которую вы мне демонстрировали в прошлых наших дискуссиях.
checkpoint
24.07.2022 00:16Любая закладка или backdoor обязаны выглядеть как рукожопа. И с чего Вы взяли, что во время ведения военных действий кто-то кому-то должен что-то доказывать словами, а не делом ?
PS: Извиняюсь, это был комментарий для пользователя DreamingKitten.
checkpoint
24.07.2022 00:21Всеми этими сертификатами можно смело подтереться. Система у которой закрытый исходный код не может быть безопасной не смотря ни на какие сертификаты и аудиты неизвестно кем выполненные и кем финансируемые.
DreamingKitten
23.07.2022 16:19Про CPU смешно. Как вы собрались исполнять на процессоре код закладки, который вам вернул DNS сервер? А без исполнения он её не «увидит». То же и про биос. А сетевая карта комп медным тазом накроет разве что если на неё заряд взрывчатки прикрутить.
iig
23.07.2022 16:33Ну как бы если допустить, что процессор вкрячен модуль, который ожидает появления в памяти или в регистрах определённой последовательности - то да, эту последовательность можно доставить и в DNS-ответе, почему нет. А также в фотографии, письме, пинге..
Только вот незадача - если компов в цепочке доставки несколько - до нужного оно может и не дойти. А если в цепочке есть свои компы - они тоже пострадают. А если этот секрет утечёт - обязательно пострадают.checkpoint
24.07.2022 00:14Описанная Вами "закладка" слишком проста. Но если слегка поразмышлять, то не сложно придумать как сделать её дествие селективным. Я думаю у Вас уже в голове созрела пара вариантов.
randomsimplenumber
23.07.2022 14:16Для этого нужно, чтобы в моем компьютере була запущена программа, которая сделает тот самый запрос. Если программа с вражеской функциональностью уже запущена - нет необходимости в придумывании хитрого ответа на хитрый запрос.
geher
23.07.2022 15:06+1Необходимость в хитром ответе на хитрый запрос есть в том случае, если "вражеская функциональность" должна сработать не сразу при первом включении, а "когда надо", причем когда именно надо, заранее не известно.
Кроме того, хитрый запрос вообще не обязателен. Хитрый ответ может быть нагрузкой ко вполне честному запросу от вашего чистого и проверенного браузера на предмет поиметь IP адрес какого-нибудь сайта "про котиков"..
randomsimplenumber
23.07.2022 15:56Такую сложную и дорогую операцию ставит под угрозу обычный локальный DNS сервер. Доступа к интернету с котиками из того компа, который имеет смысл так сложно выключать - быть не должно.
checkpoint
23.07.2022 16:04К сожалению, локальный DNS от данной атаки не спасет. Разве что какой-то очень специализированный с интеллектуальным анализом и фильтром. Но в этом случае Вы будете сталкиваться с периодической невозможность наблюдать котиков (ложные срабатывани), в какой-то момент Вас это свойство локального DNS достанет и Вы от него откажетесь, либо будете эпизодически его отключать. А значит, в случае необходимости, подвергнитесь атаке.
iig
23.07.2022 16:21локальный DNS от данной атаки не спасет. Разве что какой-то очень специализированный с интеллектуальным анализом и фильтром
Обычный BIND. Настраивается на работу с white listed доменами.
будете сталкиваться с периодической невозможность наблюдать котиков
Зачем наблюдать котиков с компа, управляющего ГЭС или атомным реактором?
Зачем так сложно ломать комп, с помощью которого баба Галя общается по скайпу с внуками? Достаточно прислать документ Перерасчёт_пенсии.пдф.ехе
checkpoint
24.07.2022 00:31Обычный BIND. Настраивается на работу с white listed доменами.
Не помню, что бы в bind-е была фича по фильтрации содержимого ответа. Но я давно туда не заглядывал, может быть и есть. Вот только много Вы знаете умельцев способных оградить себя таким вот локальным DNS ?
Зачем так сложно ломать комп, с помощью которого баба Галя общается по скайпу с внуками
Затем, что баба Галя "два через два" моет полы в диспетчерской на АЭС и иногда, во время дежурства, любит посмотреть фотографии внуков на своём мобильном.
geher
23.07.2022 17:39Все сложнее и проще одновременно. Зловредная операция может быть не по жутко секретному компьютеру а по вполне открытым сервисам, имеющим экономическое или политическое значение. И совсем необязательно ваш компьютер для просмотра котиков в интернете падет сразу от пришествия волшебного слова в легальном ответе на легальный запрос. Вполне возможно, что ваш компьютер (вместе с кучей других, уловивших сигнал) по этому сигналу просто расчехлит злобный код и устроит DDOS или еще чего такого зловредного цели, зашифрованной конкретным вариантом волшебного слова.
iig
23.07.2022 18:49Для DDOS уже есть готовых ботнетов, чисто программных, и значительно проще устроенных. Зачем усложнять безмерно* ** то, что уже делается просто? Оккам недоумевает.
*это я про комбинацию аппаратной и программной закладки.
**процессоров в эксплуатации значительно больше одной модели. Нужно во всех процессорах всех архитектур поддерживать совместимость с самой первой закладкой, иначе не сработает.
Armmaster Автор
21.07.2022 11:26+1Вы просто описывает случай, если у компа есть фактически прямой доступ к глобальной сети. В таком случае, в теории, есть варианты как можно пытаться активировать закладку, но они все крайне сложны и парируются правильной настройкой сетевой защиты. Я пытался это описать, но возможно получилось сумбурно
Ogra
21.07.2022 12:57-3Вот есть какой-то сервер авторизации, в какой-то компании. На этот сервер приходят с логинами и паролями разные-разные юзеры. Сервер доступен из глобальной сети. Отсылаем на этот сервер в качестве пароля некое ключевое значение, за которым процессор следит, вместе с некоторой "полезной нагрузкой" и все - сервер наш, более того, зловредный скрипт можно посадить куда-нибудь в L3 cache, а не на жесткий диск, и все его никак не найти.
С этого сервера уйдут логины-пароли самых разных юзеров, в том числе и тех, которые нам интересны.
edo1h
21.07.2022 13:05+1зловредный скрипт, который делает что-то полезное — сомневаюсь.
а вот просто заблокировать процессор вполне реально
ads83
21.07.2022 13:20Да просто прочитать из памяти этого сервера логины-пароли — уже круто. Или connection string к базе: мы узнали о внутренней инфраструктуре закрытого периметра. А если еще и пароль к базе нашли… Это не 100% компрометация, но очень большой шаг в проникновении.
tzlom
21.07.2022 14:47+8зловредный скрипт можно посадить куда-нибудь в L3 cache
Вы несёте околотехническую чушь, для начала попробуйте проделать всё это программными способами хоть с привилегиями ядра но без запуска программы от ОС, даже задача найти точки входа к ОС уже будет не тривиальной, а вы предлагаете всё это не просто закодить, но ещё и запрятать в топологию процессора.
YuriPanchul
22.07.2022 19:01+2Человек выше написал сумбур, но насчет запрятывания в топологию процессора: добавить на этапе проектирования контроллера L3 кэша некий блочок с конечным автоматом, который сканирует то что пишется в строки кэша и при нахождении некоего паттернта вырубает процессор - абсолютно реально. Это я говорю как человек, которому за дизан блоков процессоров платят зарплату.
tzlom
22.07.2022 19:06Не понятно зачем, все таки выключение это не самое страшное что с ПК происходит.
Ну и как человек разбирающийся, если вам IP блок с такой закладкой дать каковы ваши возможности и шансы узнать что она есть?
iig
22.07.2022 19:14+1Не понятно зачем, все таки выключение это не самое страшное что с ПК происходит.
Ну, если выключить бортовой компьютер истребителя, тот скорее всего упадёт. Правда, истребитель другой стороны тоже может упасть. А
когдаесли про этот секрет узнает другая сторона? А если третья?
YuriPanchul
22.07.2022 19:45+2Если дать такой блок в исходниках на языке описания аппаратуры Verilog, то шанс на нахождение такой закладки есть. В симуляторе SimVision или Verdi я посмотрю сигналы, с которых пишутся всякие критические биты и если найду странные пути (скажем прямо из контроллера L3 кэша к биту а-ля halt в системном регистре, или из кэша данных в fetch unit (который читает из кэша инструкций), то я, двигаясь назад по сигналам (правая мышка find drivers) и иногда вперед по сигналам (правая мышка find loads) определю, в каких случаях это происходит и возможно найду pattern.
Хотя если разделить закладку на кучу шагов, которые спрятать в разных местах процессора, это будет сделать трудно.
Если IP-блок obfuscated (код запутан специальной программой), это сделать на порядок труднее, так как надо установить какие имена в коде соотвествуют каким регистрам состояния например.
Если блок hardened (превращен в граф из стандартных ячеек - размещенных или нет) и при этом блок большой, то это становится совсем суровой задачей. В большом процессоре можно спрятать все что угодно.
То есть на этапе проектирования такое вставить можно. А вот на этапе производства (типа на TSMC) закладки вставить нельзя, так как микросхему можно просто вскрыть и проверить соотвествие GDSII файла, который проектировщик посылал на фабрику - готовой микросхеме.
edo1h
23.07.2022 02:09А вот на этапе производства (типа на TSMC) закладки вставить нельзя, так как микросхему можно просто вскрыть и проверить соотвествие GDSII файла, который проектировщик посылал на фабрику — готовой микросхеме.
хотите сказать, что без электронного микроскопа можно будет что-то разглядеть при техпроцессе, например, 7 нм?
другое дело, что, насколько я понимаю, внедрение такой закладки на этапе производства — это очень нетривиальная задача.
YuriPanchul
23.07.2022 02:52Именно с электронным микроскопом. Сфотографировать послойно, снимая слои кислотой, затем автоматически верифицировать снимки против GDSII файла
checkpoint
23.07.2022 03:59Юрий, на сколько мне известно, "стравливать послойно кислотой" не выйдет - слишком тонкие слои. Только ионное травление, что по сложности сопоставимо с самим производством кристалла.
Aelliari
23.07.2022 08:07+1На уровне найти обрывки слоя металла, для поиска привнесённого из вне слоя, я думаю реально и кислотой. Но это такое, далеко не факт что его привнесут. Вариант встроить что то такое не на этапе разработки, выглядит слишком сложным в реализации. Проще уж продавать "злые" IP блоки, отдавая упрощенную структуру их внутренностей, а разработчики сами их вставят. Вопрос эксплуатации такой закладки, правда, все ещё открыт
iig
21.07.2022 16:35Отсылаем на этот сервер в качестве пароля некое ключевое значение, за которым процессор следит
И у танка отваливается башня. В вашей инфраструктуре точно такие же процессоры; само упоминание шепотом волшебного пароля что то сломает.
С этого сервера уйдут логины-пароли самых разных юзеров
Куда и по какому каналу? В волшебную закладку на этапе проектирования процессора надо впихнуть половину операционной системы, с сетью, сетевыми протоколами, криптографией..
Iwanowsky
23.07.2022 18:23В таком случае, зловредную программу удобнее писать не в Л3-кэш, а в микрокод микропроцессора. Вспомните проблему с уязвимостями Спектр и Мелтдаун, кот. решались в т.ч. обновлением БИОС материнской платы с микрокодом процессора; а нейтрализация этих уязвимостей вызывала в свою очередь замедление работы микропроцессора.
Кроме того, зловредные программы удобней прописывать в БИОС (вспомните, например, скандалы с ноутбуками Леново, на кот. в УЕФИ БИОС фактически были внедрены бэкдоры, позволяющие в т.ч. модифицировать Виндовс, загружать дополнительные модули, и т.д.), или же в прошивки различных гаджетов, планшетов, смартфонов и даже кнопочных телефонов (про это все были статьи и тут на Хабре, в т.ч. про китайских бройлеров).
bogolt
21.07.2022 18:23> парируются правильной настройкой сетевой защиты
а сетевая защита запущена на счетах?
Если уж уходить в теории заговоров то по полной!
YuriPanchul
22.07.2022 18:56+1Я сел за компьютер с желанием написать эквивалент вашего комментария, но прочитал имеющиеся и обнаружил что все уже написано до нас. Спасибо за экономию моих 15 минут!
HardWrMan
21.07.2022 06:37+15Мне вот интересно: а что, кто-то сидит и реверсит современные промышленные процессоры целенаправлено на предмет закладок? Я так говорю, потому что наша группа активно реверсит процессоры 30ти летней давности: 6502 из NES/FC/Dendy и другие чипсеты, в том числе и процессор PlayStation 1, который уже полностью был описан на xHDL а его кремний собирал САПР (в отличии от того же 6502). Все утечки и уязвимости были найдены случайно, вот главный фактор.
vient
21.07.2022 20:41На софтварном уровне, думаю, видели продолжающийся многолетний ресёрч процов Intel от Positive Technologies, где они уже до микрокода дошли. Хардварный реверс вряд ли возможен без гигантских затрат.
saipr
21.07.2022 06:52+2за десятилетия развития кремниевой микроэлектронники не обнаружено НИ ОДНОЙ достоверно доказанной аппартной закладки в массовых промышленных процессорах.
Да, это так. Сам принимал активное участие в организации и проведении спецпроверок как компьютеров. так и сетевого оборудования при создании сети передачи данных МПС России и аппаратных закладок (как и программных) мы не нашли:
Но вот с выводом:Таким образом можно констатировать, что данная угроза является на данный момент чисто теоретической, но не нашедшей (по-крайней мере пока) своё применение на практике.
позволю себе поспорить. Может именно по тому, что такие проверки (проверки на аппаратные закладки) проводятся, к нам и не попадает оборудование с закладками. Это как служба ОТК на предприятии, которая не пропускает брак на прилавок.
Может благодаря именно спецпроверках и отсутствуют у нас аппаратные закладки и, естественно, нашим противникам нечем воспользоваться несмотря на события 24 февраля 2022 года. И, если это так, то это не эфимерный бонус:А снижение риска наличия потенциальных аппаратных закладок – просто приятный, но в реальности достаточно эфимерный бонус.
Armmaster Автор
21.07.2022 11:29+5В масштабах индустрии проверки ФСБ/ФСТЭК - это капля в море. Намного больше в данном направлении работает сама индустрия в целом, т.к. каждый день миллионы и миллионы инженеров создают свои продукты и проводят кросс-верификацию. Если где-то появятся информация о потенциальных угрозах, это сразу станет известно
saipr
21.07.2022 11:32+1Хорошо сказано про индустрию:
В масштабах индустрии проверки ФСБ/ФСТЭК
И сколько за этим всего стоит...
juramehanik
21.07.2022 07:05+15По поводу сказочности идеи внедрения закладок не разработчиком, а где-то посередине техпроцесса вспоминается прекрасная статья с хабра (не смог найти) , где описываются механизмы защиты микросхем от копирования как раз таки на этом уровне. Ну то-есть вы не то что дополнительный транзистор поставить не можете, у вас тупо при копировании фотошаблонов (без доп манипуляций на других шагах) итоговый процессор не заработает.
kahi4
21.07.2022 14:31+3Да там систем защиты то не нужно. Там очень точные тайминги и добавление даже самого мелкого элемента прекрасно их собъет.
j_aleks
21.07.2022 07:15+1В стародавние времена проскочила статья на эту тему с обнаружением ПРАКТИЧЕКОЙ ЗАКЛАДКИ В ПРОЦЕ, автор даже прогу махонькую выложил на предмет сканирования машины, сейчас точно не помню, но там в потоке через проц отлавливалось необходимое "слово" , практически это выглядело так, на пользовательском уровне, усер открывал просто доковксий документ, в котором присутствовала ключевая фраза, и машина "падала", как демонстрационный пример для высокой комиссии...
Автор был любитель покопаться в микрокоде, и обнаружил сие усовершенствование...
А по поводу куда и когда внедрять, предположим крупная гос.компания закупает большой парк компов, пусть даже через подставных лиц, если грамотно сработает вражья разведка, то НАВЕРНЯКА есть запас ЗАРЯЖЕННЫХ процов и прочих компонент, дальше дело техники...
и никакими спецмероприятиями и спецпроверками вы ЭТО не найдете...
vis_inet
21.07.2022 07:37+1А какой это был проц?
j_aleks
21.07.2022 13:28интеловский, я сейчас не помню, 2003-2010 годы, что тогда популярно было
id_potassium_chloride
22.07.2022 01:36Очень похоже на эту историю: https://xakep.ru/2011/12/26/58104/ и её автор поста уже упомянул. Это всё-таки ПО
hollycon
21.07.2022 08:07и никакими спецмероприятиями и спецпроверками вы ЭТО не найдете...
Крупная госкомпания закупает партию процов, инженер из отпуска привозит с Тайваня или с Европы пару таких же камней. Всё это сравнивается автоматизированными методами. Находятся расхождения, которые внимательно реверсятся. Благодарность за полученную закладку лежит в отдельной папочке у безопасников. Не? Так не работает?
screwer
21.07.2022 08:30+6Не работает. Как blackbox можно проверить только совсем тривиальные вещи. Выше уже приводили наглядные примеры, например появление 128 битной "печеньки" среди данных. Вы с blackbox будете варианты перебирать до морковного заговенья.
MrB4el
21.07.2022 08:34+1вы знаете много госкомпаний, способных на такое сравнение и при этом без своего производства? Упомянув Европу и Тайвань это или вымышленная страна ФР, либо Корея. В первом случае проще подкупить человека, а в условиях торгов, где главный критерий это дешевизна, купить санкционочки проверяющим. Во втором же случае критический сектор вполне может жить на своих или партнёрских процах.
Есть еще вариант с Ираном, но напомнить, что там с информационными системами АЭС случилось?
ads83
21.07.2022 09:00+7Как я понимаю, есть сложности с
- послойным сканированием такой сложной штуки, как процессор. Просто чтобы получить изображение с точностью 3-5-10 нм на площади 10^7х2*10^7 нм, просто электронного микроскопа не хватит, а там еще десятки слоев, которые нужно надежно различить.
- анализом, триллионов транзисторов. Системы, позволяющие из картинки построить логическую схему, по сложности не уступают системам, позволяющим из схемы построить изображение. Могу ошибаться, но они закрыты и сложны.
- Расхождения могут быть вызваны как микроапдейтами, так и микро-браком. Вот эта сотня транзисторов на границе кэша — это закладка или 20 байт битой памяти? А может, погрешность съемки?
Mogwaika
21.07.2022 15:42+1Чтоб упал софт от определённой фразы можно найти багу в софте или даже баг в железе, не обязательно закладку.
JerleShannara
21.07.2022 18:06Это была не аппаратная закладка в процессоре, это была комбинация гипервизора, который шел в левой прошивке и всякого ME/AMT. И демка(которую сделал автор на базе этого тандема) падала по попаданию в поток данных фразы «ГАЗПРОМ СТОП».
Т.Е.Вами описана комбинация процессор+материнская плата и закладка в прошивке.dartraiden
21.07.2022 19:36+1Да где ж про это можно почитать? В идеале ещё и с дампом прошивки, а то я тоже могу сказать, что если на определенной кастомной ОС (которую я вам не покажу) в новом редакторе Хабра набрать определенный текст, то вылезет розовый единорог.
JerleShannara
21.07.2022 20:16Увы, источник та самая статья на хакере. А про реальность таковой атаки сейчас — особо проблем нет, особенно если ME/PSP задействовать выйдет, но опять же, это будет не аппаратная, а программная закладка. И, в упрощенном варианте, это вполне можно реализовать даже без ME/PSP/Гипервизоров всяких — достаточно старого доброго SMM. Наводку дам простую — поддержка USB клавиатуры и мышки в legacy режиме, когда те прикидываются PS/2 (и оно даже прекрасно работает) реализована через обработчик SMM, который перехватывает обращения к портам ввода-вывода мыши и клавиатуры. Достаточно умения реверса и знания структуры прошивки биоса, а далее в этот обработчик уже можно добавить стирание флешки биоса (защита от записи кстати тоже там свои когти в SMM хранила раньше) по последовательному появлению сканкодов нужных клавиш. А ведь можно подвесить SMM на обращение к портам SATA контроллера (правда тормоза знатные будут). В случае, если вам вдруг как-то попали все ключи интела и вся документация по AMT/ME — вы спокойно сможете уже написать анализатор памяти, который будет следить за выбранной областью и производить соответствующие действия по появлению там какой-то информации.
DMGarikk
22.07.2022 00:58История с падающей ос и вордом, насколько я помню имеет корни в модуле проверки орфографии… а что следом падала ос это ещё к тому что начало нулевых — время жизни win9x которая от фаз Луны падала
Но вообще, учитывая замудренные пути текста в текстовых процессорах… оч интересно было бы посмотреть как работает аппаратная закладка на текс вордовского документа если он в какойенить кои8 или utf64… или вообще 866
Radisto
21.07.2022 07:29+10Похоже, аппаратную закладку лучше делать не в процессоре общего назначения, а в узкоспециализированных контроллерах, обрабатывающих внешние сигналы: сетевые, радио, навигация
Javian
21.07.2022 09:43+3Шпионские гаджеты от АНБ https://habr.com/ru/post/209746/
FIREWALK аппаратная сетевая закладка, способная пассивно собирать трафик сети Gigabit Ethernet, а также осуществлять активные инъекции в Ethernet пакеты целевой сети. Позволяет создавать VPN туннель между целевой сетью и центром. Возможно установление беспроводной коммуникации с другими HOWLERMONKEY-совместимыми устройствами. Исполнение данной закладки аналогично COTTONMOUTH-III, такой же блок разъемов(RJ45 и два USB) на шасси
Armmaster Автор
21.07.2022 11:32А ещё проще просто поставить спец оборудование в нужные точки
anka007
21.07.2022 13:48+2Зависит от объекта. Определение места и доступа туда может быть не самым простым.
Криптота: зафигачить что-то 5нм мелкое в бюджетный чип на 500нм. Да, цена вместо 1 доллара будет 100 долларов, но если знать, что этот заказ потом воякам пойдет, то может оказаться и выгодно.
victor_1212
23.07.2022 14:41> просто поставить спец оборудование в нужные точки
возможно не везде, но во многих точках стоит, типа facebook, twitter и пр. позволяет перехватить запрос на нужную страницу, и добавить нечто, чего там не было, полная функциональность неизвестна, но вероятно может исполняться на host и например просканировать файлы,
конечно по открытым источникам, типа секрет полишинеля, кстати в индии этим тоже интересуются, в отношении китая особенно
srg27y
21.07.2022 07:35-1очевідно, что с голой апаратурой ужэ давно нікто не работает, а все закладкі і уязвімості гораздо прошчэ реалізовать програмно. такчто статья в определенной степені маніпуляцыя понятіямі.
FuzzyWorm
21.07.2022 08:20+5Компьютер не подключен к глобальной сети напрямую. В таком случае, активировать закладку с помощью запуска нужной последовательности команд будет невозможно
Где-то за кадром захихикали авторы вируса Stuxnet.
Armmaster Автор
21.07.2022 11:35+6Про Stuxnet в статье написано.
А так, если вы получили физический доступ к компу, так можно его и молотком стукнуть. Смысл статьи как раз в том, чтобы описать логику, почему непосредственно в кремнии пилить закладки просто малоразумно
Yuribtr
21.07.2022 08:22+14Так зачем тогда нам отечественные процесссоры? Как минимум, для 2-х вполне очевидных целей:
Информационная безопасность. Только не в виде избавления от мифических аппаратных закладок, а в виде физического доступа к минимально современным процессорам. Актуальность данной проблемы в нынешних условиях, я думаю, всем более чем очевидна. В деревянных счетах точно нет закладок, но вряд ли это тот результат, который мы хотели бы достичь.
Создание развитой технологической отрасли, что приводит к повышению технологического уровня страны, уровня её экономического развития, и как следствие, наличие возможности продолжать конкурировать в области разработки новых технологий.
Думаю в этой стране смело можно добавить и третью цель под номером 1 - распил денег.
А если серьезно, то как мне представляется - что утверждения про закладки в процессорах, которми наводнили эфир высказывания политиков, это типичная теория заговора, призванная сыграть прежде всего на чувствах малообразованных людей. Тем не менее еще в 2016 году ученый описал вероятность раскрытия теорий заговора, в зависимости от количества людей, знающих про заговор. Согласно его выкладок, за десятки лет существования современных CPU заговор должен был бы уже раскрыться с учетом количества людей, вовлеченных в их внедрение.leok
21.07.2022 08:52+6Оба эти фактора имели место и озвучивались еще до начала войны. Особого прогресса незаметно было. Надежда, что получится теперь, когда введены санкции, мне непонятна.
Armmaster Автор
21.07.2022 11:37+3Я думаю, как раз муссирование пугалок про закладки наиболее способствует распилу денег
screwer
21.07.2022 08:24+10Здесь особенно стоит оговориться, что мы не говорим о злонамеренном системном ПО или прошивках, которые могут быть изменены после производства процессора.
А почему ? Учитывая безумную сложность современных устройств, где даже тривиальная периферия, типа COM порта, требует подгрузки бинарного блоба в хардварь (привет Qualcomm!).
У интела-АМД есть микрокод. Только-только разобрались с шифрованием начали его изучение. Для интела.
В broadcomm WiFi/BT чипах есть realtime процессор D11. Насколько я знаю - его реверс остановился на создании дизассемблера. Что там накожено в сборщике пакетов из PHY - да кто ж его знает, и смысла разбирать дальше уже особого нет, из-за морального устаревания самих чипов.
(производителем уже конечных устройств или просто любым пользователем)
Пользователю давно закручивают гайки. Должно быть подписано производителем (причём часто - производителем железа). А то и пошифровано. Покажите мне расшифрованные прошивки SPU модулей. Я очень желаю на них посмотреть.
Все эти Spectre, Meltdown, Drammer - это закладки или нет ?
Вот ещё пара ссылок:
noanswer
21.07.2022 10:58+4все ждал когда кто-нибудь упомянет Spectre, Meltdown, Drammer ... собственно почему закладка не моджет иметь форму "дыры", ошибки проектирования архитектуры?
iig
21.07.2022 11:09+3почему закладка не моджет иметь форму "дыры
Допустим, Министерство обороны Океании попросило сделать Spectre чтобы кошмарить Остазию. Но в Океании точно такие же компьютеры, с теми же уязвимостями?
ads83
21.07.2022 11:54+4- Если в Остазии всего два человека, которые теоретически способны найти Spectre, причем один работает над архитектурой для армии Остазии, а второй по контракту пилит совместный с Океанией проект — то Океания может не бояться что Остазия найдет уязвимость.
- Если Океания знает про уязвимость, то она также знает и о том, как ее прикрыть, и как определить атаку на эту уязвимость. (Тот же Spectre можно нивелировать на уровне ОС, как пример). Правительство сидит на защищенной ОС, а если кто-то захочет ломануть самую богатую фирму Океании — его засекут и познакомятся.
geher
21.07.2022 19:00Зачем "попросило сделать"? Уязвимость могла получится совершенно случайно. Или осознанно забили на известный побочный эффект полезной функции (возможность использования особенностей системы предсказания аетвлений или недокументированная суперкоманда для отладки процессора). Но после обнаружения "кем надо" и настоятельной просьбы "пока не исправлять" она благополучно превращается в закладку, пребывая в сем статусе до обнаружения кем-то еще с обнародованием факта. Та же логика может работать и с софтом.
Armmaster Автор
21.07.2022 11:41+2Spectre, Meltdown и т.д. это, во-первых, не закладки, а ошибки. Всё же при определённом уровне понимания процессорной тематики, это достаточно очевидно. Но всё написанное в статье абсолютно применимо к Spectre/Meltdown. Примите, что это аппаратные закладки, заложенные Интелом в процы. Как их использовать, если нет возможности прямого запуска кода не машине? У нас практически вся инфраструктура в России (да что в России - в мире) построена на процах,где есть Spectre/Meltdown. Но что-то никаких массовых проблем не наблюдается.
yatakoy
21.07.2022 12:01+2Но что-то никаких массовых проблем не наблюдается.
Или просто время не пришло)
ads83
21.07.2022 12:27+3Но что-то никаких массовых проблем не наблюдается.
Так это же уязвимости для тихого воровства данных. Если эта закладка сделана АНБ в 2006-2010, обнаружена проблема в 2018, то откуда вы знаете сколько паролей АНБ утащила в 2015? Это даже в ретроспективе не узнать, если только не хранить весь трафик за 5 лет. Со всех серверов.
Опять же, условному АНБ интересны пара паролей к админкам 3-5 сайтов и паролю отдельно взятого сенатора. Никакой массовости!Как их использовать, если нет возможности прямого запуска кода не машине?
Я могу придумать (например) атаку на дата-центр, где хостится сервер условной "кремлевской поликлиники". Сначала угнали секрет веб-сервера, с его помощью вошли в админ-панель, оттуда добрались до консоли БД и выкачали кто из депутатов чем болеет. У нас есть компромат и частичное расписание охраняемых людей!
Самая мякотка в том, что вектор первоначальной атаки раскрыт не будет. И можно доработать схему до скрытого вытаскивания данных наружу.
Все-таки не зря с этими уязвимостями так носились и срочно латали.Armmaster Автор
21.07.2022 12:49Для того, чтобы можно было добраться до БД кремлевской поликлиники, вам нужно чтобы эта БД, или веб сервер с админкой физически хостился на том же сервере, где вы можете арендовать виртуалку с возможностью запустить свой код и осуществить атаку. Так обычно не делают, и соответственно, если хочется исключить такого рода проблемы, то просто правильная организация инфраструктуры даёт нужный результат. Я уж не говорю про то, что в реальности использовать Spectre/Meltdown на реальном серваке, где работает куча сервисов да ещё и под стэком виртуализации, та ещё задачка. Не уверен, что это вообще реалистично. Просто надо понимать, что безопасники, в силу специфики своей работы, всегда гиперболизируют угрозы. Если же более адекватно смотреть на все это, то Spectre/Meltdown выглядят далеко не так страшно, как это пытаются выставить. Каждый день что-то ломают с помощью банальнейших уязвимостей в софте. А реальные утечки из-за Spectre/Meltdown я сходу не припомню. В любом случае, они пренебрежимо малы, по сравнению с софтварными взломами. Просто в реальности их крайне сложно эксплуатировать
ads83
21.07.2022 13:53Соглашусь: их сложно эксплуатировать. Признаюсь, я не пентестер. Но по тому, что читал (да на Хабре немало разборов) — каждая, малейшая зацепка помогает раскрутиться и продвинуться дальше.
Возможность на каком-то этапе прочитать пароль, RSA секрет или даже логин админа — довольно ценна.Опять же, утечки именно из-за этих уязвимостей доказать нереально. Изменений в атакованной системе не остается. Мы просто читаем данные.
Довод "раз за 15 лет не было утечек из АНБ об эксплуатации — значит не было" мне кажется откровенно слабым. Вспомните историю про швейцарские шифромашинки: прошло 40 лет до момента раскрытия.
allter
21.07.2022 12:43Spectre, Meltdown и т.д. это, во-первых, не закладки, а ошибки.
Классные такие "ошибки". Мне кажется, что когда обезьяна вынимает чеку из гранаты, которую ей вручили - она не ошибается (точнее, нельзя сказать, что "она ошибается"). Она просто "не думает". Именно это, если верить официальной информации, произошло при разработке фич, благодаря которым стали возможны подобные уязвимости.
Вопрос "ошибка это или уязвимость" требует анализа действий тех, кто поручал/контролировал такую разработку (аналогично тому, как расследование гипотетического инцидента с обезьяной подразумевает нахождение того, кто вручил ей эту гранату и выяснение его мотивов).
Как их использовать, если нет возможности прямого запуска кода не машине?
Для Spectre/Meltdown прямого запуска кода и не требовалось. Они эксплуатировались даже через javascript в браузере.
У нас практически вся инфраструктура в России (да что в России - в мире) построена на процах,где есть Spectre/Meltdown. Но что-то никаких массовых проблем не наблюдается.
Во всех современных ОС уязвимость закрыта на уровне ядер. Если где-то в критичных отраслях используются старые ядра или при загрузке передаётся флаг, отключающий фикс - то они ССЗБ.
Кстати, заодно отвечу на
Intel ME, Intel AMT - Не вдаваясь в рассуждения о том, насколько данные технологии безопасны, можно просто констатировать, что они реализованы на базе отдельного процессора на материнской плате и не являются частью CPU.
А современные ЦП разве могут нормально работать без технологий типа ME? Я вот тут разбирался с багом сетевой карты - фикс был как раз по направлению ME.
MadridianFox
21.07.2022 08:31+8Автор даёт свою классификацию закладок и способов их появления, и далее оценивает реализуемость и применимость своих же идей.
Brak0del
21.07.2022 09:02+1Но ведь не свою, там же Техранипур и К в подписи к таксономии, известные ребята, занимаются этим уже десятки лет, профессура.
ads83
21.07.2022 10:13+1Но ведь после приведения таксономии от известных ребят идет пассаж
Чтобы упростить вопрос, давайте за возможные варианты срабатывания аппартной закладки примем два
, отбрасывая еще два без сильных аргументов. А при описании способов появления ссылок на уважаемых людей я что-то не заметил.
Armmaster Автор
21.07.2022 11:44И что изменится в статье, если мы начнём рассматривать вариант, что процессор в случае активации закладки сбросит частоту с 2ГГц до 1ГГц? Ну считайте что он у вас просто сгорит, это куда более сильное последствие.
ads83
21.07.2022 12:59+1Если процессор сгорит — его заменят, это материальный урон. Ценой в одну железку, которая еще и на гарантии.
А если система начинает тормозить время от времени, то это повод разбираться. Достанется программистам бэкенда (после вашего обновления программа тормозит), через пару итераций сисадмины раскопают что дело в железной машине, будут проверять все подряд (память, диск, процессор). Искать плавающий баг в своей зоне ответственности, когда проблема где-то рядом — отнимает кучу нервов и времени. Вместо полезной работы сотни человеко-часов будут слиты на поиск черной кошки в черной комнате. Если пересчитать в деньгах, эффект от замедления может быть гораздо сильнее. Эффект от перекладывания не своей вины на непричастную шею оценить вовсе затруднительно.
Да даже в магазине: если касса сломалась, оператор перейдет к другой. А если тормозит — кассир ждет и очередь копится. А если очередь — в диспетчерской аэропорта или команд для центрифуг обогащения урана?
И так как объективных причин жертва не знает, инциденты спишутся на случайность и эффективных мер противодействия (взять процессор из другой партии, например) не будет.А еще редкая, раз в сутки, единичная несанкционированная запись в память может ломать длительные (2-3 дня) расчеты. И хорошо если это будет ясно на этапе расчетов, а не когда новая лопатка турбины сделает новое окно.
И так как "неисправность" редка и (псевдо)случайна, причину установят ой как нескоро.JerleShannara
21.07.2022 18:12Если у вас процессор(ну ладно, микроконтроллер) сгорит в ракете, которая летит, чтобы попасть в эпицентр наиболее вероятному противнику, как по гарантии менять будете?
le2
21.07.2022 08:33+12Автор сделал соломенное чучело и сам его побил.
У меня был случай когда вендор сменил первичный загрузчик процессора в ревизии «Б». NAND-флеш, которую мы выбрали перестала определяться, пришлось срочно менять на расово верный Micron.
Прошивки в однократной памяти можно поставлять в разные регионы мира разные.
Не секрет что большинство сложных микросхем не являются аппаратной логикой, а представляют собой микроконтроллер с однократной памятью.
coderaider
21.07.2022 08:56+9известная цитата действующего инженера:
"— Отрицать техническую возможность создания таких «закладок» может только человек, который никогда не видел исходный код процессора на языке описания аппаратуры и не имеет представления о маршруте проектирования микросхем. Например, можно спроектировать небольшой блок внутри процессора — конечный автомат, который будет отслеживать данные в регистрах общего назначения или буферах при записи в кэш. При попадании туда байтов ключевой фразы — например, из текста полученного электронного письма — блок может останавливать процессор.Такой аппаратный блок принципиально нельзя увидеть программными средствами, его не сможет найти никакой антивирус. Шифрование не поможет, потому что на регистры или строки кэша всё придёт в уже расшифрованном виде. Можно ли сфотографировать слои чипа электронным микроскопом и вручную искать несколько тысяч вредоносных транзисторов среди миллиарда других? Это поиск иглы в стоге сена без магнита.
Конечно, можно надеяться, что производители процессоров не будут таким заниматься. Но службы безопасности принимают в расчёт только технические возможности, а не субъективное доверие к тем или иным компаниям. И не только службы безопасности. Вполне возможно, что интерес «Росатома» к МЦСТ частично объясняется тем, что RTL «Эльбруса» написан в России."
Sau
21.07.2022 10:51+3При попадании туда байтов ключевой фразы — например, из текста
полученного электронного письма — блок может останавливать процессорВо-первых чтобы в регистры пришло какое-то значение нужно знать какая программа их туда записывает. Думаю OpenOffice и Word разных версий при отображении одного и того же документа исполняют разный код и записывают разные данные в регистры.
Шифрование не поможет, потому что на регистры или строки кэша всё придёт в уже расшифрованном виде
Шифрование поможет, потому что можно производить операции над зашифрованными ячейками памяти: допустим надо посчитать на уязвимом процессоре значение выражения 8 * (3 + 7) - (13 - 3) * 7, и закладка сработает на число 10 в любом регистре. Просто добавляем 100 к каждому значению переменной ещё при получении задания уязвимым процессором. От результата берём остаток от деления на 100 уже вне уязвимого процессора. Готово, вычислили значение на уязвимом процессоре не затронув уязвимость. Конечно, это не поможет если каждый процессор уязвим.
вручную искать несколько тысяч вредоносных транзисторов
Думаю транзисторы формируют собой понятные блоки типа триггеров, регистров, шин, АЛУ и прочих стандартных элементов, не нужно исследовать каждый транзистор. Только нетипичные блоки.
ads83
21.07.2022 11:25+3допустим надо посчитать на уязвимом процессоре значение выражения 8 (3 + 7) — (13 — 3) 7, и закладка сработает на число 10 в любом регистре. Просто добавляем 100 к каждому значению переменной ещё при получении задания уязвимым процессором.
… и на этапе вычисления (113-103) мы получим ту самую десятку. В более сложных примерах убедиться, что "шифрование" действительно работает, еще сложнее. Кроме того, оно ведь должно защищать от неизвестных закладок, так что заранее неизвестно, чего надо избегать. А вдруг закладка как раз на 113 сработает?
Думаю транзисторы формируют собой понятные блоки типа триггеров, регистров, шин, АЛУ и прочих стандартных элементов, не нужно исследовать каждый транзистор. Только нетипичные блоки
На более верхнем уровне это не поможет. Пример: в куске программы есть типичные операции сложения-умножения, проблем на первый взгляд нет. Но с их помощью можно через переполнение сломать логику программы. Чтобы этого избежать, нужен более глобальный анализ. Для этого нужно иметь компетенции. Возвращаясь к процессорам — для анализа надо иметь компетенции, сравнимые с проектированием процессора.
Хотя, пожалуй, даже более сильные компетенции. Насколько знаю, на любом уровне обратная разработка сложнее и затратнее прямой.Sau
21.07.2022 11:51и на этапе вычисления (113-103) мы получим ту самую десятку
Не самый удачный пример получился. Но суть остаётся прежней, можно вычислить что-то на уязвимом процессоре не затронув уязвимость (если знать о ней). При этом как со шпионами, как только о уязвимости стало известно, можно её обойти или использовать в собственных интересах.
Пример: в куске программы есть типичные операции сложения-умножения, проблем на первый взгляд нет. Но с их помощью можно через переполнение сломать логику программы.
На хабре есть статья про Тьюринг-полноту, там упоминается подобное:
MMU тасует RAM, чтобы упростить программирование. Если программа правильно особым образом присвоит адреса в памяти, то сможет выполнять произвольные вычисления на MMU с помощью исключений page-faults (комментарии; научная работа), вообще не запуская сам код. Механизм исключений MMU превращается в компьютер с одной инструкцией.
Возвращаясь к процессорам — для анализа надо иметь компетенции, сравнимые с проектированием процессора.
Сделать хорошую закладку ресурсозатратно. Этот ресурс можно было бы потратить на улучшение процессора без закладки. Я не знаю что было бы выгоднее.
ads83
21.07.2022 13:06+3Но суть остаётся прежней, можно вычислить что-то на уязвимом процессоре не затронув уязвимость (если знать о ней). При этом как со шпионами, как только о уязвимости стало известно, можно её обойти или использовать в собственных интересах.
Абсолютно согласен! Есть окно, когда уязвимость неизвестна и приносит пользу создавшему, и есть окно когда уязвимость обнаружена жертвой, но еще не обнародована — и может принести пользу жертве. Если компетенции жертвы гораздо слабее, то первое окно может быть в разы больше второго.
Сделать хорошую закладку ресурсозатратно. Этот ресурс можно было бы потратить на улучшение процессора без закладки. Я не знаю что было бы выгоднее.
С точки зрения дохода компании — выгоднее, возможно, улучшать. С точки зрения работника, получающего кратно большую зарплату в условном Моссаде — закладка выгоднее. С точки зрения начальника работника — закрыть глаза выгоднее, чем огрести проблемы от Моссада.
K0styan
21.07.2022 11:07+6А вот вам мнение бывшего инженера, который хоть и отстал немного, но всё ж таки неплохо понимает, как современная цифра делается. Есть 2 противовесных фактора:
Триггер не может быть слишком простым. Это не может быть просто "число в регистре", ложное срабатывание будет в первую же секунду после старта. Должна быть именно сложная последовательность событий. Это, кстати, дополнительно увеличивает сложность детектора.
Поверх кремния наворочен высоченный стек софта. Микрокод, ОС, драйверы, прикладное ПО. Нет никакой гарантии, что отправленная триггерная цепочка доедет до регистров в неизменённом виде. Те же сетевые пакеты могут приехать в совершенно произвольном порядке. Планировщик ОС может невовремя переключить процессы и т.д.
Да, если у злоумышленника есть полный контроль как над изготовлением процессора, минимум с RTL уровня, так и над софтом, то он может соорудить закладку и поддержать её по всему стеку. Но тогда можно с кремнием вообще не заморачиваться, чисто софтовые истории на порядки дешевле и гибче.
evtomax
21.07.2022 16:01+1Строки текста, каким бы сложным стек не был, так или иначе соберутся в непрерывный набор определённых байтов в памяти, который с высокой вероятностью будет обработан процессором последовательно. Если есть хоть какая-то возможность передать нужную строку на сервер, то можно запустить соответствующий триггер. Придумать ещё парочку аналогичных трюков, и вот у нас сложный триггер, который скорее всего никогда не сработает случайно.
event1
21.07.2022 16:31Да, если у злоумышленника есть полный контроль как над изготовлением процессора, минимум с RTL уровня, так и над софтом, то он может соорудить закладку и поддержать её по всему стеку.
Скажем, если злоумышленника интересует работа по площадям, то можно сделать с одной стороны волшебную последовательность для харакири процессора, а с другой стороны — вирус, который будет эту последовательность активировать. Тогда не нужно держать весь стек, достаточно "попросить" разработчика процессора добавить нужную функциональность и написать вирус с соответствующей полезной нагрузкой. Учитывая, что у программистов в форме, судя по всему, на руках всегда есть парочка 0-day, задача вполне посильная.
С другой стороны ценность такой акции будет ограничена. Самые интересные сегменты скорее всего неплохо защищены от попадания вирусов. Кроме того, после массового харакири процессоров скорее всего будет проведено расследование с очевидными результатами для производителя процессоров.
Armmaster Автор
21.07.2022 11:46В статье не отрицается технической возможности создания закладок, жаль, что вы дальше заголовка не продвинулись.
Moraiatw
21.07.2022 09:00+1Что насчет Intel ME?
Эта технология работает в сетях Ethernet и может предоставлять доступ даже к выключенному компьютеру. Может работать в контексте VLAN, так что сетевой траффик не увидеть с хостовой ОС.
BiosUefi
21.07.2022 11:10У автора они странным образом не внутри цпу)))
booyakacrew
21.07.2022 14:13у intel me свой сопроцессор.
JerleShannara
21.07.2022 18:15Который имеет доступ почти ко всему. А у AMD, к примеру, их ex-PSP вообще настраивает память основного процессора.
Gryphon88
22.07.2022 12:24Троянский слон, идущий в качестве обязательно нагрузки, но всех всё устраивает. С такими подходами к оформлению, документации и контролю можно пару грамм взрывчатки и радиомодуль на платы ставить, описывать как Experimental remote shutdown security tool и все равно будут продажи и не будет ответственности.
ads83
21.07.2022 09:16+3Предположите на минуточку, что какой-нибудь Meltdown или Spectre — это как раз бэкдор, замаскированный под уязвимость.
ВсеБольшинство ваших рассуждений таким примером опровергаются.- Массово внедрено
- Компания-разработчик не разорилась и не потеряла существенную долю рынка
- Процессор "передает данные по запросу" в вашей классификации.
- Это не единственные уязвимости, обнаруженные за последние 15 лет в процессорах.
Вы правы в том, что нет доказанного умысла. Однако отсутствие этого умысла в ближайшие лет 20 доказать вряд ли получится.
Armmaster Автор
21.07.2022 11:48Я уже выше вам ответил - ну предположите и перечитайте статью в таком предположении. В ней ничего не изменится.
ads83
21.07.2022 13:13+3Этот пример опровергает все ваши тезисы из раздела "Бизнес-аспекты". Ни репутационные, ни юридические, ни аспекты безопасности не ударили Интел сколько-нибудь сильно. Пожали плечами "ну да, бывает", ухудшили производительность, исправили в следующих версях. Были ли другие последствия?
Armmaster Автор
21.07.2022 13:29+1Вы не совсем понимаете термин "риски", как мне кажется, это раз. Во-вторых, они потому особо и не ударили( хотя экономические потери были, тк потребовалось тратить ресурсы на доработку процов), что в реальности спецы в индустрии прекрасно понимают, что это очередной полу-баг, который по большому счету какой то мега угрозой не является, хотя и неприятен. То, что вам кажется иначе, это уже совсем другой вопрос
ads83
21.07.2022 14:31+1Буду рад услышать ваше определение "рисков" :-)
Я вижу, что по одной уязвимости заведен целый ряд ошибок, некоторые с оценкой Medium. С одной стороны — да, это не ужас-пожар, а с другой — да, он неприятен и для его исправления потребовались ресурсы.
Были ли эти расходы на доработку кучи ОС и другого ПО стребованы с Интела? Насколько я знаю, нет.
Много ли Интел оправдывался, что допустил такое?Почему же вы тогда говорите, что если аппаратные проблемы будут найдены, это принесет бизнес-риски? Пока компании (не только Интел, похожее есть и у Apple и AMD) могут говорить "это не фича, это баг" — рисков они не несут. Независимо от серьезности бага. Вы согласны с этим?
event1
21.07.2022 16:35не ударили именно потому, что никто не доказал, что это закладка. Представьте, что кто-то докажет наличие закладки в процессорах интел и какая-нибудь крупная страна (например, Китай) полностью откажется от продукции Интел в госсекторе. И в стратегических областях. Или вообще везде. Китайски рынок для Интела — 20 ярдов. Будет обидно потерять.
LinearLeopard
22.07.2022 10:35+1Ни репутационные, ни юридические, ни аспекты безопасности не ударили Интел сколько-нибудь сильно. Пожали плечами «ну да, бывает», ухудшили производительность, исправили в следующих версях. Были ли другие последствия?
Доля интела упала, apple отказался от их процессоров почти совсем, всякие государства и компании проявляют интерес к RISC-V. Возможно, определённую роль в этих событиях сыграли в том числе и Meltdown со Spectre.
welga
21.07.2022 09:29+1Добавлю к экономическим причинам. Не мог найти сколько процессоров выпускается в год, но думаю 1 млрд. вполне реальная цифра. При таком количестве выпускаемых процессоров трудно настроить нужную логистику с отслеживанием определенной партии процессоров. Так же надо учитывать, что ежегодно выбрасывается такое же количество процессоров, сколько и выпущено. Жизнь процессора не долговечна. Вот и решайте насколько эффективна аппаратная закладка.
Мое мнение аппаратная закладка лишена смысла, программные закладки более выгодны.
ads83
21.07.2022 09:59+1Это если делать специальную партию. Но можно сделать закладку, которая будет работать на всех процессорах. Это даже выгодно с точки зрения секретности: никакие контрразведчики не вычислят, что конкретная партия отличается от обычных процессоров. Не надо прикладывать усилий, чтобы подсунуть цели нужную партию.
Акогдаесли проблему обнаружат, дать награду "за выявленную уязвимость". И пусть кто-нибудь докажет что это сделано специально.iig
21.07.2022 10:50Но можно сделать закладку, которая будет работать на всех процессорах.
Прямо сюжет для нового Джеймса Бонда - в руки плохого парня попал ключ от универсальной закладки для всех процессоров. Кто, будучи в здравом уме, будет планировать что-то подобное?
ads83
21.07.2022 11:38+1Уже упоминаемые мной Meltdown и Spectre есть не просто на всех процессорах одной модели. Эти уязвимости присутствуют в нескольких линейках процессоров. Прошло чуть ли не 10 лет с появления до обнаружения.
А теперь предположите, что кто-то придумал такую уязвимость. Если вам кажется это невероятным, почитайте про соревнование на Си "замаскировать уязвимость под баг". А потом про то, как европейская фирма поставляла шифровальные машинки с уязвимостью, так как это заказали спецслужбы США. Это сложно, но не невозможно.
gxcreator
21.07.2022 14:35+10day и так часто попадают в плохие руки. Отличие 0day от закладки в некотором классе устройств - это присутствие у закладки теоретических целей и желания спрятать факт компрометации.
Факты наличия закладок общего назначения есть, самый простой и глупый - скрытые учетки в китайских камерах наблюдения(которые естественно не только камеры, а линукс-хосты с доступом в сеть хехе).
Armmaster Автор
21.07.2022 11:49+2Да, совершенно верно. Собственно, смысл статьи в одном предложении как раз : " аппаратная закладка лишена смысла, программные закладки более выгодны."
Brak0del
21.07.2022 09:30+4Известные заблуждения, принятые считать «аппартными закладками в процессорах»
А что насчёт сирийских радаров, которые отключились перед атакой израильских самолётов, и в которых предположительно сработал kill-switch? Это ведь, пожалуй, самая первая страшилка, с которой начинают тему про аппаратные трояны. Кстати, по ссылке упоминается и наличие kill-switch-а у европейских чип-вендоров, работающих на военку.
за десятилетия развития кремниевой микроэлектронники не обнаружено НИ ОДНОЙ достоверно доказанной аппартной закладки в массовых промышленных процессорах. Таким образом можно констатировать, что данная угроза является на данный момент чисто теоретической, но не нашедшей (по-крайней мере пока) своё применение на практике. Попробуем разобраться, почему так происходит.
Так-то и достоверное обнаружение таких вещей задача абсолютно нетривиальная и очень сложная. DARPA, а также несколько европейских и азиатских агентств активно пилят гранты на этих темах.
AlexeyK77
21.07.2022 10:11+3вспомнилась некая мутная история с иракскими истребителями "мираж", французского производства, которые в момент начала войны 91года превратились в тыкву. Подробностей за давностью лет уже не помню, но вот такой факт в памяти остался.
MUTbKA98
21.07.2022 10:38Ну даже в первых строках Вашей ссылки указано, что это была прошивка, а не аппаратная часть.
Далее, вот история с крейсером "Москва" показывает, что всякое бывает. Или там тоже была закладка? Но если была, то это ясно показывает, что отечественное процессоростроение ничем не поможет, ибо там радар уж точно был 100% советский.
tsypanov
21.07.2022 11:16+1история с крейсером "Москва" показывает
История настолько мутная, что сперва нужно узнать все обстоятельства, и только потом она что-то покажет.
K0styan
21.07.2022 11:49+1"Шеффилд" в 1982-м погиб по тому же сценарию, который складывается из не слишком противоречивых сообщений о "Москве". Так что с технической точки зрения, на мой взгляд, ничего радикального за кадром не осталось.
tsypanov
21.07.2022 15:31На последнем видео "Москва" вполне себе на плаву, хоть и с небольшим креном, пробоин в борте не видно. Сравните с "Шеффилдом"
Hidden text
Brak0del
21.07.2022 13:44+2Ну даже в первых строках Вашей ссылки указано, что это была прошивка, а не аппаратная часть.
Простите, где Вы увидели, что речь о прошивке?
Post after post speculated that the commercial off-the-shelf microprocessors in the Syrian radar might have been purposely fabricated with a hidden ”backdoor” inside.
И закладка эта якобы активировалась при посылке некоторой кодовой последовательности на выполнение.
K0styan
21.07.2022 11:33Радиолокационный комплекс - это система, большой чёрный ящик. Специализированная, у которой есть предсказуемый входной канал. Который просто напрямую будет ловить то, что система РЭБ "захочет" в него положить. Среди тысяч компонентов радара легко можно спрятать что-то, что среагирует при получении определённого паттерна на антеннах.
Статья же - про закладки в отдельном компоненте, который может использоваться вообще где угодно. Где нет никакой возможности предугадать, что у него на входы приедет.
Armmaster Автор
21.07.2022 11:54Выше уже ответили - это вендор лок в конечном устройстве
Brak0del
21.07.2022 13:46Не совсем понял, если ответ о радарах, то утверждается, что в них отказали микросхемы общего назначения, а не сработал вендор-лок.
K0styan
21.07.2022 15:05Вендор-лок - не совсем тот термин, да.
Но в общем случае противоречия нет. Чип мог быть совершенно стандартным, а закладка реализована на уровне firmware и схемотехники платы (где-то сэкономили на обвязке, код поставил что-то не то на IO - порт закоротился).
MUTbKA98
21.07.2022 10:35SIM-карты. Как же про них забыли?
Armmaster Автор
21.07.2022 11:57Честно говоря, не совсем понял вопрос.
MUTbKA98
21.07.2022 12:15Ну это ж легальная аппаратная закладка, имеющая доступ мимо ОС много куда. Ничем не хуже Intel ME, который есть в списке.
Armmaster Автор
21.07.2022 12:34У меня с аббревиатурой SIM ассоциируется только Security Information Management, и вроде там программные решения, мне казалось. Если кто-то сделал на эту тему аппаратный модуль и клиент поставил себе в комп - ну сам себе злобный Буратино. Уж сразу можно тогда ОС с полным контролем действий пользователя ставить
K0styan
21.07.2022 14:39+3Тут речь про Subscriber Identificator Module - SIM карты сотовых операторов. Там довольно мощный процессор + возможность закладывать произвольный код (в памяти всплывает полузабытое слово "симлет")...
Но это именно что легальная закладка. Как антивирус - да, по сути он все ваши файлы сканирует, а иные создателю на анализ отсылает, но люди договорились его к spyware не относить.
event1
21.07.2022 16:40Сама сим-карта не имеет доступа наружу. Она является перефирийным устройством и работает по запросу от модема/процессора. Там небыстрый протокол, типа SPI
tsypanov
21.07.2022 10:49+4за десятилетия развития кремниевой микроэлектронники не обнаружено НИ ОДНОЙ достоверно доказанной аппартной закладки в массовых промышленных процессорах
А программные, но зашитые на этапе производства, вполне себе существуют в аппаратуре виртуализации: https://xakep.ru/2011/12/26/58104/
Armmaster Автор
21.07.2022 11:53+1В статье этот случай описан. Это BMC на материнке. И собственно эта проблема также парируется на сетевом устройстве. Ну чудес же не бывает, надо знать куда левый трафик гнать, и на сетевом устройстве этот трафик будет прекрасно виден
tsypanov
21.07.2022 15:48В статье описан также другой сценарий: загрузка данных с компакт-диска на отключенный от сети компьютер надёжно валит его.
Armmaster Автор
21.07.2022 17:51+1Нет, в данной статье ничего такого не описано. Чтобы обсуждение было предметным, уточните, что вы имеете ввиду с точной ссылкой и цитатой.
tsypanov
21.07.2022 18:32https://xakep.ru/2011/12/26/58104/
Я вспомнил утверждение одного из специалистов ФСБ о том, что им не страшны закладки, поскольку их системы отключены от глобальной Сети. Но информация из внешнего мира как-то должна попадать в эти защищенные локальные сети, хотя бы через одноразовые оптические диски. Таким образом, я пришел к очевидному выводу и решил анализировать входящий информационный поток в закладке средствами гипердрайвера, чтобы реализовать, так сказать, оружие судного дня, то есть использовать закладку для уничтожения вычислительной системы по внешней команде, передавая ее через входной информационный поток, стеганографически.
Просканировать информационный поток скрытно, без потери быстродействия, по зубам только аппаратуре виртуализации. В какой точке сканировать, тоже понятно: на буферах ввода/вывода дисковых систем и сетевого адаптера. Сканирование буферов ввода/вывода — плевая задача для аппаратуры виртуализации. Сказано — сделано! Такой гипердрайвер размером около 20 Кб был прописан в биос материнской платы и оснащен функцией защиты от обнаружения. Он блокировал попытки его перезаписи при обновлении биоса и выполнял единственную функцию: обнулял флеш-микросхему биоса при поступлении команды на уничтожение. Сама команда для простоты реализации была зашита в текстовый файл DOC-формата в тегах настройки.
...
Мы связались с "Газпромом", чтобы проинформировать специалистов компании о современных угрозах для распределенных систем управления технологическими процессами. Удалось организовать встречу с руководством службы корпоративной защиты и управления комплексными системами безопасности этой корпорации. Специально для них была подготовлена более наглядная версия закладки с упрощенным командным интерфейсом. Закладка активировалась после загрузки на компьютер текстового файла, содержимое которого включало два слова — "Газпром" и "стоп", — расположенных в произвольном порядке. После этого компьютер умирал, но не сразу, а с задержкой в пять минут. Естественно, можно было сделать задержку и на сутки, но тогда мы бы не уложились во время, отведенное для демонстрации.Armmaster Автор
21.07.2022 18:44+3Во-первых, там не описано никакого сценария про оптические диски.
Во-вторых, если вы можете в защищённую сеть принести и воткнуть какой-то носитель, который будет содержать что-то вредоносное, то с таким же успехом можно туда программный вирус посадить, к чему тогда уж аппартные закладки.
В третьих, тут же черным по белому написано - чувак нафигачил специальное ПО, которое залил в прошивку BMC и продемонстрировал, к чему это может привести. Тут нет никаких вопросов, это более чем реализуемо, но это программная закладка, а не аппаратная.
tsypanov
21.07.2022 22:16Но информация из внешнего мира как-то должна попадать в эти защищенные локальные сети, хотя бы через одноразовые оптические диски.
...
Специально для них была подготовлена более наглядная версия закладки с упрощенным командным интерфейсом. Закладка активировалась после загрузки на компьютер текстового файла, содержимое которого включало два слова — "Газпром" и "стоп", — расположенных в произвольном порядке. После этого компьютер умирал, но не сразу, а с задержкой в пять минут.По-моему, из контекста очевидно, как именно была реализована закладка.
ИМХО, тут закладка на стыке софта и железа. Чисто железная закладка имеет мало смысла из-за негибкости.
Armmaster Автор
21.07.2022 22:59+1Нет, это совершенно не очевидно. Там чувак, по сути (если принять все его слова на веру), написал гипервизор, который прошил в биос, и который запускался при старте системы и контролировал всю систему, собственно говоря. Это программная закладка, с помощью которой можно с любых I/O каналов считывать инфу, хоть с дисков, хоть с сетевых, хоть с чего угодно. Правда тут тоже не всё так гладко, как автор хочет представить. Например, обычно такие устройства работают через DMA, и в таком случае устройство само напрямую пишет в память. Если начать это эмулировать, то скорость существенно упадёт, и это нельзя будет скрыть (да и ещё надо уметь эмулировать правильно различное железо). А если не эмулировать, то вы не сможете фильтровать трафик в реальном времени, т.к. другая ОС будет это делать напрямую. Вы, конечно, можете время от времени в ту память залазить и что-то там пытаться найти, но тут уже нет гарантий, что нужное кодовое слово не проскочит, это раз, а во вторых, это опять-таки может сильно замедлить работу с устройством.
tsypanov
21.07.2022 23:12Как вы представляете чисто "железную" закладку? Замаскированный блок на кристалле с кодовым словом вшитым на уровне триггеров? Не слишком ли негибкое решение получается?
Armmaster Автор
22.07.2022 00:14+1Именно - проблема аппаратных закладок в их негибкости. Поэтому их использование нецелесообразно. С точки зрения эффективности намного выгоднее переносить реализацию закладки выше по стэку - в прошивки и софт в целом. Да и с точки зрения производства это куда проще. Разработчик делает обычные процы миллиоными тиражами и не парится. А уж если кто-то захотел сделать закладку, то покупает проц, делает своё устройство в нужных количествах, снабжает его нужными прошивками/софтом и все довольны.
iu3564
21.07.2022 11:06А что если подобные закладки в военке просто предусмотрены производителем на случай "не в те руки попало" , просто опция от производителя, а что касаемо гражданской электроники, там достаточно особо не париться про безопасность, так и дешевле производить и спецслужбам удобно пользоваться. Итого как такового злого умысла не существует, но поле для всякого рода теорий/спекуляций очень огромное, чем и пользуются разные люди для привлечения внимания
Indemsys
21.07.2022 12:00Не прочитал ни у кого, что можно просто сделать некачественные грязные кристаллы или из материалов с повышенным уровнем радиации.
При современном массовом применении наверно не так важна работа какой-то отдельной платы или модуля, интересней ускоренная деградация всей вычислительной инфраструктуры.Сам лично имел счастье работать с SD картами которые теряли файлы через 10 минут. Это закладка или нет?
С другой стороны видел SD карты в которых был встроен диктофон с радиоканалом, а не просто какая-то закладка.По моему тут упомянутая технология kill switch , самая реальная.
Теперь даже в дешёвых микроконтроллерах есть акселераторы шифрования. Полную доку на них не дают.
В них прямиком идёт информация в чистом виде как она передаётся по тем же каналам WiFi, Bluetooth, Ethernet. Достаточно в такие акселераторы вставить с десяток лишних транзисторов и из них будет сделан незаметный и безотказный kill switch.checkpoint
23.07.2022 06:14Чудесная статья про "kill switch", спасибо! Порадовало про модификацию кристаллов после производства и корпусирования с помощью FIB технологии - по сути безграничные возможности для имплантации закладок:
Chip alteration can even be done after the device has been manufactured
and packaged, provided the design data are available, notes Chad Rue, an
engineer with FEI, based in Hillsboro, Ore., which makes specialized
equipment for chip editing (albeit for legitimate reasons). FEI's circuit-
editing tools have been around for 20 years, Rue says, and yet ”chip
designers are still surprised when they hear what they can do.”
Skilled circuit editing requires electrical engineering know-how, the
blueprints of the chip, and a $2 million refrigerator-size piece of equipment
called a focused-ion-beam etching machine, or FIB. A FIB shoots a stream
of ions at precise areas on the chip, mechanically milling away tiny
amounts of material. FIB lab workers refer to the process as microsurgery,with the beam acting like a tiny scalpel. ”You can remove material, cut a
metal line, and make new connections,” says Rue. The process can take
from hours to several days. But the results can be astonishing: a
knowledgeable technician can edit the chip's design just as easily as if he
were taking ”an eraser and a pencil to it,” says Adler.
z3apa3a
21.07.2022 12:41Закладка может активироваться, например, через определенное значение регистров общего назначения - такая закладка легко будет активироваться практически любым сетевым запросом
Sau
21.07.2022 12:47Предскажите, пожалуйста, состояние хотя бы одного моего регистра общего назначения после хотя бы какого-нибудь вашего сетевого запроса.
z3apa3a
21.07.2022 12:50любые обрабатываемые данные (например содержимое HTTP заголовка или HTTP запроса) будет проходить через регистры общего назначения. Даже содержимое ICMP ping пакета будет проходить через регистры общего назначения, потому что оно копируется в ответный пакет.
Indemsys
21.07.2022 13:09Регистры общего назначения слишком короткие для этого. Легко просканировать весь их диапазон даже в гараже.
А вот initialization vector register для шифрования типа AES в 128 бит уже так просто не просканировать. А он точно будет содержать посланные вами данные при любом запросе с SSL шифрацией и не важно даже на каком ядре сделан сам процессор.z3apa3a
21.07.2022 13:37Можно на последовательность значений, чтобы срабатывало при memcpy(), например, но не суть, я думаю можно много векторов придумать которые не требуют выполнения кода.
Sau
21.07.2022 13:33Копирование блоков памяти выглядит очень востребованной операцией, и напрашивается оптимизация - прямое копирование, без загрузки в регистры. Скорее всего оно даже существует. Впрочем гарантировать непрохождение байтов через регистры не могу.
z3apa3a
21.07.2022 14:44Да, например анонсировано на arm https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021 - и это замечательное место для закладки, потому что будет вызываться на любом memcpy. А пока на arm https://github.com/ARM-software/optimized-routines/blob/master/string/aarch64/memcpy.S - если ваши данные попадают в memcpy можно установить практически любую комбинацию регистров общего назначения.
Armmaster Автор
21.07.2022 13:02-1Во-первых, сетевые запросы в общем случае обрабатываются сетевыми драйверами и вы не можете гарантировать последовательность запрос-нужное значение на регистре. Во-вторых, эта закладка почти моментально вскроется, потому что при тираже процессоров от нескольких десятков тысяч и выше потребуется от нескольких часов до нескольких недель работы процессоров, чтобы на их регистрах общего назначения почти наверняка побывало бы любое возможное значение
Gryphon88
21.07.2022 12:46+2Мне кажется, что наиболее вероятна аппаратная закладка в готовом изделии, например, дополнительная микросхема на плате или дополнительная схема в одном корпусе. Её даже можно описать в документации, очень редко читают полные доки, а ещё реже сравнивают фактическую разводку с описанной. Хотя с нормально закрытыми прошивками контроллеров это практического смысла тоже не имеет.
Armmaster Автор
21.07.2022 13:03+3Да, так и есть - куда более вероятны и разумны закладки в готовом изделии, чем непосредственно в кремнии проца
karambaso
21.07.2022 13:06+2Закладки - реальность. Выше уже указывали, что при наличии возможности и, одновременно, целесообоазности, ни одна страна не откажется от такого оружия. 100% гарантии.
Ключевое возражение - как передать сигнал. Но здесь, как говорится, я вас умоляю, не задавайте глупых вопросов. Потому что если у страны есть возможность предоставить вам правильное железо, то уж предоставить вам правильный софт для передачи сигнала эта страна всегда сумеет.
Самый простой и очевидный пример:
Ставим закладку, повышающую уровень процесса до системного (да можно даже в обычную SMM Mode переводить, и закладок сложных не надо). Даём папуасам их любимую виндовс. Даже с исходными кодами по требованию папуасского фсб. Папуасы радостно ставят "надёжную" винду и надеются, что никакая пакость им более не страшна. Затем папуасы ставят стандартный набор софта, который папуасские админы всячески прессуют на предмет ограничения прав. Админы уверены - вражеский софт в песочнице, за которой следит проверенная папуасским фсб винда (или папуасская астра-линукс, например). Но тут вражеский софт вежливо просит знакомый процессор по старой дружбе перейти в SMM Mode. Обычному софту после этого сделают кирдык, но это же дружественный софт! Он знает все явки и пароли. И по дружбе получает полный доступ на уровне системы. Ну и всё, далее система сама, используя проверенные папуасским фсб сетевые драйверы, отправит всё что нужно куда попросят.
Если вдруг ещё возникнут вопрося типа "ну какой такой софт дозволит пропустить папуасское фсб?", я вам отвечу - любой, котрого в папуассии нет. Например - браузер. Или вы документацию в html без браузера читать собрались? Далее остаётся ответить на вопрос - цру какой развитой демократии имеет все возможности для внедрения в любой браузер (или в почти любой другой софт)?
Вывод - закладки есть. Но цру велело их отрицать, потому что не хочет пугать папуасов. И непуганные папуасы с радостью качают цру-шный софт.
Indemsys
21.07.2022 13:22Программисты микроконтроллеров уже давно не сомневаются в реальности закладок.
К примеру такие хитрые и практически не обнаруживаемые приёмы как ROP и IOP https://tcipg.org/sites/default/files/papers/2014_q3_tfs1.pdf
Armmaster Автор
21.07.2022 13:36+5Во-первых, если это реальность, приведите хотя бы один пример.
Во-вторых, самое шизофреничное в вашем комментарии, что утверждая очевидность аппаратных закладок вы при это описываете программные закладки - ОС, браузер и "любой другой софт". Так статья же про это и написано - уязвимости намного проще и гибче делать в софте. Какой смысл что-то делать в кремнии, если вы уже умудрились поставить скомпрометированную ОС на машину? Вы и так имеете полный доступ ко всему что угодно в таком случае
karambaso
21.07.2022 14:22-4Во-первых, если это реальность, приведите хотя бы один пример.
Я вас умоляю...
Во-вторых, ... вы при это описываете программные закладки - ОС, браузер и "любой другой софт"
Я вас умоляю много много раз...
Вы либо не прочитали комментарий, либо не знаете, что такое SMM и вообще повышение уровня доступа. Второе лечится так - вбиваете в гугл "x86 smm mode".
gxcreator
21.07.2022 14:44А прошивка сетевого контроллера(имеет доступ к пакетам и к памяти по DMA) или SSD(контроллер - четырехядерный ARM процессор с 1Гб+ DRAM и терабайтом накопителя с доступом по DMA к памяти CPU хоста) - это программная часть или аппаратная?
K0styan
21.07.2022 14:48+1Так о том и речь в статье. Как раз рассмотрены возможность и целесообразность, причём именно для уровня кремния.
Возможность? Очень дорого и требует координации огромного числа участников. Которые должны эту историю ещё и в секрете держать.
Целесообразность - очень низкая, потому что сам процессор без периферии вредить не может.
Есть масса других способов, более доступных и эффективных. И про них как раз вопросов нет: используют, и не только государства, но и частные компании, и преступные сообщества.
Sergeant101
21.07.2022 20:30Насколько огромного?
Разработке проца одна группа вполне может не знать что делает другая.
K0styan
22.07.2022 10:58Ну как минимум по всей цепочке - логический дизайн, топология, шаблоны, кремний + тестирование на каждом этапе - нужна своя группа, которая будет посвящена в секрет.
Плюс такие же группы уже в компаниях, занимающихся чипсетами, драйверами, ОС. На круг очень порядочно людей выходит. Причём в нескольких организациях, т.е. в каждой будет своя цепочка управления.
acordell
21.07.2022 13:21-1Я когда-то тысячу лет назад писал код прямо в машинных кодах. Так вот, например, какая-нибудь простейшая команда, типа MOV, имеет код 0x89 в вариации регистр-регистр, 0x8A регистр-память, 0x8B память-регистр. И никто, вообще-то, не может сильно тебе помешать выдать команду с кодом 0x8E, которой нет. По крайне мере в описании. Такое, в общем, и случалось несколько раз в результате моих кривеньких ручек. Так вот к моему удивлению далеко не на все несуществующие команды процессор остро реагировал. Некоторые просто съедал без какого-то видимого результата. Но... съедал.
В общем, легко могу себе представить наличие незасвеченных кодов команд, которые могут делать что-то весьма интересное. Да, дать доступ по порту, они, ясный пень, не могут, но отрубить проц или перемешать данные дальше по памяти или в стеке, вызвав тем самым отложенную ошибку, могут запросто. И как такое вообще можно найти? А активировать такое тоже, в общем-то, не сложно. Прилетит обновление в систему, где какой-нибудь модулек будет такую команду содержать. Причем даже не обязательно в виде исполняемого кода. Так... кусок данных в памяти, на который в нужный момент случайно перескочит управление...
event1
21.07.2022 17:46+1В реальной жизни процессоры постоянно получают какой-то шлак вместо корректных инструкций. При переходе по неверному адресу, например. Если одна инструкция будет иметь специальное действие, учитывая миллиарды процессоров по всему миру, такая фича быстро станет достоянием гласности и вирусописателей. Что не очень приятно, мягко выражаясь
YuriPanchul
22.07.2022 19:15+2Эта фича станет достоянием, когда такая инструкция одна. Но это была бы слишкая тупая закладка. Представим себе, что одна такая инструкция просто устанавливает некий бит состояния в процессоре, невидимый программисту. Потом приходит другая такая инструкция, видит предыдущий бит состояния и устанавливает другой бит состояния. Итд - закладка срабатывает после появления (не обязательно подряд, между ними может быть час выполнения) определенной последовательности инструкций. При достаточно длительной последовательности найти такое случайно можно только за время больше чем время жизни Вселенной.
event1
22.07.2022 19:32+1Ваша правда. Такая улучшенная закладка будет полезна до первого "боевого" применения. После этого компанию-производителя можно смело закрывать
Wesha
23.07.2022 02:07+2После этого компанию-производителя можно смело закрывать
...ведь все прекрасно помнят, как была смело закрыта Intel после фиаско с FDIV (сарказм)
iig
23.07.2022 10:46А что с боевым применением этой закладки?
История стоила Intel более половины прибыли за последний квартал 1994 г. — $475 млн
Компания потеряла кучу денег. Отличный план, точный как швейцарский сыр ;)
checkpoint
23.07.2022 03:48+1Либо выписать премии конструкторам, а руководство повысить. Все зависит о того, с какой стороны баррикад Вы находитесь.
JerleShannara
21.07.2022 18:25+1Если мы говорим о x86, то после прилёта «несуществующей» инструкции процессор генерирует прерывание Invalid OpCode, обработчик которого уже и решает, что делать с той самой несуществующей инструкцией. Если хочется на такое посмотреть — найдите в сети исходники любого AWARD BIOS слегка старше, чем 286/386 камни и посмотрите, как была сделана поддержка недокументированной инструкции LOADALL.
dragonnur
22.07.2022 10:57+1Я так понял, что в данном случае прерывание не генерируется, потому что инструкция на самом деле есть - и она тоже недокументирована.
Arioch
23.07.2022 01:12Так вот к моему удивлению далеко не на все несуществующие команды процессор остро реагировал
Не вы первый. Но - при чём тут закладки ?
MOS 6502 undocumented instructions - https://www.pagetable.com/?p=39 - вполне популярно описано, как такие "инструкции" возникают.
Среди этих "команд" были и приводившие к зависанию. Из более свежих примеров - Pentium и F0 0F C7 C8
welga
21.07.2022 14:14Так вот к моему удивлению далеко не на все несуществующие команды процессор остро реагировал. Некоторые просто съедал без какого-то видимого результата. Но... съедал.
И на основании чего вы сделали вывод, что вам достался процессор с закладками, а не обычный процессор, который имел такую логику работы.
victor_1212
21.07.2022 15:03> технически реалистичным вариантом выглядит ситуация, когда разработчик процессора сам заложил аппаратную закладку в процессор и она может быть активирована с помощью некоей специальной поледовательности команд.
вобщем согласен с выводами автора, imho в части hw скорее стоит опасаться управляемых нарушений технологии изготовления, типа новая IC работает нормально, но через 12 месяцев происходит деградация, типа чувствительность к внешним условиям повышается, плюс вброс такого гуано в серые каналы поставки
Serge78rus
21.07.2022 17:27+1Точка бифуркации ручейка серых поставок от основного потока белых не контролируется производителем. Трудно испачкать исключительно серый ручеек, не замутив весь белый.
victor_1212
21.07.2022 18:27+1точка бифуркации ни Вам, ни мне не известна, но например может быть использована как часть sting operation
byman
21.07.2022 16:30На мой взгляд, аппаратной закладкой в процессоре может быть абсолютно
точное знание работы этого процессора. По различным косвенным параметрам можно идентифицировать внутреннюю информацию. Если конечно имеется доступ к устройству.
Также, если есть возможность близко находится к прибору, можно попробовать снимать некоторое ЭМИ. Помню, как-то в прошлом веке человек рассказывал, что все ,
что печаталось на его ЕС-принтере, через стену печаталось на компе в припаркованном авто.
Наверное много чего можно узнать о работе устройства если знаешь его досконально.
Hlad
21.07.2022 16:32+1Пфф, процессоры.
Наши особисты умудряются искать закладки в импортных чип-резисторах типоразмера 0402. И берут за эти проверки достаточно большие деньги
TheGodfather
21.07.2022 17:45+1осле начала СВО на Украине, уровень противостояния России с США и ЕС достиг критического уровня. Фактически, стороны используют практически все возможные методы нанесения ущерба, кроме прямого военного столкновения армий государств. В том числе осуществляются регулярные хакерские атаки на информационную инфраструктуру России, что приводило к обрушению некоторых государственных сервисов. Но всё это происходило только с использованием программных уязвимостей. Я думаю, ни у кого не возникает сомнения, что при наличии аппаратных закладок в процессорах Intel/AMD (на которых построена вся инфраструктура страны), они были бы использованы.
Как называется этот прием, когда совершенно неочевидные вещи подаются под соусом «не возникнет сомнений»? Конкретно сейчас госбезопасности США не угрожает *абсолютно* ничего. С чего бы им использовать такой мощный козырь в рукаве (есть он или нет, вопрос другой)? Да, несомненно, обстановка в мире несколько напряженная, но даже для Украины она еще даже не «на грани», я так думаю.
Перегнули вы тут палку, имхо.Armmaster Автор
21.07.2022 18:05+1Я там прямо написал, что это косвенное доказательство. Возможно, оборот "не возникнет сомнений" звучит слишком безапелляционно, но это скорее к дискуссиям из области филологии. Но лично для меня это и правда не вызывает сомнений. Нам полностью обрубили все легальные возможности по производству процов, там санкции на максимуме. И это при том, что , как вы утверждаете "госбезопасности США не угрожает абсолютно ничего". Производство Эльбрусов/Байкало ей также ничем не угрожает, но тем не менее. Была бы возможность навернуть нашу инфраструктуру военную и даже гражданскую - наверняка бы уже такие возможности были бы использованы. Но это всё несколько досужие рассуждения, я согласен. Вы можете считать иначе.
event1
21.07.2022 18:00+1Я тоже про Intel ME сомневаюсь тезисам автора. Да, технически он работает на отдельном процессоре — PCH. Но он, на сколько я понимаю, является обязательной частью системы с процессором Intel. И внутри у него неизвестный софт. Технически, это не "аппаратная закладка", но по факту она привязана к процессору и имеет неизвестную функциональность.
no_future
21.07.2022 18:15Закладку сделать вообще не проблема - если процессор читает последовательно известную сигнатуру, то передать на неё управление. Тогда для взлома системы достаточно отправить на неё сетевой пакет с шеллкодом.
Массовость не довод, можно изготовить специальную партию процессоров и постараться, чтобы она попала кому надо
В 21 веке, когда обновление прошивок процессоров распространяется онлайн, еще и с автоматической установкой, закладку можно добавить в новую версию прошивки. Насколько я знаю, она зашифрована и никто не разбирался, что она делает.
Armmaster Автор
21.07.2022 18:22+1"сетевой пакет с шеллкодом"
Мда. Может с гранатой сразу? Вы вообще представляете себе, как устроен сетевой стэк?
titbit
21.07.2022 21:53Ох, как человек с кучей NDA как раз от почти всех крупных производителей хотелось многое написать, но не могу. В целом в поднятой теме много вопросов, первый самый важный — а что считать «закладкой», тут вот даже про уязвимости такая дискуссия развернулась, но четкого понимания это не добавило. Получается, кто-то считает их закладками, кто-то нет, и всё — общего понимания уже нет. А знаете сколько еще всяких загадочных блоков в современных процессорах, о тонкостях работы которых знают только спецы? Поэтому получается, что явных закладок может и нет, но нестандартно использовать имеющиеся возможности в сочетании с багами для нанесения ущерба — вполне можно. И поэтому поиск явных закладок будет скорее всего не успешен, а вот попытки незаметно сделать что-то нестандартными путями и далее будут с большой вероятностью успешны. Слишком уж поле для деятельности стало большим — когда у вас сотня блоков и все взаимодействуют, то ни одна документация не опишет все миллиарды взаимодействий.
p.s. не зря errata на современные процессоры закрытая информация, там как раз описаны найденные случаи нестандартного поведения, а сколько еще багов не найдено…
p.p.s. найти баг в современном процессоре типа x86/arm вполне реально, я лично находил несколько багов по работе, значит и любой другой человек найдет при должном усердии.
mgearr
22.07.2022 00:19Почему никто не вспоминает про старую добрую
закладкуштуковину под названием "Wake On LAN"? Выключенный (!!!) комп вообще без палева сканирует сеть и переходит в другой режим работы при обнаружении некоей сигнатурыТо есть, официально "выключенный" комп фактически является включенным и что-то там шебуршит втихаря
Что ещё интересного, кроме WOL, он умеет делать в "выключенном" состоянии? А во включенном?
DreamingKitten
22.07.2022 00:25+1Никто там ничего не сканирует. И комп не то чтобы прям выключенный — он находится в ACPI power state S3 (емнип) при котором контроллер Ethernet частично работает и проверяет приходящие пакеты на заранее известную сигнатуру.
mgearr
22.07.2022 04:18+1Никто там ничего не сканирует
контроллер Ethernet частично работает и проверяет приходящие пакеты
Двоемыслие – душа ангсоца
DreamingKitten
22.07.2022 04:56+3Вам, вместо придумывания едких (но глупых) замечаний, следовало бы подтянуть владение отраслевой терминологией.
Сканирование сети в случае проводных сетей подразумевает активную рассылку зондирующего траффика. Таким, например, занимается утилита nmap.
Тогда как сетевой контроллер в режиме WOL занимается пассивной прослушкой входящего траффика.
Это не просто разные процессы, это противоположные процессы и никогда в профильной литературе одно не называлось термином другого.
mgearr
22.07.2022 22:54-1Такие вещи уместны в суде, где побеждает дословное цитирование. В науке и технике дела обстоят немножко иначе. Там важнее не буква, а суть. Но по сути-то вам возразить нечего, а победы с споре хочеццо. Казалось бы, можно докопаться до букв. Только здеся у вас тоже не срослося: упоминание "отраслевой терминологии" и "профильной литературы" без точного указания документов является ничем иным, как демагогией. Ну а переход на личности в техническом споре, надеюсь, вы и сами знаете, что обозначает, а если не знаете, то пояснять не возьмусь ни за какие коврижки
В качестве бесплатного презента - первые попавшиеся цитаты из "отраслевой терминологии", где от сканеров не требуется быть излучателями:
В геологии термин С. часто употребляется в связи со съемками некоторых участков местности с помощью приемников (датчиков) электромагнитного излучения с малыми углами поля зрения, устанавливаемых на самолетах или космических носителях
сканирование: в информационных системах — поиск каких-либо устройств либо объектов путём последовательной проверки наличия определённых признаков у каждого элемента множества всех имеющихся объектов
DreamingKitten
23.07.2022 01:02цитаты из "отраслевой терминологии"
...
В геологии
Хм. Зачем вы приплели в обсуждение IT-шной статьи геологию?
сканирование: в информационных системах — п поиск каких-либо устройств либо объектов путём последовательной проверки наличия определённых признаков у каждого элемента множества всех имеющихся объектов
ОК, я согласен с таким определением.
Но сетевой адаптер в режиме WOL не занимается «поиском каких-либо устройств», следовательно — не сканирует.
В науке и технике дела обстоят немножко иначе. Там важнее не буква, а суть
Разумеется. Вероятно, именно поэтому и существуют технические стандарты и спецификации, да?
Isiirk
22.07.2022 03:53+1Странная статья, по мне притянуто за уши.
Репутационные потери - при 10 нм процессе и миллиардах транзисторов это не найти, как вы себе представляете реверс при таких технологиях?
Риск утечки информации о механизмах эксплуатации аппаратной закладки третьим лицам - вы помните великую отечественную?, до сих пор много нового узнаем...
Юридические - не хотите не покупайте, ни кто не заставляет же, есть альтернативы, Уверен что отказ от ответственности прописан на 10 листах.
Экономические - странное заявление, в общем объеме проектирования не имеет ни какого смысла.
axe_chita
22.07.2022 05:45VIA God Mode в документации описан, а вот команды этого режима ни как не описаны, Terra incognita так сказать. Плюс режим может работать с любого уровня защиты, функционал доступа к регистрам х86 не известен. Да и упование на защиту BIOS от перехода в этот режим весьма слабы, достаточно одной ошибки или лентяя чтоб эта линия защиты рухнула.
AlexKMK
22.07.2022 09:31+2Мы анализировали по поводу закладок в роутерах.
Закладка может активироваться появлением специальных записей в BGP таблицах. Условный АНБ публикует специальную AS с определенными характеристиками. Роутеры ее подхватывают ( без BGP от роутеров нет смысла) и что-то начинают делать. Примером же последующего транспорта может служить, например, tcp over dns. Который лет эдак 10 назад некоторыми использовался для получения неконтролируемого доступа к интернету на разных хотспотах.
Если же мы говорим об обычных процессорах, то тут можно вспомнить Spectre и прочие вещи. А именно : все данные, которыми оперирует процессор, проходят через процессорный кеш. Таким образом, загрузив в кеш специально сформированные данные, можно активировать закладку. И тут уже огромное поле для маневра : от комментария в HTML коде, до текстового сообщения в почте. В общем все то, что так или иначе, в популярной кодировке (ASCII или UTF-8) без изменений пройдет через кеш данных процессора.
Ещё можно добавить огромные AVX/SIMD регистры и триггерится можно по значению этих регистров. В AVX-512 вполне можно поместить 64 байта информации, что по идее должно быть достаточно для уникального триггера. А если нет, ну так можно тригнуться на последовательности значений AVX регистра. В этом случае счёт идёт уже на килобайты.
Но, пока что в этом нет смысла потому, что и компьютеры и интернет все ещё используются нашими западными партнёрами для доставки правды на территорию РФ. Но с каждым витком упорства РКН, риск что интернет русским медведям станет в глазах партнеров не нужен растёт - тк он будет полностью зачищён от правды.
edo1h
23.07.2022 02:16А именно: все данные, которыми оперирует процессор, проходят через процессорный кеш. Таким образом, загрузив в кеш специально сформированные данные, можно активировать закладку. И тут уже огромное поле для маневра: от комментария в HTML коде, до текстового сообщения в почте.
уже обсуждалось выше.
большая проблема: как обезопасить свои компьютеры?
checkpoint
23.07.2022 03:35+1Как человек проработавший в связи почти половину своей сознательной жизни, начиная с 90х, могу сказать, что никаких закладок не требуется. В софте современных маршрутизаторов Cisco братьями индумами наводнено такое количество багов, что одна неосторожная запись в BGP приводит либо к постоянному крэшу маршрутизатора, либо к рулежке трафика совсем не в том направлении. Ну, а в SS7 (ОКС7) балом правит абслютный бардак и "слово джентельмена".
Rebelqwe
22.07.2022 10:59Очень много типов закладок автором не рассмотрено. Например такие, которые просто радиосигналом передают данные, обрабатываемые процессором. Если учесть, что чипсет и контроллер памяти частично интегрированы в современный процессор и есть как южный так и северный мост, также производимые той-же фирмой, никаких проблем создать технологию, которая на 5 км радиосигналом с определенными данными передаёт, если они обрабатываются, а какая-то хитросделанная антенна их ловит, нет. И более того, такие технологии разработаны и адаптированы под массовое производство, хотя интегрируются они в основном в USB кабель, ничего не мешает такую антенну и контроллер встроить в процессор.
zenhower
22.07.2022 12:59-1Вроде автор довольно монотонно и подробно рассказывал о реальных аппаратных устройствах. И даже проводил черту между закладкой и уязвимостью. А фантазировать на тему "возможно тут внутри антенну засунуть и транслировать поток со скоростью 480 мбит\с" оно то можно. Создайте макетку или придумайте логику извлечения секретных данных на основе такой закладки, напишите статью, мы оценим.
Rebelqwe
22.07.2022 13:32-1На викиликс всё описано, в утечке Сноудена. Есть и технология производства и архитектура и как такой сигнал перехватывается.
zenhower
22.07.2022 14:00На викиликс описано как (цитирую) "никаких проблем создать технологию, которая на 5 км радиосигналом с определенными данными передаёт"? Нет? Тогда зачем на Сноудена ссылаться?
Rebelqwe
22.07.2022 14:39-1Да, такая технология описана. Причем есть передатчики-на-чипе на 5 км и на 15. Почему я не должен ссылаться на документы, чья подлинность подтверждена.
victor_1212
22.07.2022 15:01+1> Почему я не должен ссылаться на документы, чья подлинность подтверждена.
вероятно потому, что автор пишет о другом, вообще про методы сбора информации можно типа книги писать, и они существуют, но автор пишет все по делу и только о том что знает, а Вы слегка фантазируете про антенны на 5 км, для которых требуются модем и приличная мощность
Rebelqwe
22.07.2022 15:10-1Ну во первых это не фантазии, а техническая документация на подобные устройства. Питания провода USB им вполне хватает, а питание процессора примерно сравнимое. Во вторых я начал с того, что автор полностью проигнорировал один из реально созданных и производящийся в промышленных масштабах на чипе, тип закладок (а не уязвимостей прошу заметить), который передает данные радиоканалом.
DreamingKitten
22.07.2022 12:56+3по-моему на Хабре было уже, но сходу не нашёл
В конце 90х общался с людьми, которые исследовали управляющую плату станка. Проблема была такого характера: станок б/у без поддержки и гарантии куплен в штатах за 500 тысяч долларов и привезён в Украину. Раз в 2-3 месяца умирает какая-то большая плата, которая стоит 10 тысяч долларов новая. По словам производителя она ремонту не подлежит. Для справки — тогда хорошая зарплата была 50-100 долларов. В общем пригласили пару спецалистов и пообещали им 10 тысяч за реверс (обратную разработку) этой платы с целью ремонта или производства в кустарных условиях. Народ пыхтел пол года т.к. железячные анализаторы такого уровня были недоступны и проблема не воспроизводилась в лаборатории. Плюс ко всему на плате была уйма экзотических компонентов без маркировки от чипов (по всей видимости вентильные матрицы) до каких-то модулей в экранах и даже танталовых конденсаторов. Функциональность платы — управление блоком манипуляторов (90% станка), были ещё платы, которые управляли конвеером и погрузчиками. В общем, проблему удалось отловить только проживя месяц на производстве в обнимку с десятками осциллографов и самописцев. Оказалось — это такая себе авто-поддержка. Плата, работая на реальном производстве, а не на стенде, по высокочастотному аналоговому радиоканалу (!) получала сигналы с погрузчика и где-то у себя в энергонезависимой памяти накручивала счётчик погрузок. Когда значение счётчика выростало выше какого-то порога, запускалась машина судного дня (30% платы), которая определённым подбором частот кварцев и их делителей, а также цепями операционных усилителей начинала создавать дикий высокочастотный шум в сотни мегагерц с возбуждением на дорожках, так что выгорало несколько ключевых микросхем неизвестного происхождения и доходило до того что выгорали даже дорожки и взрывались конденсаторы. После понимания сути проблемы ещё месяц ушёл на «разминирование» т.к. на всех стадиях так или иначе были задействованы реально работающие блоки. Пришлось несколько простых блоков скопировать на другой элементной базе, расположить это всё на отдельной плате, придумать защиту от возбуждения и врезать эту плату в основную. После этой доработки станок продолжает работать без ремонта оной.
zenhower
22.07.2022 13:15А не проще было экранировать или даже найти источник "высокочастотного аналогового радиоканала"? Да и месяц смотреть на осциллографы ради ожидания обнаружения секундного всплеска, который нельзя повторить? Да даже если запись экранов на видео, все равно фантастика. Про самописцы - это что-то из медицины. А после "... определённым подбором частот кварцев и их делителей, а также цепями операционных усилителей начинала создавать дикий высокочастотный шум в сотни мегагерц с возбуждением на дорожках ..." захотелось купить все фантастические книги автора.
Rebelqwe
22.07.2022 13:39Врятли возможно экранировать 30 процентов платы и сохранить весь функционал при этом.
zenhower
22.07.2022 13:57+2Радиопередатчик нельзя было найти? Та вырезка изобилует ляпами и "гуманитарными" излишествами, но не отвечает на закономерные и логичные вопросы.
AlexKMK
22.07.2022 14:35+1Но история классная.
Напоминает про модуль в Роллс-Ройс, который через 40 тыс км. пробега высыпал в гбц жменю песка
Rebelqwe
22.07.2022 14:41Радиопередатчиком становились были 30 процентов печатной платы, написано же. Выделенного радиопередатчика не было.
zenhower
22.07.2022 15:16"Плата, работая на реальном производстве, а не на стенде, по высокочастотному аналоговому радиоканалу (!) получала сигналы с погрузчика и где-то у себя в энергонезависимой памяти накручивала счётчик погрузок." тут про передатчик.
В целом рассказ очень вымученный (особенно танталовые конденсаторы доставили). Простого выгорания пары микросхем без маркировки было бы достаточно как для остановки производства, так и для обращения к производителю. А напридумывали бог знает что.
Rebelqwe
22.07.2022 15:28Думаю, что ловился этот сигнал всё той-же антенной, которая была интегрирована в 30% платы, и генерировала высокочастотный импульс при активации, в этом суть.
iig
22.07.2022 19:09+2Как то слишком сложно. В 90-е годы уже ведь были микроконтроллеры с защитой от чтения. Счетчик погрузок (рабочих часов, включений-выключений, оборотов двигателя) досчитал до нужного значения - стёр ключ в независимой памяти - плата не работает. Без хитрых резонансов.
checkpoint
23.07.2022 05:25+1В целом рассказ очень вымученный (особенно танталовые конденсаторы доставили). Простого выгорания пары микросхем без маркировки было бы достаточно как для остановки производства, так и для обращения к производителю. А напридумывали бог знает что.
Вы когда нибудь видели как выглядит сгоревший импульсный блок питания выполненный по резонансной (LLC) схеме если в процессе его экспуатации он вдруг вышел из резонанса ? Там живого на плате не остается ничего!
zenhower
23.07.2022 09:50Видел выгоревшие БП, чинил выгоревшие БП. Не совсем понял, к чему это вы? Если бы я захотел остановить производство - я бы просто останавливал работу нескольких микросхем без обозначения и пусть думают. Для изучения проблемы нужно много раз запечатлеть остановку оборудования, а это большие деньги. И после изучения, что, искать замену неизвестным микросхемам? Да, выглядит уныло и не красочно, но и менее нелепо.
checkpoint
23.07.2022 15:41Я к тому, что иногда достаточно выключить синхронизацию и эффект будет ровно такой как описан в цитате, без каких либо дополнительных усилий. А чем больше повреждений, тем сложнее отыскать причину. И в этом смысле меня лично смутило только то, как быстро была локализована проблема.
Современные ЧПУ станки действительно привязаны к производителю и без его ведоме их включать строго запрещено. Их даже перемещать с места на места запрещено, а в случае несанкционной попытки переместить они блокируются до приезда авторизированного персонала.
zenhower
23.07.2022 16:01Если из истории вытащить один эффект и вспомнить, что он может проявляться в БП - то я согласен с вами. Ровно до момента, когда вспомню, что в истории в разнос идут "кварцы и их делители".
checkpoint
23.07.2022 16:25В сложных высоконадежных система разумеется предусматриваются различные системы защиты, контроля основных параметров и аварийного останова в случае убегания одного из параметров за пределы допустимых значений. Но все это сильно удорожает изделие, поэтому схемы подобные LLC используются только там где это требуется и обосновано, например в мощных серверных блоках питания. Но если всю эту систему контроля отключить, то будет "биг барабум". Это кстати, еще одно направление атаки - бахнуть блоки питания в серверах.
checkpoint
23.07.2022 05:20В этой выдержке из статьи неправдоподобно только одно - время которое ушло на поиск и устранение "неисправности". Либо людям сильно повезло и они случайно наскочили на нужный тренд, либо "Штирлица ничто не выдавало" - закладка была состряпана "на скорую руку" предполагая, что она никогда не понадобится.
iig
23.07.2022 10:53Интересно, как этот станок должен был работать у себя на родине? Тоже с выгоранием платы раз в месяц? (не верю). Или специально для покупателя из СНГ соорудили этот управляющий центр с выгоранием? (тоже не верю).
checkpoint
23.07.2022 15:57На родине принято платить за поддержку согласно регламенту.
iig
23.07.2022 16:26А если не платить то станок взрывается. Верю. Все так делают, 10000 примеров тому вокруг.
checkpoint
24.07.2022 00:38Я же писал, что "взрыв" является следствием отказа какой-то части аппаратуры. Вероятно, что создатель закладки и не догадывался о таком фиерическом эффекте, так как на западе просто не принято не платить за поддержку дорогостоящего оборудования. Так же возможно, что закладку имплементировали в "последний момент" по указке "откуда надо".
checkpoint
23.07.2022 03:03+3Рискну высказать свое мнение непрофессионала, так как непосредственно разработкой микросхем не занимаюсь, но темой активно интересуюсь, в том числе и со стороны вопроса безопасности. Итак,
Видно, что автор не плохо разбирается в теме, при этом умышлено направляет повествование статьи так, что бы у читателя сложилось мнение о том, что аппаратных закладок не бывает, либо их существование катастрофически маловероятно и никому не выгодно. Однако, автор либо умалчивает, либо непонимает, что когда идет война на уничтожение (не дай Бог конечно), то слово "выгодно" может заиграть совершенно другими оттенками и "репутация" тут даже близко не при делах.
Очевидно, что микроэлектроника это атомное оружие 21-го века и если закладка даже гипотетически является возможной, то она будет реализвана, в этом ни у кого не должно быть ни малейшего сомнения! В реализацию атомной бомбы не верил даже сам Альберт Энштейн, хотя его же теория и сделала бомбу возможной, до тех пор пока не увидел своими глазами. То же самое говорят про Андрея Дмитриевича Сахарова, который "умом тронулся" от результатов своего умственного труда.
Утверждение "за десятилетия развития кремниевой микроэлектронники не обнаружено НИ ОДНОЙ достоверно доказанной аппаратной закладки в массовых промышленных процессорах" абсолютно ложное, я не знаю с какого перепуга автор ввернул эту фразу. Аппаратных закладок вскрыто предостаточно, но так как это атомное оружие, то до масс знание о таких фактах либо не доводится вообще, либо доводится в размытом и силько зашумленном виде - правду и факты в интернете сейчас очень легко запомоить. Знание о наличии закладки и способе её активации является обоюдо острым оружием!
Закладки в микропроцессорах являются не с столь интересными, сколь закладки в микросхемах отвечающих за связь: сетевые адаптеры, коммутация, трансиверы и т.д. В этих микросхема так же по миллиарду транзисторов и они гораздо ближе к внешней среде. Более того, таких микросхем производится на несколько порядков больше, чем микропроцессоров - проникронение существенно выше.
Если говорить о закладках на этапе производства, то самой простой является "антенна" - ни к чему не обязывающий проводник ведущий на незадействованный пин микрохемы (либо транзистор+антенна). Через такую антенну спокойно утекают пароли от WiFi и прочие ключи для шифрования трафика. И нет, добавление одного (и даже десятка) транзистора не выведет микросхему из строя, если их добавлять с умом. Об этом ниже, в ссылках.
Количество слоев в современных микросхемах превышется 40 шт. Заводу производителю не составит большого труда впихнуть пару лишних слоёв где нибуть между 3-м и 4-м слоем с вредоносной логикой, при этом сохранив интерконнект между слоями оригинального дизайна. Это не дешево, так как потребует во-первых изготовления дополнительных масок, во-вторых некоторого тестирования. Но заказчик за все заплатит сам не ведая того. Производители масок и сами фабы повязаны одной цепью. На данный момент выявить такое вторжение невозможно даже вскрыв корпус микросхемы - техника не позволяет.
Если говоить о закладках этапа проектирования, то тут поле для деяельности ограничивается только фантазией, а ей, как известно нет предела. Для того, что бы ативировать закладку достаточно отслеживать паттерны передаваемой в памать информации через кроссконнект AXI4 (или что там сейчас используется). Очевидно, что почти любой пакет принятый по сети сетевым адаптером перед его обработкой будет помещен в оперативную память по DMA каналу, т.е. обязательно пройдет через кроссконект, где спящая закладка может увеличивать счетчик получив данные определенного паттерна (не конкретные значения, а некоторые законормерности в данных). Как только счетчик достиг определенного значения - закладка активируется. Аналогичным образом счетчик может сбрасываться и усыплять закладку на опеределенный срок - мина замедленного действия. Короче, вариантов предостаточно.
Самая простая закладка выводящая из строя микропроцессор или любую другую часть вычислительной системы является самой желанной! Нет более желанной цели чем оставить противника без связи.
-
Тезис о том, что "закладок несуществует потому, что после введение СВО на территории Украины США и страны коллективного запада не прибегли их активациям" - ложный по нескольким причинам:
У автора нет никакой информации на сей счет. Вполне допустимо, что какие-то закладки были активированы и какие-то секретные данные были похищены и использованы одной стороной против другой, наивно полагать, что об этом кто-то расскажет вслух или шепнет по-секрету всему свету.
Интернет используется в том числе и для разведки. Атаковав или вывев из строя систему связи в РФ, страны запада выстрелят своей же разведке в ногу. Элемент промывки мозгов населению с помощью интернета тоже не стоит списывать со счетов.
Закладки выводящие из строя всю систему связи противника слишком ценны и обладают слишком обьемным поражающим эффектом что бы их задейтвовать - время не настало.
США отменили санкции на экспорт коммуникационного оборудования в Россию - встает вопрос, с какого перепуга ? Ответ очевиден, что бы завести на территорию РФ побольше оборудования и софта с закладками и бэкдорами.
В 1991-м году перед началом СВО "Буря в пустыне" против режима Саддама Хусейна в Ираке, США и страны запада активировали закладку полностью выводящую систему цифровой телефонии (ISDN) Ирака из строя - сделано это было посылкой одного единственного пакета по SS7. Этот факт не скрывался и активно обсуждался в начале 90-х всеми дворовыми сабаками. С тех пор, собствено активно и заговорили об аппаратных закладках.
Что бы не быть голословным, вот пара ссылок для размышления:
Анализ обнаруженного бэкдора в FPGA: https://www.cl.cam.ac.uk/~sps32/ches2012-backdoor.pdf
Диссертация на заданную тему с практической реализацией: https://udspace.udel.edu/bitstream/handle/19716/5479/Raymond_DelVecchio_thesis.pdf
-
Еще одна диссертация о методах внесения закладок (и их поиска) в радиопередающие микросхемы: https://personal.utdallas.edu/~gxm112130/papers/ets17.pdf
Если этого недостаточно, то я могу накидать еще.
Исходя из выше сказанного, данной статье от меня большой плюс за подьем вопроса, но вот автору статьи в карму большой минусу за введение общественности в заблуждение и отрицание реальности.
PS: Повторюсь, я всего лишь интересущийся данной темой человек. Ни из Кремля, ни из Минпромторга, ни из ФСБ мне не заносят.
Aelliari
23.07.2022 07:59И нет, добавление одного (и даже десятка) транзистора не выведет микросхему из строя, если их добавлять с умом. Об этом ниже, в ссылках.
Для того чтобы добавить с умом, нужно знать назначение микросхемы и её устройство. А потом попробовать не спалиться на аномалиях при функциональном контроле у заказчика.
Заводу производителю не составит большого труда впихнуть пару лишних слоёв где нибуть между 3-м и 4-м слоем с вредоносной логикой
Как правило, разработчик топологии старается оставить меньше свободного места. Оно может быть только если закладывается место под корректировку, и то, оно может быть занято фиктивными элементами или элементами не используемыми в схеме, чтобы попытаться корректировку сделать одним металлом. Соответственно и добавить слои? Это иметь возможность делать с высоким качеством многослойные транзисторы (всякие 3D V-nand и похожие), иначе - необходимые слои уже скорее всего задействованы разработчиком и нужно найти место, разве что ещё один слой металла для связи элементов. А вот вскрыть и найти лишний слой металла - не так чтобы и проблема, без учёта активных элементов и анализа всей топологии, ну т.е. без сохранения его целиком, хватит обрывков. В общем я бы удивился бы наличию незапланированной металлизации или изменению размеров кристалла/скраберных дорожек. А если у меня в модуле сидить 2-3 микросхемы с различиями в логике? А то и с различным назначением?
Если говоить о закладках этапа проектирования, то тут поле для деяельности ограничивается только фантазией
Это единственный вариант, который выглядит реалистично. Простые микросхемы можно и "просто" вскрыть и посмотреть, сложные - вскрыть сложно, но и встроиться в них тоже не просто.
P.S. по ссылкам, первая - яркий пример внесения бэкдора на этапе проектирования. Вторая - говорит о добавлении микросхемы на плату, для контроля поведения основной микросхемы, если я правильно понял выхватив обрывки фраз читая по диагонали.
P.P.S. ситуация, когда чужую микросхему отреверсили и повторили внеся "злой" функционал, а потом продают злую подделку под видом оригинала - это все ещё внесение на этапе разработки. При чём именно отреверсили, потому что повторяя по спецификации - можно нарваться на различное поведение с оригиналом, для недокументированных случаев.
Armmaster Автор
23.07.2022 20:18Спасибо за столь развёрнутый ответ, но не могу с ним никак согласиться, а уж тем более принять упрёк в умышленном введении в заблуждение кого-либо.
Смотрите, моё повествование строится на 2-х основных моментах - первый, это факт, что нет достоверно обнаруженных закладок в процессорах за последние десятилетия, второй - это объяснение, почему так (потому что это сложно и негибко, проще их переносить выше, в софт). Это не значит, что они в теории невозможны - возможны, я это прямо пишу. Но в варианте чисто аппартной закладки решения крайне негибки и плохо решают свои задачи, поэтому без софтварный обвязки они малоосмысленны, а если уж есть софтварная обвязка, то зачем городить огород в кремнии? В этом основная идея статьи.
Вы прямо говорите, что моё утверждение об отсутствии факта достоверно определённых закладок - ложно. Но это не так, т.к. за данным утверждением стоит 20+ лет опыта работы в индустрии + достаточно широкое предметное изучение материалов по теме при подготовке статьи. Я не нашёл и не знаю ни одного реального случая аппартной закладки в процессоре. И аналогичный вывод я встречал в других статьях, которые мне попадались на данную тему.
Вы привели 3 ссылки, пытаясь доказать, что такие случаи были. Но все эти ссылки некорректны. 2 и 3 это академические статьи на тему, как можно внедрить закладки в процессоры, но это не о том, что в процессорах эти закладки были обнаружены. Такого рода статей есть вагон и маленькая тележка, и даже целые конференции проводятся, материалы с которых я пролистывал. Но там нет никаких реальных случаев закладок в промышленных процессорах.
Что касается п.1, то это исследование, по сути, о недостатках безопасности чипа ProASIC3 (FPGA, а не CPU, заметьте). Там с помощью всяких продвинутых техник сканирования чипа (DPA, PEA) они взламывают криптографические ключи. Но для этого нужен физический(!) доступ к чипу. Ну какая польза от "бэкдора", если для него нужен физический доступ?
В остальных пунктах у вас также много заблуждений, например, про добавление слоев. После такого изменения у вас чип почти наверняка в кирпич превратится, т.к. вы измените характеристики прохождения сигнала между компонентами, не говоря уж о сложности такого вмешательства. Но глубоко в детали уходить по каждому пункту мне, честно говоря, не хочется. Всё же мой основной посыл был немного с другой стороны, и как мне кажется, он такой подход для общего рассмотрения концептуально более правильный.
derpymarine
Могут, но не факт. Juniper всё ещё живой, хотя у них и была закладка(софтварная правда).
Так же закладки могут быть замаскированы под уязвимости. При обнаружении подобных вещей репутация пострадает, но, скорее всего, не критически.
Armmaster Автор
Когда производится конечный сложный продукт, можно уже поиграться в юридические моменты и аккуратно в договоре отписать всякие не совсем приятные для покупателя возможности. Крайне сложные устройства (например, степперы от ASML, турбины и т.д), где у покупателя мало выбора, могут вообще напрямую оборудоваться всякими вендор-локами. Для менее сложного есть серая зона, где это можно делать, но с последствиями для бизнеса. А вот для комплектующих, коими являются процессоры, это достаточно малоосмысленно по тем причинам, которые я попытался описать в статье.
victor_1212
> При обнаружении подобных вещей репутация пострадает, но, скорее всего, не критически.
немного сложней все, в принципе все interconnect устройства разработанные в us (и не только), по закону обязаны иметь типа зеркальные порты куда может копироваться любой поток данных проходящий через устройство, это все известно min лет 30, разумеется Cisco и Juniper среди прочих это знают и поддерживают без всяких закладок, это известно и на репутацию вероятно не влияет
derpymarine
В том то и дело, что уязвимости и закладки неизвестны эксплуатантам оборудования. В таком случае эксплуатант не имеет возможности заблаговременно обеспечить безопасность.
victor_1212
> эксплуатант не имеет возможности заблаговременно обеспечить безопасность
эксплуатант знает то чему его обучили на курсах + что написано в документации, иногда даже маленьких букв контракта не читал, или не совсем понял, но это таки дела не меняет, на репутацию продукта не влияет, потому как выбора все равно нет, если понадобится использовать эти дела, то ему скажут, возможно даже покажут решение суда если на территории us , но не обязательно, в случае если нужны какие-то особые фильтры, типа ip фильтровать, могут заменить boot rom, и вообще управлять на расстоянии вашим router, это типа всех производителей касается
Sap_ru
Ну, бред же. Нет такого закона.
victor_1212
> Нет такого закона.
это нетрудно опровергнуть см. CALEA Pub. L. No. 103-414, 108 Stat. 4279, codified at 47 USC 1001-1010, это закон конечно, включая extension March 10, 2004:
"... to extend the provisions of CALEA to include the ability to perform surveillance of all communications that travel over the Internet – such as Internet traffic and VoIP. "
как именно например cisco выполняет эти требования см. RFC 3924 "Cisco Architecture for Lawful Intercept in IP Networks", или для voip на asr1000 управление этим делом реализовано через snmp, см.
https://www.cisco.com/c/en/us/td/docs/routers/asr1000/configuration/guide/sbcu/2_xe/sbcu_2_xe_book/sbc_voip.html
также
Cisco ASR 1000 Series Aggregation Services Routers
также см.
https://www.law.cornell.edu/wex/electronic_surveillance
"The Communications Assistance for Law Enforcement Act of 1994 (CALEA) ... requires that telecommunications companies cooperate with the government's targeted electronic surveillance efforts. Cooperation may include modifications to the design of equipment, facilities, and services"
Sap_ru
Там не про всё interconnect оборудование, а только про применяющиеся в конкретных местах вполне определённой инфраструктуры. Соответственно опция документирована и является включаемой/отключаемой в зависимости от того, где и как используется оборудование. И там не про порты, а про возможность зеркалирования трафика в случае необходимости. Можно даже программно сделать - никто не запрещает.
victor_1212
припоминаю, когда 2004 extension вышло конкретно проводил company meeting с коллегами, к нам самое прямое отношение имело посколько именно interconnect делали, если хотите деталей - пишите в личку
victor_1212
ps
заметим, по комментариям видно, что Вы не совсем в теме, это относится к Вашей интерпретации требований CALEA, о которых возможно первый раз слышите назвав "бредом", на этом предлагаю закончить