Есть две больших разницы, между тем, что программист хотел написать, и тем что он действительно написал.
Пин-пад умеет работать в нескольких режимах. Это как минимум закрытый(защищенный), в котором данные о нажатиях, действительно, не возвращаются в открытом виде, а итогом работы является формирование пин-блока на ключах из клавиатуры. А еще существует открытый режим, и именно в нем вводится сумма платежа/номер телефона, на который нужно произвести платеж. И вот последние данные — никто не шифрует. Дальше продолжать, или вам не нужно объяснять, что может сделать активная MITM-атака, которая может подменять одни запросы к клавиатуре другими.
И предвосхищая ваше замечание, что транзакция в данном случае не пройдет. С точки зрения жертвы – просто платеж не был принят, повторный ввод пин-кода злоумышленник может не блокировать, например.
1. В целом так, но по факту логически там тоже “Ethernet” через Remote NDIS, однако за счет возможности манипуляции типом USB устройства возникают нюансы.
3. Да, модем был “перепрошит", но сделано это было через уязвимость, т.е. удаленно. Патчить можно и в памяти (если временно) или перманентно. Для перманентного, да ребут нужен.
4. Да, обработчик SMS уязвим не у всех, лишь у нескольких. Есть еще курьезные SQLi при обработки SMS, но они бестолковые.
1. RCE через множественные уязвимости в web-интерфейсе (forced firmware upgrade, ip config via csrf, os commanding, etc) через CSRF, XXS в обработчике sms
Этот вопрос многие задают потому, что при слове «атака» представляют себе только целенаправленную, снайперскую атаку Именно На Этот Модем. Такое тоже бывает, да. Но давайте для начала представим вариант попроще. Как работает спам, представляете себе? Спамер не знает, как попасть почтой именно в ваш ноутбук. Но он может туда попасть, если разошлёт спам по большой базе, в которой оказался и ваш адрес.
То же самое с симками и модемами.Только там будут не почтовые адреса, а телефонные номера или IP-адреса. Ну или вы сами зайдёте на «нехороший» сайт, где стоит скрипт, который «простукивает» всех посетителей данного сайта — включая и вас.
Есть разные варианты перевода этого термина на русский. Если мы заботимся о точности, а не о «традициях», то можно заметить, что ваш вариант не отражает понятие field-programmable. Это означает программируемая «в полевых условиях». Бывают и такие, которые конечному пользователю в поле не сдадутся, хотя формально они тоже — программируемые :)
И даже сетевые принтеры иногда. Но у USB-модемов есть особенность – они работают как маршрутизатор/веб(и не только веб)-сервер, что существенно расширяет возможности злоумышленника.
Действительно, драйверы устанавливются средствами ОС, но есть нюансы. В качестве эксперимента возьмите срвременный модем, подключите его к Windows и к Linux. Объясните разницу :). Подробнее об этом рассказывал Дмитрий Скляров на PHDays IV.
Модем в ходе атаки не взаимодействует с BIOS напрямую, он использует «клавиатуру» и интерфейсы (API) ОС для определения версии BIOS, чего вполне достаточно. В видеодемонстрации для этого используется wmic.
Модем вполне в состоянии определить, к какой системе подключен, и «печатать» правильные символы. Так например устанавливаются нужные для конкретной ОС драйвера в штатном режиме.
Про «тепличные условия» — возможно. Но, на минуточку, мы не делаем кибероружие, а демонстрируем возможность атаки. Более того, в демонстрации модем «печатает» wmic с выводом информации о BIOS. Интересно, зачем?
Данные (открытый текст), которые зашифрованы на ключе DES шифрования – описаны в спецификациях и известны. Результат шифрования SIM-карта отдает на специализированный SMS-запрос. Это исходные данные, которые загружаются на ПЛИС однократно перед запуском. Дальше на ПЛИС происходит шифрование открытого текста на всех возможных вариантах ключей (для DES – 2**56 вариантов) и сравнивается с результатом шифрования, полученным от SIM-карты. Если результат совпал, то данный ключ помещается в буфер ввода-вывода ПЛИС, к которому можно получить доступ с хоста по USB-интерфейсу.
Т.к. передаваемых данных минимальное количество (по сути, только правильный результат), мы не ограничены быстродействием IO и не зависим от переключений контекста CPU/GPU.
Уважаемый Карстен Нол присутствовал на нашем докладе в качестве слушателя (докладывал там про BadUSB) и подтвердил, что вектор для него новый. По его оценке это примерно 20% SIM-карт. Хотя операторы вводят постепенно фильтрацию служебных SMS, что улучшает ситуацию.
Но в последнее время (для защиты от локальных атак, перепрошивок и для облегчения простоты использования) многие производители модемов начали использовать для управления “web dashboard”, что значительно увеличило поверхность атак. Ну и кроме того, исследование делось в 2014 году, когда 3G было уже покупать неинтересно :)
habrahabr.ru/company/pt/blog/244159/
Пин-пад умеет работать в нескольких режимах. Это как минимум закрытый(защищенный), в котором данные о нажатиях, действительно, не возвращаются в открытом виде, а итогом работы является формирование пин-блока на ключах из клавиатуры. А еще существует открытый режим, и именно в нем вводится сумма платежа/номер телефона, на который нужно произвести платеж. И вот последние данные — никто не шифрует. Дальше продолжать, или вам не нужно объяснять, что может сделать активная MITM-атака, которая может подменять одни запросы к клавиатуре другими.
И предвосхищая ваше замечание, что транзакция в данном случае не пройдет. С точки зрения жертвы – просто платеж не был принят, повторный ввод пин-кода злоумышленник может не блокировать, например.
3. Да, модем был “перепрошит", но сделано это было через уязвимость, т.е. удаленно. Патчить можно и в памяти (если временно) или перманентно. Для перманентного, да ребут нужен.
4. Да, обработчик SMS уязвим не у всех, лишь у нескольких. Есть еще курьезные SQLi при обработки SMS, но они бестолковые.
2, 3, 4, остальное очевидно.
То же самое с симками и модемами.Только там будут не почтовые адреса, а телефонные номера или IP-адреса. Ну или вы сами зайдёте на «нехороший» сайт, где стоит скрипт, который «простукивает» всех посетителей данного сайта — включая и вас.
2014.phdays.ru/program/business/37688/
habrahabr.ru/post/79631/
Или FakeBTS или “пропинговка” номеров телефона, получение геолокации абонента
habrahabr.ru/company/pt/blog/191384/
SMS это только один из векторов, на самом деле.
Модем в ходе атаки не взаимодействует с BIOS напрямую, он использует «клавиатуру» и интерфейсы (API) ОС для определения версии BIOS, чего вполне достаточно. В видеодемонстрации для этого используется wmic.
Слайды:
www.slideshare.net/phdays/abusing-calypso-phones
Видео:
live.digitaloctober.ru/embed/1207?language=ru¶ms%5bpw%5d=630¶ms%5bph%5d=355¶ms%5bepisodes_under%5d=1¶ms%5beh%5d=100#time1338441117
С банкоматами иногда бывает сложно, конечно. Но иногда — не всегда:
scadastrangelove.blogspot.ru/2014/10/different-type-of-scada.html?m=1
Про «тепличные условия» — возможно. Но, на минуточку, мы не делаем кибероружие, а демонстрируем возможность атаки. Более того, в демонстрации модем «печатает» wmic с выводом информации о BIOS. Интересно, зачем?
PS. Да, пароль на BIOS полезен.
Т.к. передаваемых данных минимальное количество (по сути, только правильный результат), мы не ограничены быстродействием IO и не зависим от переключений контекста CPU/GPU.
Вот, кстати, его комментарий в The Register, где тоже не сочли наш доклад «устаревшим»:
www.theregister.co.uk/2014/11/19/sms_pwnage_on_meellions_of_flawed_sim_cards_popular_4g_modems/
PS. По поводу популярных аббревиатур. Мы могли бы написать A5/3, вместо 4G, но не уверены, что это корректно ;)
sgordey.blogspot.ru/2011/11/zeronights_27.html?m=1
Для взлома DES на три дня девайс тоже не нужен. В ответ на «плохую» SMS SIM пришлет подпись, по которой ключ подбирается offline.
Но в последнее время (для защиты от локальных атак, перепрошивок и для облегчения простоты использования) многие производители модемов начали использовать для управления “web dashboard”, что значительно увеличило поверхность атак. Ну и кроме того, исследование делось в 2014 году, когда 3G было уже покупать неинтересно :)