Вирусные сканеры блокируют и удаляют временные файлы – лучший способ с ними справиться?

StackOverflow https://stackoverflow.com/questions/214849

Вопрос

Мое приложение работает с электронными письмами, поступающими из разных источников, например.Почтовые ящики Outlook и IMAP.Прежде чем их разбирать, я записываю их во временный каталог (хранить их в памяти — не вариант).Во время анализа я могу записывать вложения во временный каталог (например, если они слишком велики для хранения в памяти или для полнотекстового извлечения).

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

  • Иногда я не могу открыть файлы, которые сам написал несколько миллисекунд назад.Они, очевидно, заблокированы антивирусными сканерами, чтобы гарантировать их чистоту.Я получаю исключение.

  • Если антивирусный сканер считает файлы опасными, он в какой-то момент удаляет их.

Чтобы справиться с таким поведением, я написал несколько методов, которые повторяют попытку в случае сбоя открытия или выполняют некоторые проверки существования файлов, но я не могу использовать их во всех частях приложения (сторонний код, например, фильтры). , так что все стало лучше, но не на 100% идеально, и из-за этого мой исходный код местами выглядит некрасиво.

Как вы справляетесь с антивирусными сканерами?

Это было полезно?

Решение

Записывайте файлы с шифрованием.Я думаю, вам не понадобится ничего слишком сложного или сложного.Также зашифруйте или искажайте имена файлов, так как это также может сработать антивирусный сканер.

Другие советы

Если изменение конфигурации антивирусного сканера не является для вас идеальным вариантом.Можете ли вы сохранить файл открытым с момента его создания до завершения процесса?Если у вас есть дескриптор файла, он не будет доступен для антивирусного сканера.

Обычно вам следует исключить файлы фильтрации почты из антивирусного сканера и использовать специальную почтовую антивирусную программу, которая находится в ряде трубок входящей почты.Обязательно подумайте о том, чтобы попросить своих пользователей отключить опцию «удалять зараженные файлы» на своем почтовом сервере, иначе они могут потерять почтовую базу данных :-/.Например, вот как вы можете настроить AV для игнорирования Exchange:http://www.sophos.com/support/knowledgebase/article/12214.htmlНо можно посмотреть на это с другой стороны: в файле есть вирус, поэтому вы, вероятно, все равно не захотите его доставлять ;-)

В предыдущем ответе говорилось, что нужно изменить разрешения так, чтобы только ваш процесс мог получить доступ к файлам.Это не сработает;любой достойный AV будет работать в ядре и в любом случае сможет получить доступ к файлам.

Вирусный сканер имеет возможность исключения папок.Просто загляните в документацию и добавьте в этот список свою временную папку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top