Содержание статьи
info
О принципах, на которых строится безопасность банковских платежных систем, ты можешь узнать в статьях «Разбираемся, как работают системы безопасности кредитных карт» и «Как хакеры крадут деньги с банковских карт».
Чиповое легаси
Один из видов информации, содержащейся на чиповой карте, — это так называемый Track2 Equivalent. Он практически один в один повторяет содержимое магнитной полосы и, скорее всего, служит в качестве параметра идентификации карты в системах HSM и других подсистемах карточного процессинга. Один из видов атак, которые время от времени проводятся злоумышленниками, подразумевает запись данных Track2 Equivalent на магнитную полосу, после чего мошеннические операции проводятся либо как обычные транзакции по магнитной полосе, либо в режиме technical fallback. Для хищения таких данных из банкоматов используются так называемые шиммеры.
В одной из статей о шимминге упоминается, что в 2006 году, в самом начале выпуска чиповых карт, в Великобритании поле Track2 Equivalent содержало в себе оригинальный CVV2/CVC2. Из‑за этой ошибки было легко создавать клоны магнитных полос карт, по которым оплата происходила с помощью чипа. Тогда платежные системы решили использовать разные seed при генерации полей CVV2/CVC2 на магнитной полосе и в поле Track2 Equivalent. Казалось бы, задача решена — значение секретного поля CVV2/CVC2 на магнитной полосе не совпадает с тем, что записано на чипе. Но шимминг жив и по‑прежнему процветает. Почему?
Многие банки до сих пор одобряют транзакции со считанными с чипа значениями CVV2/CVC2! Об этом часто упоминает Visa и почти не пишет MasterCard. Одна из причин, по моему мнению, — практически во всех картах MasterCard CVC2 в Track2 Equivalent равен 000. Для русских карт это также неактуально: среди протестированных мной за два года десятков банков я не нашел ни одной карты, где эта атака была бы возможна. Тем не менее стоит отметить, что подобные атаки популярны в Америке.
info
Одна из немногих карт MasterCard, с которой мне удалось воспроизвести эту атаку, принадлежала банку, вообще не проверявшему значение поля CVC2. Я мог подставить туда что угодно — 000, 999 или любые другие варианты между этими числами. Скорее всего, в этом банке не был отключен режим отладки, одобряющий любые транзакции.
Чем это чревато? Хакер мог бы подменить поле Service
, указывающее, что карта не содержит чипа, и сверка целостности этого поля была бы невозможна, потому что любой CVC2 принимался процессингом. Уязвимость, очень сильно похожая на следующую в списке, была быстро устранена после письма в банк.
По моей статистике, 4 из 11 карт были подвержены подобным атакам.
Бразильский хак
Под этим термином понимают несколько видов атак, в том числе атаку на офлайн‑терминалы, описанную «Лабораторией Касперского». О самой массовой атаке c таким названием рассказывал Брайан Кребс. В чем суть нашумевшей атаки?
В начале 2010-х чиповые карты наконец‑то получили широкое распространение в США. Несколько банков начали выпускать такие карты. Стоит заметить, что до сих пор самая распространенная чиповая схема в США — это не Chip & PIN, а Chip & Signature. Владельцу подобной карты не надо вводить ПИН‑код, а нужно только вставить карту в считыватель и подтвердить транзакцию подписью на чеке. Почему эта схема так прижилась — расскажу дальше.
Как мне кажется, где‑то в этом процессе произошла инсайдерская утечка информации, и хакеры узнали, что чиповая транзакция вроде и проходит, но не проверяется на стороне банка‑эмитента. Банк просто брал поле Track2 Equivalent и проводил идентификацию, как если бы это была обычная транзакция по магнитной полосе. С несколькими нюансами: ответственность за мошенничество такого рода по новым правилам EMV Liability Shift теперь лежала на банке‑эмитенте. А банки‑эмитенты, не до конца понимая, как работали такие карты, не вводили сильных ограничений на «чиповые» транзакции и не использовали системы антифрода.
Быстро сообразив, что из этого можно извлечь выгоду, кардеры стали открывать мерчант‑аккаунты и, используя купленные на черном рынке данные магнитных полос Track2, совершали сотни транзакций «чипом». Расследование заняло годы, и к моменту его окончания мошенники уже скрылись. Суммы потерь не разглашаются, однако очевидно, что они были существенными. Самое печальное, что с тех пор жители стран Латинской Америки рыщут по всему свету в поисках «белых китов» и активно тестируют банки, пытаясь найти другой такой же неотключенный отладочный интерфейс.
Cryptogram Replay и Cryptogram Preplay
«В дикой природе» подобная атака наблюдалась лишь единожды. Она была задокументирована и описана (PDF) в исследовании известных специалистов из Кембриджского университета.
Суть атаки заключается в обходе механизмов, обеспечивающих уникальность каждой транзакции и криптограммы. Атака позволяет «клонировать транзакции» для дальнейшего использования уже без доступа к оригинальной карте. В первой части уже рассказывалось, что на входе карта получает определенный набор данных: сумму, дату транзакции, а также два поля, обеспечивающих энтропию, даже если сумма и дата одинаковые. Со стороны терминала энтропию 232 обеспечивают 4 байта поля UN
— случайного числа. Со стороны карты — ATC-счетчик операций, увеличивающийся каждый раз на единицу. Псевдофункция выглядит примерно так:
Cryptogram=Signature(ATC,UN,Amount,Misc,SecretKey)
Если одно из полей меняется, изменяется и выходное значение криптограммы. Однако что произойдет, если все поля останутся прежними? Значит, и прежняя криптограмма останется валидной. Из этого следуют две возможности атак на чиповые транзакции.
Cryptogram Replay. Если скомпрометированный терминал выдает одно и то же поле UN
, однажды считанная с карты криптограмма с переданным предсказуемым полем UN
может использоваться сколько угодно раз. Даже на следующий день злоумышленники могут передавать информацию о старой криптограмме со старой датой в запросе на авторизацию, и это не приведет к отказу. В моих прошлогодних тестах я повторил одну и ту же криптограмму семь раз на протяжении семи дней, и это не вызвало никаких подозрений у банка.
Cryptogram Preplay. Эта схема используется, если уязвимый терминал возвращает не один и тот же UN
, но выдает их предсказуемыми. Именно так работал уязвимый банкомат в описанной выше мальтийской атаке. В таком случае злоумышленник при физическом доступе к карте клонирует несколько транзакций «на будущее». В отличие от первой атаки, каждая транзакция может использоваться только один раз.
Эта атака интересна с исторической точки зрения развития протокола EMV. Когда протокол создавался, поле ATC было создано специально для защиты от подобных атак.
Банк‑эмитент должен был проверять значение поля ATC, и, если эти значения приходили не по порядку, с заметными скачками, подозрительные транзакции отклонялись.
Например, если на процессинг поступали транзакции значением ATC 0001,
, то операции, номера которых выделены в этой последовательности, должны были считаться подозрительными и отклоняться процессингом. Но затем начали поступать жалобы от клиентов, и в технологию были внесены коррективы.
Рассмотрим пример: клиент банка садится в самолет, расплачивается в самолете картой с использованием офлайн‑терминала. Далее самолет приземляется, и клиент расплачивается картой в отеле. И только после этого используемый в самолете терминал подключается к сети и передает данные о транзакциях. В таком случае будет зафиксирован скачок ATC, и, следуя правилам платежных систем, банк мог бы отклонить абсолютно легитимную транзакцию. После нескольких подобных эпизодов платежные системы внесли коррективы в их требования по «скачкам ATC»:
- скачки должны считаться, только если дельта между значениями счетчика «выше Х», где значение Х каждый банк должен определять индивидуально;
- скачки не обязательно служат признаком мошенничества, однако постоянные скачки выше значения Х — это повод связаться с клиентом для выяснения обстоятельств.
При этом за бортом изменений остался первый сценарий — cryptogram replay. Если карточный процессинг спроектирован корректно, нет ни одного разумного объяснения ситуации, когда один и тот же набор данных (Cryptogram, UN, ATC) поступает на вход много раз и успешно одобряется банком. За последний год я отправил информацию об этой атаке более чем в 30 разных банков и получил достаточно широкий спектр ответов.
В некоторых случаях неправильное проектирование сервисов процессинга приводит к тому, что банк не может просто заблокировать операции с одинаковыми значениями. Также стоит отметить, что в «дикой природе» я не встречал терминалы, которые возвращали бы одинаковое значение поля UN. То есть злоумышленникам приходится использовать их собственные терминалы, что делает отмывание денег более сложным.
Кроме того, даже офлайн‑аутентификация не всегда помогает: ее можно обойти либо предположить, что источник UN скомпрометирован и в ней. В этом случае можно заранее высчитать результирующие значения схем аутентификации DDA/CDA для предсказуемого поля UN.
Статистика показывает, что 18 из 31 банковской карты подвержены атакам replay/preplay в отношении контактного или бесконтактного чипа. При этом в России я не смог найти ни одного уязвимого для этого типа атак банка, что крайне любопытно.
PIN OK
Пожалуй, это самая известная атака на чипы. Первые теоретические предпосылки к этой атаке команда из Кембриджа описала в 2005 году в исследовании Chip and Spin, за год до того, как стандарт EMV получил распространение в Великобритании. Но повышенное внимание к этой атаке возникло гораздо позднее.
В 2010 году выходит полноценное исследование кембриджской четверки, посвященное атаке PIN OK. Для этой атаки они использовали устройство, реализующее технику «человек посередине» между чипом карты и ридером терминала.
В 2011 году на конференциях Black Hat и DEFCON группа исследователей из Inverse Path и Aperture Labs представила больше информации об этой атаке. Тогда же, в 2011 году, организованная преступная группировка использовала 40 украденных банковских карт для совершения 7000 мошеннических транзакций, в результате которых было украдено 680 тысяч евро. Вместо применявшегося исследователями громоздкого устройства преступники воспользовались маленьким незаметным «вторым чипом», установленным поверх оригинального, что позволяло эмулировать атаку в реальных условиях.
В декабре 2014 года исследователи из Inverse Path снова подняли тему атак на транзакции EMV и представили немного статистики, собранной ими за три года (PDF). В 2015 году было выпущено детальное техническое исследование атаки (PDF), совершенной неизвестными злоумышленниками в 2011 году.
Давай рассмотрим технические детали этой атаки. Для ее реализации, напомним, нужно использовать технику man in the middle. Карта передает терминалу поле CVM List (Сard Verification Method) — приоритетный список методов верификации владельца карты, поддерживаемых картой. Если первое правило на карте «офлайн‑ПИН шифрованный/нешифрованный», на этом этапе ничего не происходит. Если первое правило другое, то во время атаки первое правило подменяется на «офлайн‑ПИН».
Затем терминал запрашивает у владельца карты ПИН‑код. Правило «офлайн‑ПИН» означает, что ПИН‑код будет передан карте для сверки в открытом или шифрованном виде. В ответ карта либо ответит 63C2
«Неверный ПИН, осталось две попытки», либо 9000
«ПИН ОК». Именно на этом этапе злоумышленник, внедрившийся в процесс авторизации, заменит первый ответ вторым.
На данном этапе терминал считает, что ПИН введен корректно, и запрашивает у карты криптограмму (запрос Generate AC), передавая ей все запрашиваемые поля. Карта знает, что ПИН либо не введен совсем, либо введен некорректно. Но при этом карта не знает, какое решение дальше принял терминал. Например, есть терминалы, которые при вводе некорректного ПИН‑кода просят держателя карты поставить подпись на тачскрине — делается это для его же комфорта. Поэтому, когда терминал запрашивает криптограмму, карта отдает ее. В ответе содержится поле CVR — Card Verification Results, которое указывает, был ли проверен ПИН‑код картой или нет. Более того, это поле является частью платежной криптограммы, и подменить его значение злоумышленникам не удастся: попытка приведет к ошибке сверки криптограммы на HSM.
Терминал отсылает все данные в пакете ISO 8583 Authorization Request банку‑эквайеру, затем они поступают банку‑эмитенту. Банк видит два поля: CVMResults, которое указывает, что в качестве метода верификации был выбран офлайн‑ПИН и что терминал поддерживает этот метод верификации. Но еще банк видит, что карта НЕ приняла ПИН‑код либо что он был введен некорректно. И несмотря ни на что, одобряет транзакцию.
Если карта использует схему аутентификации CDA и злоумышленникам необходимо подменить первое правило CVM list, офлайн‑аутентификация будет завершена с ошибкой. Однако это всегда обходится подменой полей Issuer Action Code. Подробности данного случая описаны в последней версии презентации от 2014 года экспертами из Inverse Path.
Также в первом исследовании от 2011 года специалисты показали, что стандарт EMV позволяет не отклонять транзакции на платежном устройстве, даже если безопасные методы аутентификации и верификации не сработали, а идти дальше, каждый раз выбирая менее безопасные методы (так называемый fallback). Это открывает перед злоумышленниками другие возможности, включая атаки на похищение ПИН‑кода во время операций на скомпрометированных POS-терминалах.
Заключение
Интересная статистика за последний год: несмотря на то что еще в 2010-м «настоящие безопасники» из банков умилялись тому, как кто‑то не следит за очевидными проблемами карточного процессинга, в 2020 году все примерно так же плохо. Статистика проверок за прошлый год показала, что 31 из 33 карт банков с разных уголков Земли, включая российские, уязвима к этой атаке.
В следующей статье я рассмотрю схемы атак на бесконтактные карты и связанные с ними приложения — мобильные кошельки.