Назад к блогу

Google Ads заблокировал аккаунт терминального мультиплексора RACE за «вредоносное ПО» — и не объяснил, что именно нашёл

Google Ads заблокировал аккаунт терминального мультиплексора RACE за «вредоносное ПО» — и не объяснил, что именно нашёл

Разработчик терминального мультиплексора RACE столкнулся с блокировкой аккаунта Google Ads после того, как потратил 500 долларов на рекламную кампанию, — система сослалась на «вредоносное ПО» и «скомпрометированный сайт», не уточнив, что именно вызвало подозрения. Автор прошёл через множество безуспешных апелляций, провёл независимые проверки через Safe Browsing, VirusTotal и Search Console, которые не нашли никаких угроз, но Google так и не объяснил причин блокировки. Эта история наглядно показывает, насколько уязвимыми оказываются разработчики перед непрозрачными алгоритмами модерации и как сложно оспорить решение, когда не знаешь, в чём именно тебя обвиняют.

Автор терминального мультиплексора RACE настроил рекламную кампанию в Google Ads, потратил 500$ и получил приостановку аккаунта с формулировками Malicious software и Compromised Site. Google не сообщил, что именно признано вредоносным или скомпрометированным. Аккаунт позже восстановили, но разбор причин и попытки апелляции заняли недели и дали отрицательный результат.

Что именно произошло

Заблокирован был не отдельный рекламный креатив, а весь аккаунт Google Ads. Автор описывает это так: настроил кампанию, потратил 500$, после чего Google приостановил аккаунт. Позже он подал апелляции — несколько раз, с всё большим объёмом информации. Первую отклонили и предложили либо прислать новые сведения, либо удалить аккаунт, если таковых нет; также его направили к вариантам возмещения в ЕС. Следующие апелляции тоже отклонялись, а одна из попыток привела к блокировке на неделю. В итоге аккаунт был восстановлен.

Google не указал, что именно было вредоносным, что скомпрометировано и почему предоставленные доказательства не опровергли обвинения.

Что проверял автор

Автор провёл независимую проверку по нескольким каналам:

  • Google Safe Browsing: оба домена, race-term.com и downloads.race-term.com, сообщили «No unsafe content found».
  • Google Search Console: отчёт Security Issues открывался для каждого домена отдельно, оба сообщили «No issues detected».
  • VirusTotal: распространяемый DMG/бинарник признан чистым.
  • Подписи DMG и приложения: независимо проверены, признаны действительными и чистыми.
  • JavaScript: все исходные файлы и сгенерированные бандлы сайта проверены, вредоносного, внедрённого, обфусцированного или неожиданного кода не найдено.

Автор отдельно оговаривает, что результаты Safe Browsing и Search Console не устанавливают, что именно обнаружил Google Ads, и не показывают, используют ли обе системы одинаковые критерии. По его формулировке, это не clearance certificate from Google Ads.

Почему классификатор мог сработать

RACE — нативное приложение на Rust, терминальный мультиплексор. По дизайну он запускает и управляет терминальными процессами в фоне — это неотъемлемая часть функциональности. Автор предполагает, что такое управление подпроцессами могло напоминать поведение, иногда ассоциируемое с security-sensitive software, хотя оно не скрыто и не вредоносно.

Конфигурация RACE документирует три режима сохранения сессий: собственный PTY-хост, внешний dtach или без сохранения. Автор считает, что приостановка могла быть ложноположительным срабатыванием и связывает его именно с легитимным управлением подпроцессами, присущим терминальному мультиплексору.

Чтобы проверить эту гипотезу, он выпустил версию 1.0.39 и отправил её на повторную проверку, но результат остался неясным. Хакерский подход в итоге убрали: теперь об этом спрашивают пользователя. Автор описывает своё положение как Catch 22 и замечает, что «that road might be out forever».

Замкнутый круг апелляций

Без раскрытия сути обвинения оспаривать нечего: Google сообщил только формулировки, но не указал, какая сущность признана вредоносной. Автор получил инструкции по апелляции, но без объяснения, которое помогло бы оспорить решение. Каждая новая апелляция с ещё большим объёмом информации снова отклонялась, а одна из попыток привела к недельной блокировке.

Собранный пакет доказательств — Safe Browsing, VirusTotal, Search Console, подписи и нотаризация, анализ JavaScript — не гарантирует разблокировку. При разбирательстве с европейскими регуляторами он может послужить материалом для обращения к EU redress options или судебного иска в ЕС, но гарантированного результата такого разбирательства нет. Автор формулирует дальнейшие планы так: «I'll appeal until oblivion, …or maybe I'll try EU court case».

Что остаётся неизвестным

Google не сообщил, какая именно сущность признана вредоносной, почему доказательства не сработали и что нужно изменить для разблокировки. Проверка файла показала, что он чист, и даже сканирование Google не нашло вредоносного ПО. Единственная рассматриваемая автором причина — управление фоновыми shell-процессами, но подтвердить или опровергнуть её он не смог: версия 1.0.39 с очисткой после удаления не дала ясного ответа.

Источники

Похожее