Эксперт по безопасности Крис Робертс в апреле был допрошен ФБР в связи с желанием озвучить обнаруженные им проблемы с защитой бортовых систем пассажирских самолётов на конференции RSA 2015. Расследование продолжается, а в деле появились новые подробности. Крис уточнил, что именно потребуется для перехвата контроля над авионикой определённых моделей авиалайнеров и упомянул, что проблема слабой защищённости касается всей аэрокосмической отрасли.
Месяц назад «Компьютерра» уже писала о том, как Криса Робертса сняли с рейса и передали в руки ФБР. Однако это был далеко не первый случай, когда он собирался обнародовать шокирующие факты. На разных конференциях ему это удавалось делать как минимум в последние два года, но тогда мало кто воспринимал его находки всерьёз.
Вопросами защищённости бортовых систем самолётов, дронов и космических аппаратов Крис заинтересовался примерно десять лет назад. Проблемы разной степени серьёзности были обнаружены уже на второй год собственных исследований. Как и все «этичные хакеры», Робертс писал о найденных уязвимостях разработчикам. Те обычно молчали, либо отвечали стандартной формулировкой: «описываемый сценарий нереализуем на практике». Тогда Крис основал фирму One World Lab. Как её учредитель, он стал искать единомышленников и копать глубже.
Особенность выступлений на хакерских конференциях состоит в том, что их сложно проверить. Для этого требуется обладать сопоставимым уровнем квалификации, а это – редкость даже в профессиональных кругах. Обычно самые яркие доклады делают увлечённые люди, годами изучавшие малоизвестные темы. Можно быть специалистом в смежных областях, оценивать общую логичность тезисов, но, чтобы проверить выводы, всё равно потребуется воспроизвести предложенный опыт.
Поэтому Крис с каждым разом начал сообщать всё больше технических деталей и, в конце концов, привлёк внимание ФБР. Когда эпатажный гик вскользь упоминает, что лет восемь назад перехватил управление МКС и смог изменить температуру внутри станции – это звучит как фантазия или шутка. Если же докладчик раз за разом называет конкретные уязвимые компоненты и способы их эксплуатации – ситуация кардинально меняется.
Делать часть результатов своих исследований доступными общественности Робертс решил после того, как его в очередной раз отфутболили официальные лица. Крис был готов доказать свою правоту, но представители авиакомпании предпочли не допустить его на рейс по оплаченному билету.
Современные правила пассажирских перевозок удивительны в своей абсурдности. Вы можете свободно пронести в салон ноутбук с любым софтом, но у вас отберут бутылку воды, даже если она запечатана. Лэптоп и флэшки можно подключать к бортовой мультимедийной системе, через сервис Gogo на некоторых рейсах доступен предоплаченный выход в интернет по Wi-Fi, а на других мобильник попросят выключить или отрубить на нём все радиомодули.
На взгляд Робертса так происходит потому, что нас отвлекают от реальных проблем показательным решением надуманных. Вдруг под видом минералки вы пронесёте жидкую бомбу? Вдруг ваш крохотный смартфон создаст помехи… помехоустойчивому оборудованию огромного авиалайнера, защищённого даже от попадания молнии?
Крис откровенно развлекался, понимая, что с пассажирского кресла может не только считывать служебную информацию о работе всего оборудования самолёта, но даже подменять её. Конечно, для этого недостаточно лэптопа с предустановленной виндой или макбука.
Крис поясняет, что бортовые системы самолётов серии Boeing 7xx работают под управлением операционной системы реального времени VxWorks. Она UNIX-подобная и поддерживает архитектуру x86. В ней реализован стек протоколов TCP/IP и даже встроен telnet, а большинство пакетов идёт по UDP, что упрощает задачу подключения и сбора данных.
«На ноутбуке вы создаёте собственную Vx среду, способную работать с Intellibus, а затем делаете всё, что угодно. Можно даже отключить двигатели у Boeing 787 на высоте 35 тысяч футов», – комментирует Робертс. Доступные пользователю развлекательные системы работают под Windows CE или Linux, но их можно использовать в качестве шлюза и добраться до других подсистем.
До полёта и проведения теста на проникновение предстоит изучить документацию, потренироваться в виртуальной среде и сделать немало приготовлений, но все они выполняются в спокойной домашней обстановке. На борту самолёта останется только подключить готовый ноутбук с настроенным софтом.
Крис поясняет: это возможно потому, что, вопреки здравому смыслу, все электронные системы самолёта физически объединены общим интерфейсом – шиной Intellibus. Через неё проходят все данные, а их разделение происходит лишь на логическом уровне с помощью межсетевого экрана. Строго говоря, фаервола там два, но они обходятся один за другим, поскольку никому не приходит в голову их патчить и актуализировать правила фильтрации пакетов. Практически все настройки остаются в значениях «по умолчанию».
«Во время полёта на Boeing 737 в Сан-Антонио мне удалось быстро подружиться через IFE с первым фаерволом, – вспоминает Робертс. – Я изменил его настройки и преодолел следующий. За ним была старая версия сервера Apache Tomcat – без патчей и с удалённым управлением через порт 1433».
Откуда там взялся Apache Tomcat? Долгое время система развлечений в полёте (IFE) у Boeing работала под управлением Windows CE. Затем вслед за Airbus компания стала переводить её на Linux и использовала Tomcat в качестве сервера контента. Строку о его загрузке можно увидеть, если IFE выполнит ребут из-за сбоя.
Представители Boeing настаивают, что IFE физически изолирована от авионики. United Airlines даже предлагала миллион оплаченных воздушных миль тому, кто докажет возможность взлома, но при этом не давала реального шанса его осуществить. По условиям предложения, тест на проникновение должен выполняться на стоящем без пассажиров самолёте, который компания не предоставляет. Хакера со своим боингом в ангаре я не встречал. Получается замкнутый круг.
Крис же утверждает, что выполнял взлом в полёте десятки раз. По его словам, все данные (даже управляющие команды системы EICAS) передаются по Intellibus вместе и даже без шифрования. Их можно свободно перехватывать и подменять на любые другие прямо во время полёта.
«Теперь, когда вы это знаете, пожалуйста, будьте осторожны. Наблюдайте, но не вмешивайтесь в работу бортовых систем, чтобы самолёт действительно не рухнул, – говорит Робертс. – Те же из вас, кто имеет отношение к авиационной промышленности, пожалуйста, внесите исправления».
Рассуждая о планах дальнейших исследований, Крис признаётся, что давно изучает возможность перехватить управление марсоходом Curiosity. «На самом деле, мы уже достаточно много знаем об особенностях этого процесса, – говорит Робертс. – Нам даже известна пара паролей, которые NASA опрометчиво оставила в дефолтных настройках. Изначально была идея заставить марсоход повернуть или покрутиться на месте, но сейчас мы от неё отказались. В NASA ещё не отошли после той истории с МКС».