Comments 28
Во всяком случае так работали те читалки карточек что использовал я.
Ребята в целях безопасности шифруют с помощью AES трафик, перед отправкой его на сервер, но сам сервер сконфигурирован так криво, что
PandaLabs смог получить к нему доступ без регистрационных данных. Что-то тут не сходится.
А Вы, что же, ждали, что PandaLabs публично объявит "мы нарушили закон и хакнули чужой сервак"? Конечно же, они ничего не ломали, сервер стоял совершенно открытый для всех желающих, а они просто случайно мимо проходили.
Кроме того, даже у чипованной карты есть магнитная полоса. И на ней записаны данные карты. Поэтому такой картой во многих случаях можно расплатиться в терминалах или использовать в банкоматах, которые не умеют работать с чипами.
Некоторые российские банки (а возможно и в других странах) уже блокируют операции, которые совершаются не «по чипу», а по магнитной полосе. В частности лично сталкивался с такой ситуацией у МКБ (Московский Кредитный Банк). Накрылся чип и я пытался купить через терминал билеты по магнитной полосе. Получил отказ. В поддержке мне сказали, что по магнитной полосе они блокируют операции.
https://www.emvco.com/about_emvco.aspx?id=202
Не могу говорить за все банки но на примере ПриватБанк-а могу подтвердить слова ColdSUN — если терминал без поддержки чипа то платежи по полосе проходят (но такие терминалы уже большая редкость), в командировке на такой нарвался, всё прошло но с обязательной подписью клиента (на чеке так и выбилось ~«необходима подпись клиента „)
www.roi.ru/22799
Я написал статью по практике использования чипа/магнитной полосы в банкоматах, но её отказались публиковать на geektimes, т.к. там много слов про взаимоотношения с банком. Если интересно, могу дать ссылку на ЖЖ.
На картинке терминал для приема карточек. Это Ingenico IPP320. В него никакой сторонний софт просто не может быть загружен.
По тексту статьи становиться понятно, что речь идет о ПО, которое реализует кассовый функционал — компьютерная касса. Так это обычный компьютер, с обычными проблемами. И если ПО старое, а судя по всему именно так и есть, то вопросам безопасности внимания никто не уделял.
А так, в современных решениях, чтение карты должно осуществляться именно на терминале как на картинке, а не на кассовом аппарате. В этом случае таких утечек просто не будет. Это, о чем написал JediPhilosopher.
В него никакой сторонний софт просто не может быть загружен.
Ойданупрям. У него точно так же есть прошивка, там внутри обычный MIPS или ARM (а зачастую еще и Windows CE), она отлично реверсится и точно так же отлично обновляется. Насколько я помню Ingenico — там еще и USB-порт есть (правда, mini A, так что будет нужен кабель) и обновление вообще делается с подключенной USB-флешки, занимает эдак минуты полторы. То есть приходишь в магазин с сообщником, один банально отвлекает не очень продвинутого продавца вопросами, а другой в это время быстренько втыкаешь флешку и перепрошивает.
Прошивки подписывать стали сравнительно недавно, года 3-4 назад. До этого вообще — приходи кто хочешь и шей что хочешь.
Для дропов — нет, не сильно сложнее. Я бы даже сказал с десктопом куда палевнее.
Я конкретно Ingenico не программировал вообще никогда, только со стороны видел, но, например, Verifone доводилось видеть изнутри. Там вполне можно не обновлять прошивку целиком, а добавлять и удалять "приложения". Банки, собственно, там никогда и не делают собственную полную прошивку — а загружают такие кусочки — даже не с кодом, а с настройками типа APN для SIM-карты, координат гейтов, приветственных картинок или шаблонов для чеков. Можно делать хитрее и загружать именно выполняемый код, тогда в норме он выполняется в некоей защищенной среде, но я вполне допускаю, что у этой защищенной среды рано или поздно найдутся возможности jail escape. Аудит там никакой, никаких bug bounty и т.д. в помине нет. Древнющие версии libpng, libjpeg и т.п. со всеми мыслимыми уязвимостями в наличии.
Цена вопроса — либо представиться организацией внедрения POS и купить этот SDK у производителя, либо, что еще проще — спереть его в одной из таких организаций, устроившись на работу.
А вот в Ingenico как минимум с 2008 года (точно раньше, но не скажу насколько) использует цифровую подпись каждой исполняемой компоненты, которая загружается в терминал.
Процедура подписывания сложна до безобразия — украсть компоненты на работе и подписывать дома не получиться.
Вариант с покупкой SDK — ну это идея. Вот только загрузить ПО можно будет только в свои терминалы, которые будут соответствовать своей же цифровой подписи. И со сторонними терминалами, опять же, ничего сделать не получиться.
На сегодня, есть только один способ компрометации ПО в терминалах Ingenico — научиться подделывать цифровую подпись. Насколько я знаю, эта задача еще не решена.
Правильно ли я понял, чтобы инфицировать терминал, хозяин этого терминала должен сознательно прошить его сам?
Вопрос кто является хозяином терминала? Как правило это банк, но банк не пишет софт сам (за редким исключением).
Банк гарантирует что софт написан доверенными людьми.
Банк заинтересован в том, чтобы таких случаев утечки данных не происходило. Тут уже упоминали про PA-DSS, есть еще и PCI-DSS, который банки проходят с определенной периодичностью. В ходе этой сертификации, специальными людьми проверяется ВСЁ, что связано с приёмом и обработкой карточек (да и не только).
Так вот, если происходит утечка данных, то PCI присылает «зондер-команду» для разбора ситуации. И такая команда будет стоить банку ОЧЕНЬ дорого во всех смыслах.
В результате:
— Поставщик ПО кровно заинтересован обеспечить безопасность данных карточки, иначе ему отвечать перед банком. О том что поставщик об этом заботиться свидетельствует наличие сертификата PA-DSS.
— Банк кровно заинтересован обеспечить безопасность данных карточки, потому что для него такие утечки представляют огромные риски (финансовые и репутационные).
И получается, что контроль тут очень серьезный.
Как «PunkeyPOS» крадет информацию с банковских карт