Уязвимость в протоколе CAN, затрагивающая почти все современные автомобили

В протоколе CAN (Controller Area Network), применяемом во всех современных автомобилях для организации взаимодействия между электронными компонентами, выявлена концептуальная уязвимость, позволяющая деактивировать подключенные к CAN узлы, в том числе отвечающие за безопасность. Например, можно отключить подушки безопасности, ABS, освещение или парковочные датчики.

Технологии: Уязвимость в протоколе CAN, затрагивающая почти все современные автомобили


Уязвимость может быть эксплуатирована как локально, так и удалённо. Локальная атака, которая не лишена смысла в условиях роста популярности каршеринга и аренды автомобилей, осуществляется через подключение к имеющимся в автомобиле штатным диагностическим портам, предоставляющим доступ к шине CAN. Атака требует использования специального оборудования, которое было собрано исследователями на базе платы Arduino и чипа MCP2551 E/P для приёма и передачи данных по шине CAN. Удалённая атака может быть совершена через эксплуатацию возможных уязвимостей в узлах, взаимодействующих с внешним миром, например, в информационно-развлекательных системах.

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

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

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

2 комментария

X86
Леха, спасибо за картинку. Постил с телефона, заморочился, не смог картинку вставить.