Но что делать, если это устройство много часов у вас перед глазами, а вам очень скучно? Конечно же, искать уязвимости и недочеты интерфейса! Находить их, а потом отправлять в техническую поддержку, чтобы их исправили.
Что я собственно и сделал, но опубликовал способ обхода интерфейса до исправления недочетов. Если хотите узнать почему я так поступил, что находится под интерфейсом медиа центра и что делает тех поддержка Turkish Airlines в свободное время — читайте под катом.
В чем же проблема интерфейсов встраиваемых устройств?
К сожалению, у множества устройств «Интернета вещей» есть мелкие недочеты позволяющим обойти «стандартный» интерфейс и попасть внутрь операционной системы. Я часто увлекаюсь поиском таких багов в свое удовольствие, но не во вред устройствам и общественности. Узнаешь, как взломать чужой — поймешь, как защитить свой софт.
Много разработчиков интерфейсов не уделяют должного внимания безопасности, из-за чего могут пострадать пользователи. А ведь это очень серьезно, злоумышленник может средствами фишинга заниматься кражей персональных данных. Наивные пользователи могут вводить свои пароли и данные кредитных карт в устройство, которое с первого взгляда не может причинить им ущерб.
Долгие часы перелета
Это был не первый мой полет с авиакомпанией Turkish Airlines, и я уже видел медиа центры нескольких самолетов этой компании. Отличить Windows CE устройство от Android можно проверив работу жестов тачскрина, на Windows CE поддержка multi-touch отсутствует. В Windows CE всегда ставят тачскрины резистивные, а на Android почти все емкостные.
В этот раз попался медиа центр на Android. На глаз интерфейсы одинаковы, но на ощупь сразу заметно отличия. Пока никто из персонала не смотрел в мою сторону, я начал изучать возможные недочеты. Некоторые устройства можно подчинить одним лишь пальцем, но не это.
В кресла встроены гнезда для наушников, джойстик, а так же Ethernet и USB порт. В Windows CE устройствах на борту он был отключен. Я решил попробовать подключить флешку и тут.
Появилось сообщение «USB Device detected».
Я нашел секцию проигрывания с USB диска, там три секции, JPG, MP3, PDF.
Дальше я сохранил произвольный PDF файл на флешку и подключил ее обратно в медиа центр. В результате он появился в списке и успешно открылся.
Внизу появились стандартные кнопки Android. При нажатии на кнопку Home происходит перехват программой и возврат к медиа центру. Так что эти кнопки бесполезны.
Чтобы пойти дальше я выделил пальцем кусок текста и появилось меню в правом верхнем углу.
Через меню Share я получил доступ к Mail и Messages, откуда получилось посмотреть файловую систему.
Внутри оказалась флешка на 64 Gb, скорее всего MicroSD. Дальше через то же меню через кнопку Web Search удалось запустить Google Chrome.
Но интернета там не оказалось. Возможно на других рейсах он будет.
Дальше я попробовал открыть файл /etc/hosts, что успешно получилось.
К моему удивлению выяснилось что они не используют ни 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
Ну и классика:
25080205
https://xakep.ru/2006/12/16/35784/
MegaShIzoID
вот один в один про автора статьи