Основные проблемы и уязвимости при разработке мобильного банковского приложения

Россия
Обновлено: 2019-11-04

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

Мобильный банк: правила безопасности

Разработка программного обеспечения под мобильные платформы имеет свои специфические особенности. При этом накопленный опыт разработчиков зачастую не позволяет учитывать все нюансы использования практик безопасного программирования.

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

К основным недостаткам, допускаемым в процессе разработки мобильного программного обеспечения, относятся:

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

Отдельно стоит отметить класс логических ошибок. Данный вид ошибок практически не обнаруживается автоматизированными средствами и сложно вычисляется при тестировании. В качестве примера приведем известную уязвимость в дистанционном банкинге, обнаруженную специалистами ACROS Security. Исследователи обратили внимание, что округление чисел при проведении операций осуществляется до второго порядка. Таким образом, клиент банка мог осуществить обмен 1 цента на 1 евроцент, притом что реальная разница курса валюты составляла 25%, но 0,007 евро всегда округлялись до значения 0,01. В классическом банковском обслуживании данная ситуация не привлекла бы повышенного внимания. Но в дистанционном банкинге существует возможность выполнения множества операций за небольшие промежутки времени без участия человека. В описанном случае эта возможность приводит к многотысячным потерям в сутки при выполнении вполне легитимных действий.

Нередко возникают проблемы с безопасностью, связанные с неучтенной спецификой мобильной платформы. Так, мобильные устройства одного из лидеров рынка смартфонов при возникновении более приоритетной операции (например, входящего звонка) делают «снимок» экрана и сохраняют его во временных файлах для возможности быстрого возврата к используемому приложению. В данной ситуации при отсутствии маскирования значений «логин/пароль» во входной форме злоумышленник может спровоцировать сохранение в незащищенном виде критичной аутентифицирующей информации.

Следующий способ защиты от угроз безопасности информации – встроенные в приложение защитные механизмы. На сегодняшний день самым популярным и практически единственным из них является система аутентификации пользователя. Выражается она в большинстве случаев в запросе пары «логин/пароль», но может быть усилена дополнительными факторами. Например, значением с PIN-калькулятора.

Отметим, что использование классической для интернет-банкинга схемы двухфакторной аутентификации (помимо пары «логин/пароль» используется код, переданный через sms) в случае Мобильного банка практически бесполезно. Исключением служат лишь случаи, когда для получения sms с кодом используется другое устройство. Для Мобильного банка неактуален еще один достаточно действенный способ быстрого реагирования на несанкционированные операции – sms-оповещение о списании средств со счета.

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

К сожалению, рост популярности мобильных устройств прямо пропорционален росту обнаруженных уязвимостей и брешей в их безопасности. Как следствие – появление множества автоматизированных средств, эксплуатирующих обнаруженные «дыры».


5.0/1