Продолжаем серию статей о методах противодействия вирусам-шифровальщикам. В прошлый раз мы рассмотрели простую методику превентивной защиты от шифровальщиков на файловых серверах с помощью FSRM. Сегодня речь пойдет о методе восстановления данных, позволяющем безболезненно восстановить файлы, в случаях, если вирус уже прорвался и зашифровал документы на компьютере пользователя.
Самый простой способ вернуть оригинальные данные после шифрования документов трояном-шифровальщиком – восстановить данные из резервной копии. И если централизованное резервное копирование данных на серверах еще можно организовать, то бэкап данных с компьютеров пользователей обеспечить гораздо сложнее. К счастью, в Windows уже есть встроенный механизм ведения резервных копий — теневые копии, создаваемые службой Volume Shadow Copy Service (VSS).
Для обеспечения возможности восстановления старых версий файлов из VSS снапшотов, должны выполняться следующие условия:
- служба VSS должна быть включена для защищаемых томов
- на диске должно быть достаточно свободного места для хранения снимков (не менее 10-20%)
- у пользователя не должно быть прав локального администратора на своем компьютере (большинство современных шифровальщиков, запущенных с правами администратора удаляют все доступные VSS снимки), а защита User Account Control (UAC) включена
Рассмотрим механизм централизованного управления политикой создания снимков в доменной среде Active Directory для обеспечения возможности восстановления данных после атаки вируса-шифровальщика.
Включение службы VSS на компьютерах с помощью GPO
В первую очередь создадим групповую политику, которая бы включала службу Volume Shadow Copy Service (VSS) на компьютерах пользователей. Для этого в консоли GPMC.msc создадим новый объект GPO с именем VSSPolicy и назначим его на OU с компьютерами пользователей.
Перейдем в режим редактирования GPO. Затем в разделе Computer Configuration->Windows Settings->Security Settings->System Service в списке служб нужно найти службу Volume Shadow Copy и задать для нее тип запуска Automatic.
Копирование файла vshadow.exe на компьютеры пользователей с помощью GPO
Для создания и управления теневыми копиями на ПК пользователей нам понадобится утилита vshadow.exe из комплекта Windows SDK. В данном примере мы будем использовать vshadow из SDK для Windows 7 x64 (в моем случае она корректно отработала как на Windows 7 так и на Windows 10 x64). С помощью GPP скопируем файл vshadow.exe в каталог %windir%\system32 на все компьютеры.
Для этого в разделе политики Computer Configuration –> Preferences –> Windows Settings -> Files создадим новую политику, копирующую файл vshadow.exe из каталога \\domain.loc\SYSVOL\domain.loc\scripts\ (файл должен быть скопирован сюда предварительно) в каталог %windir%\system32\vshadow.exe (нужно указывать имя файла в destination) . Эту политику можно настроить, чтобы она отработала только один раз (Apply once and do not reapply).
PowerShell скрипт для создания теневых снимков всех томов
Далее нам понадобится скрипт, который бы определял список дисков в системе, включал бы для всех ведение теневых снимков и создавал бы новый VSS-снапшот. У меня получился такой скрипт:
$HDDs = GET-WMIOBJECT –query "SELECT * from win32_logicaldisk where DriveType = 3"
foreach ($HDD in $HDDs) {
$Drive = $HDD.DeviceID
$vssadminEnable ="vssadmin.exe Resize ShadowStorage /For=$Drive /On=$Drive /MaxSize=10%"
$vsscreatess = "vshadow.exe -p $Drive"
cmd /c $vssadminEnable
cmd /c $vsscreatess
}
Первая срока позволяет найти все диски в системе, а затем для каждого диска утилита vshadow активирует ведение теневых копий, которые должны занимать не более 10% места и создает новую копию.
Этот скрипт сохраним в файл vss-script.ps1 и также скопируем на компьютеры пользователей через GPO.
Задание планировщика по созданию VSS-снимков
Последнее, что осталось сделать – создать на всех ПК задание планировщика, которое регулярно бы запускало скрипт PowerShell vss-script.ps1 и создавало бы новый vss снимок дисков. Проще всего создать такое задание через GPP. Для этого в разделе Computer Configuration -> Preferences -> Scheduled Tasks создадим новое задание планировщика (New-> Scheduled Task (at least Windows 7) с именем: create vssnapshot, которое запускается от имени NT AUTHORITY\System с повышенными правами.
Допустим, задание должно запускаться каждый день в обед в 13:20 (здесь нужно самостоятельно продумать необходимую частоту создания снимков).
Запускаемый скрипт: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe
с аргументом %windir%\system32\vss-script.ps1
Совет. Нужно предусмотреть также создание еженедельного задания планировщика, удаляющего старые VSS снимки. Для этого нужно создать новое задание планировщика, запускающего скрипт аналогичный первому, но со строками:
$vssadminDeleteOld = “vshadow.exe -do=%$Drive”
cmd /c $vssadminDeleteOld
Восстановление исходных данных из теневой копии тома
В том случае, если шифровальщик все-таки попал на ПК пользователя и сделал свое черное дело, после искоренения его из системы, администратор может восстановить документы пользователя из последнего снимка.
Список всех доступных снимком можно вывести командой:
vssadmin.exe list shadows
В нашем примере последний снимок сделан 10/6/2016 1:33:35 AM и имеет Shadow Copy ID = {6bd666ac-4b42-4734-8fdd-fab64925c66c}.
Смонтируем снапшот на чтение в виде отдельного драйва системы по его ID:
vshadow -el={6bd666ac-4b42-4734-8fdd-fab64925c66c},Z:
Теперь с помощью File Explorer или любого файлового менеджера скопируйте оригинальные файлы с диска Z:, представляющего собой содержимое подключенного снимка диска.
Чтобы отмонтировать диск со снимком:
mountvol Z:\ /D
Заключение
Конечно, теневые копии VSS не являются методом борьбы с вирусами-шифровальщиками и не отменяют комплексного подхода в организации безопасности сети от вирусов (антивирусы, блокировка запуска исполняемых файлов с помощью SRP или AppLocker политик, репутационные фильтры SmartScreen и т.д.). Однако, простота и доступность механизма теневых копий томов является, на мой взгляд, большим преимуществом этого простого способа восстановления зашифрованных данных, который очень вероятно пригодится в случае проникновения заразы на компьютер пользователя.
Очень верно замечено, про настройку планировщика!
В большинстве статей по защите от шифровальщиков пишут о необходимости включения защиты на локальных дисках, не упоминая о необходимости добавления расписания.
Было бы интересно почитать о настройке SRP и подводных камнях, с которыми пришлось столкнуться в процессе настройки.
В планах на следующую статью цикла как раз было описание защиты от вирусов с помощью SRP. Подписывайтесь на обновления по email (поле в правой колонке сайта) 🙂
Статья об использовании SRP для блокировки вирусов:
https://winitpro.ru/index.php/2016/10/21/blokirovka-virusov-i-shifrovalshhikov-s-pomoshhyu-software-restriction-policies/
Здравствуйте. Спасибо за статью.
Если я правильно понял файл vshadow.exe нужен для создания снимков по расписанию,ведь по сути настройку теневых копий можно произвести ручками через «Защиту системы»?
Второй вопрос: я так понимаю для выполнения скрипта ps требуется дополнительная настройка пользовательского ПК,например по средствам GPO вы не могли бы рассказать про это?
Сейчас скрипт не выполняется через планировщик,а через PS ise выдает ошибку касательно execution policy…какую в данном случает политику выполнения скриптов выбрать,что бы это было безопасно?
Спасибо.
3 вопрос: я так понимаю через свойства диска,папки — вкладка Предыдущие версии для пользователей работать не будут,доступ в теневым копиям только через командную строку или через shadowexplorer?
Вам не кажется что это не очень удобно?
У меня сейчас на пользовательском ПК свойствах «Защита системы» защита диска с: отключена, теневые копии я так понимаю создаются руками или через шедулер по средствам запуска ps скрипта…
Теневые копии создаются ps скриптом с помощью vshadow.exe. Вы конечно, можете вручную включить защиту системы на всех компьютерах, но вменяемых средств администрирования и контроля этого процесса нет. Политиками все-же удобнее.
Как правило, пользователю незачем самому восстанавливать файлы из теневой копии. А при инциденте заражения шифровальщиком все равно роттребуется вмешательство администратора.
Посмотрите каким способом решается проблема вот здесь
http://www.outsidethebox.ms/9961/
По сути все уже есть на компьютере пользователя
%windir%\system32\rundll32.exe /d srrstr.dll,ExecuteScheduledSPPCreation
в чем смысл копирования файла vshadow?
Нам остается лишь активировать защиту на дисках,а вот как это сделать по средствам GPO я пока не разобрался….
С помощью GPO ни как только скриптом запустить через gpo или создать имена ПК в txt файле натравить на него PoSH и что б он выполнил включение на всех ПК в списке команду по включению теневой копии тома.
Спасибо за замечательную статью!
Хотелось бы ее дополнить. Дело в том, что я сталкнулся с проблемой. GPO не копирует файлы. В событиях появляется предупреждение 4098:
«Элемент предпочтения пользователь «» в объекте групповой политики «Копирование файла XX.YYY {…..}» не применен по причине ошибки с кодом ‘0x80070003 Системе не удается найти указанный путь.’ Эта ошибка была отключена. «
Долго не мог понять в чем же дело и почему не копируется? В очередной раз просматривая политику обратил внимание, что в свойствах два параметра:
Source file(s) — %шара%\vshadow.exe
Destination file — %windir%\system32\vshadow.exe
Т.е. в качестве пути назначения недостаточно указать просто директорию, нужно еще указать имя файла.
Да абсолютно верно. Тоже возникла сначала проблема с этим. После того как добавил имя файла все заработало.
Спасибо за полезное замечание! Обновил статью.
подскажите а что в понятии vshadow старые копии?
Насколько стары они должны быть для того что бы после запуска команды они были удалены?
На самом деле команда vshadow.exe -do=c:\ удаляет одну самую старую теневую копию
Я думаю, что можно не париться windows сама удалит старую копию когда закончиться место.
Подскажите а при выполнении скрипта,разве не нужно указывать ExecutionPolicy?
По умолчанию стоит Unrestricted.
Да нужно, в моем случае уже разрешен запуск posh скриптов. По умолчанию стоит Restricted — запрет любых ps1.
В общем случае в качестве аргумента powershell.exe можно добавить -ExecutionPolicy Bypass
Здравствуйте. Как Вы указывали в самом начале статьи о необходимости в разделе Computer Configuration->Windows Settings->Security Settings->System Service в списке служб нужно найти службу Volume Shadow Copy и задать для нее тип запуска Automatic. НО это только задает этой службе ТИП Запуска, но не влияет на ее запуск. Проверял это сам, т.к. встала такая же задача по применению данной политики. По крайней мере замечено начиная с Windows Vista и выше. Для того чтобы запустилась сама служба и находилась в состоянии Выполняется необходимо войти в Group Policy Preferences — Control Panel Settings — Services и при настройке Preference выбрать необходимый тип Service Action.
Спасибо.
Здравствуйте.
Cервер под управлением Windows 2012 R2
Через оснаску Управление компьютером а далее управление дисками я вижу что на разделе настроено копирование и задачи отрабатывают без ошибок и новые теневые копии создаются. Но когда захожу на диск и открываю свойства папки или файла далее вкладку Предыдущие версии то вижу следующее сообщение: Предыдущие версии не обнаружены
Разделы на которых настроено теневое копирование подключаются в Windows server 2012 с СХД через Инициатор iSCSI
Как можно устранить проблему с отображением теневых копий НО без перезагрузки сервера ?
P.S
Помогает только полная перезагрузка сервера. Но увы этот вариант мне не подходит потому что хочется понять как сделать работу копий стабильно.
Функционал «Предыдущие версии/История файлов» это не совсем то же самое, что и VSS копия (хотя по сути похожи и основаны на возможностях VSS).
В данном случае управление VSS копиями осуществляется на административном уровне, через vssadmin. Соответственно, восстановить файл можно только вручную их снапшота по описанной выше методике. Интерфейс подключения дисков в этом случае значения не имеет.
добрый день уважаемые Гуру
каким образом шифровальщик удалил теневые копии, запущенный от имени пользователя с правами User?
ранее я мог восстановить профиль пользователя из предыдущих версий
нет ни предыдущих версий, ни точек отката, и 0 байт в системе защиты используемого пространства
повторю пользователь в группе User
заранее благодарен за ответы
могу дать ссылку на вирус для тестов
Возможно, вирус мог воспользоваться одной из имеющихся уязвимостей в Windows, проверяйте стоят ли все патчи.
Либо перепроверять права, из-под кого отработал зловред, ведь он мог и с локальной сети прилететь
у меня возникает ошибка на рабочих станциях w7x64:
Имя «vss» не распознано как имя командлета, функции, файла скрипта или выполняе
мой программы. Проверьте правильность написания имени, а также наличие и правил
ьность пути, после чего повторите попытку.
строка:1 знак:4
+ vss <<<<
+ CategoryInfo : ObjectNotFound: (vss:String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
Как с этим бороться?
Не пойму что вы запускаете. В моих скриптах не было команды vss.
Ну и проверьте наличие файлов vshadow.exe и vssadmin.exe в каталогах system32/Syswow64, возможно стоит поместить файлы в оба каталога
Хорошая статья! Но одно но, как сделать так что бы vshadow.exe копировался в системы относительно ее разрядности?
Я бы добавил два правила GPP для копирования файлов, и через Item Level Targeting добавил бы проверку переменной окружения %Processor_Architecture%
Для Windows x86 она равна x86
Для Windows x64 — AMD64
Полезная статья…
По умолчанию с помощью GPO можно включить восстановление диска, но только на С и со стандартными параметрами.
А вот данное решение включает копии всех дисков + задает параметры по размеру занимаемому на диске на копий.
Дополнительно в случае использовании корпоративного глобального домена, можно вынести источник копирования фалов в другую директорию, не обязательно в SYSVOL, только необходимо дать права к данной папке для компьютеров (создать отдельную группу, например WS_DOMAINNAME в нее внести все АРМ домена)
Верно, но SYSVOL обычно проще с точки зрения больших распределенных сетей, когда клиент автоматом берет файлы с ближайшего DC, и не ходит за ними через WAN. + автоматическая репликация изменений службами ADDS
У нас сделано проще — все рабочие документы только на серверах, настроено резервное копирование и теневые копии два раза в день, и дано указание — не хранить ничего важного — рабочего на локальных дисках.
Ещё одно предложение защиты от шифровальщика — придумал как раз после успешно отбитой атаки: дополнительно резервные копии складываются на Linux-сервер, про который Windows-системы даже не подозревают — по крону монтируются нужные папки на чтение, копируются данные, отмонтируется папка.
Хотя идея грамотная, надо будет настроить на рабочих станциях на всякий случай.
было время к серверу 1с8 был подключен usb диск и включался и выключался на бэкап через утилиту devcon