🧟 Zombie Card: как «мёртвая» карта Visa снова качает бабки — 25 августа 2026 г. в 16:26:19.833
🧟 Zombie Card: как «мёртвая» карта Visa снова качает бабки Йо, подписчики! Сегодня разбираем свежий баг с USENIX Security 2026 - атаку, от которой у банковских комплаенсеров начинается тремор рук 😏 Команда из University of Massachusetts Amherst (Raja Hasnain Anwar, Gerard DeCunha, Muhammad Taqi Raza) откопала дыру в EMV-контактлесс реализации Visa - Kernel 3. Суть: терминал-фейсинг дата окончания срока действия карты не привязана криптографически к остальным данным транзакции. Т.е. подпись есть, но конкретно это поле она не защищает. Что бросилось в глаза: приватный ключ карты вообще не хранит понятие «срок действия» - карта криптографически «бессмертна», просто банк договорился с терминалом верить дате на чипе. Это как оставить сейф с идеальным замком, но написать код от него маркером на дверце снаружи 🤡 💻 Вектор атаки Схема - классический MitM-релей на два телефона: - Телефон №1 «активирует» просроченную карту через NFC, вытягивает Track 2, payment application и старую (истёкшую) дату - Телефон №2, связанный по Wi-Fi, перехватывает эти данные, переписывает дату на будущую, и подсовывает терминалу - Track 2 при этом не трогают - только то самое незащищённое поле expiry Условия для успеха: физический доступ (или долгий NFC-контакт) к просроченной карте + аккаунт с тем же PAN должен оставаться активным (стандартная практика при перевыпуске карты) + банк-эмитент не перепроверяет дату отдельно при авторизации. 🎯 Результаты полевых тестов В лабе и на реальных транзакциях один крупный американский банк одобрял такие покупки на суммы до $500, другой банк все подделанные транзакции стабильно рубил - эксплуатабельность зависит от настроек эмитента. CVE пока не назначен, публичных случаев эксплуатации в дикой природе не зафиксировано. 🛡️ Фиксы, которые предлагают исследователи - Криптографически связать Application Expiration Date с остальными полями транзакции - Заставить терминал сверять обе версии даты (terminal-facing vs issuer-facing) и палить расхождения - Авторизовывать платёж по паре PAN + expiry, а не по одному PAN - Прокидывать реальные Terminal Verification Results до эмитента, а не терять их по дороге 🔥 Лайфхак для обычных людей Экспертный совет банален, но реально работает: физически убивай просроченные и заменённые карты - режь чип несколько раз, царапай антенну, повреди магнитную полосу перед тем, как выкинуть. Не просто «порезал пополам» - современные карты живучие, как зомби из названия атаки 🧟♂️

