Космическое излучение и «кривое» ПО. История одного «смертельного» бага в машинах Toyota

04 сентября 2019 в 8:00
Автор: Ян Альшевский

Космическое излучение и «кривое» ПО. История одного «смертельного» бага в машинах Toyota

Автор: Ян Альшевский

В автомобильной индустрии нередки случаи, когда производитель проводит отзыв техники. То протечка топливопровода, то подушки безопасности не срабатывают, то коврики не того размера, то еще какая неожиданная напасть. Случались и необычные истории: Mazda, например, как-то отозвала 42 тыс. Mazda6 из-за пауков, которым приглянулись воздушные коммуникации автомобиля. Там появлялась паутина, распухшие шланги давили на топливные трубки и бензобаки, что могло привести к появлению трещин в них. Плохо.

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

Одним из наиболее известных случаев считается история с автомобилями Toyota (а также Lexus и некоторых Pontiac), растянувшаяся на много лет. Речь идет о так называемом самопроизвольном ускорении, когда машина не реагирует на нажатия педалей тормоза и газа. Считается, что всего за десятилетие из-за этого неприятного феномена погибло 89 человек и 57 пострадали — это большие цифры. Активнее всего жалобы поступали в период с 2002 по 2009 год.

Одна из пострадавших машин. Фото: The Truth About Cars

Когда была достигнута точка кипения, власти инициировали расследования, в процесс на разных этапах включались специалисты всех уровней, привлекали даже экспертов NASA.

В 2014 году история вроде бы закончилась многочисленными денежными выплатами (более $1,2 млрд). Но до того момента все было непросто, так как Toyota до последнего скрывала информацию об инцидентах. Или, как иногда говорят, раскрывала «не всю правду». Причем провернула это компания на всех уровнях вплоть до американского Конгресса, что и привело к значительным в денежном выражении санкциям. Подобное «лукавство» не позволяло выяснить действительную причину аварий: иногда вину сваливали на нерадивых водителей, перепутавших педали (но такое действительно бывает).

Фото: Fox News

Эксперты из Национального управления безопасностью движения на трассах США (NHTSA), например, вначале пришли к выводу, что проблема носит механический характер — все из-за педали газа, застревающей в коврике. Большое количество жалоб связали с популярностью марки в стране, то есть в процентном соотношении все в норме. А вот о том, что в NHTSA не было экспертов в области анализа программного обеспечения, стало известно много позднее.

Подключившиеся исследователи из NASA также не смогли найти подтверждения гипотезе о том, что причины кроются в ПО управляющей электроники автомобилей. Правда, по словам одного из инженеров аэрокосмического агентства, им просто не дали проверить все системы и сценарии их работы — время расследования ограничили, как и доступ к исходному коду. Кроме того, Toyota предоставляла инженерам NASA неверную информацию о, например, наличии EDAC — системы контроля ошибок, хотя в Camry 2005 года ее не было. Это лишь один из примеров.

Ситуация изменилась, когда в 2009-м раскручивать проблему стала ABC News. В то время Toyota озвучивала единственное объяснение: самопроизвольное ускорение происходит из-за «несовместимых» ковриков, в которых застревают педали газа. Однако владельцы машин, столкнувшихся с феноменом, рассказывали другие интересные подробности: транспортное средство могло разгоняться и без «неправильных» ковриков, причем на педаль тормоза оно не реагировало. Только вот доказать свою правоту автомобилисты не могли.

Кроме того, в 2010 году переводчик-фрилансер из Израиля Бетси Бенджаминсон работала с 1,5 тыс. документов Toyota, из которых выяснила, что компания скрывает информацию о реальных причинах сбоев. В 2013-м она опубликовала данные. Из них следовало, что производитель пытался найти истоки проблемы «неконтролируемых ускорений», но не слишком успешно.

В документах же говорилось о причинах неполадок — упоминались «электронные компоненты, компьютер управления двигателем, программное обеспечение и интерференция радиоволн». В других бумагах компания пишет об ошибках в электронной системе управления газом, которые были исправлены перед началом производства. Это стало косвенным указанием на то, что элемент в теории является сбойным, в то время как Toyota утверждала, что это невозможно.

Производитель выпустил видео, в котором рассказывает, как «освободить» застрявшую педаль:

Параллельно ситуацией заинтересовался Майкл Барр, технический директор компании Barr Group, которая специализируется на встраиваемых системах. В 2011 году он поставил под сомнение выводы, сделанные после экспертизы NASA, а в 2012-м признанный эксперт оказался во главе созданной комиссии из инженеров ПО, приступившей к изучению управляющего программного обеспечения. Различные его версии применялись в Camry 2005 года, Lexus ES и Tacoma (модельный ряд включал машины начиная с 2002 года выпуска, когда Toyota стала использовать электронные педали газа).

