Обзор основных уязвимостей онлайн-банков


Positive ResearchКомпания Positive Technologies провела исследование 28 систем дистанционного банковского обслуживания физических (77%) и юридических лиц (23%). Среди них были и мобильные системы ДБО, представленные серверной и клиентской частью (54%). При этом две трети систем, а это 67% - являлись собственными разработками банков (использовались Java, C# и PHP), все остальные были развернуты на базе платформ известных вендоров. Кроме того, около 74% систем ДБО находились в промышленной эксплуатации и были доступны для клиентов, а четверть ресурсов составляли тестовые стенды, готовые к переводу в эксплуатацию.

Vozmojnie uyazvimosti v DBO 2015

По полученным результатам исследования удалось установить, что в исходном коде присутствуют уязвимости высокого уровня риска, а серьезные недостатки механизмов аутентификации и авторизации во многих системах дистанционного банковского обслуживания позволяют проводить несанкционированные транзакции или даже получить полный контроль над системой со стороны внешнего злоумышленника. Данные уязвимости могут привести к существенным финансовым и репутационным потерям.

Так, например:

  • имеют высокий уровень риска - 44% систем ДБО;
  • среднюю степень риска - 26%;
  • низкую степень риска - 30%.


При этом в целом, уязвимости высокого уровня риска были выявлены в 78% исследованных систем.

Кроме того, уязвимостей, связанных с:

  • ошибками реализации механизмов защиты систем ДБО, заложенных разработчиками - 42% - это уязвимости, к которым относятся недостатки механизмов идентификации, аутентификации и авторизации;
  • ошибками в коде приложений - 36%;
  • недостатками конфигурации - 22%.


Наиболее часто в системах ДБО встречались уязвимости, связанные с:

  • возможностью идентификации используемого ПО и с предсказуемыми форматами идентификаторов пользователей - 57% систем;
  • ошибками в программном коде типа "Межсайтовое выполнение сценариев" - 54%.


Во втором случае, если клиент банка перейдет по специально сформированной вредоносной ссылке, то атакующий без особого труда может получить доступ к системе ДБО с привилегиями данного клиента.

Еще, в 54% случаев, были выявлены уязвимости, которые позволяют реализовать атаки на сессии пользователей. К таким брешам относятся уязвимости, связанные с:

  • некорректным завершением сессий;
  • некорректной настройкой cookie-параметров;
  • возможностью параллельной работы нескольких сессий для одного пользователя;
  • отсутствием привязки сессии к IP-адресу клиента и др.


Эксплуатируя данные уязвимости, злоумышленник, при успешной атаке, может получить доступ к личному кабинету пользователя с его привилегиями.

Следующая наиболее распространенная уязвимость с высокой степенью риска (46% систем) - "Внедрение внешних сущностей XML". При ее эксплуатации злоумышленник может:

  • получить содержимое файлов, которые хранятся на уязвимом сервере;
  • получить данные об открытых сетевых портах узла;
  • вызвать отказ в обслуживании всей системы ДБО;
  • в ряде случаев, обратиться к произвольному узлу от лица уязвимого сервера и развить атаку.


Кроме того, в 52% исследованных ресурсах уязвимости способны вызвать отказ в обслуживании системы ДБО.

Samie rasprostranennie uyazvimosti system DBO 2015
Самые распространенные уязвимости систем ДБО (доля систем)

Большинство распространенных уязвимостей имеет средний или низкий уровень риска. Однако, в сочетании с особенностями функционирования конкретных систем ДБО это может привести к реализации серьезных угроз безопасности, включая:

  • кражу конфиденциальных данных - 89% систем;
  • кражу денежных средств - 46%.


Также исследованные системы ДБО содержат ряд существенных недостатков на уровне логики. Так, например, в ряде систем была обнаружена возможность атак на основе некорректного использования алгоритмов округления чисел. Скажем, при переводе злоумышленником 0,29 рублей в доллары США, когда стоимость одного доллара 60 рублей, сумма в 0,29 рублей будет соответствовать 0,00483333333333333333333333333333 долларов. Понятно, что данная сумма будет округлена до двух знаков после запятой, т.е. до 0,01 доллара. После этого злоумышленник переводит 0,01 доллара обратно в рубли и получает 0,60 рублей. В результате злоумышленник "наваривает" 0,31 рублей. А так как ограничение по количеству транзакций в сутки и минимальному размеру транзакции отсутствует, а кроме того существует возможность эксплуатации уязвимости типа Race Condition ("Состояние гонки"), то в ряде случаев злоумышленник может получать неограниченные суммы денежных средств.


Уязвимости по разработчикам
При исследовании систем ДБО удалось установить еще и то, что уязвимостей высокой степени риска в системах:

  • предоставленных вендорами - 49%;
  • собственной разработки конкретного банка - 40%.


Кроме того, системы, которые поставляются профессиональными разработчиками, в среднем содержат в 2,5 раза больше уязвимостей на уровне кода приложения, чем системы собственной разработки. Подобное явление объясняется тем, что при использовании ПО от вендора банк в вопросах качества кода полагается главным образом на поставщика. При этом сложная архитектура, кроссплатформенность и большое количество функций систем ДБО не всегда способны вендору обеспечить должный уровень защищенности на уровне кода приложения.

Srednee kol-vo uyazvimostey v systemah 2015
Среднее количество уязвимостей в системах (в зависимости от разработчика)

Уязвимости механизмов защиты
Что касается уязвимостей механизмов защиты, то к наиболее распространенным недостаткам механизмов идентификации систем ДБО можно отнести предсказуемость формата идентификатора учетной записи - 64% систем. Например, если злоумышленнику известно несколько существующих в системе идентификаторов, тогда он может вычислить механизм их формирования и подобрать нужный. Еще 32% исследованных систем раскрывали информацию о существующих в системе учетных записях, возвращая различные ответы в зависимости от существования введенного идентификатора. А в 20% случаев - системы ДБО содержали обе вышеупомянутые уязвимости идентификации.

58% рассмотренных систем имели слабую парольную политику, недостаточную защиту от подбора учетных данных, возможность обхода механизма CAPTCHA или отсутствие обязательной двухфакторной аутентификации при входе в личный кабинет, т.е., недостатки реализации механизма аутентификации.

Uyazvimosti mehanizmov autentifikacii 2015
Уязвимости механизмов аутентификации (доли систем)

79% систем - содержали различные недостатки авторизации и защиты транзакций. При этом, злоумышленник мог:

  • получить несанкционированный доступ к данным пользователей (персональным данным, информации о счетах, платежах и т. п.) - в 42%;
  • напрямую осуществлять банковские операции от лица других пользователей - в 13% систем.

Nedostatki mehanizmov avtorizacii 2015
Недостатки механизмов авторизации (доля уязвимых систем)

Уязвимости мобильных клиентов
Касательно клиентского ПО для ОС Android - оно более уязвимо по сравнению с приложениями для iOS. Так, критически опасные уязвимости содержатся в:

  • приложениях для Android - 70%;
  • приложениях для iOS - 50%

Dolya klientskih mobil uyazvimih programm 2015
Доли клиентских мобильных программ, подверженных уязвимостям

В среднем каждое приложение на базе Android содержит 3,7 уязвимостей, а в iOS-приложениях данный показатель равен 2,3.

При этом, наиболее часто в мобильных системах ДБО встречались уязвимости, связанные с:

  • небезопасной передачей данных - 73%;
  • недостаточной защитой сессий - 55%;
  • небезопасным хранением данных в мобильном приложении - 41%.

Naibolee rasprostr uyazvimosti klientskogo PO mobil sys 2015
Наиболее распространенные уязвимости клиентского ПО мобильных систем

Подводя итоги, стоит сказать, что хотя наиболее распространенные уязвимости мобильных систем ДБО имеют среднюю или низкую степень риска, не смотря на это в ряде случаев совокупность выявленных недостатков позволяла реализовать серьезные угрозы безопасности. Например, приложение могло отправлять широковещательное сообщение, содержащее полученное от банка SMS-сообщение (с одноразовым паролем для проведения транзакции), которое могло быть перехвачено сторонним приложением. И параллельно с этим осуществлять журналирование важных данных, таких как учетная запись пользователя, вследствие чего при успешном заражении устройства пользователя вредоносным кодом атакующий мог получить полный доступ к аутентификационным данным и проводить транзакции от лица пользователя мобильного приложения.


Обновлено (22.05.2015 18:16)