Запретить удаление или шифрование теневых копий VSS можно несколькими способами. Вот наиболее эффективные методы, расположенные по уровню защиты:

1. Самый надежный способ: Полное отключение VSS и использование альтернатив

Почему это работает: Ransomware не может удалить то, чего не существует. Но это требует замены на другую систему защиты.

Как сделать:

powershell
# Отключение службы VSS
sc config VSS start= disabled
net stop VSS

# Запрет выполнения vssadmin.exe для всех пользователей
icacls C:\Windows\System32\vssadmin.exe /deny Everyone:(RX)

Альтернативы вместо VSS:

  • Использование антивирусов со своим механизмом отката (Kaspersky, Bitdefender, Acronis)

  • ZFS или ReFS файловые системы с моментальными снимками (snapshots)

  • Сторонние программы резервного копирования с защитой снимков (Veeam, Macrium Reflect)

2. Технические методы защиты VSS через политики Windows

A. AppLocker/Windows Defender Application Control (WDAC)

xml
<!-- Пример правила AppLocker в XML -->
<RuleCollection Type="Exe" EnforcementMode="Enabled">
  <FilePathRule Id="12345678-1234-1234-1234-123456789012" 
                Name="Блокировка vssadmin" 
                Description="Запрет выполнения vssadmin" 
                UserOrGroupSid="S-1-1-0" 
                Action="Deny">
    <Conditions>
      <FilePathCondition Path="C:\Windows\System32\vssadmin.exe" />
    </Conditions>
  </FilePathRule>
</RuleCollection>

Настройка через GPO:

  1. gpedit.msc → Конфигурация компьютера → Политики Windows → Параметры безопасности → Политики управления приложениями → AppLocker

  2. Создать правило для исполняемых файлов, запрещающее vssadmin.exe для всех пользователей

B. Запрет через SRP (Software Restriction Policies)

text
Политика ограничения ПО → Дополнительные правила → Новое правило для пути
Путь: C:\Windows\System32\vssadmin.exe
Уровень безопасности: Не разрешено

C. Мониторинг и блокировка через Audit Policies

powershell
# Включение аудита доступа к объектам
auditpol /set /subcategory:"Общий доступ к объектам" /success:enable /failure:enable

# Мониторинг событий удаления теневых копий (Event ID 12290 в журнале VSS)

Затем можно настроить Task Scheduler на реакцию при событии удаления VSS.

3. Специализированные программы защиты VSS

A. VSS против Ransomware утилиты:

  1. Veeam ONE - включает мониторинг и защиту VSS

  2. Altaro VSS Protection - бесплатная утилита, специально созданная для защиты теневых копий

  3. BackupAssist - имеет функцию "CryptoLocker protection" для VSS

B. Использование PowerShell скриптов для защиты:

powershell
# Скрипт постоянного мониторинга VSS
while ($true) {
    $vssProcess = Get-Process | Where-Object {$_.ProcessName -like "*vssadmin*" -or $_.ProcessName -like "*wmic*"}
    if ($vssProcess) {
        foreach ($proc in $vssProcess) {
            if ($proc.CommandLine -match "delete shadows") {
                Stop-Process -Id $proc.Id -Force
                Write-EventLog -LogName Application -Source "VSS Guard" -EventId 1001 -Message "Заблокирована попытка удаления VSS"
            }
        }
    }
    Start-Sleep -Seconds 5
}

4. Самый эффективный комплексный подход

Шаг 1: Создание неприкосновенных теневых копий

powershell
# Создание защищенной точки восстановления
vssadmin create shadow /for=C: /autoretry=10
# Делаем её постоянной (по умолчанию тени удаляются через 7 дней)
vssadmin add shadowstorage /for=C: /on=C: /maxsize=10GB

Шаг 2: Настройка NTFS прав

powershell
# Ограничение прав на ключевые исполняемые файлы
icacls C:\Windows\System32\vssadmin.exe /remove Everyone
icacls C:\Windows\System32\wbem\wmic.exe /remove Everyone
icacls C:\Windows\System32\diskpart.exe /remove Everyone

Шаг 3: Использование Windows Defender Exploit Guard

powershell
# Создание политики ASR (Attack Surface Reduction)
New-MpPreference -AttackSurfaceReductionRules_Ids D4F940AB-401B-4EFC-AADC-AD5F3C50688A -AttackSurfaceReductionRules_Actions Enabled
# Это правило блокирует выполнение obfuscated scripts (которые часто используются ransomware)

5. Практические рекомендации по приоритету

Для домашних пользователей:

  1. Установите антивирус с защитой VSS (Kaspersky, Bitdefender)

  2. Включите Control Flow Guard (CFG) в Windows Security

  3. Используйте встроенную защиту:

    • Защитник Windows → Безопасность устройства → Изоляция ядра

    • Защитник Windows → Управление приложениями → Защита от подделки

Для бизнеса:

  1. AppLocker/WDAC + SRP (двойная защита)

  2. EDR система с мониторингом поведения (CrowdStrike, SentinelOne)

  3. Сервер резервного копирования с WORM-хранилищем (неперезаписываемым)

Для серверов:

  1. Регулярные снапшоты на уровне SAN/гипервизора

  2. Отдельная VLAN для backup трафика

  3. Использование службы Volume Shadow Copy Service в режиме "только для backup сервера"

6. Что НЕ работает или малоэффективно:

  • Простое переименование vssadmin.exe - ransomware использует другие методы

  • Базовые настройки UAC - большинство ransomware обходит UAC

  • Только мониторинг событий - реактивная, а не проактивная защита

7. Важнейшее правило:

VSS — это не система резервного копирования, а временный механизм!

Обязательно используйте правило 3-2-1 для бэкапов:

  • Регулярные полные бэкапы на внешний диск (отключаемый)

  • Облачные бэкапы с историей версий (Backblaze, Wasabi)

  • Используйте программы, которые создают защищенные снапшоты (Veeam, Acronis)

Проверка защиты:

powershell
# Тест: попытка удалить тени (должна быть заблокирована)
vssadmin delete shadows /all /quiet

# Проверка текущих теневых копий
vssadmin list shadows

Вывод: Самый эффективный подход — комбинация AppLocker/WDAC + антивирус с защитой VSS + регулярные бэкапы. Защита VSS важна, но это лишь один из слоев безопасности против ransomware.