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

image

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

Что я собственно и сделал, но опубликовал способ обхода интерфейса до исправления недочетов. Если хотите узнать почему я так поступил, что находится под интерфейсом медиа центра и что делает тех поддержка Turkish Airlines в свободное время — читайте под катом.

В чем же проблема интерфейсов встраиваемых устройств?


К сожалению, у множества устройств «Интернета вещей» есть мелкие недочеты позволяющим обойти «стандартный» интерфейс и попасть внутрь операционной системы. Я часто увлекаюсь поиском таких багов в свое удовольствие, но не во вред устройствам и общественности. Узнаешь, как взломать чужой — поймешь, как защитить свой софт.

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

Долгие часы перелета


Это был не первый мой полет с авиакомпанией Turkish Airlines, и я уже видел медиа центры нескольких самолетов этой компании. Отличить Windows CE устройство от Android можно проверив работу жестов тачскрина, на Windows CE поддержка multi-touch отсутствует. В Windows CE всегда ставят тачскрины резистивные, а на Android почти все емкостные.

image

В этот раз попался медиа центр на Android. На глаз интерфейсы одинаковы, но на ощупь сразу заметно отличия. Пока никто из персонала не смотрел в мою сторону, я начал изучать возможные недочеты. Некоторые устройства можно подчинить одним лишь пальцем, но не это.

В кресла встроены гнезда для наушников, джойстик, а так же Ethernet и USB порт. В Windows CE устройствах на борту он был отключен. Я решил попробовать подключить флешку и тут.
Появилось сообщение «USB Device detected».

image

Я нашел секцию проигрывания с USB диска, там три секции, JPG, MP3, PDF.

image

Дальше я сохранил произвольный PDF файл на флешку и подключил ее обратно в медиа центр. В результате он появился в списке и успешно открылся.

image

Внизу появились стандартные кнопки Android. При нажатии на кнопку Home происходит перехват программой и возврат к медиа центру. Так что эти кнопки бесполезны.

Чтобы пойти дальше я выделил пальцем кусок текста и появилось меню в правом верхнем углу.

image

Через меню Share я получил доступ к Mail и Messages, откуда получилось посмотреть файловую систему.

image

Внутри оказалась флешка на 64 Gb, скорее всего MicroSD. Дальше через то же меню через кнопку Web Search удалось запустить Google Chrome.

image

Но интернета там не оказалось. Возможно на других рейсах он будет.

image

Дальше я попробовал открыть файл /etc/hosts, что успешно получилось.

image

К моему удивлению выяснилось что они не используют ни DHCP сервер, ни DNS, все устройства внутри самолета, включая сервер стриминга прописаны в файле конфигурации hosts.

Дальше мне удалось копировать файлы, в том числе вышло заменить файл /etc/hosts своим, после чего я вернул его обратно. Это дает возможность перенаправить трафик медиа сервера на любой IP адрес а так заменить веб элементы самого медиа центра на свои. Способ замены файла я не публиковал.

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

Обращение в поддержку Turkish Airlines


В самолете я подготовился и снял видео всего процесса, чтобы отправить в поддержку Turkish Airlines. В нем только то, что нужно показать поддержке для устранения уязвимостей.

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


Это видео я загрузил в YouTube месяц назад, после смены приватного статуса дата обнулилась. Ссылка была приватной. Никто не мог просматривать видео кроме меня и службы поддержки. Я позвонил в поддержку Turkish Airlines и не с первого раза, но мне удалось объяснить, что я пытаюсь им помочь. Они объяснили, куда именно на их сайте написать обращение.

После отправки заявки с ссылкой видео мне пришло письмо от робота что мне ответят в течении 7 дней. После отправки видео я время от времени проверял счетчик просмотров, чтобы узнать смотрела ли его тех поддержка, число не менялось.

Ожидание ответа от поддержки


