Анализируем защищенность терминалов

Marat_1162

Стаж на ФС с 2014 г
Private Club
Старожил
Migalki Club
Меценат💰️
Регистрация
25/3/16
Сообщения
4.649
Репутация
9.166
Реакции
22.743
RUB
0
Депозит
3 500 рублей
Сделок через гаранта
4
Компьютерная игра Watch Dogs прекрасно описывает недалекое будущее: вокруг всевозможные девайсы, средства выдачи и приема наличных, а также разнообразные имеющие доступ в интернет устройства, нашпигованные уязвимостями, эксплуатация которых позволяет хакеру извлечь определенную выгоду. Например, в игре главный герой при помощи смартфона может скомпрометировать систему видеонаблюдения, получив тем самым возможности вести слежку и добывать дополнительную информацию.

Фанаты этой компьютерной игры разошлись во мнениях: кто‑то говорит, что это слишком «утопично» — достать смартфон и ломать все вокруг. Другие осознают, что «сказка — ложь, да в ней намек» и игровой мир отчасти отражает реальный.

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

ТЕРМИНАЛЬНЫЕ ТЕРМИНАТОРЫ​

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

QvZW4vz0VvM.jpg

LATfFMncp2o.jpg

Терминалы продажи билетов на киносеанс
днако жизнь учит разработчиков подобных устройств тому, что не все их пользователи касаются тачскринов с благими намерениями. Если ввести в Google запрос вида terminal hacked, то получим много релевантных видео, на которых главные герои раскладывают пасьянс на том или ином терминале или же рисуют всякие непристойности в Paint. Причиной этого могут быть различные баги в приложениях терминала, и часто они носят схожий принцип эксплуатации.

2hAH_XI1FjY.jpg

Пример «инструкции по компрометации», найденный в Сети
Так, на одном из видео участник удерживает свой палец на экране около десяти секунд, и это приводит к результату «нажатие правой кнопкой мышки». На другом ребята беспорядочно тыкают в левый нижний угол экрана — и полноэкранное приложение сворачивается. Кто‑то вообще додумался закрыть ладонью GSM-антенну терминала и таким образом спровоцировать выпадение ошибки подключения.

Q3H6Ab44rGA.jpg

«Ловкость пальцев и никакого мошенничества»
Из случаев компрометации подобных устройств наиболее интересен инцидент, произошедший с терминалами оплаты одного известного вендора электронных платежей. Злоумышленник в поле ввода назначения платежа при помощи виртуальной экранной клавиатуры приложения, которая доступна в интерфейсе платежной системы, вводил строку «last_page=StyleSheet.css». В качестве обработчика для файла с данным расширением открывался , который через свою систему справки позволял злодею перебраться в системную панель управления и запустить виртуальную клавиатуру операционной системы.

sDnFPctemo4.jpg

Интересный и уже неактуальный вариант компрометации терминала

МЕТОДИКА АНАЛИЗА ЗАЩИЩЕННОСТИ ТЕРМИНАЛОВ ОБЩЕГО ПОЛЬЗОВАНИЯ​

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

d6EwvSi_NNw.jpg

Методика поиска анализа защищенности публичных терминалов
Наша задача: имея на руках полноэкранное приложение, которое, скорее всего, функционирует на базе операционной системы Windows, выйти за его пределы в системное окружение. Для этого можно использовать так называемый Tap-fuzzing. По‑другому говоря — поработать пальчиками. Нажимать на различные участки приложения с целью спровоцировать его недокументированное поведение. Или можно воспользоваться Data-fuzzing и подставлять различные данные в поля ввода с целью спровоцировать некорректную обработку входящих данных.

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

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

ТРАНСПОРТНАЯ СИТУАЦИЯ​

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

Интерфейс системы спроектирован специально для этого типа устройств (если ты хоть раз оплачивал что‑либо в платежных терминалах, то представляешь, о чем речь), и в нем трудно запутаться. В этом интерфейсе у пользователя есть возможность получить текущее местоположение, а точнее, увидеть отметку на Google-карте, которая указывает, где находится паркомат.

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

В рассмотренных системах паркоматов обнаружена интересная особенность. В разделе «Карты» разработчики не стали придумывать ничего нового и использовали карты от компании Google. И все было бы прилично, если бы только виджет от Гугла не имел строки статусбара, в котором среди прочей информации (текущий масштаб, копирайты и так далее) содержатся ссылки «Сообщить об ошибке», «Конфиденциальность» и «Условия использования», которые открывают стандартное окно Internet Explorer…

R8oHnms5eZ8.jpg

