Если бы кредитная карта была человеком, то уже вышла бы на пенсию. Обычно зарождение этой отрасли связывают с раздачей карт во Фресно в 1958 году. Карты стали настоящим чудом коммерции и превратились в неотъемлемую часть глобальной экономической инфраструктуры, но их работа всё ещё обусловлена решениями, принятыми в 1960-х и 1970-х годах. Прошло больше полувека, и некоторые из этих решений далеко не оптимальны.
В разработке это бы назвали «легаси-системой». Она важна? Определённо. Её сложно менять? Очень. Не совсем то, что бы мы создали сегодня? Безусловно.
Многие разработчики исходной архитектуры ушли на покой, очень немногие по-настоящему понимают, как она работает, ответственность за систему распределена по множеству мест, вносить изменения могут лишь единичные акторы и слишком многие другие системы в других организациях зависят от стабильности воспроизведения багов, поэтому быстрое развитие всего этого маловероятно.
Тестирование карт: масштабная атака
Каждая система начинает свою жизнь с планирования основных сценариев ее использования и поддерживаемых вариантов этих сценариев. Больше пятидесяти лет назад основным сценарием применения кредитной карты был примерно такой: «Командированный работник, находясь в другом городе, хочет заслуживающим доверия образом подтвердить ресторану, что заплатит за ужин, даже если никогда не был в нем ранее и никогда не будет снова, даже если в городе нет местного отделения его банка, даже если он и официант — совершенно разные люди и в целом они не имеют причин для взаимного доверия».
Экосистема вложила миллиарды долларов и трудозатрат со стороны и разработки, и финансов (но лишь с небольшой долей маркетинга), чтобы донести до общества, что эта очень человеческая проблема решаема небольшим пластмассовым прямоугольником. Забудьте о стоящем перед вами человеке и сосредоточьтесь на пластмассовом прямоугольнике. Если у клиента есть подходящий прямоугольник, то ужин будет оплачен.
Но сегодня сценариев использования кредитных карт намного больше. Большинство транзакций — это так называемые «транзакции без наличия карты», которые ранее были побочным видом транзакций, выполняемым по телефону или почте (бумажной!). Теперь в этой сфере доминирует Интернет. Создатели кредитных карт не смогли предвосхитить появление Интернета. И, поэтому, их инфраструктура нуждается в адаптации к возможностям и проблемам, вызванным существованием Интернета, а также страдает от общих трудностей изменения унаследованных систем.
Для примера возьмём мошенничество с кредитными картами - "кардинг".
Прежде чем воспользоваться украденной (или купленной: существует целая экосистема зла с хедхантерами и специализированными отделами) картой, мошенникам необходимо проверить, действительна ли она. Украденные карты достаточно быстро блокируются банками из-за жалоб держателей карт или выявления мошенничества самими банками. Каждый раз, когда обналичивающий (тот, кого назначили напрямую получать ценности, приобретенные благодаря мошенничеству) прокатывает карту, риск для него возрастает - ему не захочется рисковать возможностью успешного использования украденной карты. Все должно сработать сразу и без проблем.
Поэтому перед попыткой снятия средств карты тестируют. Для этого обычно находят онлайн-организацию с относительно слабым контролем мошенничества и выполняют небольшую транзакцию, которая должна выглядеть повседневной и незаметной. Мошенники выполняют тестирование тысячами или сотнями тысяч карт, пытаясь просеять список (а иногда даже случайные номера карт!) и найти пока что активные карты.
Чаще всего для тестирования карт выбирают благотворительные организации. Частично это вызвано тем, что у большинства таких организаций нет сильной защиты от мошенничества; кто будет пытаться мошеннически отнять у благотворительной организации деньги, сделав ей пожертвование?
Взносы на благотворительность выглядят для банков правдоподобно, даже если происходят совершенно внезапно. Держатель карты читал своей дочке книгу про китов, а потом решил сделать первый взнос в фонд защиты природы? Крайне логично! Это происходит гораздо чаще, чем первая покупка ПО закостенелым держателем карты.
Компании-разработчики ПО тоже подвергаются тестированию карт. Я как-то неделями защищался от банды преступников, выполнявших покупки моего ПО на $29,95 для вытягивания денег со счетов людей, о существовании которых я не подозревал. Это крайне раздражало. Как предприниматель я практически ничего не мог сделать.
В итоге я потратил десятки часов на написание кода, чтобы обхитрить код Evil inc., написанный для того, чтобы использовать меня в незаконных целях. У большинства бизнесов Интернете нет низкооплачиваемого японского «белого воротничка», фаната компьютерной безопасности с доступом к почтовому ящику техподдержки и бухгалтерским документам, готового приступить к активным действиям.
Впрочем, вернёмся к благотворительности.
Благотворительный взнос для мошенника не важен, ему просто нужно увидеть экран «Спасибо за помощь», который подтвердит, что всё прошло удачно. Спустя несколько дней или недель, когда мошенничество заметят, пожертвование заберут у благотворительной организации, а самой ей, скорее всего, придётся заплатить штраф. К тому моменту мошенник будет уже далеко, подсчитывая свою прибыль.
А теперь давайте вернёмся к тому, как отрасль справлялась с проблемой доверия: воровство — это далеко не новое для человека понятие! Если вы выдаете людям важные куски пластмассы, то воры, например, могут забрать эти прямоугольники или попробуют подделывать их; и то, и другое станет серьезной угрозой для экономической системы пластмассовых прямоугольников. Поэтому архитекторы этой системы придумали контрмеры.
Например, терминалы кредитных карт уже давно выдают кассирам непонятные коды ошибок наподобие «04: Pick Up Card» и «07: Pick Up Card, Special Condition». Компания должна обучить кассиров реагировать на них: обе эти ошибки означают, что система кредитных карт хочет от вас, чтобы вы физически изъяли карту и вернули её в банк, для этой цели напечатавший свой адрес на оборотной стороне карты.
Первая ошибка предназначается для случая простого истечения срока службы карты. Вторая сформулирована уклончиво, чтобы наблюдающие за терминалом мошенники не поняли, что банк знает о происходящем мошенничестве. Это может дать кассиру время, чтобы, например, вызвать сотрудников полиции.
Обратите внимание, что такая структура накладывает бремя выявления мошенничества на банк. В исходной модели угроз это имело смысл: у банка были связи с клиентом, у него были данные и дорогостоящая команда профессионалов. У забегаловки далеко от дома ничего этого не было. Очевидно, что и банку при таком раскладе не нужно с ней связываться.
Так может ли благотворительная организация сообщить: «Нам кажется, мы стали жертвой тестирования карт. Десять тысяч людей, ни одного из которых мы раньше не знали, воспользовались на нашем веб-сайте своими картами. В последнее время у нас не было никаких маркетинговых кампаний, которые могли бы стать тому причиной. Мы не отправляли предложения о пожертвованиях тем, кто делал взносы ранее. Наш сайт не завирусился в Twitter благодаря нашей хорошей работе. Ситуация чрезвычайно странная, и мы надеемся, что кто-то её рассмотрит». Увы, читатель, такой возможности у неё нет.
Почему наша отрасль создала такую систему? Потому что разработчики не могли представить прокатывание десяти тысяч карт за час, ведь у того, кто бы занялся этим, рука отвалилась бы от нагрузки. Поэтому подобная нехватка воображения (вполне логичная и невинная!) спустя десятки лет эхом отдаётся в настоящем.
Но это не значит, что проблема безнадежна. В последнее время компании вплотную занимаются борьбой с тестированием карт, потому что из-за пандемии оно стало использоваться невероятно активно. Почему? Вероятно, частично из-за того, что в профессиональных мошеннических операциях больше нельзя было использовать компоненты из реальной жизни, а частично из-за взрывного развития электронных продаж.
Увеличение объемов продаж увеличивает и количество случаев мошенничества при условии сохранения их базовой частоты, и обеспечивает маскировку для наглых и масштабных оппортунистических атак на инфраструктуру.
Очень важно иметь возможность определять, что конкретная организация атакована. Так как эти атаки заскриптованы, их целью часто становится отдельная организация или несколько организаций, использующих предсказуемую топологию ПО.
Работающие на кардинг инженеры похожи на любых других инженеров: среди них есть люди, склонные к написанию простых скриптов с жестко прописанными параметрами, и люди, стремящиеся писать полные обобщенные фреймворки для эксплойтов всей мировой экономики. Первая группа в итоге наносит гораздо больше ущерба, потому что вторая группа не выпускает особо много ПО, которым можно пользоваться.
В принципе, можно подождать, пока благотворительная организация заметит, что находится под атакой, и свяжется… с кем-нибудь, кто свяжется со специалистами. На практике же, с точки зрения специалистов (не тех, кто работает на благотворительную организацию, а тех, кто видит, что эта организация борется с мошенническими операциями, и встают на ее сторону), эффективнее выполнять всю эту работу за благотворительную организацию.
Для выявления организаций, пострадавших от тестирования карт, в моей компании используется сочетание алгоритмов машинного обучения, конгитивного и поведенческого исследования, также привлечение аналитиков фрода. Благодаря этому мы можем вручную или автоматически приводить в действие контрмеры практически в реальном времени.
Одна из контрмер — это добавление небольших помех. Атака имеет экономическую модель: она оправдана благодаря тому, что затраты (машинное времени на скомпрометированных машинах, которые они арендуют у других преступных предпринимателей, внимание операторов и так далее) на проверку карты стремится к нулю. Если сделать их чуть менее ненулевыми, то нарушится экономическая логика атаки.
В обычном случае лучше избавляться от небольших помех в процессах покупок! Вокруг этого принципа создана целая отрасль консультантов. Когда-то SaaS-компании B2B платили мне по $30 тысяч в неделю за то, чтобы, среди прочего, я выполнял A/B-тестирование их потоков оплаты для снижения помех на считанные проценты, например, для удаления полей форм, не имеющих особого смысла. Увеличение на 1% дохода крупной компании очень быстро оправдывает трату $30 тысяч на неделю работы консультанта.
Но если вы знаете, что кто-то в этот самый момент атакован тестерами карт, то добавление небольшого количества помех полезно. Кроме того, что это помогает обществу, это ещё и быстро прекращает атаку.
Это непосредственно означает, что организация-жертва не будет получать фантомную прибыль, которую быстро у неё изымут, а потом ещё и наложат крупные денежные штрафы. Как отрасль кредитных карт вычисляет в таком случае штрафы? При помощи ещё одного легаси-решения.
Очевидно, что подвергнуться мошенничеству один-два раза может каждый, и в таком случае штраф станет лишь незначительными тратами на ведение бизнеса, но если вы подверглись мошенничеству десять тысяч раз, то вы должны оперативно реагировать под страхом дополнительных штрафов и наказаний со стороны регулятора. Эта логика имела огромный смысл… в 1970-х. Поэтому штраф был выбран таким образом, чтобы демотивировать бизнес сомнительного морального характера от передачи в аренду преступникам его терминалов кредитных карт.
Сети кредитных карт должны были предвидеть бизнесы, которые воспользуются доверием общества, потому что эти сети работают в масштабе целой экономики, а вся экономика включает в себя некоторые бизнесы, которые будут злоупотреблять доверием общества.
Косвенные эффекты борьбы с тестированием масштабнее и они не ограничены организациями-жертвами. Атака тестирования карт — это инструмент более масштабного злоупотребления финансовой системой. Благодаря блокированию тестирования карт мы снижаем вероятность последующего мошенничества, при котором и происходит получение ценностей мошенником. Это меняет экономические выкладки, благодаря которым и существует полный цикл мошенничества.
Хакеры не взламывают, скаммеры не занимаются скаммингом, а кардеры не подделывают карты, если у обналичивателей в конечном итоге нет возможности превратить эти промежуточные средства в деньги.
Как снизить вероятность успеха борьбы с мошенничеством? Можно догадаться, что прокатывание грязных карт происходит «громко» и может привлечь внимание; именно поэтому его выполняют в благотворительных организациях, которые с меньшей вероятностью заметят это и смогут с этим что-то сделать, по сравнению, например, с крупной розничной сетью, продающей Playstation 5 целыми паллетами и имеющей высокопрофессиональный отдел борьбы с мошенничеством.
Устранение возможности проведения мошенниками низкозатратной разведки перед покупкой бесплатных для них и легко перепродаваемых товаров существенно повышает риск получение такого оборудования.
Кто-то должен будет прикоснуться к этой Playstation 5 в реальном физическом мире, а на любую руку, взявшую Playstation 5, можно с той же легкостью надеть наручники. Прокатывание в розничном магазине двенадцати карт, адрес доставки которых привязан к месту неподалеку, дает специалистам понять, что это может быть не просто невинный пользователь, желающий удивить своих детей игрой Spider Man на Рождество.
И поэтому действия, предпринимаемые компаниями, вроде моей, для прямой защиты своих клиентов (тех же благотворительных организаций) также защищают никак не связанные с ними компании, которые могут пользоваться для обработки кредитных карт совершенно другим сервисом. Именно так работает общество - все мы в одной лодке.
Принимающие карты компании в итоге отвечают за потери с кредитных карт, связанные с мошенничеством. Это соответствует законам, коммерческим соглашениям и сложившимся практикам. Но стоит понимать, что клиент, чья карта подверглась мошенничеству, даже если ему компенсируют все потери сложной цепочкой транзакций, всё равно будет ощущать себя жертвой. Он задастся вопросом, сделал ли он что-то плохое (часто это не так).
Он потратит несколько часов на общение со своим банком и, вероятно, властями, прежде чем устранит все последствия. Мешая преступникам превращать граждан в жертв, даже если в финансовом выражении это и сводится к нулевым денежным потерям, вы помогаете на самом деле всем.
Выход за пределы пластика для auth/auth
Кредитные карты изначально сочетали в себе свойства обладания, аутентификации и авторизации. Что означает «обладание», вам, вероятно, понятно. Аутентификация — это подтверждение того, что кто-то является тем, кем себя называет. Авторизация — это подтверждение того, что этот человек имеет юридическое/моральное право выполнить транзакцию, и что он в самом деле намеревается выполнить эту транзакцию. Обычно мы называем это auth/auth, потому что люди, работающие в отрасли кредитных карт, редко имеют возможность пользоваться крутыми словечками.
В течение десятков лет у отрасли имелось одно решение - не оптимальное, но достаточное, чтобы обеспечить всемирный охват и удобство. Какое же это решение? Видите этот пластмассовый прямоугольник? В первом приближении вы тот, имя кого написано на этом прямоугольнике, и вам позволено тратить все деньги, которые, по мнению указанного на прямоугольнике банка, вы можете потратить. Вы обладаете в равной степени и аутентификацией, и авторизацией. Всё очень просто.
Эта неверная модель позволила построить одну из самых важных сетей финансовой инфраструктуры в мире. Она была крайне полезной...А потом появился Интернет.
До повсеместного распространения качественных телефонных камер было чрезвычайно сложно доказать обладание пластмассовым прямоугольником через Интернет, но мы всё равно хотели дать людям возможность покупать в нём. Поэтому вместо того, чтобы полагаться на обладание, мы положились на знание.
Пользователю нужно было знать очень крошечный фрагмент информации о держателе карты и взаимосвязи с банком, чтобы показать предполагаемую аутентификацию и авторизацию. Основная часть этой информации была физически напечатана на пластмассовом прямоугольнике.
Знание легко скопировать, гораздо проще, чем пластмассовый прямоугольник (который, к сожалению, преступники с большим количеством ресурсов тоже вполне могут копировать!). Компьютеры основаны на принципе постоянного хранения знаний и копируют их очень эффективно.
Поэтому отрасль придумала правило: да, некоторые фрагменты информации можно копировать, и все знают, что это необходимо. Но один особый фрагмент информации, защитный код на оборотной стороне карты, вам не стоит запоминать. Если вы его не знаете, никто не может его скопировать.
Просить каждого программиста каждой компьютерной системы всего мира не записывать никуда число из трёх или четырёх цифр, разумеется, было бесполезно. И отрасль, на самом деле, часто терпит на этом убытки, несмотря на десятки лет применения, например, требований PCI-DSS. Однако оптимальный объем мошенничества не равен нулю.
Многие люди здесь могут вмешаться и сказать: да что же такое, вы же умные люди. Вы же можете запрашивать информацию, не напечатанную на этом чёртовом пластике?!
Конечно же, отрасль подумала об этом очевидном решении. Но оказалось, что из-за проблем с легаси это решение чрезвычайно сложно использовать в крупных масштабах, потому что эти пластмассовые прямоугольники выпускаются десятками тысяч банков и десятилетиями вручаются миллионам клиентов. И будет очень плохо, если они внезапно перестанут работать, а у банков есть огромные объёмы интересной информации о множестве клиентов, но очень мало согласованной информации о каждом клиенте.
Поэтому существовали меры безопасности наподобие Address Verification System (AVS). AVS возник вследствие нормативных требований, обязывающих банки «знать своего клиента» (know your customer, KYC), а программы KYC почти всегда требуют указания физического адреса. Адрес клиента не был указан на пластмассовом прямоугольнике и являлся секретом, известным банку и клиенту, но не мошеннику.
Почему AVS не решила проблему мошенничества с кредитными картами? На то есть множество причин. Одна из них в том, что из адресов получается плохой секрет, потому что предназначение адреса и заключается в том, чтобы сообщать его множеству людей. Мы знали это, но всё равно их использовали!
В мире, где для поиска чьего-то адреса необходимо самостоятельное расследование или помощь правоохранителей, необходимость определения каждого отдельного адреса мошенниками была хорошим ограничителем частоты мошенничества.
В мире, который все сильнее опутывается сетями, адреса многих людей можно найти одним запросом в совершенно законной и публично доступной базе данных. Многие защитники конфиденциальности громко обвиняют в этом технологическую отрасль. Довольно немногие из них вспоминают, что когда-то мы печатали достаточно объемные списки адресов и телефонов в очень большой книге, иногда на жёлтой бумаге, и затем распространяли её, бесплатно, чтобы ею могли пользоваться все горожане. Эти книги старше компьютеров, не говоря уже об Интернете.
На самом деле, иногда базы данных лучше справляются с запоминанием адресов, чем люди, о которых они хранят информацию. Любая команда разработчиков, когда-либо пытавшаяся сравнивать вводимые людьми адреса, с радостью и очень подробно расскажет вам об этом. Будьте готовы сдобрить разговор большим количеством алкоголя, потому что вам не захочется помнить эти проклятые знания на утро.
Поэтому AVS на самом деле обычно используется только для того, чтобы отклонять транзакции при несовпадении индекса. Вот одна из причин, почему многие сайты, которыми вы пользуетесь, ограничиваются только запросом индекса, так как это единственная часть, которая вносит вклад в баланс между мошенничеством и легальной коммерцией.
Поэтому отрасль всеми правдами и неправдами пытается перейти от авторизации и аутентификации при помощи того, что вы знаете, к тому, что у вас есть. И это сложнее копировать или украсть, чем пластмассовые прямоугольники.
Так называемая двухфакторная аутентификация, при которой первым фактором является известная вам информация (номер кредитной карты и подобные данные), а вторым может быть то, что у вас есть (например, известный вашей финансовой организации сотовый телефон), активно обсуждается уже почти два десятка лет. По сути, она является законодательно обязательной в Европе, где называется Strong Customer Authentication (SCA).
В остальной части мира тоже есть сотовые телефоны и банковские приложения. Почему каждый бизнес в мире не требует чего-то подобного для транзакций? Потому что при этом делается выбор. Это создаст победителей и проигравших, и состав данных групп довольно сложно предсказать.
В частности, изначально кредитные карты для бизнеса рекламировались так: они существуют, чтобы дать вам больше клиентов, чтобы они возвращались чаще и им можно было продавать больше товаров за раз. Они не только платёжный инструмент, приём кредитных карт является ещё и маркетинговым решением.
Допустимый уровень мошенничества или допустимый уровень неудобств у законопослушных клиентов для предотвращения мошенничества — это тоже частично маркетинговое решение. Некоторые страны могут прийти к выводу, что это не должно быть решением, принимаемым частным образом, и использовать политический процесс для регулирования определенных действий. Другие не идут на такие шаги.
Поэтому бизнесы в большей части мира сталкиваются с такой реальностью: многие благонамеренные клиенты не смогут воспользоваться 2FA, потому что её не поддерживает их финансовая организация, или потому что они потеряли свой токен 2FA, или потому что недавно поменяли номер сотового телефона, или потому что у их финансовой организации не хранится их точного номера. Алекс Стамос, который когда-то реализовал эту систему для Facebook, верно заметил, что в масштабе всего мира управление жизненным циклом 2FA — невероятно сложная задача.
Проблемы с 2FA особенно остры для клиентов, находящихся рядом с социально-экономической маргинальной частью общества! Мне иногда хочется, чтобы государственные регуляторы поговорили бы с иммигрантами о сложностях, с которыми они сталкиваются в банковской системе, прежде чем, например, требовать от банков работать только с клиентами, имеющими телефонный номер страны.
То есть существуют сложности, ограничивающие возможность инноваций отдельных акторов. Но это не значит, что инновации невозможны!
Например, можно предложить бизнесам «морковку», сочетающую в себе более сильную защиту auth/auth и встроенный рост продаж. Есть множество очень интересных проектов, реализующих такой подход. Например, в Apple Pay и Google Pay используется очень много разных механик, делающих транзакции гораздо проще, чем необходимость в пятисотый раз вводить числа. Это приносит бизнесу довольно много денег.
У этого есть и хорошо спланированный побочный эффект: привязка секретов к защищенному (в случае Apple) или, по крайней мере, обладающему какой-то степенью защиты аппаратному устройству, которое сложнее потерять или забыть, чем прежние «донглы» 2FA. В масштабах всей экономики это всё равно представляет проблему, но в меньшей степени.
Действия на нужном уровне
У общества есть множество различных моделей для изменения многослойных сетей с децентрализованными точками контроля. Самые очевидные модели — это государственный надзор и принятие законов.
Различные широко распределенные акторы, будь то проекты OSS, производители оборудования или компании по обработке кредитных карт, тоже могут улучшать функциональности без внесения разрушающих изменений. Иногда они даже могут сделать эти улучшения настолько привлекательными, что ложка сахара не просто подсластит горькое лекарство, но и сама по себе станет лекарством. Увлекательная и бесконечно интересная тема, к которой я обязательно вернусь.