В этой статье мы разберем методику использования функционала File Server Resource Manager (FSRM) на файловом сервере Windows Server 2012 R2 для детектировании и блокировки работы вирусов-шифровальщиков (троянов-энкодеров, Ransomware или CryptoLocker). В частности, разберемся, как установить службу FSRM, настроить детектирование определенных типов файлов и, в случае детектирования таких файлов, заблокировать доступ пользователя к каталогу на файловом сервере.
- Детектирование шифровальщиков с помощью FSRM
- Настройка SMTP параметров FSRM для отправки email уведомлений
- Создание группы расширений файлов, создаваемых шифровальщиками
- Настройка File Screen Templates
- Применение шаблона File Screen к диску или папке
- Автоматическая блокировка доступа пользователя, зараженного шифровальщиком
- Тестирование защиты FSRM
Детектирование шифровальщиков с помощью FSRM
Если компонент File Server Resource Manager еще не установлен на сервере, его можно установить с помощью графической консоли Server Manager или из командной строки PowerShell:
Install-WindowsFeature FS-Resource-Manager -IncludeManagementTools
Проверим, что роль установилась:
Get-WindowsFeature -Name FS-Resource-Manager
После установки компонента сервер нужно перезагрузить.
Настройка SMTP параметров FSRM для отправки email уведомлений
Следующий этап — конфигурация SMTP параметров службы FSRM, благодаря которым администратор может настроить отправку email уведомлений на свой ящик. Для этого запустите консоль fsrm.msc, щелкните ПКМ по корню консоли File Server Resource Manager и выберите пункт Configure Options.
Укажите адрес SMTP сервера, почтовый ящик администратора и имя отправителя.
Проверить корректность настройки SMTP сервера можно, отправив тестовое письмо с помощью кнопки Send Test E-mail.
Настроить параметры SMTP службы FSRM также можно выполнить с помощью Powershell:
Set-FsrmSetting -AdminEmailAddress "FileServerAdmins@adatum.com" –smtpserver smtp.adatum.com –FromEmailAddress "FSRM@LON-FS02.adatum.com"
Создание группы расширений файлов, создаваемых шифровальщиками
Следующий шаг – создать группу файлов, в которой будут содержаться известные расширения и имена файлов, которые создают шифровальщики в процессе работы.
Этот список можно задать из консоли FSRM. Для этого разверните раздел File Screening Management -> File Groups и в меню выберите Create File Group.
Нужно указать имя группы (к примеру, Crypto-files) и внести все известные расширения в список с помощью поля Files to include.
Список известных расширений файлов, создаваемых шифровальщиками довольно большой, поэтому намного проще создать его с помощью PowerShell.
В Windows Server 2012 создать группу файлов с помощью PowerShell можно так:
New-FsrmFileGroup -Name "Crypto-files" –IncludePattern @("_Locky_recover_instructions.txt","DECRYPT_INSTRUCTIONS.TXT", "DECRYPT_INSTRUCTION.TXT", "HELP_DECRYPT.TXT", "HELP_DECRYPT.HTML", "DecryptAllFiles.txt", "enc_files.txt", "HowDecrypt.txt", "How_Decrypt.txt", "How_Decrypt.html", "HELP_RESTORE_FILES.txt", , "restore_files*.txt", "restore_files.txt", "RECOVERY_KEY.TXT", "how to decrypt aes files.lnk", "HELP_DECRYPT.PNG", "HELP_DECRYPT.lnk", "DecryptAllFiles*.txt", "Decrypt.exe", "AllFilesAreLocked*.bmp", "MESSAGE.txt","*.locky","*.ezz", "*.ecc", "*.exx", "*.7z.encrypted", "*.ctbl", "*.encrypted", "*.aaa", "*.xtbl", "*.abc", "*.JUST", "*.EnCiPhErEd", "*.cryptolocker","*.micro","*.vvv")
В Windows Server 2008 R2 придется воспользоваться утилитой filescrn.exe:
filescrn.exe filegroup add /filegroup:"Crypto-files" /members:"DECRYPT_INSTRUCTIONS.TXT|DECRYPT_INSTRUCTION.TXT| DecryptAllFiles.txt|enc_files.txt|HowDecrypt.txt|How_Decrypt.txt| How_Decrypt.html|HELP_TO_DECRYPT_YOUR_FILES.txt|HELP_RESTORE_FILES.txt| HELP_TO_SAVE_FILES.txt|restore_files*.txt| restore_files.txt|RECOVERY_KEY.TXT|HELP_DECRYPT.PNG|HELP_DECRYPT.lnk| DecryptAllFiles*.txt|Decrypt.exe|ATTENTION!!!.txt|AllFilesAreLocked*.bmp| MESSAGE.txt|*.locky|*.ezz|*.ecc|*.exx|*.7z.encrypted|*.ctbl| *.encrypted|*.aaa|*.xtbl|*.EnCiPhErEd|*.cryptolocker|*.micro|*.vvv| *.ecc|*.ezz|*.exx|*.zzz|*.xyz|*.aaa|*.abc|*.ccc|*.vvv|*.xxx| *.ttt|*.micro|*.encrypted|*.locked|*.crypto|*_crypt|*.crinf| *.r5a|*.XRNT|*.XTBL|*.crypt|*.R16M01D05|*.pzdc|*.good| *.LOL!|*.OMG!|*.RDM|*.RRK|*.encryptedRSA|*.crjoker| *.LeChiffre|*.keybtc@inbox_com|*.0x0|*.bleep|*.1999| *.vault|*.HA3|*.toxcrypt|*.magic|*.SUPERCRYPT|*.CTBL|*.CTB2|*.locky"
Совет. Список известных расширений файлов различных шифровальщиков можно составить самостоятельно, или воспользоваться готовыми периодически обновляемым списками, ведущимися энтузиастами:
https://www.bleib-virenfrei.de/ransomware/
https://fsrm.experiant.ca/api/v1/combined
Во втором случае актуальный список расширений файлов для FSRM можно грузить прямо с веб сервера с помощью Invoke-WebRequest
new-FsrmFileGroup -name "Anti-Ransomware File Groups" -IncludePattern @((Invoke-WebRequest -Uri "https://fsrm.experiant.ca/api/v1/combined").content | convertfrom-json | % {$_.filters})
Либо воспользоваться готовым файлом: crypto_extensions.txt. Данный файл можно сохранить на диск и обновить с его помощью созданную группу файлов FSRM:
$ext_list = Get-Content .\crypto_extensions.txt
Set-FsrmFileGroup -Name "Crypto-files" -IncludePattern ($ext_list)
Настройка File Screen Templates
Создадим новый шаблон File Screen Template, в котором определяются действия, которые FSRM должен выполнить при обнаружении указанных файлов. Для этого в консоли FSRM перейдите в раздел File Screen Management -> File Screen Templates. Создадим новый шаблон Create File Screen Template.
На вкладке настроек укажем имя шаблона “Block_crypto_files”, тип скрининга – Active screening (запрещается создавать указанные типы файлов) и в списке групп файлов выбрать Crypto-Files.
На вкладке E-mail Message включим отправку почтовых уведомлений, настроив текст оповещения по-своему вкусу.
На вкладке Event Log включим запись события в системный журнал. С указанием записывать только имя пользователя: [Source Io Owner]
На вкладке Command можно указать действие, которое нужно выполнить при обнаружении такого типа файла. Об этом чуть ниже.
Сохраните изменения. В списке шаблонов должен появится еще один.
Применение шаблона File Screen к диску или папке
Осталось назначить созданный шаблон к диску или сетевой папке на сервере. В консоли FSRM создадим новое правило Create File Screen.
В поле File screen path нужно указать локальный диск или путь к каталогу, для которого мы хотим включить систему защиты от шифровальщика, а в списке шаблонов выбрать созданный ранее шаблон Block_crypto_files.
Автоматическая блокировка доступа пользователя, зараженного шифровальщиком
Осталось настроить действие, которое FSRM будет выполнять при обнаружении файлов, созданных шифровальщиками. Мы воспользуемся готовым скриптом: Protect your File Server against Ransomware by using FSRM and Powershell (https://gallery.technet.microsoft.com/scriptcenter/Protect-your-File-Server-f3722fce). Что делает этот скрипт? При попытке записать «запрещенный» тип файла в сетевой каталог, FSRM запускает данный скрипт, который анализирует журнал событий и на уровне шары запрещает запись пользователю, из-под осуществлялась попытка записать запрещенный тип файла. Таким образом, мы заблокируем доступ зараженного пользователя к сетевой папке.
Скачайте указанный скрипт и распакуйте его в корень каталога C:\ на файловом сервере. В эту же папку скопируйте утилиту SubInACL (нужна для изменения разрешений на сетевой каталог). В каталоге должны оказаться следующие файлы:
- RansomwareBlockSmb.ps1
- StartRansomwareBlockSmb.cmd
- subinacl.exe
Примечание. В PS скрипте пришлось изменить строки:
$SubinaclCmd = "C:\subinacl /verbose=1 /share \\127.0.0.1\" + "$SharePart" + " /deny=" + "$BadUser"
и
if ($Rule -match "Crypto-Files")
Осталось в настройках шаблона “Block crypto files” на вкладке Command указать, что должна запуститься командная строка с аргументом StartRansomwareBlockSmb.cmd:
Run this command or script: c:\windows\system32\cmd.exe
Command arguments: /c “c:\StartRansomwareBlockSmb.cmd”
Команда должна выполняться с правами локальной системы (Local System).
Тестирование защиты FSRM
Протестируем, как работает защита FSRM от шифровальщиков. Для чего в защищаемом каталоге создадим файл с произвольным расширением, и попробуем изменить его на запрещенное .locky.
При попытке сохранить запрещенный файл FSRM запишет в журнал событие:
Event ID: 8215
Source: SRMSVC
Скрипт RansomwareBlockSmb.ps1на основании данных из события запретит текущему пользователю доступ к данному каталогу, выставив в разрешениях на шару персональный deny:
Защита работает! В корне диска в логе можно посмотреть каталог и пользователя, из-под которого пытался запустится шифровальщик.
Если нужно обеспечить еще более высокий уровень зашиты, можно перейти от черного списка файлов к белому, когда на файловом сервере можно сохранять только файлы разрешенных типов.
Итак, мы рассмотрели, как с помощью FSRM автоматически блокировать доступ к сетевым каталогам пользователям, компьютеры которых заражены вирусом-шифровальщиком. Естественно, использование FSRM в таком режиме не может дать 100% гарантию защиты файлов на серверах от этого класса вирусов, но как один из эшелонов защиты, методика вполне себе пригодна. В следующих статьях мы рассмотрим еще несколько вариантов противодействия вирусам-шифровальщикам:
- Как восстановить файлы пользователя из снимков VSS после заражения шифровальщиком
- Блокировка вирусов и шифровальщиков с помощью Software Restriction Policies
Добрый день.
Подскажите, почему если второй раз тот же пользователь на той же шаре пытается создать другой или такой же запрещенный файл, то уже не приходит уведомление и не пишется событие в Events, хотя запрет на создание отрабатывает.
Windows Server 2008R2
Приветствую!
По умолчанию FSRM не дает записывать в журнал одинаковые события чаще чем 1 раз в час, чтобы не забивать журнал. Изменить это поведение можно в настройках FSRM, на вкладке Notification Limits выставив для Event log notification (minutes) и Command notifications 0 минут
Так сказать программирование ради программирования. Помнится лет 20 назад примерно таким же подходом со спамом боролись — писали черные списки e-mail адресов, с которых спам рассылается. Как дети, ей Богу.
Согласен. Сегодня столкнулись с шифровальщиком который не добавлял и не менял расширения файлов.
Добрый день!
К вопросу о Белом списке разрешенных типов — если шифровальщик изменит структуру файла, без изменений расширения, то такой вариант защиты не сработает, стоит это учитывать, что вариант с белым списком также не 100%-я гарантия защиты от шифровальщиков.
На ПК клиентов должен помочь механизм SRP, который также можно использовать как один из барьеров для борьбы с шифровальщиками.
Да, конечно эта защита не 100%, и скорее всего «разработчики» будут в дальнейшем учитывать такой способ противодействия. Но никто не отменяет других методов защиты от шифровальщиков (антивирусы, srp политики, обучение пользователей и т.д.) и регулярных бэкапов.
Но по крайне мере этот способ с дополнениями можно будет использовать для быстрого детектирования прорвавшейся заразы, которая обошла другие методы защиты, или сигнатуры которой пока отсутствуют в базе антивируса.
Полностью с Вами согласен — защитит только комплексный подход.
Спасибо за статью!
Добрый день! Спасибо за статью сразу!
В ходе настройки возникли сложности — причиной оказалось неверное значение переменной $BadUser — она содержала в себе все строки лога, не только логин.
Я подредактировал вот так:
$badusernew = $baduser.split(» «)[1]
Таким образом, переменная $badusernew содержит только логин =)
В продолжении темы.
Восстановления файлов после атаки шифровальщика : http://winitpro.ru/index.php/2016/10/06/vosstanovlenie-fajlov-posle-zarazheniya-shifrovalshhikom-iz-snimkov-vss/
В продолжении темы.
Блокировка вирусов и шифровальщиков с помощью Software Restriction Policies
http://winitpro.ru/index.php/2016/10/21/blokirovka-virusov-i-shifrovalshhikov-s-pomoshhyu-software-restriction-policies/
Попробовал сделать по инструкции, по при загрузке библиотеки с сайта microsoft, не нахожу внутри файла RansomwareBlockSmb.ps1
Только что скачал архив RansomwareBlockSmb.zip. Внутри него два файла: RansomwareBlockSmb.ps1 и StartRansomwareBlockSmb.cmd
Всё верно, упорно качал не по той ссылке(
При настройке уведомлений выдает ошибку.
Служба SMTP настроена на этом же сервере и ретранслирует через SMTP googl.
https://yadi.sk/i/WgAVNplFxjBUJ
В журнале не очень видно, но похоже проблема с самим gmail: 5.7.1. unable to relay …. . То ли запрет отправки без авторизации, то ли недействительный email отправителя/получателя, или какая-то другая антиспам проверка.
Отправляете с авторизацией?
Я к примеру всем юзерам запретил скачивать исполняемые файлы с интернета, осталось только запретить запуск исполняемых файлов, как описано в одно из статьи на сайте.
Добрый день.
Не могу установить каталог, для создания «RansomWareBlockSmbLog.csv».
Политиками запрещено создавать файлы в корне диска.
Добрый день! Спасибо за статью!
А почему нельзя запретить все? А потом открывать то что нужно?
Спасибо огромное за статью, всё доходчиво и подробно.
Но так как я не силён в PowerShell, у меня возник вопрос связанный с созданием группы известных расширений файлов, у Вас указана замечательная вещь как подгруздка актуального списока расширений файлов для FSRM с помощью Invoke-WebRequest, но насколько я понимаю данный способ работает в Windows Server 2012 ?
У меня Windows Server 2008 R2 и в нём нет new-FsrmFileGroup, не подскажите чем его можно заменить так же как у Вас в примере?
Командлеты New-FsrmFileGroup и прочие в Windows Server 2008 не работают. Посмотрите у коллеги был вариант обновления списков:
_https://kazunposh.wordpress.com/2016/08/16/%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-file-group-fsrm-%D0%B2-windows-server-2008-r2/
Спасибо за совет, но что то у меня не вышло разобраться с этим вариантом.
Решил проблему через импорт XML файла со списком расширений файлов.
У вас в статье в создаваемой группе файлов для блокировки указан перечень файлов и расширений. Т.к. время не стоит на месте и появляются новые вирус-шифровальщики, то, наверняка, и указанный в статье перечень блокируемых файлов/расширений должен пополняться. Вы не подскажете, возможно, есть в сети публикуемый перечень новых форматов файлов, создаваемых шифровальщиками? Киньте ссылку, если не трудно.
Ссылка есть в статье: _https://fsrm.experiant.ca/api/v1/combined
Но имейте в виду, что на самоме деле FSRM не позволяет активно предовращать заражение и по сути такую технику трудно считать нормальной засчитой. По большому счету эта методика позволяет организовать своего рода мониторинг шифро-активности и быстрый способ борьбы с прорвашвейся заразой, если она меняет расширение файлов на известные.
Выполнил всё строго по инструкции. Но проблема, лог пишет, значит BATник и скрип отрабатывает, ошибок в логе нет, но вот пользователя, не блокирует. как был доступ к папке, так и остаётся.
Т.е. FSRM триггер срабатывает, но разрешения на папку не меняются?
Нужно проверить что формирут команда $SubinaclCmd. Думаю, проблем в ней.
после строки $SubinaclCmd = … добавьте команду
$SubinaclCmd | Out-File «c:\ps\out.txt»
Посмотрите, на содержимое файла c:\ps\out.txt. Попробуйте вручную выполнить эту команду и посмотреть, изменятся ли права на сетевую шару
Написал решение, что то не опубликовалось.
Ок, принято 🙂
Немного разобрался. для понимания, что происходит сделал так, добавил вывод в лог
$SubinaclCmd = «C:\subinacl /outputlog=C:\fsrm\SubinacLog.txt /verbose=1 /share \\127.0.0.1\» + «$SharePart» + » /deny=» + «$BadUser»
Теперь идём в этот самый лог C:\fsrm\SubinacLog.txt и видим. что там почему то доступ постоянно запрещался на пользователя «система» вместо нужного доменного. Вот тут https://gallery.technet.microsoft.com/scriptcenter/Protect-your-File-Server-f3722fce/view/Discussions
Нашёл ответ. Надо поменять в строке $BadUser = $Event.ReplacementStrings цифру 0 на 6
Должно быть вот так во всяком случае у меня заработало $BadUser = $Event.ReplacementStrings[6]
Винда локализованная русская (может поэтому) Server 2012 R2
Спасибо за помощь!