Как мы проверяем файлы

Каждый архив, загруженный в файловый архив сайта, автоматически уходит на VirusTotal — сервис, который прогоняет файл через несколько десятков антивирусных движков сразу. Отчёт открыт: ссылка на него стоит рядом с каждой кнопкой скачивания, и в нём видно вердикт каждого движка, включая те, чьё мнение мы не засчитываем.

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

1. Почему мы не считаем детекты

Раньше файл блокировался при любом детекте: сработал хоть один движок из семидесяти — кнопка «Скачать» гасла. Правило простое, но неверное, и вот почему.

Моды, трейнеры и русификаторы — ровно тот тип файлов, на который антивирусные эвристики срабатывают чаще всего: упакованные исполняемые файлы, библиотеки, которые внедряются в чужой процесс, скриптовые загрузчики, самораспаковывающиеся установщики. Всё это по формальным признакам выглядит как то, что делает вредоносная программа, — и часть движков реагирует на признак, а не на поведение.

Насколько это шумно, видно на живых примерах с нашего сайта. Вот четыре архива, заблокированных старым правилом, и кто именно их пометил:

— мод к Leon — 1 детект из 68: MaxSecure, сигнатура Trojan.Malware.300983.susgen;

— мод к Baldi's Basics — 1 детект из 67: MaxSecure, та же самая сигнатура;

— мод к Plants vs. Zombies — 1 детект на момент блокировки, а к моменту, когда мы разбирали этот случай, детектов у файла уже не осталось вовсе: 0 из 68.

Ни один из этих файлов не вызвал возражений у Microsoft Defender, Kaspersky, ESET или Bitdefender. Правило «любой детект = блокировка» в этих случаях не защитило никого — оно просто убрало с сайта нормальные файлы.

2. Чьи вердикты мы засчитываем

Вместо подсчёта детектов мы смотрим, кто ругнулся. Право голоса есть у вендоров с собственным движком, которые регулярно проходят сертификацию в независимых лабораториях (AV-Comparatives, AV-TEST, SE Labs) и у которых там измеряется в том числе доля ложных срабатываний.

Первый эшелон. Детекта от любого из них достаточно, чтобы заблокировать файл:

  • Microsoft Defender
  • Kaspersky
  • ESET NOD32
  • Bitdefender

Второй эшелон. Каждый даёт один голос; файл блокируется, если голосов набралось два:

  • Avast / AVG
  • Sophos
  • Trend Micro
  • McAfee / Trellix
  • Dr.Web
  • Fortinet
  • Malwarebytes
  • Symantec / Norton
  • Avira / F-Secure

Клоны считаются за один голос. Это важная деталь: часть движков на VirusTotal — это один и тот же движок под чужой маркой. Движок Bitdefender, например, работает внутри GData, Emsisoft, Arcabit, MAX, VIPRE и eScan. Если считать их по отдельности, одно-единственное мнение превращается в шесть «независимых» детектов и файл блокируется голосом одного вендора. Поэтому Avast и AVG у нас — один голос, McAfee и Trellix — один голос, и так далее, а OEM-версии чужих движков права голоса не имеют вовсе.

В отчётах это видно прямым текстом. В одном из разобранных нами архивов сигнатуру Gen:Variant.Lazy.733688 — слово в слово одну и ту же — выдали шесть «разных» антивирусов: Bitdefender, ALYac, Arcabit, Emsisoft, GData и VIPRE. Это не шесть подтверждений, а одно, распечатанное шесть раз.

Вендоры, которых нет в списках выше, на решение не влияют. Их детекты остаются видны в отчёте VirusTotal — мы ничего не прячем, — но кнопку скачивания не гасят.

3. Правило целиком

Файл считается небезопасным и блокируется, если выполнено хотя бы одно условие:

— движок первого эшелона пометил его как malicious;

— или как минимум два доверенных вендора (из обоих эшелонов вместе) пометили его как malicious либо suspicious.

Во всех остальных случаях файл остаётся доступным.

Правило не «мягче» прежнего — оно точнее. Тот самый архив с повторяющейся сигнатурой набрал 15 детектов из 64, и среди них были Bitdefender, Fortinet и Malwarebytes: первый эшелон плюс два голоса второго. Он заблокирован и по новому правилу тоже, причём по любому из двух условий сразу.

Одиночный вердикт suspicious сам по себе не блокирует ничего. Это не утверждение «здесь вирус», а результат эвристики — «файл ведёт себя необычно», и на упакованных установщиках и трейнерах это самое частое, что о нормальном моде вообще можно услышать.

Microsoft Defender стоит в первом эшелоне по двум причинам сразу. У него одна из самых низких измеренных долей ложных срабатываний, и он же установлен у большинства наших посетителей: файл, который Defender считает вредоносным, всё равно не запустится на их компьютере — что бы мы сами о таком вердикте ни думали.

4. Что происходит с заблокированным файлом

Кнопка скачивания гаснет, автоустановка для этой версии становится недоступна, автор получает личное сообщение со списком доверенных вендоров, которые пометили файл, и с указанием конкретных сигнатур. Файл при этом не удаляется: автор может перезалить сборку или оспорить вердикт.

Если вы автор и уверены, что срабатывание ложное — напишите нам через обратную связь. Ложные срабатывания у крупных вендоров тоже случаются, и их принимают к разбору: у каждого из перечисленных выше есть форма отправки файла на пересмотр.

5. Чего эта проверка не гарантирует

Ни одна антивирусная проверка не даёт стопроцентной гарантии, и наша не даёт тоже. Она означает ровно то, что написано выше: на момент проверки ни один антивирус, которому мы доверяем, не счёл файл вредоносным.

Вердикты к тому же меняются со временем: базы обновляются, и детект, который был вчера, сегодня может исчезнуть — именно это произошло с модом к Plants vs. Zombies выше. Поэтому число в отчёте на VirusTotal и наш вердикт могут разойтись ещё и по дате проверки.

Отчёт VirusTotal по каждому файлу открыт — вы всегда можете посмотреть на него сами и составить собственное мнение, в том числе противоположное нашему. Мы рекомендуем держать антивирус включённым и делать резервную копию игровых файлов перед установкой: самый частый способ испортить себе игру — это не вирус, а несовместимый файл.