Можно ли взломать Arduino Mega по воздуху

После просмотра похожих тем я решил задать этот вопрос ниже на форуме Security Stackexchange около 11 дней назад. https://security.stackexchange.com/questions/235423/is- arduino-mega-hackable-over-the-air

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

Я собираю данные (путем чтения входных регистров) с машины по протоколу RS-485 и оборудованию Arduino Mega 2560.

Я также отправляю эти данные с Arduino Mega на NodeMCU, который подключен к Интернету через Wi-Fi.

Я на 100 % уверен, что никакое физическое вмешательство не может быть выполнено на оборудовании, которое я настраиваю.

Но поскольку эта машина, с которой я собираю данные, управляется (путем записи регистров временного хранения) через RS-485 (я проверял это), я должен убедиться, что программное обеспечение Arduino нельзя изменить/перепрограммировать/перепрограммировать через воздух кем-то.

Нет другого устройства, кроме NodeMCU, которое открыто для Интернета и может быть источником уязвимости. И только физические соединения между Arduino & NodeMCU с контактами TX3+RX3 и контактами питания+земли.

Меня не волнует, если данные, пароль WiFi или учетные данные облачного сервера будут украдены. Единственное, что меня волнует, это то, что Arduino не прошивается по воздуху, что в конечном итоге может повредить машину, с которой я беру данные. Считаете ли вы, что эта установка безопасна в отношении информации, которую я вам представляю?

, 👍0

Обсуждение

Я предлагаю вам ознакомиться с таблицей данных ATmega. Там вы обнаружите, что чип можно прошить только из области загрузчика. Это не дает 100% гарантии. Но далее в таблице данных вы найдете несколько предохранителей, которые вы можете оценить. Некоторые из них отключают загрузчик. Поэтому, если ваш код не обращается к области загрузчика, вы должны быть в безопасности. Также нет возможности вводить код, как на ПК, из-за Гарвардской архитектуры., @Kwasmich


1 ответ


Лучший ответ:

1
  1. загрузчик не прослушивает RX/TX3.
  2. для запуска требуется сброс загрузчика
  3. для связи с загрузчиком последовательный программатор должен иметь протокол STK500 или мост telnet для avrdude, которого нет в скетче NodeMCU

Если ваш скетч NodeMCU имеет OTA, то скетч можно обновить до telnet-моста avrdude. тогда потребуется сброс для активации загрузчика. Если ваш NodeMCU не имеет провода к выводу сброса Mega или у вас нет команды в вашем скетче Mega для активации сброса, возможно, существует некоторая последовательная перегрузка вашего скетча Mega.

Но все это не имеет никакого эффекта, потому что загрузчик слушает только RX0

,