Использование PowerShell для защиты от Conficker (включение и отключение AutoRun.inf)

На главной странице MSN.com сегодня приведены сведения о новом черве, Conficker, который распространяется через старые добрые трюки с autorun.inf. Он инфицирует устройства USB так, что при подключении этих устройств в другой компьютер вредоносный код автоматически запускается и поражает машину. Статья ссылается на публикацию в блоге Ника Брауна (Nick Brown), который описывает различные способы отключения файлов autorun.inf и дает файл .REG для отключения autorun.inf.

Вот этот файл .REG:

 REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

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

 function Disable-AutoRun
{
    $item = Get-Item `
        "REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\AutoRun.inf" `
        -ErrorAction SilentlyContinue
    if (-not $item) {
        $item = New-Item "REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\AutoRun.inf"
    }
    Set-ItemProperty $item.PSPath "(default)" "@SYS:DoesNotExist"
}

 

 

Вот пояснения Ника о том, как это работает:

Этот хак предлагает Windows очистить AUTORUN.INF так, как если бы он был файлом конфигурации старого приложения до времен Windows 95. IniFileMapping – это ключ, который сообщает Windows, как работать с файлами .INI, которые это приложение обычно использует для хранения данных о настройках (практиковалось до появления реестра). В этом случае он сообщает: «когда начнете работать с файлом AUTORUN.INF, не используйте значения из файла. Используйте альтернативные значения из HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist». И поскольку этот ключ, точно, не создан, дело обстоит так, как если бы AUTORUN.INF был совершенно пуст, так что никакого автозапуска, и к двойному щелчку в Обозревателе ничего не добавляется. Результат: черви не запускаются – если только вы двойным щелчком не запустите исполняемые файлы, чтобы посмотреть, что они делают. В этом случае вы заслужили, чтобы ваш ПК был заражен.

Если вы захотите отменить изменения в реестре и снова включить автозапуск, можно использовать приведенную ниже функцию:

 function Enable-AutoRun
{
    Remove-Item "REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\AutoRun.inf" -Force
}

Надеюсь, это вам поможет,

Джеймс Брандейдж (James Brundage) [MSFT]

Перевод: Виктор Горбунков