За последние месяцы мне удалось изучить программное обеспечение, которое используется в автомобилях одного известного концерна, а так же устройство этих самых прошивок. И в связи с этим хотелось бы поделиться своим наблюдением на тему того, как этот софт защищен от внешнего вмешательства, насколько сложно его изучать и искать незадокументированные возможности.
Те прошивки, которые я держал в руках были двух видов - основанные на ОС андроид и основанные на ОС QNX. Если говорить про безопасность прошивок на базе андроида, то тут есть два момента. С одной стороны всё защищено «из коробки» разными подписями и сертификатами, что-то просто так подменить или получить к чему то доступ очень и очень сложно, если производитель ПО достаточно сильно не накосячил (использовал стандартную подпись, которую можно найти в интернете, или не выставил проверку соответствия подписи для разрешений и т.д.). Но с другой стороны, достаточно просто можно декомпилировать сами программы, что бы изучить как они работают, их взаимодействие или какие-то секреты, вроде генерации пароля для входа в инженерное меню.
Другое дело прошивки на базе QNX. Там всё не так просто. Тут может быть свой формат данных, которые невозможно просто так распаковать, потому что нет для этого ПО, сами приложения можно дизасемблировать той же Ghidra, но тут надо иметь очень серьёзный набор знаний, что бы хоть что-то понять и тем более что-то изменить. Здесь уровень сложности максимальный. Поэтому очень большой соблазн не заморачиваться с подписями и какой-то дополнительной защитой. Собственно, то что я увидел - и не заморачивались. Это позволило мне научиться модифицировать прошивку, которая есть у меня в наличии.
Ну а софт для работы самой приборной панели был написан на основе ПО от Kanzi Studio. Там тоже никакой защиты нет, видимо та же надежда на сложность их формата ресурсов и сложность дизасемблирования приложения.
Какие выводы я бы хотел сделать. Если соединить все плюсы обеих подходов, то можно было бы очень сильно усложнить задачу тех, кто хочет изучить как устроена прошивка и тем более если есть желание её модифицировать.
Ну а сейчас, при наличии желания и достаточного финансирования, есть все возможности внести изменения, как хорошие (например перевести на другой язык), так и вредоносные (от забавных шуток до окирпичинвания устройства прошивкой).
А еще, когда изучал прошивки и видел, как программисты ленились в мелочах, подошли к некоторым вопросам спустя рукава, стало немного страшно. Хотя надеюсь, что в вопросах касаемых безопасности, они подошли более ответственно.
Телега.