Изначально я хотел написать несколько обзоров, таких, какие вы любите: с пруфами, скриншотами и даже записями разговоров. Про наших любимых мошенников. Материал лежал с 2019-2020 годов. Разобранный, красивый. Но так как я пенсионер и меня тянет к земле, а лето это страда, и на даче я провожу много времени, писать его, к сожалению, не оставалось сил. В те редкие свободные часы я наткнулся на другой случай. Перерабатывал эту статью кучу раз. Она изначально была лонгридом. Потом я вспомнил, что вы не любите портянки. Сокращал, переставлял, выкидывал. Вдохновение не шло. Забрасывал в долгий ящик. Возвращался. Снова забрасывал. Пока не родилась эта финальная версия: с минимумом воды, с минимумом пруфов, но оставляющая кучу непоняток и загадок.
Ваши комментарии я читаю. Всегда. Про случаи в банках, про платёжные системы, про то, что вообще творилось. Про «верни мне мой 2007» и про порезанные кеды. Вы не представляете, как это помогает. Иногда одна фраза в комментариях, и ты вспоминаешь случай, который лежал в голове пятнадцать лет. Предался ностальгии. Вспомнил один разговор. Не случай даже, а так, слухи. И начал копать. Про мошенников забросил. А вот про форекс, платёжные системы и рашен evil хакерс решил написать.
Сразу оговорюсь. Тут описана хакерская атака на одну из платёжных систем. Описание инцидента предоставили ребята из компании, которая занимается IT-безопасностью. Как они сказали: этот кейс существует просто потому, что существует. Нашли его не в 2008-м, а намного позже: то ли в 2014-м, то ли в 2018-м, когда проводили аудит одной платёжной системы, поглотившей другую. Пруфов тут особо не будет. Потому что сам случай: кот Шрёдингера. Восстановлен по обрывкам. И даже сейчас есть сомнения: это была атака или сговор руководства форекс-конторы и платёжной системы с последующим списанием на «внешнее воздействие».
И важно, небольшая просьба, если дочитает или не дочитаете док конца , в конце есть послесловия, жду ваших комментариев.
Когда бухгалтер платёжной системы открыл очередную сверку, ту самую, что происходит раз в две-четыре недели и в процессе которой процессинг сравнивает, сколько карт было выпущено, сколько продано, сколько числится на остатках, цифры не сошлись. На несколько сотен тысяч рублей.
Несколько карт номиналом в 1 000, 10 000 и 25 000 рублей, которые по данным процессинга числились как «зарезервированные» на конкретных терминалах, оказались активированными. На форекс-счетах. Чьих-то чужих форекс-счетах, зарегистрированных на паспортные данные людей, которые никогда не слышали ни о каком форексе. Деньги с этих счетов были выведены на электронные кошельки. Кошельки пусты. Аккаунты брошены.
Первая мысль была та же, что и всегда в 2008 году: технический сбой. GPRS рвался, терминалы зависали, статусы обновлялись с задержкой. Бухгалтер написал техзаписку. Через несколько дней выяснилось, что это не сбой. Ещё через неделю стало понятно, что цепочку транзакций восстановить невозможно: форекс-брокер офшор, кошельки анонимные, дроп-карты оформлены на левые данные.
А теперь как это было сделано. Пошагово.
Контекст в трёх предложениях
Конец 2008 года. Несколько форекс-дилеров подключены к одной платёжной системе. Способ приёма денег от клиентов, предоплаченные карты номиналами от 1 000 до 25 000 рублей: клиент вносит наличные в терминал, получает чек с кодом, вводит код на сайте форекса, баланс пополнен. Никакого стыка биллингов, никаких реестров, никакой интеграции в реальном времени. Карта, автономная единица ценности. Бумажка с кодом. Именно эту связку и вскрыли.
Разведка: терминал как учебник
Рынок платёжных терминалов в 2008 году был новым. По нему не было ни базы знаний, ни профессиональных форумов, ни стандартов, из которых можно было бы вывести понимание архитектуры. Единственный способ узнать, как устроена система изнутри, получить её физически.
Терминал, это обычный компьютер в корпусе с сенсорным экраном. Стоит в продуктовом магазине, на вокзале, в торговом павильоне. Не в дата-центре. Не за бронированной дверью.
К 2008 году кражи терминалов стали обыденностью. Отраслевой портал фиксировал десятки случаев. В июне 2008-го трое вынесли аппарат с первого этажа железнодорожного вокзала, никто из персонала не обратил внимания. В сентябре того же года в Перми двое зашли в магазин в полдень, вытащили вилку из розетки, на глазах у продавцов загрузили терминал в «четырнадцатую» и уехали.
Деньги из купюроприёмника воровали одни люди. Знание из накопителя использовали другие.
Атакующие получили комплект: жёсткий диск с ПО, купюроприёмник, материнскую плату. Приёмник купили легально на профильной барахолке. Диск достали через контакты на радиорынке, а-ля Горбушка. На базе полученного железа запустили эмуляцию терминала в спокойной обстановке, без риска и без спешки.
Терминал того времени, типовое устройство. Обычный ПК на Windows XP. Сенсорный монитор, валидатор купюр, термопринтер, бесперебойник. Для связи с процессингом GSM-модем, через GPRS. Подключение через VPN-сервер по протоколу PPTP. На борту локальная база данных Microsoft Access для работы в офлайн-режиме: если связь падала, терминал мог принять платёж из локального запаса карт, а потом синхронизироваться с процессингом.
Сетевая архитектура, то, что сегодня вызывает улыбку, а тогда считалось нормой. Все терминалы в одной плоской сети. Получив доступ к одному, видишь все остальные. Межтерминальный трафик не запрещён. Межсетевой экран на конечных машинах отключён штатно, «для удобства администрирования». Терминалы разворачивались из единого образа диска: операционная система, VPN-клиент, учётные данные, всё копировалось тиражом. Индивидуальная настройка под каждый терминал не производилась. Не было механизма, который привязывал бы конкретную учётную запись к конкретному физическому терминалу. Не было запрета на одновременные сессии с одной и той же учётной записью. При краже терминала учётные записи не блокировались, продолжали работать до ручного вмешательства, которое не производилось.
Локальная база данных хранила серии и номера карт в открытом виде. Аутентификация при доступе к ней через стандартный драйвер отсутствовала, любой локальный процесс мог подключиться и выполнить произвольный запрос. Логирование локальное, без централизованного сбора. Ротация и очистка не регламентированы.
Клиринг и сверка по картам, от двух недель до месяца. Разработчики считали это признаком надёжности: за месяц «связь с терминалом не может не сработать». Именно этот лаг стал фундаментом атаки.
Критический баг: страховка, которая стала дырой
Дорогие карты по задумке не подгружались локально, это должно было снижать риски. Но в логике обнаружилась ошибка, которая перечеркнула весь смысл этой предосторожности.
Что происходит штатно, когда клиент подходит к терминалу и выбирает карту форекса на 25 000 рублей:
Сначала терминал запрашивает карту у процессинга. Потом карта ложится в локальную базу со статусом «не продана». В процессинге фиксируется: «карта зарезервирована, лежит на терминале таком-то», другой терминал её не запросит. После этого инициализируется валидатор, можно вносить купюры.
Это штатная «страховка» от обрыва связи в момент оплаты. Но: если в течение 120 секунд деньги не поступали в приёмник, терминал просто возвращался в главное меню и возвращал карту в процесинг. Но существовал некое исключение, если в момент брони, теримнал отключиться пропадет свет, глюкнет комп, и терминал или приложение перезагрузиться карта останется зарезервированной за терминалом в статусе не продана, а в процесинге будет висеть как зарезервированная за терминалом N. Отменить бронь можно было только вручную, оператором, администратором, во время планового обслуживания. А плановое обслуживание, это штатная сверка. Раз в две-четыре недели.
Это означает, что карта, один раз попав в локальную базу со статусом «не продана», могла лежать там бесконечно долго, до ближайшего ручного клининга. В процессинге всё это время она числилась как «зарезервирована за терминалом N». Никто не проверял, сколько таких «зависших» резервирований накопилось. Их списывали на технические сбои, обрывы GPRS, зависания терминалов.
В процессинге при этом не велось логирование промежуточных статусов. Не существовало записи «карта А зарезервирована на терминале Б в 14:35, отозвана в 14:37». Был только итог: «на начало периода было N карт, на конец периода M карт». Разница списывалась на технические сбои.
Подготовка инфраструктуры анонимности: неделя тишины
Прежде чем трогать терминалы, атакующие развернули многоуровневую сеть для сокрытия источника соединений.
Были арендованы виртуальные серверы у российских хостинг-провайдеров. В 2008 году хостеры не требовали полноценной идентификации, достаточно было электронного адреса и оплаты через анонимный кошелёк. Российские серверы давали два преимущества: во-первых, трафик выглядел внутренним, что снижало вероятность попадания аккаунтов в группы риска форекс-брокеров. Во-вторых, физически инфраструктура находилась в той же юрисдикции, что и терминалы, без трансграничных хвостов.
Поверх серверов был поднят транзитный VPN-сервер по протоколу PPTP, тому самому, который использовала платёжная система. Выбор неслучаен: PPTP поддерживался Windows XP из коробки, не требовал установки дополнительного ПО и не выделялся в трафике.
Для выхода в сеть использовались GSM-модемы, несколько штук, из расчёта один модем на две-три виртуальные машины. Каждый модем давал новый IP-адрес при каждом сеансе связи. Привязка к физическому адресу нулевая. SIM-карты покупались без паспорта, в 2008 году это не составляло труда.
Цепочка получалась такой: виртуальная машина, GSM-модем, российский сервер, транзитный VPN, цель. При компрометации одного узла цепочка рвалась, следующий уровень оставался невидимым.
Подготовка форекс-аккаунтов: три недели чужой жизни
Пока строилась техническая инфраструктура, параллельно готовились каналы вывода. Это заняло две-три недели и было самой нудной, самой важной частью операции.
Шаг первый: паспортные данные. На теневых форумах были куплены комплекты: скан-копии паспортов, фотографии удостоверений, иногда с ИНН. Стоимость одного комплекта от пятисот до трёх тысяч рублей в ценах 2008 года. Куплено было десять-пятнадцать комплектов. Зачем так много, станет понятно ниже.
Шаг второй: регистрация аккаунтов. На каждый комплект паспортных данных были зарегистрированы аккаунты у разных форекс-брокеров. Не у одного, у нескольких. Чтобы не создавать единую точку отказа. Трафик шёл через VPN-цепочку с российскими IP-адресами. Итого не менее десяти аккаунтов.
Шаг третий: транзитные кошельки. Для каждого аккаунта создавались электронные кошельки в нескольких системах: WebMoney, QIWI, Яндекс.Деньги, MoneyMail. Каждый кошелёк привязывался к отдельной левой SIM-карте. Итого двадцать-тридцать кошельков.
Шаг четвёртый: первичное пополнение. Через обменники электронных валют, без идентификации, в 2008 году это было нормой, на каждый форекс-аккаунт заводились небольшие суммы: от пятисот до трёх тысяч рублей. Не подозрительно. Не вызывает фрод-фильтры.
Шаг пятый: торговля ботами. Для имитации активности использовались автоматические торговые скрипты на встроенном языке терминальной платформы. Боты совершали минимальные сделки, объёмом в сотые доли лота, с трейлинг-стопом, без резких движений. Ежедневно, на протяжении двух-трёх недель. Аккаунты выглядели живыми.
Шаг шестой: мелкие выводы. Раз в неделю-две с каждого форекс-аккаунта выводились микросуммы, от ста до пятисот рублей, обратно на транзитные кошельки. Это создавало историю: аккаунт не только принимает деньги, но и выводит. Брокер видит: пополнения, торговля, выводы. Аккаунт надёжный.
Шаг седьмой: дроп-карты. Через посредников были приобретены банковские карты на подставных лиц. Пять-десять штук. Привязаны к отдельным кошелькам для финальной обналички.
Шаг восьмой: проверка. В течение двух недель вся конструкция работала вхолостую. Ни один из десяти аккаунтов не был заблокирован. Ни один кошелёк не вызвал подозрений у антифрода. Инфраструктура готова.
Технический взлом: три-пять дней
Когда инфраструктура была готова и проверена, атакующие перешли к технической части.
Сначала сканирование VPN-подсети платёжной системы. Через обычный сканер портов, nmap, XSpider, подобные им инструменты, доступные любому сетевому администратору, был проведён опрос адресов на предмет открытых портов удалённого доступа. Результат: от десяти до пятнадцати терминалов с открытыми сетевыми службами. Отсутствие сегментации подтверждено.
Потом эксплуатация известной уязвимости Windows XP в протоколе удалённого вызова процедур. Уязвимость позволяла получить полный контроль над машиной без аутентификации, удалённую командную строку с правами администратора. Сетевой экран был отключён штатно. Эксплуатация прошла без препятствий.
Примечание: наиболее известная уязвимость этого типа была публично раскрыта в октябре 2008 года. Если атака началась раньше, могли использоваться более ранние варианты. В ретроспективном анализе конкретный идентификатор не всегда устанавливается, фиксируется сам факт эксплуатации.
На полученном доступе были разработаны два специализированных эксплойта. Оба использовали штатные механизмы терминала, стандартный драйвер доступа к локальной базе данных, легитимный канал связи с процессингом. Ни один из них не модифицировал системные файлы и не оставлял следов в системных журналах.
Эксплойт первый: разведка и отбор целей. Через удалённую командную строку эксплойт подключался к локальной базе данных терминала и делал выборку всех карт форекс-контрагента за последние три месяца: серии, номера, номиналы, статусы, время резервирования. Дополнительно собиралась информация о самом терминале: идентификатор, адрес установки, город, время последнего выхода на связь. Результаты сохранялись в текстовый файл с именем, содержащим номер терминала и дату, и передавались на управляющий сервер.
Управляющий сервер имел собственную цепочку анонимизации, отдельный VPN-канал и GPRS или CDMA-модем, не связанный с основной инфраструктурой подготовки аккаунтов. Эксплойт работал на протяжении нескольких дней, максимально снижая свою активность и заметность в сети, размывая запросы во времени.
Эксплойт был запущен на всех терминалах, до которых удалось дотянуться через VPN-подсеть. Запросы размывались во времени, по несколько обращений в сутки на каждый терминал, чтобы не создавать аномального трафика и не привлечь внимание администраторов.
На основе собранных данных, история продаж за три месяца, частота покупок карт форекса, номиналы, время суток, пропускная способность, были отобраны около десяти терминалов. Критерий отбора простой: те устройства, где карты форекса покупали регулярно, где номиналы совпадали с целевыми и где поток клиентов был достаточно плотным, чтобы пара лишних «зависших» резервирований не выбивалась из общей статистики.
Эксплойт второй: имитация покупки карты. Этот инструмент был сложнее. Он воспроизводил штатный процесс покупки карты, но в обход пользовательского интерфейса терминала.
Механика была следующей. Эксплойт дёргал легитимную функцию терминала, ту самую, которую вызвал бы штатный интерфейс при выборе карты клиентом. Формировался запрос к процессингу на резервирование карты заданного номинала. Процессинг возвращал серию и номер. Карта записывалась в локальную базу терминала со статусом «не продана».
В этот момент эксплойт принудительно завершал процесс пользовательского интерфейса, через штатную системную функцию управления задачами, как это сделал бы пользователь, закрыв зависшее окно. Через три-пять секунд служба-наблюдатель автоматически перезапускала интерфейс. Но при перезапуске терминал инициализировался заново, «забывал» про незавершённый платёж и про то, что ему нужно было продать карту. VPN-соединение сохранялось. База данных сохранялась. А карта оставалась в локальной базе со статусом «не продана», потому что механизм автоматического отзыва, привязанный к сессии интерфейса, не успел сработать.
После этого эксплойт вычитывал данные карты из локальной базы, сохранял в файл и отправлял на управляющий сервер.
Ключевой момент: автоматического отзыва карты не существовало ни в штатном режиме, ни при сбое. В нормальной ситуации клиент уходил, не внеся денег. Разница была только в том, что в штатном режиме никто не вычитывал данные карты из базы и не отправлял их на внешний сервер. Эксплойт делал то же самое, что происходило при обычном зависании терминала, убивал интерфейс, дожидался перезапуска, но добавлял один шаг: вычитывал данные карты и передавал их на управляющий сервер.
После этого карта продолжала лежать в локальной базе со статусом «не продана». В процессинге она числилась как «зарезервирована за терминалом N». И будет числиться так до следующей штатной сверки, то есть ещё две-четыре недели. Никто не обратит внимания: «зависшие» карты нормальное явление для GPRS-терминалов. Их списывают на сбои связи.
Автоматизация запуска эксплойтов выполнялась через специализированный фреймворк для тестирования на проникновение: ресурсный скрипт загружал эксплойт на целевую машину, выполнял его и передавал результат обратно на управляющий сервер.
Массовая подгрузка: два дня
Эксплойт номер два был запущен на около десяти отобранных терминалах. Номиналы 1 000, 10 000 и 25 000 рублей. Запуск растянули на три дня, по несколько терминалов в сутки, в разное время, чтобы не создавать одновременного всплеска резервирований в процессинге.
Результат: карты на общую сумму около 700 000 рублей.
Ввод на форекс и вывод: две недели
Дни 1-4: активация. Карты вводились в личных кабинетах подготовленных форекс-аккаунтов: серия, номер, номинал. Средства зачислялись на торговые счета. Активации проводились не одновременно, а в разные дни и в разное время суток, вечером, днём, в зависимости от предыдущей активности конкретного аккаунта. Если аккаунт три недели торговал по вечерам, карту активировали вечером. Если по утрам, утром. Цель: не создать паттерн «десять аккаунтов активировали карты в один час», который мог бы заинтересовать антифрод.
Дни 1-6: имитация торговли. Боты совершали сделки с минимальным риском. Объём одной сделки не более десяти процентов от депозита. Цель создать видимость живой торговой активности, чтобы при проверке аккаунт выглядел как аккаунт реального трейдера, а не как одноразовый шлюз.
Дни 7-12: вывод на транзитные кошельки. С форекс-аккаунтов средства выводились на транзитные электронные кошельки. До 100 000 рублей на один аккаунт без верификации личности. Выводы распределялись по разным дням, чтобы не превышать суточные лимиты.
Дни 7-13: каскадный перевод. С транзитных кошельков средства переводились на дроп-кошельки, привязанные к банковским картам на подставных лиц. Переводы шли через два-три промежуточных кошелька в разных платёжных системах, чтобы разорвать прямую связь между форекс-аккаунтом и финальной точкой вывода.
Триггер массового перевода: как только было введено 80 процентов карт, начинался каскадный сброс на дроп-кошельки. Не раньше, чтобы не вызвать подозрений. Не позже, чтобы не дать системе времени на реакцию.
Дни 12-14: обналичивание. Средства снимались через дроп-карты. Комиссия обналичивающей группе 20 процентов.
Валовый улов составил около 700 000 рублей. Комиссия обналичивающей группе забрала 20 процентов, около 140 000. Паспортные данные, SIM-карты, дроп-карты обошлись примерно в 5 процентов, около 35 000. Серверы, VPN, модемы, обменники ещё 5 процентов, около 35 000. Оборудование, терминал, софт, инструменты ещё 5 процентов, около 35 000. Чистая прибыль составила 455 000 рублей, или 65 процентов от валовой суммы.
Инфраструктура анонимности заняла одну неделю. Подготовка форекс-аккаунтов шла параллельно и заняла две-три недели, кумулятивно три-четыре недели. Технический взлом терминалов три-пять дней, кумулятивно около четырёх недель. Массовая подгрузка карт два дня, кумулятивно около четырёх с половиной недель. Ввод на форекс четыре дня, кумулятивно около пяти недель. Торговля и вывод шесть дней, кумулятивно около шести недель. Обналичивание два-три дня, итого около шести с половиной недель.
Шесть-семь недель от начала подготовки до последних наличных. Ноль задержанных. Ноль публикаций в СМИ. Дело в архиве.
Часть вторая. Почему это стало возможным
Атака сработала не потому, что кто-то гениально взломал шифрование. Она сработала потому, что одновременно сошлись три вакуума: технический, правовой и процессный. Ни один из них по отдельности не был достаточен. Вместе они образовали коридор, по которому можно было пройти бесследно.
Всё, что описано выше, плоская сеть, отключённый файрвол, база данных без шифрования и аутентификации, GPRS, VPN без сегментации, не было чьей-то халатностью в конкретном случае. Это была норма рынка в 2008 году. Никаких требований к архитектуре, шифрованию, логированию, инцидент-менеджменту не существовало. Стандарты IT-безопасности для платёжных агентов не регламентировались. Хранить логи или нет, дело владельца. Требований к хранению ноль.
Терминал стоял в магазине. Физический доступ нулевой барьер. Сетевой доступ через одну уязвимость Windows XP один шаг до всей сети.
Правовой вакуум: три института без закона
Форекс. До 2015 года форекс-дилерам не требовалась лицензия ЦБ РФ. Вообще. Компании регистрировались как ООО с кодом ОКВЭД «Консультирование по вопросам коммерческой деятельности» или уходили в офшоры, Кипр, Белиз, Сент-Винсент и Гренадины. Банк России их не видел, не контролировал, не проверял. Сделки клиентов не выводились на реальный рынок, это была B-Book модель, тотализатор. На крупнейшем трейдерском форуме ещё в 2007-2008 годах открыто писали: дилинговый центр, это компания, которая предоставляет поток условных котировок и принимает ставки на их изменение, и по принципу работы схожа с букмекерской конторой. Клиенты об этом не знали.
Электронные кошельки. До 2011 года электронные деньги в России юридически не существовали. Идентификация на усмотрение системы. Большинство систем при операциях до 100 000 рублей не требовали ни имени, ни паспорта.
Платёжные терминалы. До 3 июня 2009 года регулирования не существовало. 130 тысяч терминалов, 649 млрд рублей оборота, и ни одного требования к идентификации клиента, отчётности перед ЦБ, стандартам безопасности.
В 2007 году ЦБ попытался закрыть дыру: подготовил указания, фактически запрещавшие агентские схемы. Не вступили в силу. Заморожены после совещания Минфина, ЦБ и МВД. Специальный закон появился только через два года. Пока шли согласования, рынок работал как работал.
Процессный вакуум: клиринг как окно неопределённости
Клиринг по предоплаченным картам от двух недель до месяца. В этом окне карты, которые никогда не были оплачены, числились в системе как «зарезервированные». Процессинг не видел разницы между «клиент внёс деньги» и «карта зависла в локальной базе». Сверка перезаписывала промежуточные состояния. Логи движения карт вели только итоговые статусы, а не историю переходов.
Форекс-брокер не требовал KYC при вводе до 100 000 рублей. Вывод на электронный кошелёк без верификации. Цепочка форекс, кошелёк, дроп, наличные не оставляла следа, который можно было бы предъявить следователю.
Четыре доклада, которые никто не читал по-русски
К 2007 году в открытом доступе лежали четыре официальных документа: Минфин США, Минюст США, FATF, ФРБ Филадельфии. Все с одним выводом: предоплаченные карты без идентификации и с длинным клиринговым лагом готовый канал отмывания. ФРБ Филадельфии прямо описал трёхступенчатую схему: размещение, расслоение, интеграция. Особо подчёркивался риск временного разрыва между транзакцией и клирингом.
В России эти доклады никто не читал. Российский рынок строил именно ту конструкцию, которую описывали аналитики. За год до того, как её использовали.
Часть третья. Почему не заметили, не возбудили дело и почему это кот Шрёдингера
Сначала решили, что это сбой
В 2008 году «ошибки процессинга» были нормой. GPRS рвался. Локальная база синхронизировалась с задержками. Статусы карт обновлялись не мгновенно. Была негласная «погрешность», процент нестыковок, который закрывался технической запиской.
Когда бухгалтер увидел расхождение на несколько сотен тысяч, первая гипотеза: технический сбой. Карты зависли. Разберёмся.
Разбирались несколько дней. Потом несколько недель. Потом выяснилось: карты не зависли. Они активированы на форекс-счетах. Деньги выведены. Кошельки брошены.
Правовой тупик: что украли, если непонятно, что это было
Когда платёжная система наконец пришла в полицию, следствие столкнулось с проблемой, которая не решалась ни одним существующим инструментом правоохранителей. И проблема была не в том, что злоумышленники были хитрыми. Проблема была в том, что сам предмет хищения не существовал в юридическом смысле.
Начнём с того, что вообще было «украдено». Предоплаченные карты. Но кто их выпустил? Форекс-клуб. А что такое форекс-клуб в 2008 году? Это не биржа, не брокер, не финансовая организация. Это ООО с кодом ОКВЭД «Консультирование по вопросам коммерческой деятельности». Или офшорная регистрация на Сент-Винсенте и Гренадинах. Договор с клиентом на «информационно-консультационные услуги». Не на торговлю. Не на исполнение сделок. На консультации.
Сам форекс-клуб работал по модели B-Book, или Dealing Desk: сделки клиентов не выводились на реальный межбанковский рынок, а исполнялись внутри системы брокера. Клиент торговал не против рынка, против брокера. Котировки генерировались внутри той же системы. На крупнейшем трейдерском форуме это описывали прямо: дилинговый центр играет против клиента, как букмекер или казино.
То есть организация, которая не имела лицензии ЦБ, не являлась участником биржевой торговли и работала по договору на консалтинг, выпустила некий «платёжный инструмент», предоплаченную карту с номиналом. Платёжная ценность этого инструмента не была подкреплена ничем: ни банковской лицензией, ни резервированием средств, ни договором с платёжной системой в традиционном смысле. Это была запись в базе данных форекс-клуба, который сам по себе был правовой фикцией.
Далее этот сомнительный «платёжный инструмент» был передан платёжной системе, которая загрузила его в процессинг и начала продавать через терминалы. Но по факту: карты не были проданы. Деньги не были внесены в купюроприёмник. Акт купли-продажи не состоялся. Перехода права собственности не было.
И вот тут следствие упиралось в стену. Не понятно, что похитили. Карту? Но карта это запись в базе данных организации, которая не имела права выпускать платёжные инструменты. Не понятно, кого похитили у. У платёжной системы? Она перечислила деньги по итогам сверки, штатная операция. У форекс-брокера? Он принял карты к активации по своему регламенту, и по его договору он оказывал «консультационные услуги», а не продавал финансовый инструмент. У конкретного клиента? Его не было, деньги не были внесены. И главное, не понятно, как. Не было зафиксированного момента несанкционированного доступа. Не было записи о том, что кто-то чужой подключился к системе. Не было записи о том, что конкретная карта была получена незаконным путём.
Формально атакующие использовали уязвимость операционной системы для получения удалённого доступа. Это несанкционированный доступ. Но доказать это постфактум было невозможно. И вот почему.
Windows XP не логировала вызовы сетевых процедур по умолчанию. Политика аудита на терминалах была отключена, стандартная настройка 2008 года. В системных журналах не осталось ни IP-адреса, ни времени, ни команд. Администраторы физически не могли определить факт удалённого подключения.
Логи приложения терминала тоже не давали ответа. Да, была дёрнута легитимная функция запроса карты для резерва и продажи. Да, карта не была продана. Да, деньги не были внесены в купюроприёмник. Да, такая карта была потом активирована на форексе, но в другое время, с другого IP, через другой аккаунт. А ещё куча карт была продана и активирована штатно, и в этом потоке аномальных транзакций не было. Не было прямого доказательства, что конкретная карта была получена через взлом, а не через легитимный сбой.
Камер видеонаблюдения в магазинах, где стояли терминалы, в 2008 году не было, или они не писали в архив. Это могло бы подтвердить или опровергнуть, что в момент резервирования карты кто-то физически стоял у терминала. Или наоборот, что никто не стоял, и запрос был удалённым. Но этого доказательства не существовало.
Отчёт сверки уничтожал следы штатно. Операция отзыва непроданных карт была совмещена с формированием отчёта. В процессинге не велось логирование движения карт, только итоговый отчёт. Сам процесс формирования отчёта стирал промежуточные данные. Атака становилась неотличима от обычного сбоя связи или зависания терминала.
Четыре международных доклада предупреждали именно об этом: предоплаченные карты без идентификации и с длинным клиринговым лагом создают окно, в котором транзакции невозможно отследить. В России эти доклады никто не читал.
Следствие застряло. Преступление было. Ущерб был. Но предмета хищения, потерпевшего и доказательной базы не нашли.
Почему время было упущено
Хронология. Около двух недель подготовка и легитимизация аккаунтов. Около десяти дней активная фаза: подгрузка карт, активация, имитация торговли, перевод на кошельки, передача обнальщикам. Около двух недель ожидание клиринговой сверки, которая должна была выявить расхождение.
Итого около шести недель от начала подготовки до момента, когда платёжная система обнаружила проблему. К этому моменту деньги прошли через несколько слоёв. Аккаунты брошены. Кошельки пусты. Форекс-брокер офшор без обязательств по раскрытию данных российским следователям.
Дело закрыли. За отсутствием состава преступления. Не потому что преступления не было. А потому что правовые инструменты не позволяли его описать так, чтобы суд принял к рассмотрению.
Платёжная система списала убыток на «технические потери». Форекс-брокер закрыл претензию ссылкой на договор оферты. Региональные СМИ не написали ни строчки.
Была ли это атака внешнего хакера? Или инсайд, кто-то внутри, кто знал о баге и использовал его, переложив ответственность на «внешнее воздействие»? Доказательств ни для одной из версий нет. Логи не дают ответа. Дело закрыто. Фигурантов нет. Деньги не найдены.
Кейс существует просто потому, что существует. Как кот Шрёдингера: одновременно и атака, и инсайд. Пока кто-то не откроет ящик, а его уже не откроют, потому что ящик давно выкинули, мы не узнаем, что там было.
Часть четвёртая. Выводы: полигон, конвейер и разрыв в двадцать лет
Если смотреть на цифры, 700 тысяч рублей, шесть недель, маржинальность 65 процентов, результат не впечатляет. Для сравнения: в Балаково двумя годами позже, в январе 2010-го, украли терминал физически, прогнали одну купюру в тысячу рублей около тысячи раз и получили миллион. Ноль подготовки, ноль затрат.
Но если это был не результат, а процесс? Разведка архитектуры. Проверка цепочки вывода. Тест реакции системы, как долго не замечают, что говорит следствие, как работает правовая квалификация. Проверка анонимности на каждом уровне.
В этом случае 700 тысяч не выручка. Это премия за НИОКР. Весьма скромная.
Продуманность схемы: знание лимитов как оружие
Отдельного упоминания заслуживает то, как атакующие работали с лимитами. Это не импровизация. Это расчёт.
Типовой форекс-брокер в 2008 году позволял выводить до 100 000 рублей без верификации личности. WebMoney от пяти до пятнадцати тысяч на один вывод. QIWI пять тысяч. Яндекс.Деньги от пяти до десяти тысяч. Суточные лимиты. Месячные лимиты. Пороги, после которых система начинала задавать вопросы.
Чтобы вывести 700 000 рублей, нужно было распределить поток минимум по семи форекс-аккаунтам и по пятнадцати-тридцати кошелькам. Каждый в отдельности не нарушал лимитов. Все вместе вывели всё. Это означает, что до начала операции атакующие детально изучили тарифы, лимиты и пороги верификации каждого брокера и каждой платёжной системы. Не приблизительно. Точно. С запасом.
Десять аккаунтов вместо семи. Тридцать кошельков вместо пятнадцати. Две недели торговли ботами для создания истории. Это не паранойя. Это расчёт на конкретные числа, которые нужно было уложить в конкретные пороги. Человек, который знает лимиты наизусть, не гуглит их в процессе. Он их изучил заранее. Системно. Как инженер изучает спецификацию.
Это не парень в капюшоне. Человек или команда, которая это проделала, одновременно понимала и интеграцию финансовых систем, и IT-архитектуру терминалов, и правовые пробелы трёх юрисдикций, и психологию следственных органов, и механику форекс-вывода. Не набор узких специалистов. Люди, которые видят систему целиком.
Они строили не атаку. Они строили конвейер: отдельно прогрев аккаунтов, отдельно подготовка инфраструктуры, отдельно внешний подрядчик по обналичке, автоматизация через торговых ботов. Разделение труда. Управление рисками. Сумма, подобранная так, чтобы не вызывать лишнего внимания. Это операционная модель.
2008. Один регион. Одна платёжная система. 700 тысяч. Шесть недель. Ноль задержанных.
2016. Атаки группы Cobalt на банки в России, Европе и США. Суммарный ущерб по российским банкам свыше 1,16 млрд рублей за один год. Целевые фишинговые кампании, кастомные импланты, манипуляции со SWIFT, банкоматы с прошитым вредоносным ПО. Рост масштаба в 1500-2000 раз.
Между 2008 и 2016 восемь лет. Между 2016 и 2026 ещё восемь. Та же логика накопления компетенций. Те же люди или их преемники, только с двадцатилетним опытом. Криптомиксеры, атаки через цепочки поставок, дипфейки для социальной инженерии, децентрализованные биржи как канал вывода, для них это пройденный материал. Освоено несколько циклов назад. Они двигаются дальше.
Публичная повестка догоняет реальность с тем же успехом, с каким ФЗ-103 в 2009 году закрывал дыры 2008-го.
Ну вот, собственно, и всё. Если вы дочитали до этого места – спасибо. Правда.
Первая версия этого текста – та самая портянка, лонгрид, который я мучил все лето– всё-таки сохранилась . Кому интересно, как это выглядело до того, как я начал резать и переставлять: Могу опубликовать отдельно, если пропустить пикабу.
Теперь другое. В начале лета я решил обуликовать архивы про мошенников – с пруфами, с записями разговоров, с тем, как схемы работают изнутри и как мошенники разводят мошенников. Там ещё был материал про то, как одна «консультант» мне полтора часа рассказывала, как устроена кухня изнутри. Если вам это было интересно – скажите в комментариях. Попробую накидать. У меня осталось вполне художественное вступление от той встречи. Моя старческая память и ностальгия по былым годам добавили красок и художественности – вдруг вам будет любопытно. Не аналитика. Скорее байка у костра. Но с фактурой.
И последнее. По этой статье.
Материал мне передали знакомые. Вернее, знакомые моего сына. Обезличенный, как они сказали, «учебный кейс» – числится у них в компании как пособие для внутренних разборов. Мы долго разговаривали. За рюмкой коньяка и жареным мясом – как водится, когда люди встречаются не по работе, а потому что хочется поговорить. И они, в том числе, накидали свои версии этого события. Кто-то считал, что это был инсайд. Кто-то – что внешний хакер. Кто-то – что и то и другое одновременно, в разных пропорциях.
И у меня родилась идея. Написать небольшой рассказ. Про этот случай. Исключительно художественный. Без правил большой и малой формы – просто захотелось сделать как в жизни, но с описанием. С запахами, с паузами, с тем, как человек сидит перед монитором в три часа ночи и смотрит, как карта за картой ложатся в базу. Как кто-то на другом конце города наливает себе чай и не знает, что через месяц его деньги уже в чужом кошельке. Как бухгалтер открывает сверку и видит цифры, которые не сходятся. И как Майор из отдела «К» закрывает папку, потому что нечего туда положить.
Пруфов в том рассказе не будет. И не может быть. Это не аналитика. Не расследование. Не отчёт.
И хэппи-энда в нём не будет. И плохого конца тоже не будет. Будет всё как в жизни – но со своими маленькими сюрпризами. Как тот самый отчёт сверки, который уничтожает следы. Не потому что злой. А потому что так устроен. Штатно. Каждый месяц.
Сводный список литературы и источников:
1. Внутренние документы, отчёты и расследования
[1] Формальный отчёт по расследованию киберинцидента. Группа анализа инцидентов, ретроспективный анализ, 2026 г. (Гриф: для внутреннего использования. Публичное распространение допустимо после обезличивания).
[2] Полный ретроспективный отчёт: Комплексная атака на платежную систему (2008 год). Группа анализа инцидентов, 2026 г.
[3] Group-IB Report: «Analysis of Cobalt Attacks on Financial Institutions». Interfax, Vedomosti, RBC: оценки ущерба от атак Cobalt на банки РФ: 1,1-1,2 млрд руб. (2016). MITRE ATT&CK: Cobalt Group (G0080).
2. Платёжные терминалы и регулирование российского рынка, 2006-2011
[4] Банк России. Указание № 1842-У от 20 июня 2007 г. «О порядке осуществления банковских операций по переводу денежных средств по поручению физических лиц без открытия им банковских счетов кредитными организациями с участием коммерческих организаций, не являющихся кредитными организациями».
[5] Банк России. Нормативные акты Банка России за 2007 год.
[6] Коммерсантъ. «Платежным терминалам объявили амнистию». 16 ноября 2007 г.
[7] Коммерсантъ. «ЦБ против машин». 2007 г.
[8] Коммерсантъ. «Леонид Рейман вступился за половину рынка платежей». 2 ноября 2007 г.
[9] Коммерсантъ. «Восстание машин». 6 декабря 2007 г.
[10] Национальный банковский журнал. «Серые пирамиды платежного рынка». 2008 г. Карточка публикации в библиотеке Банка России.
[11] Ассоциация российских банков. Письмо от 7 мая 2007 г. № А-02/5-236.
[12] Банк России. Письмо от 20 февраля 2007 г. № 12-1-5/391. Вопросы идентификации клиентов при проведении операций через автоматизированные комплексы.
[13] Федеральный закон от 7 августа 2001 г. № 115-ФЗ «О противодействии легализации (отмыванию) доходов, полученных преступным путём, и финансированию терроризма». Для анализа использовалась редакция, действовавшая в рассматриваемый период.
[14] FATF / EAG / MONEYVAL. Mutual Evaluation of the Russian Federation. 20 June 2008.
[15] Федеральный закон от 3 июня 2009 г. № 103-ФЗ «О деятельности по приёму платежей физических лиц, осуществляемой платёжными агентами».
[16] Федеральный закон № 103-ФЗ, статья 9 «Вступление в силу настоящего Федерального закона». Основная часть закона вступила в силу 1 января 2010 г.; отдельные положения вступили в силу 1 апреля 2010 г.
[17] Коммерсантъ. «Хитрый прием». 22 июля 2009 г. Материал о рынке платёжных терминалов, агентских схемах, регулировании, доказательстве спорных платежей и использовании видеонаблюдения.
[18] РИА Новости. «ЦБ РФ не планирует регулировать платежные системы». 19 ноября 2009 г.
[19] Федеральный закон от 27 июня 2011 г. № 161-ФЗ «О национальной платёжной системе».
3. Масштаб рынка платёжных терминалов
[20] OSP / данные НАУЭТ. Итоги рынка моментальных платежей за 2008 год. Оборот: 536 млрд руб.; рост рынка: около 36%.
[21] Коммерсантъ. «Рынок платежей вырос на 36%». 20 февраля 2009 г.
[22] Lenta.ru. Данные НАУЭТ о рынке моментальных платежей за 2008 год: около 350 тыс. точек, 5,2 млрд платежей, оборот 536 млрд руб. 10 марта 2009 г.
4. Prepaid / stored-value инструменты и международные AML-риски
[23] U.S. Department of the Treasury. U.S. Money Laundering Threat Assessment. January 2006. Межведомственная оценка угроз отмывания денег в США.
[24] U.S. Department of Justice, National Drug Intelligence Center. Prepaid Stored Value Cards: A Potential Alternative to Traditional Money Laundering Methods. 31 October 2006.
[25] Federal Reserve Bank of Philadelphia. Prepaid Cards: Vulnerable to Money Laundering? February 2007.
[26] FATF. Money Laundering Using New Payment Methods / New Payment Methods. Материалы FATF по рискам новых способов платежей и stored-value инструментов.
[27] U.S. Department of Justice, NDIC. National Drug Threat Assessment 2008: Illicit Finance. В том числе использование prepaid cards для перемещения и легализации средств.
[28] U.S. Department of Justice, NDIC. National Drug Threat Assessment 2009: Illicit Finance. Новые платёжные технологии, prepaid cards и digital currencies.
5. Кражи и злоупотребления платёжными терминалами
[29] УралИнформБюро. «На железнодорожном вокзале Екатеринбурга похищен кэш-приемник». Июнь 2008 г.
[30] РБК. Казань: расследование серии краж платёжных терминалов. Май 2008 г. По данным прокуратуры, было похищено не менее восьми аппаратов; терминалы перепродавались заинтересованному в их приобретении предпринимателю.
[31] Lenta.ru. Москва: платёжный терминал похитили под видом сотрудников сервисной компании. 9 марта 2009 г.
[32] РИА Новости. В Волгограде похищен платёжный терминал; первоначально исчезновение аппарата проявилось как программный сбой. 13 апреля 2009 г.
[33] Век вендинга. Материал о серии краж платёжных терминалов в Москве и защищённости точек установки. 2009 г.
[34] Век вендинга. «Как могут ограбить ваш платежный терминал». Декабрь 2009 г.
[35] Век вендинга. «Защита от взлома». Материалы о способах физического воздействия на терминалы и купюроприёмники.
[36] Российская газета. Бывшие сотрудники «Евросети» обвинены в хищении более 3,5 млн руб. посредством фиктивных платежей через терминалы электронной оплаты. 26 февраля 2009 г.
[37] Lenta.ru. Балаково: похищенный платёжный терминал использовали для многократного проведения одной и той же купюры; предварительно сообщалось о перечислении около 1 млн руб. на электронные кошельки. 20 января 2010 г.
6. Российский Forex: регулирование и дискуссия 2008-2009 годов
[38] Интерфакс. «Рынок Forex регулированию не подвластен». 16 января 2009 г.
[39] Lenta.ru. Forex Club объяснил отказ от лицензии ФСФР. 16 января 2009 г.
[40] Федеральная служба по финансовым рынкам России. Письмо от 16 июля 2009 г. № 09-ВМ-02/16341. О деятельности на рынке Forex и применимости лицензий ФСФР.
[41] РБК Daily / Банки.ру. «На рынок Forex накинут законодательную петлю». 24 декабря 2009 г. Материал о планах регулирования внебиржевого Forex и юридическом статусе соответствующих отношений.
[42] Банк России. «О деятельности компаний, оказывающих услуги на внебиржевом рынке Форекс». 1 декабря 2014 г.
[43] Федеральный закон от 22 апреля 1996 г. № 39-ФЗ «О рынке ценных бумаг», статья 4.1 «Деятельность форекс-дилера».
7. Материалы профессиональной дискуссии о dealing desk и «форекс-кухнях»
(Материалы этого раздела используются только как свидетельства дискуссии внутри отрасли и не являются доказательством модели работы конкретной компании, фигурирующей в реконструируемом инциденте).
[44] MQL5 / MQL4 Forum. «Новичкам! Что такое Дилинговый Центр».
[45] Regforum. «Валютный лохотрон или правда о Форексе». 21 июля 2009 г.
8. Технические материалы и уязвимости
[46] Microsoft. Microsoft Security Bulletin MS08-067: Vulnerability in Server Service Could Allow Remote Code Execution. 23 October 2008.
[47] Rapid7. Metasploit Module: exploit/windows/smb/ms08_067_netapi.
[48] Microsoft Learn. SQLDriverConnect: Microsoft Access Driver / ODBC connection syntax.