На Positive Hack Days 8 в очередной раз состоялось старое доброе соревнование по взлому банкоматов Leave ATM Alone. В распоряжении участников было два банкомата; оборудование было предоставлено нашим партнером по банковской безопасности Альфа-Банком.
Мы настроили банкоматы специально для соревнований и внедрили в них уязвимости.
За 15 минут пришлось обойти меры безопасности и вывести деньги с устройства.
Призовой фонд составил 40 000 рублей.
Около 40 участников пришли попытаться обойти охрану.
Леонид Кролле, организатор конкурса и специалист отдела исследований безопасности банковских систем компании Positive Technologies, рассказал, как это произошло, и подробно проанализировал задачи.
Участники конкурса «Оставьте банкомат в покое»
В распоряжении участников было два банкомата.
На одном из них установлено программное обеспечение для контроля приложений от наших партнеров, которое предотвращает запуск ненадежных приложений.
Он не позволяет запустить ни одно приложение, необходимое для вывода наличных (привет, Cutlet Maker, BubbleMaker и немагия!).
Второй банкомат подключен по сети для тестовой обработки, которая позволяет осуществить операцию снятия наличных (которая есть в банкомате).
Однако обработка посылает сигнал на выдачу из кассеты, в которой нет денег.
Поэтому задача участников – заменить ответ обработки на выдачу средств из правильной кассеты.
Кабели подключения от банкомата и тестовой обработки расположены снаружи, с возможностью подключения к ним с помощью сетевого шнура (LAN).
Все выведенные из системы деньги игроки забрали себе.
Банкоматы за два дня форума: им было грустно и одиноко
Контроль приложений
Проверить соответствие приложения заданному белому списку можно несколькими способами: от проверки пути к исполняемому файлу или его хеша до анализа цифровой подписи и расширения.Средства контроля приложений чаще всего используются для дополнительной защиты клиентских компьютеров (запрета запуска ПО не из белого списка) и обеспечения безопасности изолированных систем, например банкоматов, не требующих постоянного оперативного вмешательства.
Если черный список расширений, которые следует блокировать, более-менее универсален и легко настраивается, то белый список того, что разрешено запускать, по умолчанию избыточен — в него зачастую входят все приложения из операционной системы на момент настройки.
За последние несколько лет описано множество способов обхода контроля приложений средствами Microsoft Windows (например, «rundll32», «regsvr32»), просто блокируя которые нарушают нормальную работу ОС.
Поэтому тонкая настройка управления приложением — это сложная и кропотливая работа, результат которой отдавался на растерзание участникам конкурса.
Отметим, что в реальном мире у злоумышленников не так уж и много времени на обход контроля приложений.
Первый день соревнований
Жизненная правда :) Начало первого дня соревнований ознаменовалось плотным потоком участников форума, пришедших попробовать свои силы в обходе контроля приложения и подмене обработки ответа - всего более 40 человек.
Первые участники
Всего на обход защиты на банкомате с контролем приложений было отведено 15 минут: за это время нужно было успеть запустить свой код. К сожалению, в первый день все попытки участников запустить свой эксплойт провалились.
Однако одному участнику удалось обнаружить странное устройство, установленное на банкомате.
Это был скиммер — миниатюрное портативное считывающее устройство, которое можно прикрепить к банкомату.
Такие устройства помогают мошенникам похитить данные банковской карты: реквизиты, ПИН-код – всю информацию, записанную на магнитной полосе.
Скиммер
После того как скиммер был обнаружен, из него пришлось извлечь данные карты: во время подготовки конкурса организаторы зафиксировали туда дамп несуществующей карты с определенным номером.
Расскажем немного о подготовке скиммера к соревнованиям.
Скиммер состоит из магнитной головки для считывания и устройства для записи аудиодорожки (иногда с Wi-Fi или Bluetooth).
Данную копию можно сделать на базе плеера-диктофона Explay или аналогичного USB-диктофона.
Примеры здесь .
По размерам они как раз помещаются в крышку на антискиммере и еще остается место для аккумулятора, так как нужно было подготовить и оживить мини-Франкенштейна: тест работоспособности проводился на аналогичном устройстве от другого банкомата модель.
Для экономии места место крепления USB-порта срезано, поэтому необходимый переходник пришлось делать самому.
Изготовление адаптера
Мы проверили правильность включения скиммер-плеера по инструкции плеера из Интернета (на кнопках не было символов, так как они остались на корпусе) и записали карту и номер, которые участникам нужно было извлечь из скиммер.
Вот как выглядит карта с нанесенным на нее магнитным порошком:
Информация на магнитной полосе карты записывается с использованием частотного кодирования F/2F (для чего оно нужно и как его можно расшифровать - читайте здесь).
Здесь ) и представляет буквенно-цифровые символы в 7-битной кодировке или числовые символы в 5-битной кодировке.
Проверка четности и продольного избыточного кода (или продольного избыточного кода — LRC) используются для обнаружения ошибок чтения.
Данные на любой дорожке должны начинаться с начального служебного символа и заканчиваться конечным служебным символом.
Эти символы выбраны таким образом, что позволяют определить начало блока полезной информации, определить направление чтения карты и даже формат кодирования информации (5 бит или 7 бит).
Управляющие символы предназначены для управления оборудованием и не могут использоваться для передачи информации (содержания данных).
Разделители используются для разделения полей данных на карте.
В 7-битной кодировке символы [\] зарезервированы для дополнительных национальных символов и не должны использоваться в рамках международного обмена информацией, символ # зарезервирован для произвольных дополнительных графических символов.
Вот пример того, как это может выглядеть:
- стандартная дорожка ISO 2: ;XXXXXXXXXXXXXXXX=YYYYYYYYYYYYYYYYYЭZ — 37 символов
X.X - номер карты, Z - LRC (данные начинаются со стартового символа и заканчиваются конечным символом, номер карты 16-значный, присутствует LRC)
Момент тестирования и записи дампа
На самом деле, можно скопировать данные из плеера в виде MP3-файла, найти, где был записан трек, увеличить его в аудиоредакторе и разобрать по крупицам, но есть и более простые способы.
Например:
- SWipe — это приложение для чтения карт с магнитной полосой через аудиопорт.
- Декодер магнитной полосы.
Программа для декодирования карты с магнитной полосой, получающая необработанные данные с магнитной полосы через звуковую карту.
Примерно через час данные карты, записанные в скиммере, были предоставлены.
Заслуженный приз зрительских симпатий нашел своего обладателя.
Поздравляем Максима Вихлянцева! Остальные участники продолжили борьбу за главные призы, загруженные в банкоматы :) Кто-то пытался взломать охрану, но были и те, кто устал и потерял надежду быстро разбогатеть.
Тем не менее, первый день выдался бурным, хотя главный приз остался за организаторами.
Второй день
Остаются самые стойкие.
Во второй день соревнований тех же участников можно было увидеть на сайтах взлома банкоматов.
Настойчивость и настойчивость в попытках найти вектор обхода защиты не остались напрасными, и вот, Станислав Поволоцкий успешно обошел защиту и, выполнив неподписанный код, выиграл денежный приз, расположенный в первом банкомате.
Демонстрация успешно выполненного задания
Суть сетевой атаки на второй банкомат заключалась в следующем: в банкомате находился ноутбук с установленным программным обеспечением, эмулировавшим операцию обработки.
Эсимулятор обработки
Эмулятор был настроен на выдачу средств при любой вставленной карте, без ПИН-кода, но кассета, на которую эмулятор отправил команду в ответ на запрос, была пуста.
Для решения этой проблемы было необходимо:
- перехватить ответный пакет эмулятора обработки;
- разобрать упаковку и сформировать свою – только с правильно установленным номером кассеты;
- вставьте карту и при отправке запроса на обработку ответьте банкомату измененными данными;
- использование инструментов tcpdump, Wireshark, scapy или ettercap для проведения атаки воспроизведения или атаки спуфинга с измененными данными для ответа банкомату.
Wireshark — аналогичная утилита, только более «заряженная», с графическим интерфейсом.
scapy — это интерактивная оболочка и программная библиотека для управления сетевыми пакетами на языке программирования Python. ettercap — утилита для анализа сетевого трафика, проходящего через интерфейс компьютера, но с дополнительным функционалом.
Программа позволяет выполнять атаки «человек посередине», чтобы заставить другой компьютер передавать пакеты не маршрутизатору, а злоумышленнику.
На самом деле ничего не меняется
При таком непростом подходе участники столкнулись с трудностями, но преодолели и их.
Команда Information&Public, Центр Безопасности и Узбекистан получила приз за подделку ответа от обработки на втором банкомате.
За что мы их поздравляем! Полный список победителей см.
Теги: #информационная безопасность #Финансы в ИТ #Банкоматы #PHDays #PHDays #PHDays #PHDays
-
Сафари 3.0.2 Бета
19 Oct, 24 -
На Youtube Будет Оплата За Просмотр
19 Oct, 24 -
Тп Для Новичков
19 Oct, 24 -
I2P: Подпись И Проверка Eddsa
19 Oct, 24