Интерфейс полноэкранного приложения, содержащий некоторые особенности…

А ДАВАЙ ПРОКАТИМСЯ!​

Помимо описанной ссылки, в данном приложении незаметно разбросаны и другие линки (например, при показе тех или иных ресторанов можно нажать кнопку «Подробнее»), нажав на которые можно открыть браузер.

7kb5gKBpyUk.jpg

Выход за пределы полноэкранного приложения
«И что? Ну, открыл я браузер — клавиатуры ведь все равно нет!» Сейчас будет: по ссылкам на страницах со справочной информацией есть возможность перейти в раздел справки, который называется «Специальные возможности», где и прячется виртуальная клавиатура.

KaO7pD6SpK8.jpg

Кто я? Администратор!
Дальше все зависит от фантазии и степени наглости атакующего. Запуск демонстрирует еще один недостаток конфигурации: текущий сеанс операционной системы запущен с привилегиями администратора, а это значит, что мы потенциально можем скачать и совершенно беспрепятственно запустить любое приложение.

77_Wqi-ME0Q.jpg

Бинго: виртуальная клавиатура
Так, атакующий может получить NTLM-хеш пароля администратора. При этом велика вероятность, что пароль, установленный на данном устройстве, подходит и к остальным устройствам данного типа, — а это уже третий недостаток конфигурации…

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

ТЕРМИНАЛЫ ГОСУДАРСТВЕННЫХ УЧРЕЖДЕНИЙ​

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

Итак, перед нами интерфейс полноэкранного приложения, которое на основе введенных нами данных предлагает распечатать квитанцию для оплаты.

qeWJvhKHi3c.jpg

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

DjQW62RPDgY.jpg

Ненадолго появляющийся системный элемент
Как следствие, если злоумышленник успевает нажать на кнопку «Изменить», то получает возможность посредством нехитрых манипуляций с параметрами печати выйти в справочный раздел…

ВАЙТХЕТЫ ЗАСЫПАЮТ, БЛЕКХЕТЫ ПРОСЫПАЮТСЯ​

Сценарии постэксплуатации вытекают из особенностей данных устройств:

  1. Все они расположены в публичных местах.
  2. Доступны в режиме 24/7.
  3. Имеют одинаковую конфигурацию.
  4. Имеют повышенную степень доверия со стороны пользователя.
  5. Связаны друг с другом и могут иметь выходы в другие «приватные» сети.
Главная цель злоумышленника — прямая или косвенная финансовая выгода в результате компрометации устройства. В данном случае для достижения этой цели он может раздобыть не просто NTLM-хеш, который еще нужно брутфорсить для получения пароля, а сразу пароль администратора. Для этого атакующий может извлечь пароли в открытом виде, хранящиеся в памяти. Кстати, последняя версия утилиты WCE теперь может не только дампить пароли внедрением кода в процесс lsass.exe, а напрямую читать память в рамках текущей сессии. Добавим сюда поддержку Windows 7, на базе которой работают паркоматы, и получим «ключ» сразу ко всем устройствам данного вендора.

HpMBnBhTF-s.jpg

Плод воображения: что было бы, если бы mimicatz оказался запущенным на стороне терминала
Кроме того, злоумышленник может получить дамп приложения велопарковки, которое любезно собирает информацию о желающих покататься: ФИО, адрес электронной почты и телефон. Не исключено, что база данных с ценной информацией хранится где‑то неподалеку. Не стоит объяснять, что такая база будет иметь особую ценность на рынке, ведь в ней содержатся верифицированные адреса телефонов и email. В том случае, если же подобной базы нет, злодей может установить свой кейлоггер, который перехватывает все введенные пользователями данные и отправляет на удаленный сервер.

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

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

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

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

_U057QKcjsY.jpg

Сломал терминал — попал в компанию

РЕКОМЕНДАЦИИ​

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

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

  1. Запретить возможность открывать внешние ссылки в полноэкранном приложении.
  2. Не допускать вызова каких‑либо элементов интерфейса ОС Windows (например, правой кнопкой мыши, используя окна печати документов).
  3. Запускать текущий сеанс операционной системы с ограниченными привилегиями обычного пользователя.
  4. На каждом устройстве создавать уникальную учетную запись с уникальным паролем.
Пользователям платежных терминалов мы рекомендуем не вводить полные реквизиты своих платежных карт. Ни в коем случае нельзя вводить CVV2/CVC2-номер карты, они не требуются для осуществления платежа. Не следует пренебрегать и возможностью оплатить в терминале услугу наличными.
 
Сверху Снизу