Прошло 2 недели, ответ так и не поступил и я решил написать им в Twitter @TK_HelpDesk. Сразу получил ответ, они сказали что проверят мой запрос и быстрее ответят.

Прошел месяц, ответа нет, захожу в YouTube а там 175 просмотра и 4 дизлайка.

Аналитика YouTube говорит, что по ссылке переходили из разных стран. Кто-то из технической поддержки Turkish Airlines слил ссылку в публичный доступ. Во первых — это не профессионально с их стороны, во вторых — стало очевидно что кто-то из просмотревших скорее всего загрузит копию или запишет свое видео о взломе. А значит больше нет смысла держать видео приватным и я решил его опубликовать.

Я открыл видео в публичный доступ, и после этого мне написали с поддержки через Twitter @TK_HelpDesk в лс, а так же сюда. Говорят «мы же тебе ответили 9 числа», поискал, нашел, действительно есть письмо. Но текст его совсем не ответ на мой запрос, а «We would like to state our regret for being unable to respond your feedback in time due to intensity», где они извиняются, что не могут ответить вовремя из-за нагрузки, и ответят позже. Ответ на мой тикет до сих пор не получен.

Послесловие


Мой совет, если вы разрабатываете интерфейс для терминала, или любого устройства с тачскрином, уделяйте больше внимания на интеграцию вашей программы с самой ОС.
Надеюсь моя статья поможет кому-то делать свои устройства чуть более надежными.

По моему опыту труднее всего было «обойти UI» на устройствах на базе Windows XP и на Windows CE.
Поделиться с друзьями
-->

