Как стать автором
Обновить

Как уронить и поднять сервис безопасности платежей за одну ночь

Время на прочтение6 мин
Количество просмотров8.8K

Привет, Хабр! На связи Антон Семенов. Я руковожу группой электронных платежей и систем клиентского сервиса АШАН ТЕХ. АШАН ТЕХ — ИТ-компания торговой сети «АШАН Ритейл Россия». Наша главная задача — поддерживать цифровую трансформацию и реализацию ключевых бизнес-задач ритейлера.

Возможно, вас это удивит, но за нашей работой стоит более 270 различных ИТ-сервисов: от сервисов кассового обеспечения до ERP- и CRM-систем, средств управления логистикой, инфраструктурных систем и многого другого. 

А с 2011 года у нас есть собственный процессинговый центр. Это значит, что мы не используем услуги внешнего банка-эквайера в классическом виде и все платежи, которые совершают пользователи при покупке товаров как в магазинах, так и онлайн, проходят через наш процессинговый центр. Он напрямую интегрирован с НСПК и имеет линки к платёжным системам МИР, VISA и Mastercard. Хотя пользователей двух последних становится всё меньше, мы всё равно продолжаем принимать такие карты, выпущенные банками на территории РФ. Доля платежей по ним не такая уж и маленькая: около 20%. 

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

Знакомимся с 3D Secure

Но для начала давайте поговорим о том, как осуществляется безопасность платежей по протоколу 3D Secure. По сути, 3D Secure — это протокол двухфакторной аутентификации, который используется для обеспечения безопасности онлайн-покупок по банковским картам. С его помощью продавец и банк-эмитент могут получить подтверждение, что оплату совершает владелец карты, а не мошенник. 

Схема работы 3D Secure
Схема работы 3D Secure

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

Для подтверждения платежа банк-эмитент отправляет уведомление с одноразовым паролем на привязанный к карте номер мобильного телефона. Клиент вводит код на странице, после чего запрос отправляется на ACS-сервер банка. Затем клиента перенаправляют обратно на сайт магазина. Если пароль введён верно и на карте достаточно средств — платёж проходит.

На нашем платёжном шлюзе для выполнения онлайн-платежей также используется протокол 3D Secure. Мы ежегодно проходим сертификацию PCI DSS — это стандарт безопасности данных индустрии платёжных карт. Хотя он и не панацея от хакеров, но как минимум подтверждает высокий уровень защищённости наших систем. И 3DS — это дополнительная мера в комплексе всех защит, которые мы можем применить для безопасности данных наших клиентов.

Сейчас существуют две версии 3D Secure. Для карт VISA и Mastercard, выпущенных в России, чаще всего используется первая версия протокола. Она предполагает обязательную проверку через Challenge Flow (операция подтверждается с помощью ввода кода из СМС). 

Вторая версия — более новая и в РФ применяется только для карт МИР. Она подходит к анализу платежа более интеллектуально. В ней анализируется множество параметров: сумма платежа, магазин, где осуществляется покупка, устройство, с которого выполняется операция, и другие параметры. На основе этих данных банк-эмитент решает, запрашивать ли код из СМС (Challenge Flow) или одобрить операцию без проверки (Frictionless Flow).

3DS состоит из четырёх сущностей: 

  • Клиент; 

  • 3DS-сервер эквайера;

  • Directory-сервер платёжных систем;

  • Access Control Server со стороны эмитента.  

При использовании карт VISA и Mastercard мы делаем запрос на проверку кода из СМС при любой платёжной операции. При оплате по картам МИР такой запрос может и не поступить, если эмитент решит на основании данных в авторизационном запросе, что её можно одобрить без дополнительной проверки, так как у неё высокий scoring. 

Роняем и поднимаем

Теперь, немного разобравшись с принципами работы 3D Secure, перейдём к главной теме статьи — миграции. Итак, в представленной платёжной цепочке мы выступаем как эквайер. До миграции для выполнения платежей использовали австралийское решение на базе продукта GPayments ActiveMerchant. 

