
Известный своими нашумевшими «хакерскими» изобретениями (червем Samy, «пригнавшем» ему миллионы «френдов» в соцсети MySpace, неудаляемыми куками EverCookies, перехватывающем управление другими беспилотниками квадракоптер и др.), «белый хакер» и ИБ-эксперт Сэми Камкар в результате самостоятельного исследования обнаружил уязвимость в платежной системе AmEx. Ему удалось при последующих перевыпусках кредиток вычислить закономерность генерации карточных номеров, а это, в конечном счете, напрямую угрожает банковским аккаунтам пользователей.
Изучением механизм действия кредитной карты Камкар занялся в августе 2015 года, когда, по почте ему — взамен потерянной карты AmEx — прислали перевыпущенный «пластик». Тогда он сразу сопоставил последние цифры номеров своих трех предыдущих карт, которые были записаны у него в файл, с полученным и «посеянным» номером. Что-то подсказало ему, что генерация номеров подчинена определенной системе. Для выяснения этой закономерности энтузиаст-исследователь обратился к своим Facebook-«френдам» с просьбой предоставить ему для «вычисления» закономерности и экспериментов последние цифры номеров их действующих и уже отмененных карт AmEx. В ответ на его просьбу десять человек из соцсети не побоялось прислать свои цифры. В общей сложности было проанализированно 40 карт.
В итоге, Камкар нашел алгоритм генерации. И эксперименты с картами «френдов» подтвердили, что закономерность определена верно. По конечным цифрам удавалось «угадывать» весь номер, а также «предсказывать» полный номер для будущих карт AmEx, если бы по заявлению держателя готовился новый выпуск «пластика». О своем открытии Камкар еще в августе уведомил эмитента. Однако в AmEx никаких мер предпринимать не стали, видимо, посчитав проблему недостаточно серьезной и понадеявшись на свою защиту в виде установленных в системе мощных антифрод-программ. Безуспешно подождав 3 месяца от AmEx каких-то ответных действий по ликвидации уязвимости, эксперт решил на практике продемонстрировать угрозу обнаруженной уязвимости.
Прежде всего, Камкар, чтобы автоматизировать процедуру генерации номеров для новых карт, создал специальный гаджет, которому дал название — MagSpoof. Примечательно, что все исходные данные и инструкции об этом устройстве размером с монету хакер публиковал в своем блоге. Единственно, о чем не сообщалось в его сообщениях, так это о ключевом звене — найденной закономерности при генерации номеров, а без этого устройство бесполезно. На создание MagSpoof изобретателю потребовалось чуть более 2 часов и $10 на покупку комплектующих. Конструкция гаджета состоит из нескольких агрегированных компонентов: базовой платы Arduino, микроконтроллера Atmel ATtiny85, драйвера L293D H-Bridge, батареек, светодиода, конденсатора, резистора, медной проволоки и кнопок.
Однако, несмотря на малые размеры, устройство имеет весьма впечатляющий функционал. Это и — хранилище для копий магнитных полос своих банковских карт, и канал радиообмена информации с любыми считывателями магнитной полосы (не требуется NFC/RFID), и блокировщик защиты Chip-and-PIN (исходный код не опубликован), и генерирующая по предыдущему номеру «пластика» система новых номеров карт (исходный код не опубликован), и единовременный процесс взаимодействия с тремя треками на магнитной полосе при поддержке Track 1 и Track 2.
Изучая механизм работы самой карты, Камкар выяснил, что в информации магнитной полосы содержится «сервисный код», который в процессе прокатывания карты в PoS-терминале подтверждает, что карта чипованная и что ее нужно вставлять в ридер. Этот факт натолкнул исследователя на мысль, что, если модифицировать такой сервисный код или клонировать карту, изменив его, то можно «выдать» EMV-карту за обычную карту с магнитной полосой, функционирующей на тех же принципах, что и эмитенты банковских карт. Во время работы гаджет излучает сильный электромагнитный сигнал, с помощью которого происходит эмуляция того, что генерируется при использовании физической кредитной карты. Так что атакуемая система не замечает подмены…
Единственное, что не дает проводить полноценные атаки карточные аккаунты пользователей, как отметил «белый хакер», так это — невозможность генерировать четырехзначный CVV-номер. Но для хакеров такая проблема — при целенаправленной роботе «на результат» — вполне по зубам... В размещенном Камкаром на Youtube видеоролике, демонстрируется, как терминалы оплаты действительно взаимодействуют с Magspoof вместо реальной банковской карты и подтверждают транзакции. «Вы можете поднести устройство к любому обычному терминалу оплаты, и он примет Magspoof за настоящую банковскую карту», - гарантирует Камкар.