raw2654 26 декабря 2023

🏦⚠️ Борьба с ошибками разработки ПО в финтехе

Рассказываем, как избежать неловких, а то и непоправимых ситуаций при разработке программного обеспечения для финтеха.
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
Статья читателя «Библиотеки программиста».

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

Почему это важно

История финтеха изобилует примерами того, как ошибки и невнимательность приводили к колоссальным потерям – как денежным, так и репутационным. А в финансах репутация очень часто куда важнее денег. Простой пример: В 2017 году кредитное бюро Equifax подверглось хакерской атаке. Злоумышленники использовали уязвимость CVE-2017-5638 в Apache Struts, среде разработки с открытым кодом. Патч на эту уязвимость на момент взлома был уже полгода как доступен, но сотрудники Equifax не удосужились вовремя его установить. В итоге хакеры смогли свободно гулять по всей экосистеме бюро (она не была сегментирована), находили логины и пароли к аккаунтам менеджеров (они хранились в виде простого текста) и в итоге украли данные 147 миллионов клиентов, включая даты рождения, номера кредиток, водительских прав и карт социального страхования. Мало того что Equifax оштрафовали на 700 миллионов долларов за утечку данных. Его топ-менеджмент еще и обвинили в инсайдерской торговле: компания публично объявила о взломе лишь месяц спустя, а за это время боссы с исполненными опционами успели продать акции родной компании…

Двумя годами позже First American Financial Corp погорела на «детской» ошибке в бизнес-логике своего сайта. Ссылки на многие внутренние страницы с важной информацией оказались не защищены аутентификацией. Злоумышленникам, собственно, не понадобилось даже ничего делать. Они просто обошли открытые всем ветрам страницы и собрали данные о 885 миллионах операций с недвижимостью, включая имена, телефоны и адреса электронной почты агентов и покупателей. Прямые финансовые потери оказались удивительно скромными: штраф на 488 тысяч долларов Комиссии по ценным бумагам и еще 1 млн долларов – Департаменту финансов штата Нью-Йорк. Но рынок и медиа вспоминают эту историю до сих пор…

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Что может пойти не так?

Что может пойти не так?
Что может пойти не так?

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

  1. Недостаточно точная обработка чисел с десятичными дробями и использование чисел с плавающей точкой. И то и другое приводит к округлению – в итоге конечные суммы будут неточны. Накапливаясь, такие ошибки могут привести к довольно серьезным расхождениям.
  2. Недоработки в системах безопасности. Использование недостаточно защищенных API, «дыры» в защите SQL, уязвимости к кросс-сайтовым сценариям (XSS) – вот самые распространенные болевые точки. Ну и защищать страницы аутентификацией и ставить патчи вовремя тоже забывать не стоит…
  3. Обработка «пограничных» сценариев и ошибок. Часто код бывает плохо приспособлен (и плохо тестирован) на ситуациях, выходящих за рамки наиболее типичных кейсов. Это плохо сказывается, например, на распознавании подозрительных транзакций. А некорректная обработка ошибок может привести к незавершенным расчетам и коллапсу всего сервиса.
  4. Неприспособленность софта к комплаенсу и другим требованиям законодательства. Проблема в том, что эти факторы часто уникальны в каждой стране и могут иметь довольно существенные отличия для разных категорий пользователей. К тому же, они имеют свойство часто меняться – и, как правило, в сторону ужесточения.
  5. Проблемы с внешней интеграцией. Финансовые сервисы – это узлы связи между пользователями и приложениями на их устройствах, торговыми площадками, банками, регуляторами. Без интеграции со сторонними сервисами существования современного финтеха в принципе немыслимо. Поэтому критически важно подходить к вопросам интеграции вдумчиво, учитывать все нюансы безопасности, надежности передачи, обработки и хранения данных. Разумеется, всегда должен быть предусмотрен «план Б» на случай сбоев во взаимодействии с внешними сервисами.

Что делать?

Что делать?
Что делать?

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

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

Нельзя не упомянуть и о важности командной работы в целом, вне зависимости от того, какую идеологию разработки вы исповедуете. В финтехе не бывает мелочей. Поэтому касается ли дело тестирования или code review, вам очень важно всегда иметь лишнюю пару глаз, а лучше несколько. Понятно, что инструменты DevOps позволяют уделять меньше внимания рутинным тестам, а средства искусственного интеллекта помогают сделать код более качественным. Но выявить многие типичные ошибки, в том числе самые элементарные, под силу лишь людям. Придумать условия для тестирования пограничных сценариев или трезво оценить, какой тип переменных уместнее в данном конкретном случае сможете лишь вы и ваши коллеги. А для того чтобы ваша команда работала слаженно, она должна быть грамотно построена и должна иметь здоровую атмосферу. Как бы банально ни звучал этот совет, это основа основ.

Взгляд в завтрашний день

Взгляд в завтрашний день
Взгляд в завтрашний день

Об искусственном интеллекте – AI – сейчас говорят все: от разработчиков поисковых алгоритмов до создателей развлекательного контента. В каких-то отраслях его перспективы вызывают скепсис, в каких-то – трепет. Я убежден, что финтех – одна из самых перспективных сфер применения AI уже сейчас, а в будущем его роль в этой индустрии будет лишь расти. Конечно, AI способен вдохнуть новую жизнь в потребительские финансовые продукты: от более точных рекомендательных систем до помощи в планировании бюджета. И все же главная область его применения лежит, скорее, в технических аспектах. Например, одна из главных болей финтеха, безопасность, уже сегодня нуждаются в помощи искусственного интеллекта. Распознавание подозрительных клиентских транзакций, хакерских атак на основе машинного обучения и предиктивных моделей – уже сегодня эти функции ставятся на поток, а завтра без них будет немыслимо существование всей отрасли. Так, уже сейчас компании, использующие AI в системах безопасности, в среднем экономят 1,76 миллиона долларов в год по сравнению с теми, кто такие технологии не применяет.

Наконец, AI незаменим при разработке финансовых сервисов. Инфраструктурная сложность и необходимость минимизировать человеческий фактор подталкивают отрасль ко все более широкому применению искусственного интеллекта именно в области разработки. «AI, особенно генеративный AI – большое подспорье для создания финансовое инфраструктуры. Подходы low code и no code с одной стороны и генеративный AI с другой – способны решить многие проблемы сложности инфраструктуры», – заявил на конференции Money 20/20 летом 2023 года Тео Блидарус, CEO и сооснователь платформы FintechOS. Чего уж точно не стоит опасаться разработчикам в области финтеха – так это конкуренции со стороны AI. «Сегодня тот объем работы, на который раньше требовалась неделя или две, можно сделать за 30 минут. Понятно, что результат нужно немного отполировать, но фундаментально это позволяет вам тратить время на более продуктивные вещи – творческие вещи – нежели на работу по интеграции», – добавляет он.

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

Что еще почитать

  1. Еще немного о типичных ошибках в финтехе – decode.agency
  2. Общая, но небезынтересная гарвардская работа о технологических рисках в финансовом секторе (.pdf) – harvard.edu
  3. Перспективы мирового финтеха – statista.com
  4. Дельные советы о лучших практиках в финтех-разработке – stfalcon.com

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