Расследование, которое было инициировано в рамках судебного иска, заняло 18 месяцев. Инженеры работали в специальном «секретном» помещении, откуда нельзя было выносить документацию. Более того, покинув его, специалисты не имели права делать заметки по памяти. Конечно, запрещено было и брать какие-либо электронные устройства с собой.

Похожая проблема с автомобилем Montero Sport:

Барр и его команда пришли к выводу, что сбой системы (они рассматривали один из множества случаев) произошел по причине низкого качества программного обеспечения — компьютер давал неверные значения, что приводило к неконтролируемому ускорению автомобиля. Причем это могло произойти при простейшей ошибке, которая должна на лету корректироваться в любой более-менее важной системе.

Причины таких ошибок могут быть разными — вплоть до воздействия на электронику космического излучения. Ученые, кстати, выдвигали такую гипотезу касательно истории с Toyota еще в 2010 году. Что именно привело к «битфлипу» в случае с японским производителем, уже не слишком важно. Хуже то, что в тот момент дублирующей системы предусмотрено не было (либо она не работала).

Барр выяснил, что «черный ящик» машины не фиксировал ошибки — для стороннего наблюдателя или эксперта, имеющего доступ только к диагностическим инструментам, никаких сбоев не было. Тем более «самописец» мог фиксировать неверные данные в случае ДТП, говорилось в отчете, занявшем более 750 страниц.

Эксперт подчеркнул, что специалисты NASA не были неправы — им просто не хватило времени на проверку гипотез, но они не исключали наличия программных ошибок. «А мы смогли их найти», — писал Барр, команда которого имела куда больше времени и доступ к полному исходному коду, а не его фрагментам.

«Кривых» моментов в управляющем ПО было найдено столько, что хватило бы на десяток стартапов: исходный код сравнили с «тарелкой со спагетти» (это слова программиста из Toyota, датированные 2007 годом). Судя по отчетам, здесь мало что могло работать корректно: память сбоила, говорили о так называемых единых точках отказа, ненадлежащих системах защиты от переполнения данными и тысячах глобальных переменных. Точнее, пишут о более 10 тыс., что, по словам экспертов, уже выходит за рамки — их даже изучать нет смысла.

«Если существует хотя бы единственная „единая точка отказа“, согласно любым стандартам безопасности такая система по определению является ненадежной вне зависимости от количества контрмер. Они снизят частоту возникновения (ситуаций сбоя), но не нейтрализуют их. Так как речь идет о миллионах автомобилей, (баг) найдет самый невероятный путь, чтобы проявить себя», — заявил Филипп Купман, профессор из Университета Карнеги — Меллона.

ECM-модуль Toyota. Фото: EDN

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

В качестве примера того, что представлял собой код управляющих систем, упоминают стандарт MISRA C, разработанный Motor Industry Software Reliability Association, которая ратует за эффективный и безопасный код для встраиваемых систем. В нем перечисляются правила, нарушение которых приводит к возникновению багов. Чем больше нарушений, тем больше ошибок — например, на 30 нарушений приходится три незначительных бага и один серьезный. Так вот NASA, используя MISRA C (версия не уточняется), нашла 7134 нарушения, Барр (MISRA-C:2004) — 81 514 нарушений.

Майкл Барр (справа) в 2018 году

Кто стоял за написанием программного обеспечения, история умалчивает. Имена наверняка указаны в документах для суда, однако это не меняет отношения к достаточно спорному подходу в разработке ПО. Стоит отметить, что назвать точное количество инцидентов, произошедших по вине электроники, затруднительно: разные источники пишут о всех жертвах «самопроизвольного ускорения» машин Toyota (и некоторых Pontiac) вместе.

Японский же производитель продемонстрировал не совсем обычный подход к информированию автовладельцев, хотя честно инициировал кампании по отзыву транспортных средств. Благодаря тонкостям американского законодательства репутационный ущерб, видимо, удалось снизить. Либо проблема носила не такой уж массовый характер, как может показаться.

Источники: TopGear, San Diego Source, ABC News, Reuters, EE Times, Livescience, Embedded Gurus, Bisnar Chase, Safety Research & Strategies, IndustryWeek.

Читайте также:

стандартная, HD-TVI, матрица 1/4" CMOS, освещенность от 0.1 лк, ИК-подсветка
стандартная, HD-CVI, матрица 1/4" CMOS, освещенность от 0.05 лк, ИК-подсветка
стандартная, HD-TVI, матрица 1/2.7" CMOS, объектив F/1.2 3.6 мм, ИК-подсветка

Библиотека Onliner: лучшие материалы и циклы статей

Наш канал в Telegram. Присоединяйтесь!

Быстрая связь с редакцией: читайте паблик-чат Onliner и пишите нам в Viber!

Перепечатка текста и фотографий Onliner без разрешения редакции запрещена. nak@onliner.by