Две трети российских банков позволяют украсть деньги клиента, перевыпустив SIM-карту
Исследование компании Digital Security показало, что российские банки излишне полагаются на подтверждение личности клиента по номеру телефона, чем могут воспользоваться злоумышленники. Кроме того, приложения банков имеют множество недостатков с точки зрения безопасности.
Номер телефона как идентификатор
62% российских банков полагаются исключительно на номер телефона, с которого абонент звонит в колл-центр, для первичного подтверждения личности клиента. Таким образом, зная номер телефона жертвы, злоумышленник может получить у банка приватные данные клиента или даже заблокировать счета без подтверждения личности. Для этого достаточно с помощью SIP-оператора подделать номер телефона (Caller ID), отображающийся во время приема входящего звонка в колл-центре.
При этом 68% банков не отслеживает, была ли недавно перевыпущена SIM-карта клиента. Это дает хакеру еще одну возможность — инициировать перевыпуск карты жертвы, номер телефона которой он знает, и реализовать с помощью этой карты преступную схему по выводу средств, поскольку снятие средств после перевыпуска, как и вход в аккаунт, по-прежнему возможно.
Что касается состава данных, которые сотрудники российских банков могут сообщать по телефону, то в 18% банков у злоумышленника есть возможность узнать баланс счета и сведения о транзакциях, что может пригодиться ему для вывода средств с этого счета.
К таким выводам пришла компания Digital Security, специализирующаяся на кибербезопасности, которая опубликовала результаты исследования взаимодействия 16 крупнейших банков России с операторами сотовой связи, а именно с «большой четверкой» — «Вымпелкомом» (торговая марка «Билайн»), МТС, «Мегафоном» и «Т2 Мобайл» (Tele2). Авторами исследования являются аналитики Егор Салтыков и Виктор Вуколов.
Проблемы подтверждения личности
Исследование также затрагивает вопросы защищенности мобильных банковских приложений для iOS и Android. При отборе приложений Digital Security опиралась не только на «Топ 100 российских банков» от издания banki.ru, но и на рейтинги самых популярных банковских приложений в App Store и Google Play.
Исследование показало, что 18% приложений рассмотренных 16 банков не имеет второго фактора защиты для входа на платформах iOS и Android — двухфакторная аутентификация отсутствует в трех из 16 случаев для обеих платформ, хотя это требование уже несколько лет входит в перечень ключевых норм безопасности банковских приложений.
Хотя оптимальной длиной SMS-кода, который используется в качестве второго фактора аутентификации, на сегодняшний день считается шесть символов, два приложения для Android используют пять символов, еще четыре приложения — четыре символа. Точно такие же показатели продемонстрировали приложения для iOS.
Кроме того, семь из 16 приложений для iOS раскрывают координаты пользователя — широту и долготу с точностью до метра. В случае Android это делают четыре приложения.
Проблемы приложений для iOS
Большинство приложений хранит данные пользователей в местах, откуда они могут быть извлечены злоумышленником. В двух приложениях для iOS сессию нельзя полностью завершить, шесть оставляют данные клиента в Keychain, специальном хранилище iOS для хранения критичной информации, семь — в памяти, 10 — в файлах, и 11 — в cookie.
Один API для iOS использует небезопасное HTTP-соединение. 11 приложений для iOS поддерживают запуск на устройстве, пережившем Jailbreak, то есть принудительное повышение привилегий пользователя. Также есть остаточные явления периода разработки — 13 приложений содержат информацию о тестовом окружении.
13 из 16 приложений для iOS некорректно работают с Snapshot — при завершении сеанса они создают снимок экрана и хранят его до следующего сеанса. 10 из 16 приложений используют массив NSUserDefaults, который может содержать данные об учетной записи или банковской карте.
Проблемы приложений для Android
Одно из исследованных банковских приложений для Android хранит пароль в файлах после завершения сессии, пять сохраняют данные клиента в памяти после завершения сессии, шесть сохраняют там пароль. Также одно приложение осуществляет запись отладочной информации в журнал устройства (logcat) — эта функция может быть сохранена разработчиком при переходе из тестовой версии в окончательную. Есть и другие рудименты тестирования — в 10 приложениях содержатся SSL-сертификаты с данными о разработчике, четыре содержат информацию о тестовом окружении.
Кроме того, четыре Android-приложения допускают возможность утечки данных через Backup. 12 из них не предупреждают о работе со скомпрометированным устройством, где реализован корневой доступ. Одно не использует проверку SSL Pinning, которая позволяет защититься от атаки типа «человек посередине».