FlawOpen

flawopen.com/Incidents/ai-agent-retail-skimming-campaign-september-2026

● Multiple online retailers (as reported by Gambit Security) · CWE-89 (one documented chain only) · 2026-09-22 · Критический
Исследования · FlawOpen

ИИ-скимминг в интернет-магазинах: отчёт Gambit

Gambit сообщает об атаках на интернет-магазины с ИИ под руководством человека. Мы отделяем факты от непроверенных заявлений и разбираем защиту.[1]

💡 Простыми словами (ELI5)

Представьте сотрудника, который составляет инструкцию для поиска, вставляя в неё текст из поля электронной почты посетителя. Специально сформированный запрос может изменить инструкцию, раскрыть временный код доступа из карточки клиента и позволить предъявить его у двери административной зоны. Параметризованный запрос заставляет трактовать адрес только как искомое значение, а не как часть инструкции. В отчёте описан один путь от SQL injection к панели администратора; это не означает, что так произошло у каждой жертвы.[1], [5]

Ключевые понятия и термины

Агентная платформа ИИ
Программное обеспечение, которое предоставляет модели инструменты, состояние задачи и права на действия. Gambit сообщает, что оператор использовал Strix для поиска уязвимостей, Cairn для проектов эксплуатации и Hermes для координации; инструкции давал человек.
Платёжный скиммер
Несанкционированный код или содержимое, перехватывающее платёжные данные при оформлении заказа. Защита требует контролировать все пути кода, конфигурации, кэша, хранилища и развёртывания, меняющие содержимое, которое получают покупатели.
CWE-89 (SQL injection)
Недоверенный ввод меняет смысл SQL-команды. Gambit описывает один документированный проект, начавшийся с SQL injection; эта CWE не классифицирует все проникновения кампании.
Достоверность доказательств
Gambit сообщает, что сопоставила артефакты с сервера оператора, скиммеры, проверенные на сайтах, и журналы или утверждения агентов. Предварительная реконструкция неполна и может содержать неточности.
Уровень серьёзности
Оценка FlawOpen «Критический» — редакционная оценка влияния, а не балл CVSS; балл CVSS не присваивался.

Связи со стандартами

Хронология инцидента

С 2026-07

По данным Gambit, финансово мотивированная кампания началась и продолжалась на момент публикации предварительного отчёта.[1]

2026-09-10 — 2026-09-15

Gambit сообщает о 105 проектах атак и как минимум 27 компаниях, скомпрометированных в разной степени; часть заявлений нельзя было проверить независимо.[1]

2026-09-22

Gambit опубликовала реконструкцию, сообщив о более чем 600 000 ещё действительных записей карт двух пострадавших и скиммерах, проверенных на некоторых затронутых сайтах.[1]

Пошаговый сценарий атаки

Шаг 1

Человек управляет агентными инструментами

В восстановленных Gambit журналах описаны три платформы для поиска уязвимостей, выполнения задач вторжения и координации кампании. В отчёте также есть инструкции человека; не представляйте операцию независимой от оператора.[1]

Шаг 2

Один описанный путь пересекает границу аутентификации

По данным Gambit, в одном проекте SQL injection раскрыла данные одноразового кода учётной записи и позволила открыть панель администратора. Это описанная цепочка, а не универсальная последовательность и не подтверждённый анализ исходного кода.[1]

Шаг 3

Доступ распространяется на связанные системы

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

Шаг 4

Затронуты оформление заказов и данные клиентов

Gambit сообщает о скиммерах в некоторых магазинах и более чем 600 000 восстановленных действительных записей карт двух пострадавших. Также описана очистка, случайно удалившая 180 таблиц у одного продавца. Атрибутируйте эти выводы отчёту.[1]

Шаг 5

Локализация должна охватывать целостность и восстановление

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

Исходный код: Уязвимый vs Защищённый вариант

Этот обобщённый пример на Python показывает только границу CWE-89 в одной цепочке, описанной Gambit; это не код пострадавшей организации, и он не обращается к сети или файловой системе. Конкатенация позволяет вводу менять синтаксис запроса. Параметризованный запрос сохраняет структуру SQL и передаёт адрес как значение. В рабочей системе аутентификация также не должна хранить одноразовые коды в открытом виде, должна проверять права на сервере для каждого привилегированного действия и использовать учётную запись БД с минимальными правами. Параметризация исправляет эту границу запроса, но не другие пути проникновения и не уже скомпрометированный хост. Заполнитель ? соответствует стилю qmark в Python sqlite3; другие драйверы могут требовать иной синтаксис.[1], [5]

УЯЗВИМАЯ РЕАЛИЗАЦИЯ
def find_account(conn, email):
    # Это общий пример, а не код, извлечённый у пострадавшей организации.
    sql = "SELECT id FROM customers WHERE email = ' " + email + " ' "
    return conn.execute(sql).fetchone()
БЕЗОПАСНЫЙ ИСПРАВЛЕННЫЙ ВАРИАНТ
def find_account(conn, email):
    # Передавайте ввод как данные, чтобы он не мог изменить структуру SQL.
    sql = "SELECT id FROM customers WHERE email = ?"
    return conn.execute(sql, (email,)).fetchone()

Чек-лист по защите системы для инженеров

Источники