Как стать автором
Обновить

Блокировка обновлений AV: temp-файлы (windows)

Приветствую всех. Одно из моих хобби — исследовать malware и следить за вялой технологической гонкой av и malware -вендоров.
Давно уже не секрет, что существует множество троянов, которые блокируют обновления антивирусов, чтобы остаться жить в системе подольше,
оттянув срок своего детекта антивирусом.
Я хотел бы рассказать только об одном из способов, который показался мне забавным из-за того, что не требует прав администратора, давая возможность запущенному из под Guest-аккаунта трояну заблокировать обновление баз некоторых AV.

Многие антивирусы при обновлении своих баз используют временные файлы, расположенные в директориях, которые доступны для записи всем пользователям включая Guest. В процессе обновления ошибка доступа к одному из таких файлов расценивается антивирусом как критическая
и процесс обновления завершается с ошибкой. Таким образом, трояну нужно всего лишь заблокировать временный файл, то есть открыть
с ShareAccess == 0. Я приведу три примера, хотя их, конечно, можно насчитать больше. Кроме того, некоторые антивирусы используют msiexec,
который сам по себе тоже может «упасть», не имея возможности записать временный файл.

Итак, примеры.

Avira


Во время обновления использует временный файл:
%ProgramData%\Avira\AntiVir Desktop\TEMP\UPDATE\webcat\common\int\webcat0.dat.gz

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

image

AVG Free, AVG InternetSecurity


Два продукта. Во время обновления используют временный файл:
%ProgramData%\AVG2014\SetupBackup\COREx64.msi

Если продукт AVG натыкается на ошибку, открывая этот файл на запись, обновления не выполняется,
антивирус даже предлагает обновиться, что не помогает — обновление всё равно висит как failed:

image

NOD32


«Уязвимы» оба продукта — ESET NOD32 и ESET SmartSecurity. Тут временных файлов больше.
Для NOD32 путь будет такой:
%ProgramData%\ESET\ESET NOD32 Antivirus\updfiles\temp\em0XX_YY.dat

Для SmartSecurity название директории меняется название директории в \ESET\, путь будет такой:
%ProgramData%\ESET\ESET Smart Security\updfiles\temp\em0XX_YY.dat

XX и YY — это, соответственно, значения 00..23 и 32|64.
То есть em000_32.dat, em00_64.dat, em001_32.dat и так далее.

Необходимо заблокировать все эти файлы, тогда мы видим:

image

Дополнительно


Для антивирусов, использующих msiexec в процессе обновления баз я могу предложить угадывание имени случайного файла
в %windir%\temp и его блокировки. Возможно, это реализуемо.

Какие AV этому не подвержены?


Я не проверял все, но за эти могу сказать точно: Avast и KIS. Не используют доступных всем пользователям временных файлов
в процессе обновления.

Версии рассматриваемого ПО


Avira: 14.0.1.759
AVG: AVG Free (14.0.0.4259) and AVG InternetSecurity Trial (14.0.0.4259)
ESET: Eset Smart Security 7 (7.0.302.26)
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.