![image](https://habrastorage.org/getpro/geektimes/post_images/734/208/b11/734208b113c12896a71a2ce6bddaba2a.jpg)
Но что делать, если это устройство много часов у вас перед глазами, а вам очень скучно? Конечно же, искать уязвимости и недочеты интерфейса! Находить их, а потом отправлять в техническую поддержку, чтобы их исправили.
Что я собственно и сделал, но опубликовал способ обхода интерфейса до исправления недочетов. Если хотите узнать почему я так поступил, что находится под интерфейсом медиа центра и что делает тех поддержка Turkish Airlines в свободное время — читайте под катом.
В чем же проблема интерфейсов встраиваемых устройств?
К сожалению, у множества устройств «Интернета вещей» есть мелкие недочеты позволяющим обойти «стандартный» интерфейс и попасть внутрь операционной системы. Я часто увлекаюсь поиском таких багов в свое удовольствие, но не во вред устройствам и общественности. Узнаешь, как взломать чужой — поймешь, как защитить свой софт.
Много разработчиков интерфейсов не уделяют должного внимания безопасности, из-за чего могут пострадать пользователи. А ведь это очень серьезно, злоумышленник может средствами фишинга заниматься кражей персональных данных. Наивные пользователи могут вводить свои пароли и данные кредитных карт в устройство, которое с первого взгляда не может причинить им ущерб.
Долгие часы перелета
Это был не первый мой полет с авиакомпанией Turkish Airlines, и я уже видел медиа центры нескольких самолетов этой компании. Отличить Windows CE устройство от Android можно проверив работу жестов тачскрина, на Windows CE поддержка multi-touch отсутствует. В Windows CE всегда ставят тачскрины резистивные, а на Android почти все емкостные.
![image](https://habrastorage.org/getpro/geektimes/post_images/98e/96c/e1f/98e96ce1f84017740b81aa319321e300.jpg)
В этот раз попался медиа центр на Android. На глаз интерфейсы одинаковы, но на ощупь сразу заметно отличия. Пока никто из персонала не смотрел в мою сторону, я начал изучать возможные недочеты. Некоторые устройства можно подчинить одним лишь пальцем, но не это.
В кресла встроены гнезда для наушников, джойстик, а так же Ethernet и USB порт. В Windows CE устройствах на борту он был отключен. Я решил попробовать подключить флешку и тут.
Появилось сообщение «USB Device detected».
![image](https://habrastorage.org/getpro/geektimes/post_images/8e8/c82/141/8e8c82141cd50f1581d8b69d6e634eb0.jpg)
Я нашел секцию проигрывания с USB диска, там три секции, JPG, MP3, PDF.
![image](https://habrastorage.org/getpro/geektimes/post_images/276/c52/810/276c528101fb9d12b16cac64645324d1.jpg)
Дальше я сохранил произвольный PDF файл на флешку и подключил ее обратно в медиа центр. В результате он появился в списке и успешно открылся.
![image](https://habrastorage.org/getpro/geektimes/post_images/e86/81f/2d5/e8681f2d55a6e82783393f1cb35888be.jpg)
Внизу появились стандартные кнопки Android. При нажатии на кнопку Home происходит перехват программой и возврат к медиа центру. Так что эти кнопки бесполезны.
Чтобы пойти дальше я выделил пальцем кусок текста и появилось меню в правом верхнем углу.
![image](https://habrastorage.org/getpro/geektimes/post_images/c9d/be3/f85/c9dbe3f851d2da197c6be2433d0f2aa0.png)
Через меню Share я получил доступ к Mail и Messages, откуда получилось посмотреть файловую систему.
![image](https://habrastorage.org/getpro/geektimes/post_images/dc3/16e/c50/dc316ec5011bb305557251787cd726bd.jpg)
Внутри оказалась флешка на 64 Gb, скорее всего MicroSD. Дальше через то же меню через кнопку Web Search удалось запустить Google Chrome.
![image](https://habrastorage.org/getpro/geektimes/post_images/798/1fe/06b/7981fe06b2f5717c45bf6ffb17b57054.jpg)
Но интернета там не оказалось. Возможно на других рейсах он будет.
![image](https://habrastorage.org/getpro/geektimes/post_images/96d/eaf/3ac/96deaf3ac644da635795db1b676ae54e.jpg)
Дальше я попробовал открыть файл /etc/hosts, что успешно получилось.
![image](https://habrastorage.org/getpro/geektimes/post_images/618/1e5/8d5/6181e58d5cf65d7bdcb479bac68cbde6.jpg)
К моему удивлению выяснилось что они не используют ни 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)
Lertmind
21.02.2017 09:02+6Самое интересное упущено, как вы сделали это?
Дальше мне удалось копировать файлы, в том числе вышло заменить файл /etc/hosts своим
tmin10
21.02.2017 10:01Видимо на устройстве был рутуовый доступ ко всему…
alparo
21.02.2017 10:30Любопытно, через что автор смог скопировать файл. Удалось запустить файл-менеджер?
Или копирование файлов можно осуществлять через диалог выбора сертификата, который был показан на видео?tmin10
21.02.2017 10:36Видео не смотрел, но возможно из диалога выбора файлов можно делать с ними простейшие операции копирования.
IGHOR
21.02.2017 18:54Думаю что публиковать способ записи файлов неуместно.
Цель моего поста рассказать о всем что уже итак утекло в сеть.
А не распространять информацию, которая может причинить вред другим людям, или компании Turkish Airlines.
Solival
21.02.2017 09:28+11Наверное, все таки, тачскрины в винде резистивные, а в андроиде емкостные.
IGHOR
21.02.2017 12:44-3Это сейчас в современных смартфонах всюду резистивные, а в бюджетных андроидах емкостные.
В встраиваемой технике еще древний Windows CE, и там как у старых КПК все еще емкостные тачскрины в комплекте.
Так же вы можете встретить Windodws CE с емкостным тачскрином в GPS навигаторах.
i360u
21.02.2017 09:54+1Меня всегда удивляло, насколько криворуко все эти оболочки для медиасистем в самолетах сделаны. Мне кажется, нет, я просто уверен, что смог бы сделать лучше самостоятельно "на коленке". Я понимаю, что там есть жесткие требования по весу, энергопотреблению, пожароопасности и много чему еще, и поэтому девайсы туда впихиваются "специфичные". Но все равно очевидно, что есть большой простор для улучшений (хотя-бы чисто интерфейсных) для того, чтобы это начало выглядеть и работать приемлемо.
tmin10
21.02.2017 09:57+6А в самолётах Аэрофлота развлекательная система без сенсорного дисплея, только с трубкой-джойстиком-пультом-читалкой магнитных карт. Система основана на Red Hat. Когда она подвисала, то перезагружалась. Нажатие кнопочек показало консоль загрузки.
ФотоФото
lomalkin
26.02.2017 11:05Мне попадались внешне такие же в Аэрофлоте, но сенсорные (резистивные), попробуйте, но он не очень отзывчивый. После загрузки консоли грузится стандартная иксовая оболочка, потом развлекательный интерфейс. Грузится все, кстати, по TFTP.
Dum_spiro_spero
21.02.2017 11:14+5Ну видимо в следующий раз надо запустить программку выводящую что-то в духе аллах-акбар с обратным отсчетом. Желательно отсроченно, чтобы не на своем рейсе. Скорее всего реакция последует.
Интересно, а как устроен централизованный вывод на все мониторы/терминалы? Ведь информация о полете (высота, скорость, и т.п...) выводится всем сразу. Можно ли теоретически получить доступ ко всем терминалам со своего места?tmin10
21.02.2017 11:29Скорее просто есть сервер, с которого читается что-то типа JSON с общей информацией.
Denkenmacht
21.02.2017 15:25:-) Это было бы смешно. Интересно, это инкриминируется как-то?
mayorovp
21.02.2017 17:00+3Не уверен можно ли рассматривать это как заведомо ложное сообщение о теракте — но даже без этого может прилететь иск о возмещении убытков из-за аварийной посадки если (когда) найдут.
А уж если при эвакуации пассажиров будут переломы — то и причинение вреда здоровью по неосторожности получится.
Jacen
21.02.2017 12:45+1В Windows CE всегда ставят тачскрины емкостные, а на Android почти все резистивные
Наоборот же?IGHOR
21.02.2017 12:47-1В встраиваемой технике на базе Windows CE, не путайте с обычным Windows или Windows Phone, всегда используют емкостные.
tmin10
21.02.2017 12:49+1Это звучит странно, ведь изначально была Win CE и девайсы на ней были резистивными, т.е. емкостные тогда не были распространены. А вот андроид пришёл уже в век ёмкостных экранов. Хотя, возможно, я и не прав.
razielvamp
21.02.2017 14:27Хотелось бы посмотреть на лицо вашего соседа по креслу, когда вы это все проделывали ))
IGHOR
21.02.2017 14:29+1Там так сделан баръер, что соседу почти ничего не видно.
Только тем кто дальше позади изображение становится светлее.
nafikovr
21.02.2017 15:05+2примерно так же в терминалах электронной очереди в поликлинике.
1 — двойной тап для выделения текста.
2 — удержание на выделении, появляется контестное меню
3 — тап на «найти в Google»
к сожалению адресной строки нет. так же ограничивает русскоязычная клавиатура. однако строка поиска отлично понимает и введенный в ошибочной раскладке слова
Sokol666
21.02.2017 15:07+1Просто забавное развлечение. Не думаю что в локальной сети есть что то важное и критическое, а настроена она так, что там даже сломаться нечему. Максимум что можно сделать, это сломать ось на планшете, что конечно же вызовет недовольство некого инженера, который взяв ноут пойдет его прошивать, и все.
unwrecker
21.02.2017 16:05Это очень напоминает историю про солонки в ресторане.
mayorovp
21.02.2017 17:04+1У тех солонок уязвимость была принципиальной и неустранимой: сыпучие вещества сыпятся в обе стороны, это ж физика.
Программные решения не настолько ограничены.
Infthi
21.02.2017 17:53+5Вполне себе устранимой — можно было использовать порционную соль в бумажных пакетиках, выдаваемую из доверенного источника на кассе.
mayorovp
21.02.2017 18:00Пакетик и свой принести можно...
itvdonsk
21.02.2017 22:41+3Несите, только использовать содержимое пакетика будете только вы.
nickolaym
22.02.2017 15:03А подменить пакетик?
— оставить свой на столе, в надежде, что кто-нибудь позарится на халяву
— попросить на кассе пакетик, подменить и тут же вернуть в доверенное хранилище
— отвлечь кассира и насыпать горсть пакетиков в доверенное хранилищеErinquatan
25.02.2017 05:29-2А пока вы меняете пакетики, 3 камеры с разных ракурсов снимают вас и ваше лицо, фиксирует походку и жесты, система распознавания лиц ищет ваше лицо по всем соцсетям, связывает личность и все засвеченные вами адреса и явки, bigdata это анализирует и на следующий день к вам врывается отряд ОМОНа прямо на квартиру, кладет лицом в пол и предъявляет подложенные пакетики))
alexhott
21.02.2017 20:54+1справка в отном из отделений сбера
комп обычный и клава с мышей на столе
запущено какоето приложение
рука сама потянулось на алт+ф4 — был уверен что ничего не должно произойти, и тупо приложение закрылось
cumdeosicvolo
22.02.2017 07:12По статье: я вот только не понял — чем так ужасна в данном случае подмена файла hosts, если рядовому пользователю браузер не доступен? или это все к тому, что если поискать, можно сильнее навредить системе?
IGHOR
22.02.2017 07:15Ужасен не вред системе, это никому не нужно, а возможность использовать оборудование для фишинга против людей.
cumdeosicvolo
22.02.2017 08:35Еще раз: какой фишинг, если в начальной оболочке даже нет браузера?
P.S. как в этом кресле обновляются фильмы? есть общая сеть, общее файловое хранилище или отдельно вручную в каждом по отдельности?IGHOR
22.02.2017 08:45+2Фильмы хранятся локально а реклама и инструкции транслируются с сервера.
Тексты в интерфейсе можно заменить, указать «отправьте смс на номер..».
Chrome можно запустить и стартовой страницей указать http://google.com при том hosts направит на локальный IP.
Алфавитная клавиатура там под рукой с другой стороны джойстика.
mistik_max
22.02.2017 21:17Идея с мониторами в самолете на спинке кресла — гениальна) но я надеюсь их не будут использовать для трансляции рекламных роликов...)
IGHOR
22.02.2017 21:19Рекламы там нет, но когда говорит пилот, показывается полноэкранное предупреждение.
А транслируют это https://www.youtube.com/watch?v=9NqSg4dSBvI
San66
01.03.2017 17:26В следующий раз когда посреди океана пропадет очередной самолет нужно проверить, не было ли на борту подобного естествоиспытателя.
MegaShIzoID
я вот даже не пойму чего в этой статье больше — бахвальства что смог сделать то же самое что умеет любой современный подросток или того что обижен фактом игнорирования автора саппортом
fireSparrow
Я вот даже не пойму, чего больше в вашем комментарии — стремления принижать других или латентного желания заявить всем о своих комплексах.
MegaShIzoID
в моем каменте можно четко проследить единственную мысль — для чего автор этой статьи вынес на всеобщее обозрение свой пафос и глупость?
i360u
В номинациях "пафос" и "глупость" тут уже нарисовался абсолютный чемпион. И это не автор статьи. Подсказать кто?
fireSparrow
Я не заметил в статье ни пафоса, ни глупости. Мне было интересно её читать.
Пара финтов мне показались весьма остроумными, я бы сам не догадался такое сделать. Сильно подозреваю, что «любой современный подросток» — тоже.
Скажите, а вам знаком такой термин из психологии — «проекция»?
perfect_genius
perfect_genius
Ну и классика:
![image](https://habrastorage.org/getpro/geektimes/post_images/623/b87/cec/623b87cec0e792b36e482e7d7aa91fd2.gif)
25080205
https://xakep.ru/2006/12/16/35784/
MegaShIzoID
вот один в один про автора статьи