Перейти к содержимому
Chebuya

Аппаратная безопасность в OC

Рекомендуемые сообщения

7 минут назад, BrightYC сказал:

какой смысл, если EEPROM могли подменить? Ну засунешь дискету - а какой смысл, если код был запущен еепромой, которая пожет подменить *все*.

Кстати, немного оффтопа, но дата-карта не обязательна. Она медленнее, чем software решения.

Ты имеешь в виду тот случай когда у нас стырили робота и потом вернули?
Или то что мы не знаем залезали ли в него или нет? Можно тогда в дискету засунуть uuid робота и если его пересобрали то дискета просто скажет фи... Ибо uuid поменяется 

Изменено пользователем Taruu

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Taruu сказал:

Ты имеешь в виду тот случай когда у нас стырили робота и потом вернули?

собственно, вся тема об этом, а не о том, как сохранить данные. Всякие secure boot бесполезны, если самый главный загрузчик скомпрометирован.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, BrightYC сказал:

собственно, вся тема об этом, а не о том, как сохранить данные. Всякие secure boot бесполезны, если самый главный загрузчик скомпрометирован.

я там добавил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Taruu сказал:

Можно тогда в дискету засунуть uuid робота и если его пересобрали то дискета просто скажет фи... Ибо uuid поменяется 

Нельзя. Программа на уровне EEPROM может подменить вызовы и к component.invoke. В том числе и к очереди сигналов и прокси компонентов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, BrightYC сказал:

Нельзя. Программа на уровне EEPROM может подменить вызовы и к component.invoke. В том числе и к очереди сигналов и прокси компонентов.

А если робот выключен, и тыкнуть его анализатором то там тоже подмена сработает? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
37 минут назад, Taruu сказал:

А если робот выключен, и тыкнуть его анализатором то там тоже подмена сработает? 

Анализатор в любом случае выдаст правильный результат.

 

Но если имеется физический доступ к роботу, проверка отклонений в его EEPROM не вызывает затруднений. Также без проблем можно авторизовать робота, который не отключался с момента его установки.

 

Затруднения возникают в случае, если находящийся где-то далеко наш робот по каким-то причинам отключился. И прежде чем отправлять такому роботу координаты базы и прочие секреты, следует удостовериться, что это именно наш робот, и что он никому не выдаст известные ему секреты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то лагерь взломщиков долго молчит.

 

Поясню свой предыдущий ответ:

В 07.05.2021 в 15:28, eu_tomat сказал:

Разумеется, код обёрнут в pcall. И упадёт он независимо от лагов. Заворачиваем цикл в pcall и выполняем. А потом ещё раз выполняем. И ещё.

Код может выглядеть, например, так:

while true do
  pcall(function()
    for i=1,1e15 do end
  end)
end

Это код должен спровоцировать ошибку TLWY и отключение робота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, eu_tomat сказал:

Что-то лагерь взломщиков долго молчит.

 

Поясню свой предыдущий ответ:

Код может выглядеть, например, так:


while true do
  pcall(function()
    for i=1,1e15 do end
  end)
end

Это код должен спровоцировать ошибку TLWY и отключение робота.

но каким образом это поможет если, сам этот код обвернут в pcall?

local chunkFromServer = [[
while true do
  pcall(function()
    for i=1,1e15 do end
  end)
end
]]

local chunk = load(chunkFromServer)

if chunk then
	pcall(chunk)
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, BrightYC сказал:

но каким образом это поможет если, сам этот код обвернут в pcall?


local chunkFromServer = [[
while true do
  pcall(function()
    for i=1,1e15 do end
  end)
end
]]

local chunk = load(chunkFromServer)

if chunk then
	pcall(chunk)
end

 

проверил, оказывается, даже если код обвернут в pcall, tlwy вылетает сразу, провоцируя выключение компьютера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

со стороны взломщиков появилась идея. Хранить код для пробуждения на сервере, а для самого модема выставить сигнал на пробуждение. Перед выполнением любого кода отсылать на сервер, что робот выполняет код - и начинает в цикле while true do end посылать сигнал на wakeup.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, BrightYC сказал:

со стороны взломщиков появилась идея. Хранить код для пробуждения на сервере, а для самого модема выставить сигнал на пробуждение. Перед выполнением любого кода отсылать на сервер, что робот выполняет код - и начинает в цикле while true do end посылать сигнал на wakeup.

Несколько путаное изложение идеи, и я попробую расшифровать её для читателей, которые не в теме. Взломщик подменяет сообщение пробуждения модема своим. И с помощью дополнительного компьютера непрерывно будит робота по этому сообщению.

 

При этом размер сообщения ограничен 8192 байт. И сервер защиты будет пытаться убедиться в том, что испытуемый робот пробуждается именно по оригинальному сообщению.

 

Так как взломщик непрерывно будит робота другим сообщением, то сторона защиты не будет уверена, каким именно сообщением разбужен робот. На первый взгляд информации недостаточно, но её можно попытаться получить.

 

Существуют тайминги на отключение по TLWY. Бесконечный цикл погасит компьютер через 110 тиков. По истечении этого времени сервер защиты должен послать сигнал пробуждения. Далее 2 тика будет затрачено на пробуждение робота. И первым делом по пробуждении он должен будет отослать на сервер защиты информацию о своём пробуждении. Для простоты робот будет отправлять ту самую строку, которая добивает размер EEPROM до 4096 байт. Чтобы зря не потреблять оперативную память, эту строку можно будет позже удалить (из оперативной памяти). Вторым сообщением робот должен будет отправить содержимое wakeMessage сетевой карты. Он потратит на это ещё два тика времени.

 

Если код взломщика попытается отправить какую-либо информацию на свой сервер после получения кода с сервера защиты, он сдвинет время отсылки роботом сообщения о своём пробуждении на один тик независимо от используемой механики пробуждения. Возникшая задержка свидетельствует о наличии несанкционированного кода.

 

Задержка может свидетельствовать и о лагах сервера. Но лучше перестраховаться и повторить попытку чуть позже, пока испытуемый не впишется в ожидаемую задержку.

 

Обеспечит ли взломщик нужную задержку, или найдёт другую уязвимость в этой защите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...