Принципы разработки безопасного мобильного банка

Принципы разработки безопасного мобильного банка

Umbrella IT

С февраля 2022-го хакеры объявили охоту на российские компании. Как финансовым организациям справиться с обеспечением безопасности мобильных приложений на стадии разработки — поговорим об этом в нашей статье.

Опасения оправданы: о необходимости решительных мер по защите мобильных приложений

Число кибератак в мире за последнее десятилетие увеличивалось на 20-40% ежегодно. Но в рунете ситуация менялась более драматично: лишь за I квартал 2022 года количество атак на API выросло на 200%. Эксперты считают, что сегодня безопасность до 90% мобильных приложений, особенно в российском финтехе, под угрозой. 

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

Серверная часть обрабатывает запрос и отправляет ответ пользователю:

  • здесь находят 54% всех уязвимостей мобильных приложений;
  • в 5 из 7 продуктов банков защита персональных данных недостаточна: возможна кража средств, сведений о картах, пары логин-пароль.

Клиентская часть — то, что видит и с чем взаимодействует пользователь. После анализа безопасности этой части мобильных приложений выяснилось следующее: 

  • ⅓ уязвимостей не требует jailbreak и root-прав;
  • 76% «дыр» в архитектуре безопасности данных эксплуатируются без доступа к девайсу; 
  • защита мобильных данных достаточна в 1 из 14 проектов, в остальных случаях возможен несанкционированный доступ.

Хакерские приемы и уязвимости банковских приложений

Распространенные хакерские методы, чтобы скомпрометировать банковское мобильное приложение. 

  • SIM-хайджекинг — подмена карты, посредством которой киберпреступник проводит любые операции с двухэтапной аутентификацией.
  • Фишинг — SMS или email-сообщения с вредоносными ссылками, ведущими на шпионское ПО или мошеннический сайт. 
  • Заражение смартфона вредоносными программами, передающими информацию эмуляторам, имитирующим поведение владельца. 
  • Трояны — вирусы, незаметно переданные через стороннее ПО или ссылки. Перехватывают конфиденциальную информацию из банковских мобильных приложений. 

Однако защита продукта зачастую страдает не из-за сверхусилий киберпреступников, а за счет недочетов при разработке, среди них: 

  • использование статических паролей или подтверждение через один канал — только логин-пароль, смс-код или другой; 
  • неприменение сквозного шифрования и антифрод-систем. 

С чего начинается безопасность мобильного банкинга

Меры, которые предпринимают для разработки безопасного программного обеспечения:

  1. Выбирают отечественные решения от Лаборатории Касперского, Мегафона, Inoventica Technologies для предотвращения DDoS-атак. Подключают ИБ-инструменты: SIEM — системы контроля событий, EDR для поиска угроз на конечных точках, NTA-решения анализа интернет-трафика. Внедряют MDM для управления мобильными устройствами и их защиты.
  2. Обучают персонал или привлекают сторонних экспертов, включая специалистов по консалтингу в сфере информационной безопасности.
  3. Заботятся об импортонезависимости для защиты банкинга: выбирают готовое российское ПО или разрабатывают собственное, хотя бы частично неконтролируемое западным бизнесом. Для дополнительного обеспечения безопасности приложения компании практикуют перенос технических ресурсов, которые хостятся за рубежом, в Россию. 
  4. Разрабатывают безопасный код, интегрировав средства автоматизации и тестирования. Тестирование проводят пентестами, методами черного и белого ящика. Для этого нанимают команду внешних специалистов или внедряют методики DevOps и DevSecOps
  5. Мониторят работу опенсорс-решений. Потенциально в них может быть вредоносное ПО, которое незаметно для пользователя делает скриншоты, записывает аудио, ворует списки контактов.  
  6. Усиливают службу поддержки. Голосовые помощники снижают нагрузку на операторов, которым поступает больше обращений из-за активизации злоумышленников.
  7. Организуют эшелонированную защиту — предлагают пару ответов на каждую угрозу или риск, а оптимально — пин-код, проверку устройства и биометрию. 
  8. Оценивают поведение клиентов инструментами ML и AI на основе сведений об устройствах, транзакциях, параметрах входа. При нестандартных сигналах отправляют запросы на проверку личности.

Фишки разработки безопасного мобильного приложения

Принципы, соблюдаемые при разработке мобильного приложения для банка.

  • В свернутом состоянии отображается окно входа: в случае кражи устройства преступник не сможет получить данные.
  • Рекомендуемая длина пин-кода — от 6 символов, количество попыток ввода ограничено. При неудачной попытке входа срабатывает блокировка. 
  • Для защиты персональных данных и подстраховки на случай подмены сим-карт интегрирована программная аутентификация. 
  • Вся информация, кроме пин-кода, изменяется не локально, а через синхронизацию с сервером. 
  • Чтобы мобильное приложение интернет-банкинга не простаивало в незащищенном виде, длина сессии ограничена. Время окончания обозначается универсальной переменной, не привязанной к часовому поясу, что защищает информацию смартфонов при передаче данных серверу и не позволяет киберпреступнику обойти механизм ограничения сменой локального сервера.
  • Криптографические закрытые библиотеки, даже платные, не используются, потому что они потенциально опасны. В них не получится контролировать backdoor или слив информации третьей стороне. 
  • Логи для разработчиков банковских продуктов зашифрованы, чтобы злоумышленники не получили доступ к закрытой информации. 
  • Настроено сквозное шифрование для банкинга — механизм защиты пользователя от перехвата данных при передаче между сервером и устройством. На смартфоне хранятся минимальные сведения в зашифрованном виде, остальные отправляются с сервера и удаляются после окончания сессии.
  • На этапе сборки безопасность продукта обеспечивается методами обфускации — запутывания кода — инструментами ProGuard или Sirius Obfuscator и вручную, например, заменой исходных имен классов случайными. Такой код мошенникам сложнее читать и анализировать.

Безопасность vs. Удобство

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

Регистрация

Логин и пароль могут украсть, как и телефон, — такой способ регистрации рискованный. По номеру карты/счета и SMS надежнее, но хакеры парируют этот метод фишингом. Можно при оформлении счета в офисе выдавать QR-код и использовать его как второй канал, но это слишком непривычный путь. 

Есть еще один вариант — заказать разработку мобильного приложения с биометрией и технологией liveness detection. Финансовые организации законодательно обязаны в ближайшее время внедрить данную технологию, поэтому она выглядит как наиболее благоприятное и перспективное решение. 

Подтверждение операций

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

Показ данных карты

Лучше показывать номер карты и CVV/CVC в разных окнах. Тогда злоумышленнику будет сложнее заполучить информацию через скриншот. Причем не лишней в банковском мобильном приложении будет функция подтверждения отображения данных через СМС и пуш. 

Заключение

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