На это решение у нас была приобретена техническая поддержка, которая истекала летом 2023 года. Возможности продлить поддержку не было. К тому же уже существовали российские сертифицированные аналоги, подходящие для замены. Мы использовали ActiveMerchant только для авторизации платежей VISA и Mastercard. Для авторизации операций по картам МИР мы к тому моменту перешли на альтернативный продукт — SmartBanking MPI. 

Так как поддержка ActiveMerchant истекала, мы решили мигрировать на продукт, уже имевший сертификат НСПК и разработанный одним из наших московских партнёров. Решение о переходе было принято ещё весной 2023 года. Мы составили план миграции, который учитывал срок тестовой эксплуатации нового решения и время на переход со старой системы на новую одним днём (а если точнее — ночью). 

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

Когда всё пошло не так

При составлении плана миграции дата окончания действия технической поддержки на ActiveMerchant выпала на последние дни проведения тестового цикла нового решения. 

Обычно лицензионные ограничения на подобные продукты бывают двух типов. 

В первом предполагается, что после окончания действия лицензии на техническую поддержку производитель перестаёт обрабатывать запросы по открытым тикетам и продукт нельзя обновить до более актуальных версий. На его функциональность это никак не влияет: можно продолжать пользоваться решением без каких-либо дополнительных ограничений. Во втором — предполагаются ограничения по функционалу самого продукта. Такое часто применяется в моделях по подписке.

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

Мы обсудили план действий с техническими командами, которые уже не один год работали с этой системой, и остановились на мнении, что окончание действия саппорта не приведёт к каким-либо техническим изменениям в работе системы и мы сможем переждать пару дней без него, пока готовим миграцию на новый продукт — SmartBanking MPI. Как несложно догадаться, это оказалось ошибкой.

В полночь следующего дня после окончания сроков поддержки системы мониторинга забили тревогу: начались проблемы с платежами по картам VISA и Mastercard в e-commerce.

Увы, оказалось, что по окончании срока действия поддержки продукта GPayments ActiveMerchant функционал просто блокировался. Нужно было срочно что-то предпринять, ведь фактически у нас упал функционал приёма карт VISA и Mastercard в мобильном приложении и на сайте. Разумеется, отключать 3DS с учётом возможных активностей злоумышленников было недопустимо.

Экстренная миграция

Хотя большинство наших магазинов не работают в ночное время, онлайн-покупки совершаются круглосуточно. Для клиентов с картами, отличными от платёжной системы МИР, оплата стала невозможной.

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

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

Новый продукт, на который мы собирались переходить, не был сырым, недоработанным решением. Наши партнёры уже внедряли это приложение в другие сервисы, поэтому в целом процесс миграции был нам понятен. Но сложность была в том, что нужно было интегрировать его именно в нашу платёжную экосистему. При этом важно было учесть все потенциальные риски, связанные с интеграционными потоками. Спасибо коллегам, которые смогли быстро подключиться и провести миграцию с учётом особенностей ИТ-архитектуры.

К 08:00 по Москве сервис оплаты функционировал в полном объёме: все платежи по VISA и Mastercard успешно проходили и никто не заметил, что система 3D Secure была заменена. С учётом того, что работы стартанули без предупреждения в экстренном режиме, наша миграция получилась по-настоящему бесшовной.

Выводы

После этой «веселой» миграции мы провели аудит всех наших ИТ-систем в контуре PCI DSS, чтобы разобраться с лицензионными ограничениями и перечитать условия поддержки.

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

Подводя итог этой истории, хотелось бы поделиться выводами, которые мы с командой сделали из нашего опыта миграции: 

  • Во-первых, всегда учитывать даже самые маловероятные риски. Закон Мёрфи гласит: «Anything that can go wrong will go wrong» («Всё, что может пойти не так, пойдёт не так»). В нашем случае было неразумно не брать в расчёт срок действия поддержки и строить план миграции без учёта возможного ограничения функционала.

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

На этом завершаю рассказ о нашей экстремальной миграции и хочу пожелать, чтобы ночами вы могли спокойно отдыхать, а ваши системы были надёжны, как моя команда и команда партнёров, которые в одну ночь незаметно для всех заменили целый блок в платёжном e-com-контуре.

Теги:
Хабы:
Всего голосов 11: ↑10 и ↓1+17
Комментарии2