Как на RuStore со спамом борются
Недавно мы разместили приложение в RuStore.
Уже на следующий день появился первый негативный отзыв. Ничего необычного: конкретная претензия, обычная рабочая ситуация, вполне похожая на реальный пользовательский опыт.
Затем появился второй отзыв — на этот раз положительный. Тоже без каких-либо признаков накрутки: обычный текст от человека, воспользовавшегося приложением.
То есть сначала всё выглядело нормально. Новое приложение, первые пользователи, разные оценки и впечатления.
А потом случилась магия RuStore.
Омерзительная десятка
Далее одновременно на странице приложения появилось десять негативных отзывов от разных аккаунтов.
Все они были написаны примерно в одном стиле, содержали одинаково общие претензии и не позволяли установить, что именно произошло с пользователем. Это были не случайные опечатки и не один человек с необычной раскладкой. Почти вся пачка была опубликована с очень похожих, практически идентичных устройств под управлением одной и той же версии Android. Но особенно интересно выглядел сам текст: внутри русских слов систематически использовались визуально похожие английские буквы.
«Нaвязчивыe увedоmлeния», «paзздpaжaet» и другие конструкции в том же духе.
Конечно, всё ещё можно предположить, что десять независимых пользователей с практически одинаковыми телефонами и одной версией Android одновременно решили оставить негативные отзывы, используя один и тот же способ смешения алфавитов.
Но выглядит это, мягко говоря, не очень убедительно.
Мы отправили жалобы через личный кабинет. Возможности пояснить причину там нет: можно только нажать кнопку и надеяться, что модератор самостоятельно сопоставит все признаки.
К счастью, после рассмотрения жалоб вся пачка исчезла.
Казалось бы, система сработала. Не идеально — публикации с настолько явным набором общих признаков сначала спокойно прошли модерацию, — но хотя бы после жалоб их удалили.
На этом история могла закончиться.
Но спамеры просто перешли к следующему инструменту.
49 — ответ на главный вопрос
Вскоре под положительными отзывами начали появляться дизлайки.
Не несколько случайных реакций. Не разное количество под разными публикациями. Каждый положительный отзыв получил ровно 49 дизлайков.
Единственный сохранившийся негативный отзыв при этом получил — угадайте сколько — ровно 49 лайков.
Картина получилась замечательная:
— положительный отзыв — 49 дизлайков;
— ещё один положительный — 49 дизлайков;
— следующий положительный — снова 49 дизлайков;
— негативный отзыв — 49 лайков.
Вероятно, 49 независимых пользователей просто одновременно прочитали все отзывы, одинаково оценили каждый из них и дружно разошлись.
Но затем появился новый положительный отзыв. Он был опубликован уже после первой волны накрутки, через сутки.
И практически сразу получил те же 49 дизлайков.
После этого объяснять происходящее естественной активностью пользователей стало совсем сложно. Это уже выглядело не как разовая акция, а как продолжающаяся автоматизированная атака: появляется новый положительный отзыв — на него приходит один и тот же набор отрицательных реакций.
Отзывы удалять умеем, реакции — не очень
Мы написали в поддержку RuStore и подробно описали последовательность событий.
К обращению приложили скриншоты. Просили рассмотреть события не по отдельности, а в совокупности, проверить связанность аккаунтов и удалить искусственные реакции.
Ответ поддержки, если передать его смысл кратко: механизма для решения такой проблемы нет. С реакциями сделать ничего не могут.
То есть оставить десяток подозрительных текстов — можно. Если владелец приложения вовремя заметит их и нажмёт на каждый, публикации, возможно, удалят.
А вот если те же аккаунты массово ставят реакции или оценки, разработчик фактически остаётся с этим один на один.
На вопрос «что нам делать, если страницу приложения прямо сейчас заваливают искусственной активностью?» внятного ответа мы не получили.
Но были ещё и оценки
Лайки и дизлайки влияют на восприятие конкретных публикаций: положительные отзывы выглядят якобы бесполезными, а негативный — поддержанным десятками пользователей.
Одновременно с этим приложение получило большое количество низких оценок без текста. По отдельности такие оценки в консоли не видны как отзывы, однако их появление заметно по резкому изменению общего рейтинга приложения.
Получается удобная схема:
— текстовые отзывы можно попытаться обжаловать;
— оценки обжаловать невозможно;
— на реакции пожаловаться невозможно;
— инструмента для защиты от скоординированной атаки у разработчика нет.
В личном кабинете разработчику доступны модель устройства, версия операционной системы, время публикации и текст отзыва.
Но ситуация, в которой разные публикации получают строго одинаковые наборы реакций, а каждый новый положительный отзыв практически сразу догоняет тот же набор дизлайков, почему-то не вызывает автоматической реакции со стороны площадки.
И это не уникальный почерк
Самое интересное: отзывы со смешением кириллических и латинских букв мы уже встречали раньше.
Причём не у себя. Аккаунты с похожим поведением массово публикуют негативные отзывы и на приложения конкурентов в той же нише.
Кто именно стоит за этой активностью, мы утверждать не можем. Но общий принцип заметен без сложной аналитики: кто-то последовательно пытается топить приложения на одной и той же площадке, используя однотипные тексты, низкие оценки и синхронные реакции.
Это видно владельцам приложений.
Это видно в системах мониторинга.
Это можно увидеть, просто открыв несколько карточек и сравнив активность.
Но сама площадка, судя по реакции поддержки, либо не умеет анализировать такие действия в совокупности, либо не считает нужным вмешиваться.
Получается странная борьба со спамом
RuStore действительно удалил первую пачку подозрительных отзывов после жалоб. Было бы несправедливо это не отметить.Проблема в другом: площадка работает только с отдельным последствием, которое разработчик уже самостоятельно обнаружил и передал модератору.
Система не остановила одновременную публикацию однотипных отзывов.
Не распознала намеренное смешение алфавитов.
Не заметила одинаковые реакции под всеми публикациями.
Не отреагировала, когда тот же набор дизлайков мгновенно появился под новым отзывом.
Не предложила способ обжаловать массовые оценки без текста.
Не смогла удалить очевидно искусственные реакции даже после обращения со скриншотами.
В итоге защита приложения выглядит так: владелец должен постоянно следить за страницей, вручную фиксировать аномалии, самостоятельно связывать эпизоды между собой, собирать доказательства и писать в поддержку.
А поддержка после этого может сообщить, что подходящего механизма всё равно нет.
Очень удобно.
Особенно для спама.
Вопрос к RuStore
Если магазин приложений позволяет пользователям влиять на рейтинг приложений и видимость отзывов, у него должны существовать инструменты для выявления массовых манипуляций.
Не только кнопка «Пожаловаться» под отдельным текстом, но и анализ поведения аккаунтов:
— одновременных публикаций;
— повторяющихся шаблонов;
— смешения алфавитов;
— массовых оценок без отзывов;
— синхронных лайков и дизлайков;
— одинаковой активности под каждой новой публикацией.
Иначе получается, что модерация проверяет содержание отдельных сообщений, но не видит атаку целиком.
Удалить десять спам-отзывов — полезно. Но если после этого те же люди могут продолжить манипуляцию оценками и реакциями, проблема не решена. Она просто стала менее заметной.
Возможно, RuStore действительно пока не располагает техническим механизмом для борьбы с такими атаками.
Но тогда честный ответ разработчикам звучит примерно так:
«Следить за рейтингом и защищаться от накрутки придётся самостоятельно».
Неплохо для магазина приложений, который хочет быть полноценной площадкой для разработчиков.
Маленькая инди-студия. Бывает.