Четыре волны атаки на платформу для парков и зон отдыха: как похитили данные банковских карт

Четыре волны атаки на платформу для парков и зон отдыха: как похитили данные банковских карт

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

Описание

Выбор цели объясним. Несколько организаций работают на одной инфраструктуре, а личный кабинет участника принимает загружаемые файлы: заявки, фотографии, справки, документы. Слабое место - проверка загрузки. Платформа не убеждалась, что на сервер попадает именно изображение или текст, и позволяла исполнить загруженный файл как код. Для атакующего такой файл становится инструментом управления чужим сервером. Отдельная сложность в том, что клиенты платформы - небольшие муниципальные структуры. У них редко есть собственные силы для защиты и бюджет на постоянный аудит.

По данным Huntress, первый заход длился около шести часов и выглядел шумно. Злоумышленник перебирал пароли на двух страницах входа, то есть применял атаку полным перебором, пытался угадать имена скрытых файлов и каталогов, манипулировал служебными методами запросов, проверял обход фильтров в обработчике загрузки, перебирал адреса напрямую. Ни один приём не сработал. Помог самый простой путь. Атакующий зарегистрировал обычную учётную запись участника и отправил через форму загрузки файл, который на сервере превратился в веб-оболочку - скрипт, дающий удалённое управление командами.

Дальше началась разведка. Сначала атакующий выяснял, под какой учётной записью работает сервер, какие сайты и приложения на нём размещены, где лежат настройки, как устроены сетевые связи и какие диски подключены. Затем он искал учётные данные к базе данных, потому что без них до платёжных записей не добраться. Найденные логины и пароли позволили подключиться к базе напрямую и целенаправленно искать сведения о картах: номера, сроки действия, проверочные коды. Особую ценность представляли журналы платёжных операций, где эти данные хранились в открытом виде. Часть записей он сначала пытался выгрузить автоматически, но команда не сработала, и файлы пришлось читать по одному вручную. Копии своих оболочек он заранее раскладывал по каталогам, связанным с приёмом платежей.

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

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

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

Ущерб от таких инцидентов не ограничивается перевыпуском скомпрометированных карт. Платформа объединяет данные десятков организаций, поэтому одна незакрытая уязвимость в загрузке файлов оборачивается утечкой сразу для всех арендаторов. Добавляются расходы на расследование, уведомление клиентов и выполнение требований отраслевого стандарта защиты платёжных данных. Владельцам сервисов стоит заранее продумать, как они сообщат о произошедшем клиентам и банкам, если данные всё же утекут. Практические меры выглядят буднично. Обновления платформы ставят сразу после выхода исправлений. Список разрешённых типов файлов сводят к минимуму и проверяют содержимое, а не только расширение. Файлы сайта сверяют с эталонными копиями, чтобы вовремя заметить посторонние вставки. Сервер не возвращают в работу, пока не подтверждено, что лишние файлы удалены и доступы закрыты. Двухфакторная аутентификация усложняет вход даже при украденных паролях. Платёжные данные хранят обособленно и по возможности не в открытом виде. Наблюдение за поведением серверных процессов помогает заметить атаку на раннем этапе, пока она ещё шумная.

Индикаторы компрометации

Комментарии: 0