Я создаю часть программного обеспечения, которая будет работать на Windows и будет действовать как лаунчер для игры, чтобы выполнять функцию автоматического обновления и проверки файлов на клиентском ПК.
Одна вещь, которую я не понимаю, почему мое антивирусное программное обеспечение (Avast) считает мой exe-файл опасным и не запустит его, не попросив поместить его в песочницу для безопасного использования.
Существуют ли какие-либо правила, которым должно следовать мое программное обеспечение, чтобы с ними обращались как с хорошими, или я должен платить сотни долларов за какую-то цифровую подпись и другие вещи?
Я использую C # с MS Visual Studio 2010.
VirusTotal отчет . Нет инъекций DLL, работает как удаленный загрузчик файлов, используя класс WebClient ().
Это не так, как если бы он предупреждал о вирусе, но он "предлагает", чтобы песочница его. Посмотрите на скриншот:
Ответы:
«Распространенность файлов / репутация низкая» означает, что Avast использует систему репутации, основанную на использовании программы. Только если ваша программа была установлена и «помечена как доброжелательная» достаточным количеством пользователей, она получит хорошую репутацию и это предложение исчезнет. Avast называет это облачной функцией FileRep и говорит: «Все новые неизвестные файлы потенциально опасны. Когда бы они ни стали широко распространенными, у них больше не будет причин для их автоматической загрузки». Это PITA для небольших компаний-разработчиков программного обеспечения (и Avast не единственный, кто делает это, обратите внимание, например, на Symantec Suspicious Insight " ). Одна вещь, которую предлагает Avast, заключается в том, что" вы можете ускорить процесс, если будете подписывать файлы цифровой подписью ".
Локально (на вашем компьютере) вы можете перейти в настройки эксперта autosandbox и отключить автоматическую загрузку файлов с низкой репутацией, или, возможно, использовать самозаверяющий сертификат, но это не поможет вам с вашими конечными пользователями. Для тех, кто я предлагаю вам использовать настоящий сертификат (стоит денег, но Windows тоже нравится), и обновите свою документацию этой информацией.
Может быть, есть еще предложения на форумах Avast .
источник
В дополнение к тому, что сказал Ян Догген, другие антивирусные программы также выполняют эвристическое сканирование.
Антивирусное сканирование не просто проверяет, является ли конкретный исполняемый файл точной копией известного вируса. Это можно и легко обойти. Теперь AV-инструменты проверяют определенное поведение, например, использует ли он сетевые библиотеки, выполняет ли он доступ к файлам / изменяет их, выполняет ли он шифрование / дешифрование во время выполнения и т. Д. И в зависимости от внутреннего алгоритма (эвристического), он выплевывает опасность ,
Один из способов борьбы с ложными обнаружениями различных AV - это то, что известно путем запутывания подписи. По сути, еще один метод заключается в том, что AV-инструмент будет искать, есть ли определенный поток байтов (сигнатура), включенный в исполняемый файл. Если он находит это, он знает, что это вирус. Вы можете закончить тем, что производите (исполняемый) код, который может включать одну из многих миллиардов подписей, которые использует программное обеспечение AV. Чтобы удалить эту конкретную часть, вам нужно выполнить бинарный поиск в вашем исполняемом файле, разделив его на две части: первую половину, вторую половину и снова отсканировав их и повторяя процесс, пока вы не найдете часть, содержащую подпись. Найдя его, вы переворачиваете некоторые биты и смотрите, все ли еще обнаружено. Более безопасный способ - просто изменить исходный код и посмотреть, выплевывает ли он другой поток байтов в этом месте.
Вы столкнетесь с этой проблемой на 100% с типом программного обеспечения, которое вы разрабатываете.
источник