Принцип действия банковских систем
⚠️ Данный материал предназначен исключительно для образовательных целей, и демонстрирует не точные данные. Создание или использование взломов или абуз банковских систем наказывается уголовной ответственностью.
Руководство по банковским системам
1.1 Архитектура банковской карты
чип EMV содержит микропроцессор с SE (Secure Element) - изолированная среда для хранения крипто-ключей.
так же он генерирует динамические криптограммы (TC, AAC и т.д) на основе ключа эмитента (ICC), случайного числа от терминала (Unpredictable Number), от суммы транзакции, даты и времени.
поддерживает протоколы SDA, DDA, CDA для защиты от подделки.
технология NFC используется для передачи данных с определенным протоколом (ISO/IEC 14443 Type A/B)
Принцип действия банковских приложений
Back-End система банка обрабатывает запросы через API защищённое через OAuth 2.0 или TLS сертификатами.
Также Back-End использует HSM (Hardware Security Module) для хранения крипто-ключей
Мобильное банковское приложение может использовать биометрический вход, Secure Enclave, TrustZone для изоляции данных, JWT токены для сессий.
Защита от реверсинга, то есть защита от декомпиляции кода с помощью обусфикаций и SSL-пиннинг
Мониторинг аномалий, то есть мониторинг измерений IMEI, IP и MAC-адрес устройства.
Защита от root пользователей, приложение отказывается работать для потребителей с root-тированным устройством.
Устройство банкоматов
3.1 Аппаратная часть устройства
Обычно в банкоматах стоит операционная система на базе linux или windows embedded
Теоретические уязвимости и обходы
В теории можно извлечь ICC MASTER KEY например через анализ электромагнитного излучения.
Можно использовать атаку на NFC, банальный перехват через relay attack.
Проблемы при использовании данных методов:
4.2 Взлом банковских приложений
Можно декомпилировать приложение с отключением проверок SSL и последующим инджектом стороннего кода.
По логике можно атаковать API с подменой параметров (например: суммы перевода).
Можно использовать back box attack, подключение устройства к диспенсеру для принудительной выдачи денег.
Так же возможно в теории использовать jackpotting, внедрение стороннего кода через usb порт.