Комментарии (72)


  1. MegaShIzoID
    21.02.2017 08:44
    -35

    я вот даже не пойму чего в этой статье больше — бахвальства что смог сделать то же самое что умеет любой современный подросток или того что обижен фактом игнорирования автора саппортом


    1. fireSparrow
      21.02.2017 09:17
      +35

      Я вот даже не пойму, чего больше в вашем комментарии — стремления принижать других или латентного желания заявить всем о своих комплексах.


      1. MegaShIzoID
        21.02.2017 09:43
        -29

        в моем каменте можно четко проследить единственную мысль — для чего автор этой статьи вынес на всеобщее обозрение свой пафос и глупость?


        1. i360u
          21.02.2017 09:57
          +21

          В номинациях "пафос" и "глупость" тут уже нарисовался абсолютный чемпион. И это не автор статьи. Подсказать кто?


        1. fireSparrow
          21.02.2017 10:30
          +17

          Я не заметил в статье ни пафоса, ни глупости. Мне было интересно её читать.
          Пара финтов мне показались весьма остроумными, я бы сам не догадался такое сделать. Сильно подозреваю, что «любой современный подросток» — тоже.

          Скажите, а вам знаком такой термин из психологии — «проекция»?


        1. perfect_genius
          21.02.2017 12:31
          +3

          Узнаешь, как взломать чужой — поймешь, как защитить свой софт.


        1. perfect_genius
          21.02.2017 12:36
          +35

          Ну и классика:

          image


      1. 25080205
        21.02.2017 21:06
        +1

        https://xakep.ru/2006/12/16/35784/


        1. MegaShIzoID
          22.02.2017 06:27
          -2

          вот один в один про автора статьи


  1. Lertmind
    21.02.2017 09:02
    +6

    Самое интересное упущено, как вы сделали это?

    Дальше мне удалось копировать файлы, в том числе вышло заменить файл /etc/hosts своим


    1. tmin10
      21.02.2017 10:01

      Видимо на устройстве был рутуовый доступ ко всему…


      1. alparo
        21.02.2017 10:30

        Любопытно, через что автор смог скопировать файл. Удалось запустить файл-менеджер?
        Или копирование файлов можно осуществлять через диалог выбора сертификата, который был показан на видео?


        1. tmin10
          21.02.2017 10:36

          Видео не смотрел, но возможно из диалога выбора файлов можно делать с ними простейшие операции копирования.


      1. p_fox
        21.02.2017 12:41

        Странно что вообще есть доступ к hosts из браузера.
        Попробовал на телефоне — в доступе отказано.


        1. tmin10
          21.02.2017 12:50

          У меня есть доступ, показывает 127.0.0.1 localhost. Да и вообще всю файловую систему хорошо показывает.


    1. IGHOR
      21.02.2017 18:54

      Думаю что публиковать способ записи файлов неуместно.
      Цель моего поста рассказать о всем что уже итак утекло в сеть.
      А не распространять информацию, которая может причинить вред другим людям, или компании Turkish Airlines.


  1. Solival
    21.02.2017 09:28
    +11

    Наверное, все таки, тачскрины в винде резистивные, а в андроиде емкостные.


    1. IGHOR
      21.02.2017 12:44
      -3

      Это сейчас в современных смартфонах всюду резистивные, а в бюджетных андроидах емкостные.
      В встраиваемой технике еще древний Windows CE, и там как у старых КПК все еще емкостные тачскрины в комплекте.
      Так же вы можете встретить Windodws CE с емкостным тачскрином в GPS навигаторах.


      1. Viked
        21.02.2017 12:59
        +5

        В современных смартфонах — емкостные.
        А в моем старом таблете с Windows CE — резистивный.

        Мне кажется, что вы путаете их.


        1. IGHOR
          21.02.2017 12:59

          Так и есть, уже исправил.


    1. IGHOR
      21.02.2017 12:51
      +2

      Да, видимо я действительно перепутал значения. Спасибо, исправил.


  1. i360u
    21.02.2017 09:54
    +1

    Меня всегда удивляло, насколько криворуко все эти оболочки для медиасистем в самолетах сделаны. Мне кажется, нет, я просто уверен, что смог бы сделать лучше самостоятельно "на коленке". Я понимаю, что там есть жесткие требования по весу, энергопотреблению, пожароопасности и много чему еще, и поэтому девайсы туда впихиваются "специфичные". Но все равно очевидно, что есть большой простор для улучшений (хотя-бы чисто интерфейсных) для того, чтобы это начало выглядеть и работать приемлемо.


  1. tmin10
    21.02.2017 09:57
    +6

    А в самолётах Аэрофлота развлекательная система без сенсорного дисплея, только с трубкой-джойстиком-пультом-читалкой магнитных карт. Система основана на Red Hat. Когда она подвисала, то перезагружалась. Нажатие кнопочек показало консоль загрузки.

    Фото
    imageФото


    1. lomalkin
      26.02.2017 11:05

      Мне попадались внешне такие же в Аэрофлоте, но сенсорные (резистивные), попробуйте, но он не очень отзывчивый. После загрузки консоли грузится стандартная иксовая оболочка, потом развлекательный интерфейс. Грузится все, кстати, по TFTP.


  1. Leo7777
    21.02.2017 10:00
    -16

    типичные турки


  1. Dum_spiro_spero
    21.02.2017 11:14
    +5

    Ну видимо в следующий раз надо запустить программку выводящую что-то в духе аллах-акбар с обратным отсчетом. Желательно отсроченно, чтобы не на своем рейсе. Скорее всего реакция последует.
    Интересно, а как устроен централизованный вывод на все мониторы/терминалы? Ведь информация о полете (высота, скорость, и т.п...) выводится всем сразу. Можно ли теоретически получить доступ ко всем терминалам со своего места?


    1. tmin10
      21.02.2017 11:29

      Скорее просто есть сервер, с которого читается что-то типа JSON с общей информацией.


    1. olekl
      21.02.2017 12:42
      +1

      Думаю, автор ожидает другой реакции…


    1. mayorovp
      21.02.2017 14:52
      +3

      За такую программку можно и присесть, благо анонимом в самолете пролететь невозможно.


      1. mickvav
        21.02.2017 15:48
        +2

        При таком уровне администрирования им для деанонимизации придется применять массовый паяльно-ректальный криптоанализ.


    1. Denkenmacht
      21.02.2017 15:25

      :-) Это было бы смешно. Интересно, это инкриминируется как-то?


      1. mayorovp
        21.02.2017 17:00
        +3

        Не уверен можно ли рассматривать это как заведомо ложное сообщение о теракте — но даже без этого может прилететь иск о возмещении убытков из-за аварийной посадки если (когда) найдут.


        А уж если при эвакуации пассажиров будут переломы — то и причинение вреда здоровью по неосторожности получится.


  1. Ion_beam
    21.02.2017 12:45

    Интересно, а бортовой компьютер с автопилотом к той-же сети подключены?


    1. IGHOR
      21.02.2017 13:13

      Надеемся и верим что это не так.


    1. Suvitruf
      21.02.2017 13:38

      Где-то тут или на хабре была статья о том, как системы сети самолёта устроены. Там изолированная сеть у пилотов.


    1. maxwolf
      21.02.2017 14:17
      +3

      Везде пишут, что они полностью изолированные. Я один раз вот такой трек GPS видел:

      image

      Так что, скорее всего, даже датчики там обособленные…


      1. nickolaym
        22.02.2017 14:53
        +3

        Это навигатор пытался привязать текущее положение к ближайшей автодороге.


  1. Jacen
    21.02.2017 12:45
    +1

    В Windows CE всегда ставят тачскрины емкостные, а на Android почти все резистивные
    Наоборот же?


    1. IGHOR
      21.02.2017 12:47
      -1

      В встраиваемой технике на базе Windows CE, не путайте с обычным Windows или Windows Phone, всегда используют емкостные.


      1. tmin10
        21.02.2017 12:49
        +1

        Это звучит странно, ведь изначально была Win CE и девайсы на ней были резистивными, т.е. емкостные тогда не были распространены. А вот андроид пришёл уже в век ёмкостных экранов. Хотя, возможно, я и не прав.


        1. IGHOR
          21.02.2017 12:52
          +1

          Да, видимо я действительно перепутал значения. Спасибо, исправил.


          1. gr33tx
            21.02.2017 20:42

            выглядело как эффект Манделлы)


            1. IGHOR
              21.02.2017 20:47
              +1

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


  1. PaulAtreides
    21.02.2017 13:18

    А по адресам из hosts не ходили? :)


    1. IGHOR
      21.02.2017 13:24

      Ходил, смотрите видео на 6:20


  1. razielvamp
    21.02.2017 14:27

    Хотелось бы посмотреть на лицо вашего соседа по креслу, когда вы это все проделывали ))


    1. IGHOR
      21.02.2017 14:29
      +1

      Там так сделан баръер, что соседу почти ничего не видно.
      Только тем кто дальше позади изображение становится светлее.


  1. nafikovr
    21.02.2017 15:05
    +2

    примерно так же в терминалах электронной очереди в поликлинике.
    1 — двойной тап для выделения текста.
    2 — удержание на выделении, появляется контестное меню
    3 — тап на «найти в Google»
    к сожалению адресной строки нет. так же ограничивает русскоязычная клавиатура. однако строка поиска отлично понимает и введенный в ошибочной раскладке слова


  1. Sokol666
    21.02.2017 15:07
    +1

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


    1. IGHOR
      21.02.2017 15:29

      Дело не во вреде сети или компании, а в риске для самих пассажиров.
      С помощью фишинга могут выманить данные карты под видом оплаты подключения к интернету.


      1. mickvav
        21.02.2017 15:52

        А еще можно спровоцировать людей на коллективные действия. Панику вполне можно организовать, imho.


        1. jar_ohty
          21.02.2017 16:16
          +1

          Или опять же пресловутый аллахакбар (см. выше) зарядить могут.


        1. Sokol666
          21.02.2017 18:37

          слабо себе представляю как? Пустить фильм про авиакатастрофу?


          1. Marsikus
            22.02.2017 10:33

            Вы сами ответили: пустить фейковое обращение от пилотов как минимум. Мало ли кто что придумает.


  1. unwrecker
    21.02.2017 16:05

    Это очень напоминает историю про солонки в ресторане.


    1. mayorovp
      21.02.2017 17:04
      +1

      У тех солонок уязвимость была принципиальной и неустранимой: сыпучие вещества сыпятся в обе стороны, это ж физика.


      Программные решения не настолько ограничены.


      1. Infthi
        21.02.2017 17:53
        +5

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


        1. mayorovp
          21.02.2017 18:00

          Пакетик и свой принести можно...


          1. itvdonsk
            21.02.2017 22:41
            +3

            Несите, только использовать содержимое пакетика будете только вы.


            1. nickolaym
              22.02.2017 15:03

              А подменить пакетик?

              — оставить свой на столе, в надежде, что кто-нибудь позарится на халяву
              — попросить на кассе пакетик, подменить и тут же вернуть в доверенное хранилище
              — отвлечь кассира и насыпать горсть пакетиков в доверенное хранилище


              1. Erinquatan
                25.02.2017 05:29
                -2

                А пока вы меняете пакетики, 3 камеры с разных ракурсов снимают вас и ваше лицо, фиксирует походку и жесты, система распознавания лиц ищет ваше лицо по всем соцсетям, связывает личность и все засвеченные вами адреса и явки, bigdata это анализирует и на следующий день к вам врывается отряд ОМОНа прямо на квартиру, кладет лицом в пол и предъявляет подложенные пакетики))


  1. alexhott
    21.02.2017 20:54
    +1

    справка в отном из отделений сбера
    комп обычный и клава с мышей на столе
    запущено какоето приложение
    рука сама потянулось на алт+ф4 — был уверен что ничего не должно произойти, и тупо приложение закрылось


  1. cumdeosicvolo
    22.02.2017 07:12

    По статье: я вот только не понял — чем так ужасна в данном случае подмена файла hosts, если рядовому пользователю браузер не доступен? или это все к тому, что если поискать, можно сильнее навредить системе?


    1. IGHOR
      22.02.2017 07:15

      Ужасен не вред системе, это никому не нужно, а возможность использовать оборудование для фишинга против людей.


      1. cumdeosicvolo
        22.02.2017 08:35

        Еще раз: какой фишинг, если в начальной оболочке даже нет браузера?
        P.S. как в этом кресле обновляются фильмы? есть общая сеть, общее файловое хранилище или отдельно вручную в каждом по отдельности?


        1. IGHOR
          22.02.2017 08:45
          +2

          Фильмы хранятся локально а реклама и инструкции транслируются с сервера.
          Тексты в интерфейсе можно заменить, указать «отправьте смс на номер..».
          Chrome можно запустить и стартовой страницей указать http://google.com при том hosts направит на локальный IP.
          Алфавитная клавиатура там под рукой с другой стороны джойстика.


          1. cumdeosicvolo
            22.02.2017 08:47

            Понял, спасибо.


  1. mastan
    22.02.2017 21:17

    Ждём, когда там запустят Doom.


    1. IGHOR
      22.02.2017 21:36

      HTML5 игры с флешки запросто.
      А IPA файлов под рукой, чтоб проверить, не было.


  1. mistik_max
    22.02.2017 21:17

    Идея с мониторами в самолете на спинке кресла — гениальна) но я надеюсь их не будут использовать для трансляции рекламных роликов...)


    1. IGHOR
      22.02.2017 21:19

      Рекламы там нет, но когда говорит пилот, показывается полноэкранное предупреждение.
      А транслируют это https://www.youtube.com/watch?v=9NqSg4dSBvI


  1. San66
    01.03.2017 17:26

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