Введение
Номер аутентификации транзакции (TAN) используется некоторыми сервисами онлайн-банкинга как одноразовый пароль (OTP) для авторизации финансовых операций. TAN представляет собой дополнительный уровень безопасности, сверх традиционной аутентификации по одному паролю. TAN обеспечивают повышенную безопасность, поскольку выступают в качестве формы двухфакторной аутентификации (2FA). Если физический документ или токен с TAN будет украден, он не сможет быть использован без знания пароля. И наоборот, даже при компрометации данных для входа, проведение операций невозможно без действующего TAN.
Индексованный TAN (iTAN)
Индексованные TAN снижают риск фишинга. Для авторизации транзакции пользователю предлагается ввести не произвольный TAN из списка, а конкретный TAN, идентифицированный порядковым номером (индексом). Поскольку индекс выбирается банком случайным образом, случайно полученный злоумышленником TAN обычно бесполезен. Однако iTAN все еще уязвимы для атак типа "человек посередине", включая фишинговые атаки, при которых злоумышленник обманом заставляет пользователя войти на поддельную копию веб-сайта банка, и атаки типа "человек в браузере", позволяющие злоумышленнику тайно изменять детали транзакции на компьютере пользователя, а также скрывать фактические транзакции, совершенные злоумышленником, в выписке по онлайн-счету. Поэтому в 2012 году Агентство Европейского Союза по сетевой и информационной безопасности рекомендовало всем банкам исходить из того, что системы ПК пользователей по умолчанию могут быть заражены вредоносным ПО, и использовать механизмы безопасности, позволяющие пользователю сверять данные транзакции с целью выявления манипуляций, например, (при условии обеспечения безопасности мобильного телефона) mTAN или считыватели смарт-карт с собственным экраном, включающие данные транзакции в процесс генерации TAN и предварительно отображающие их пользователю (chipTAN).
Индексованный TAN с CAPTCHA (iTANplus)
Перед входом в iTAN пользователю предъявляется CAPTCHA, которая на фоне также отображает данные о транзакции и сведения, которые предположительно неизвестны злоумышленнику, например, дату рождения пользователя. Это призвано затруднить (но не сделать невозможным) подделку CAPTCHA для атакующего. Этот вариант iTAN, используемый некоторыми немецкими банками, добавляет CAPTCHA для снижения риска атак типа "человек посередине". Некоторые китайские банки также внедрили метод TAN, аналогичный iTANplus. Недавнее исследование показало, что такие схемы TAN на основе CAPTCHA не являются безопасными против более сложных автоматизированных атак.
Мобильная TAN (mTAN)
mTAN используются банками в Австрии, Болгарии, Чехии, Германии, Венгрии, Малайзии, Нидерландах, Польше, России, Сингапуре, Южной Африке, Испании, Швейцарии, а также некоторыми банками в Новой Зеландии, Австралии, Великобритании и Украине. Когда пользователь инициирует транзакцию, банк генерирует TAN и отправляет его на мобильный телефон пользователя по SMS. SMS-сообщение может также содержать данные о транзакции, позволяя пользователю убедиться, что транзакция не была изменена при передаче в банк. Однако безопасность этой схемы зависит от безопасности мобильной сети. В Южной Африке, где широко распространены коды TAN, доставляемые по SMS, появилась новая атака – мошенничество с заменой SIM-карты. Злоумышленник обычно выдает себя за жертву и получает от оператора мобильной связи заменяющую SIM-карту для телефона жертвы. Имя пользователя и пароль жертвы получают другими способами (например, с помощью кейлоггеров или фишинга). В период между получением клонированной/замещающей SIM-карты и моментом, когда жертва обнаруживает, что ее телефон перестал работать, злоумышленник может перевести или вывести средства жертвы со счетов. В 2016 году социальный инженер провел исследование мошенничества с заменой SIM-карты, выявив недостатки в процедуре выдачи номеров. В 2014 году была опубликована уязвимость в системе сигнализации №7, используемой для передачи SMS, позволяющая перехватывать сообщения. Это было продемонстрировано Тобиасом Энгелем на 31-м Хаосском коммуникационном конгрессе. В начале 2017 года эта уязвимость была успешно использована в Германии для перехвата SMS и мошеннического перенаправления денежных переводов. Кроме того, распространение смартфонов привело к появлению вредоносных программ, которые пытаются одновременно заразить компьютер и мобильный телефон, чтобы взломать схему mTAN.
pushTAN
pushTAN – это приложение, реализующее схему TAN, разработанную немецкой банковской группой Sparkassen, и призванное устранить некоторые недостатки схемы mTAN. Оно позволяет избежать затрат на SMS-сообщения и не уязвимо для мошенничества с SIM-картами, поскольку сообщения доставляются пользователю на смартфон через специальное приложение для обмена сообщениями по зашифрованному интернет-соединению. Как и в случае с mTAN, эта схема позволяет пользователю сверять детали транзакции с данными, полученными банком, чтобы выявить скрытые манипуляции, которые могут быть произведены троянами на компьютере пользователя, поскольку фактические детали транзакции, полученные банком, включаются в сообщение pushTAN. Несмотря на схожесть с использованием mTAN на смартфоне, существует риск одновременного заражения компьютера и смартфона вредоносным ПО. Для снижения этого риска приложение pushTAN перестает функционировать, если мобильное устройство имеет root-права или подверглось джейлбрейку. В конце 2014 года Deutsche Kreditbank (DKB) также внедрила схему pushTAN.
Простые генераторы TAN
Риск компрометации всего списка TAN можно снизить, используя токены безопасности, которые генерируют TAN в режиме реального времени на основе секрета, известного банку и хранящегося в токене или смарт-карте, вставленной в токен. Однако сгенерированный TAN не привязан к деталям конкретной транзакции. Поскольку TAN действителен для любой транзакции, отправленной вместе с ним, он не защищает от фишинговых атак, при которых TAN используется непосредственно злоумышленником, или от атак типа "человек посередине".
ChipTAN / Sm@rt-TAN / CardTAN
ChipTAN – это схема TAN, используемая многими немецкими и австрийскими банками. В Германии она известна как ChipTAN или Sm@rt TAN, а в Австрии – как CardTAN, при этом cardTAN является технически независимым стандартом. Генератор ChipTAN не привязан к конкретному счету; вместо этого пользователь должен вставлять свою банковскую карту при его использовании. Сгенерированный TAN уникален для банковской карты, а также для деталей текущей транзакции. Существуют два варианта: в более старом варианте данные о транзакции (как минимум сумма и номер счета) необходимо вводить вручную. В современном варианте пользователь вводит данные транзакции онлайн, после чего генератор TAN считывает детали транзакции через мерцающий штрих-код на экране компьютера (с помощью фотодетекторов). Затем он отображает детали транзакции на собственном экране для подтверждения пользователем перед генерацией TAN. Поскольку это независимое аппаратное устройство, соединенное только простым каналом связи, генератор TAN не подвержен атакам с компьютера пользователя. Даже если компьютер скомпрометирован трояном или происходит атака типа «человек посередине», сгенерированный TAN действителен только для транзакции, подтвержденной пользователем на экране генератора TAN, поэтому ретроспективное изменение транзакции приведет к недействительности TAN. Дополнительным преимуществом этой схемы является то, что генератор TAN является универсальным, требующим вставки карты, и может использоваться с несколькими счетами в разных банках. Потеря генератора не представляет угрозы безопасности, поскольку критически важные данные хранятся на банковской карте. Несмотря на защиту от технических манипуляций, схема ChipTAN все еще уязвима для социальной инженерии. Злоумышленники пытались убедить пользователей санкционировать перевод под предлогом, например, что банк требует «тестовый перевод» или что компания ошибочно перевела деньги на счет пользователя, и им следует «вернуть их». Поэтому пользователям никогда не следует подтверждать банковские переводы, которые они не инициировали самостоятельно. ChipTAN также используется для защиты пакетных переводов (Sammelüberweisungen). Однако этот метод обеспечивает значительно меньшую безопасность, чем для отдельных переводов. В случае пакетного перевода генератор TAN отобразит только количество и общую сумму всех переводов вместе – таким образом, для пакетных переводов существует небольшая защита от манипуляций с помощью троянов. Эта уязвимость была выявлена RedTeam Pentesting в ноябре 2009 года. В ответ на это некоторые банки изменили обработку пакетных переводов, чтобы пакетные переводы, содержащие только одну запись, рассматривались как отдельные переводы.