Автозапуск - AutoRun

Автозапуск и функция-компаньон Автовоспроизведение компоненты Майкрософт Виндоус Операционная система которые диктуют, какие действия предпринимает система, когда диск установленный.

AutoRun был представлен в Windows 95 чтобы упростить установку приложений для нетехнических пользователей и снизить стоимость звонков в службу поддержки программного обеспечения. Когда правильно настроенный CD-ROM вставляется в привод CD-ROM, Windows обнаруживает поступление и проверяет содержимое на наличие специального файла, содержащего набор инструкций. Для компакт-диска, содержащего программное обеспечение, эти инструкции обычно инициируют установку программного обеспечения с компакт-диска на жесткий диск. Чтобы максимизировать вероятность успешной установки, AutoRun также действует при доступе к диску ("дважды щелкнул ") в проводник Виндоус (или «Мой компьютер»).

До введения Windows XP термины AutoRun и AutoPlay использовались как синонимы, разработчики часто использовали первый термин, а конечные пользователи - второй. Эта тенденция отражена в параметрах политики Windows с именем AutoPlay, которые изменяют записи реестра Windows с именем AutoRun, и в autorun.inf файл, который вызывает добавление автозапуска на диски » контекстные меню. Терминология не имела большого значения до появления Windows XP и добавления в нее новой функции, помогающей пользователям выбирать соответствующие действия при обнаружении новых носителей и устройств. Эта новая функция была названа Автовоспроизведение и было создано различие между этими двумя терминами.[1]

Автозапуск, функция проводника Windows (на самом деле shell32 dll ), представленный в Windows 95, позволяет носителям и устройствам запускать программы с помощью команды, указанной в файле с именем autorun.inf, хранится в корневая директория среды.

В основном используемые на установочных компакт-дисках, вызываемые приложения обычно являются установщиками приложений. В файле autorun.inf также можно указать значок, который будет визуально представлять устройство в проводнике вместе с другими расширенными функциями.[1]

Термины AutoRun и AutoPlay, как правило, взаимозаменяемы, когда относятся к инициирующему действию, действию, которое обнаруживает и начинает чтение из обнаруженного тома. В блок-схема в статье AutoPlay показано, как AutoRun позиционируется как слой между AutoPlay и службой обнаружения оборудования оболочки и может помочь в понимании терминологии. Однако, чтобы избежать путаницы, в этой статье используется термин AutoRun, когда речь идет о инициирующем действии.

Автовоспроизведение

Автозапуск в Виндоус виста

Автовоспроизведение - это функция, представленная в Windows XP, которая проверяет съемные носители и устройства и на основе такого содержимого, как изображения, музыкальные или видеофайлы, запускает соответствующее приложение для воспроизведения или отображения содержимого.[1] Если возможно, настройки в файле autorun.inf могут быть добавлены к параметрам, представленным пользователю.

AutoPlay основан на наборе приложений-обработчиков, зарегистрированных в системе AutoPlay. Каждый тип мультимедиа (изображения, музыка, видео) может иметь набор зарегистрированных обработчиков, которые могут иметь дело с воспроизведением или отображением этого типа мультимедиа.

Каждое аппаратное устройство может иметь действие по умолчанию, происходящее при обнаружении определенного типа мультимедиа, или диалоговое окно AutoPlay может предлагать пользователю, какое действие следует предпринять.

Активация автозапуска

Последовательность автозапуска начинается с первоначального обнаружения нового устройства или нового носителя. После этого происходит уведомление заинтересованных сторон, из которых оболочка Windows Explorer представляет наибольший интерес. После проверки некоторых Реестр настройки, чтобы увидеть, может ли AutoRun продолжиться, может произойти анализ необязательного autorun.inf и будут предприняты все необходимые действия.

Первоначальная последовательность обрабатывается практически одинаково во всех версиях Windows, начиная с Windows 95. Однако способ чтения и обработки файла autorun.inf, а также уровень интеграции AutoRun с AutoPlay значительно изменились со времени появления AutoPlay в Windows XP до настоящего времени обработка в Windows 7. В Windows 10, Microsoft добавила возможность включения автозапуска в свои настройки. Не только пользователи могут включить его, но также могут выбрать определенные внешние устройства для автовоспроизведения.

Инициирование и уведомление

Когда устройство с драйверами, совместимыми с AutoRun, получает новый носитель, возникает событие «Уведомление об изменении носителя». Окна Операционные системы затем уведомляет заинтересованные приложения о том, что произошла смена устройства. Используемый метод уведомления может меняться в зависимости от типа устройства.

Если измененное устройство - это том (например, компакт-диск) или порт (например, последовательный порт), Windows передает WM_DEVICECHANGE уведомление для всех окон верхнего уровня.[2][3] Windows называет это «базовым» уведомлением. Окно верхнего уровня является потомком рабочего стола.

Однако, если измененное устройство не относится к одному из этих типов, приложение может использовать RegisterDeviceNotification[4] функция регистрации для получения уведомлений от устройства.

Статья на сайте CodeProject, «Обнаружение установки и / или удаления оборудования», с разъяснения из блог Дорана Холана представляет здесь особый технический интерес.

Устройства без тома - это те устройства, которые не отображаются как буквы дисков в «Моем компьютере». Они не обрабатываются какой-либо частью AutoRun - любые действия, предпринимаемые для этих устройств, выполняются либо программным обеспечением конкретного устройства, либо AutoPlay. Видеть AutoPlay # Устройства, не являющиеся дисками.

Когда Explorer получает уведомление о объем изменить, он выполняет ряд действий:[5][6]

  1. Проверяет, был ли отключен автозапуск через реестр. Если автозапуск отключен для этого диска или типа диска, Explorer не будет продолжать работу. Там были ошибки в этой области.
  2. Проверяет, что корневой каталог вставленного носителя содержит файл autorun.inf, который можно прочитать. Видеть ниже.
  3. Отправляет QueryCancelAutoPlay сообщение в окно переднего плана. Приложение, которое зарегистрировало свою заинтересованность в получении этого сообщения, используя RegisterWindowMessage может ответить на это сообщение, чтобы остановить автозапуск (и, следовательно, автозапуск) на этом этапе. Любое приложение, будь то переднее или нет, также может быть уведомлено с помощью IQueryCancelAutoPlay COM интерфейс[7] доступно в Windows XP и более поздних версиях.
  4. Изменяет двойной щелчок и поведение контекстного меню. Когда пользователь дважды щелкает значок диска в проводнике или щелкает правой кнопкой мыши, чтобы открыть контекстное меню, происходящее полностью программируется с помощью настроек в файле autorun.inf.
  5. Добавляет управляемый значок autorun.inf и текст описания к значку диска.
  6. Проверяет, есть ли Сдвиг ключ удерживается. Если это так, то Windows Vista (и более поздние версии Windows) вызовет диалоговое окно AutoPlay независимо от настроек, заданных наоборот.[8] Предыдущие версии Windows не продолжат этот процесс.[6]
  7. Наконец, если эта точка была достигнута, либо:
    • не предпринимает никаких дальнейших действий.
    • выполняет «Задачу автозапуска», приложение, дополнительно указанное в открыто или же Shellexecute ключи в autorun.inf [автозапуск] раздел.
    • вызывает автозапуск.
    Выбор зависит от используемой версии Windows, инструкций из autorun.inf, если они доступны, и типа обнаруженного носителя.

Изменение поведения

Перед автозапуском

В версиях Windows до Windows XP будет читаться файл autorun.inf на любом типе диска и следовать его инструкциям. Задача AutoRun, если она указана, выполняется немедленно без вмешательства пользователя.[9] Сюда входят DRIVE_REMOVABLE, DRIVE_FIXED и DRIVE_REMOTE типы дисков.

AutoRun будет работать с сетевыми дисками (тип диска DRIVE_REMOTE), которые сопоставлены с буквой диска. AutoRun также работает с дисководами гибких дисков, на которых установлены драйверы, совместимые с автозапуском.[6]

Параметры реестра по умолчанию в версиях Windows до Windows XP (см. NoDriveTypeAutoRun ), отключите удаленные и съемные приводы от запуска автозапуска, оставив по умолчанию активными типы фиксированных приводов и приводов CDROM.

Представляем AutoPlay

С появлением AutoPlay в Windows XP действие последнего этапа (этап 7 выше) для некоторых типов дисков изменилось с выполнения приложения на вызов AutoPlay. Начиная с Windows Vista, система AutoPlay интегрирована во все аспекты обработки мультимедиа, и автоматическое выполнение задачи AutoRun отсутствует.

В настройках реестра по умолчанию съемные диски добавляются к тем, которые запускали автозапуск. В Windows XP и выше Кроме В Windows Server 2003 для автозапуска неактивны только типы дисков Неизвестный и Удаленный.

Обработка файла autorun.inf очень сильно меняется в зависимости от версии Windows. Подробности можно найти в autorun.inf статья. Текущая обработка в Windows 7 такова: Только диски типа DRIVE_CDROM могут определять задачу автозапуска, изменять поведение двойного щелчка или изменять контекстные меню.

Настройки реестра

AutoRun консультирует Реестр Windows значения, чтобы решить, следует ли инициировать действия для любого конкретного диска или типа диска. Эти значения можно изменить несколькими способами, один из которых использует Групповая политика.

Основные соответствующие имена записей реестра: NoDriveTypeAutoRun и NoDriveAutoRun. Они существуют как для компьютеров, так и для пользователей, их расположение и приоритет в реестре более подробно описаны ниже.

Типы дисков

Типы дисков различаются по имени типа следующим образом:[10]

Введите имяценитьОписание
DRIVE_UNKNOWN0x00000000Тип привода не может быть определен (общий привод)
DRIVE_NO_ROOT_DIR0x00000001Диск в настоящее время недействителен (нет подключенных томов)
DRIVE_REMOVABLE0x00000002В приводе есть съемный носитель (флоппи-дисковод, флешка )
DRIVE_FIXED0x00000003Диск не может быть удален из привода (жесткий диск / твердотельный накопитель)
DRIVE_REMOTE0x00000004Диск является удаленным (сетевым) диском
DRIVE_CDROM0x00000005Привод - это привод CD-ROM, DVD-ROM или BD-ROM.
DRIVE_RAMDISK0x00000006Привод - это RAM-диск
DRIVE_NOT_DETERMINED0x00000007Привод еще не определен
DRIVE_NOT_FOUND0x00000008К диску в настоящее время нет доступа (отсоединенные диски)
[ЗАРЕЗЕРВИРОВАННЫЙ]0x00000009Это значение зарезервировано для технологий будущего.

Терминология реестра

Реестр Windows представляет собой иерархическую база данных в котором хранятся параметры конфигурации и параметры операционной системы. Терминология несколько вводит в заблуждение, поэтому она кратко изложена здесь.

Реестр ключ похожа на папку, в которой, помимо значений, каждый ключ может содержать подключи, которые, в свою очередь, могут содержать подключи, и так далее.

Реестр ценить состоит из пары имя-данные. В документации Microsoft термин «запись» обычно используется как эквивалентный термин. Он также использует «значение» для «данных», когда очевидно, что имеется в виду. Чтобы избежать путаницы, в этой статье всегда используется термин «запись», когда речь идет о паре имя-данные.

Два ключа реестра, которые часто называют HKEY_LOCAL_MACHINE который содержит настройки для каждой машины, и HKEY_CURRENT_USER который содержит настройки для текущего вошедшего в систему пользователя. Они почти всегда сокращаются как HKLM и HKCU соответственно. У машины может быть много пользователей; их настройки хранятся в HKEY_USERS, HKCU на самом деле просто ссылка на соответствующее место в HKEY_USERS.

Изменение настроек реестра

Настройки реестра можно изменить напрямую с помощью графического интерфейса. regedit инструмент или командная строка reg.exe полезность. Настройки также можно поместить в текстовый файл,[11] назван с расширением .reg. Например, "mychanges.reg". При двойном щелчке по файлу настройки файла вводятся в Реестр, если позволяют разрешения.

Их можно изменить косвенно с помощью групповой политики, применяемой локально к одному компьютеру с GPEdit.msc или в домен с gpmc.msc.

Может потребоваться либо выйти из системы, либо перезагрузить компьютер, чтобы изменения в реестре вступили в силу.

Порядок оценки

В NoDriveAutoRun и NoDriveTypeAutoRun Записи реестра могут существовать в двух местах: в настройках для каждого пользователя (в HKEY_CURRENT_USER) и в настройках для каждой машины (в HKEY_LOCAL_MACHINE). Если запись отображается под HKEY_LOCAL_MACHINE, то любая соответствующая запись под HKEY_CURRENT_USER полностью игнорируется. Значения данных никоим образом не объединяются.

При принятии решения об активации автозапуска оба NoDriveAutoRun и NoDriveTypeAutoRun С записями реестра обращаются. Если любое значение указывает на то, что диск должен быть отключен, автозапуск для этого диска отключен.

Таким образом, в следующем примере:

HKEY_LOCAL_MACHINEHKEY_CURRENT_USER
NoDriveAutoRunNoDriveTypeAutoRunNoDriveAutoRunNoDriveTypeAutoRun
0x08(Нет)0x03FFFFFF0x95

значение данных, взятых для NoDriveAutoRun 0x08, отключение диска D и значение данных, принятое для NoDriveTypeAutoRun 0x95, отключение съемных и сетевых дисков. На пользователя NoDriveAutoRun запись никогда не используется.

NoDriveTypeAutoRun

HKLM Software Microsoft Windows CurrentVersion Policies Explorer
HKCU Software Microsoft Windows CurrentVersion Policies Explorer
Имя записиТип данныхКлассифицироватьДефолт
NoDriveTypeAutoRunREG_DWORDОт 0x00 до 0xFF0x95 или 0x91

Эта запись реестра отключает или включает функцию автозапуска на всех дисках указанного типа.[12] Он отражает настройку соответствующей групповой политики автозапуска. Допустимые данные варьируются от 0x00 до 0xFF в шестнадцатеричный обозначение. Если запись отсутствует, значение данных по умолчанию - 0x95 или 0x91 в зависимости от используемой версии Windows. Запись, присутствующая в HKLM, переопределяет любую запись, присутствующую в HKCU.

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

drive type bitwise settings

Обратите внимание, что бит номер 1 не используется, а тип «Неизвестный» представлен дважды. Установка всех битов в 1 даст шестнадцатеричное значение 0xFF, десятичное 255 и отключит автозапуск на всех типах дисков.

Значение по умолчанию для этой записи зависит от используемой версии Windows:[9][13]

Операционная системаНастройки по умолчанию
Windows 70x91
Windows Server 20080x91
Виндоус виста0x91
Windows Server 20030x95
Windows XP0x91
Windows 20000x95
Windows 95/980x95

NoDriveAutoRun

HKLM Software Microsoft Windows CurrentVersion Policies Explorer
HKCU Software Microsoft Windows CurrentVersion Policies Explorer
Имя записиТип данныхКлассифицироватьДефолт
NoDriveAutoRunREG_DWORDОт 0x0 до 0x03FFFFFF0x0

Эта запись реестра отключает или включает функцию автозапуска на отдельных дисках.[14] Он не связан с групповой политикой и не существует по умолчанию. Значение данных принимается равным 0, если запись отсутствует. Запись, присутствующая в HKLM, переопределяет любую запись, присутствующую в HKCU.

Данные представляют собой 32-битное (DWORD) битовое значение, младшие 26 бит которого используются для представления каждой из 26 букв дисков от A до Z. Таким образом, допустимый диапазон данных составляет от 0x0 до 0x03FFFFFF. Наименьший значащий бит (самый правый бит) представляет диск A, а 26-й бит справа представляет диск Z.

Бит, установленный в 1, отключает автозапуск на определенном диске. Например, если значение данных установлено на 0x8 (1000 двоичных), AutoRun отключен на диске D.

Групповая политика

В Групповая политика диалоговое окно настроек на Windows XP показывает возможность выключить автозапуск.

Единственные параметры групповой политики, доступные для автозапуска, влияют на NoDriveTypeAutoRun Записи в реестре. Политика доступна для каждого компьютера или пользователя, в зависимости от расположения записи в реестре в HKLM или HKCU.[12][14] Как описано над, параметр политики для компьютера приведет к игнорированию параметра политики для каждого пользователя.

Когда политика Включено, Групповая политика добавит NoDriveTypeAutoRun запись в Реестр. Если политика Неполноценный или установить на Не настроено, Групповая политика удаляет эту запись из реестра для политики компьютера (в HKLM) и устанавливает для нее значение по умолчанию для политики пользователя (в HKCU). Системные настройки по умолчанию могут вступить в силу, как описано в NoDriveTypeAutoRun раздел.

Имена политик, их расположение и возможные настройки немного различаются в зависимости от версии Windows. Список настроек относительно короткий и всегда дополняет системные настройки по умолчанию. Поэтому в Windows 2000 включение политики «Отключить автозапуск» и установка для нее «Приводы компакт-дисков» отключает автозапуск (в отличие от автозапуска) для приводов CD-ROM и DVD, съемных приводов, сетевых дисков и дисководов неизвестного происхождения. тип.

Этот параметр нельзя использовать для включения автозапуска на дисках, на которых он отключен по умолчанию, или для отключения автозапуска для дисков, не указанных в списке. Чтобы отключить или включить какие-либо определенные диски или типы дисков, реестр необходимо отредактировать вручную.

Windows Server 2003, Windows XP и Windows 2000

Расположение политик для каждой машины:

Групповая политика Конфигурация компьютера Административные шаблоны Система

Расположение политики для каждого пользователя:

Групповая политика Конфигурация пользователя Административные шаблоны Система

Соответствующая политика - «Отключить автозапуск». В Windows 2000 политика называется «Отключить автозапуск».

После того, как политика включена, ее можно установить на «Все диски» или «Приводы компакт-дисков». Последний параметр добавляет приводы CD-ROM к существующему списку отключенных типов приводов, как описано выше.

Windows Vista, Windows Server 2008

Расположение политик для каждой машины:[15]

Конфигурация компьютера Административные шаблоны Компоненты Windows Политики автозапуска

Расположение политики для каждого пользователя:

Конфигурация пользователя Административные шаблоны Компоненты Windows Политики автозапуска

Соответствующая политика - «Отключить автовоспроизведение», и ее можно установить для CD-ROM, DVD-ROM и съемных дисков или всех дисков.

В Vista и Server 2008 были добавлены две связанные политики:[16]


Поведение по умолчанию для автозапуска
HKLM Software Microsoft Windows CurrentVersion Policies Explorer
HKCU Software Microsoft Windows CurrentVersion Policies Explorer
Имя записиТип данныхКлассифицироватьДефолт
НетREG_DWORD
Задает поведение по умолчанию для команд автозапуска в файлах autorun.inf.
До Windows Vista, когда носитель, содержащий autorun.inf, определяющий задачу AutoRun, вставлялся, действием по умолчанию было автоматическое выполнение программы без вмешательства пользователя. : В Windows Vista по умолчанию запускается автозапуск и задача автозапуска представлена ​​как: одна из опций диалогового окна. Это также поведение, когда эта политика не настроена или: отключена.
Если эта политика включена, поведение можно изменить на:
  • Полностью отключить команды autorun.inf или же
  • Автоматически выполнить команду autorun.inf, как в предыдущих версиях Windows.
Не устанавливайте флажок всегда делать это
HKLM Software Microsoft Windows CurrentVersion Policies Explorer
HKCU Software Microsoft Windows CurrentVersion Policies Explorer
Имя записиТип данныхКлассифицироватьДефолт
DontSetAutoplayCheckboxREG_DWORD
Если эта политика активирована, флажок «Всегда делать это ...» в диалоговом окне AutoPlay не будет установлен: по умолчанию, когда диалоговое окно отображается.

Windows 7, Windows Server 2008 R2

В этих версиях Windows возможность файла autorun.inf устанавливать задачу автозапуска, изменять поведение двойного щелчка или изменять контекстные меню ограничена дисками типа DRIVE_CDROM. Нет никаких параметров политики, которые отменяли бы это поведение. Расположение и настройки политики соответствуют Windows Vista, Windows Server 2008 выше с добавлением:[16]

Отключить автовоспроизведение для устройств без громкости
HKLM Программное обеспечение Политики Microsoft Windows Проводник
HKCU Software Policies Microsoft Windows Explorer
Имя записиТип данныхКлассифицироватьДефолт
NoAutoplayfornonVolume
Если эта политика включена, автозапуск будет отключен для не объемный устройств.

Изменение поведения автозапуска

Нажатие клавиши Shift

Если ⇧ Shift удерживается нажатой в определенный момент в последовательности выполнения, Windows Vista вызывает диалоговое окно AutoPlay независимо от настроек AutoPlay, которые противоречат этому.[8] Предыдущие версии Windows не выполняли задачу автозапуска. Важно, чтобы оставили Для этого используется клавиша Shift, так как удерживание правой клавиши Shift в течение восьми секунд вызывает FilterKeys.[6]

Учитывая, что Shift необходимо удерживать, пока Windows его не проверит, может пройти значительное время, прежде чем он вступит в силу. Время, необходимое в первую очередь, зависит от времени на распознавание нового оборудования и времени, необходимого для раскрутки CD-ROM. Полагаться на этот метод небезопасно.

Уведомление об автоматической вставке

Определенный Уведомление об изменении СМИ события могут быть подавлены путем изменения определенных записей реестра. «Уведомление об изменении носителя» - это общий термин; для приводов CD-ROM конкретный термин - «Уведомление об автоматической вставке».

HKLM SYSTEM CurrentControlSet Services Cdrom
Имя записиТип данныхКлассифицироватьДефолт
АвтозапускREG_DWORD0 или 11

Для приводов CD-ROM изменение значения этой записи реестра на 0 отключит автоматическое уведомление о вставке только для приводов CD-ROM.[17] Потребуется перезагрузка Windows.

Значение данныхСмысл
0
Не отправляет сообщение MCN
1
Отправляет сообщение MCN

В Windows 95/98 / ME этот параметр можно изменить в диспетчере устройств, доступном с помощью значка «Система» на панели управления.

Настройки автозапуска для CD-ROM покататься на Windows 98.

Хотя запись в реестре называется «Автозапуск», она подавляет только сообщение MCN. Сообщение MCN действительно запускает автозапуск, но также дает указание оболочке Explorer обновить свои представления и содержимое.

Таким образом, только в качестве побочного эффекта это отключает автозапуск для приводов CD-ROM. Однако теперь Explorer не обновляет свой вид при вставке нового компакт-диска; он будет показывать содержимое предыдущего компакт-диска, пока F5 нажата или в меню Проводника выбрано «Просмотр / Обновить». Это может привести к серьезной путанице для пользователей.

По этой причине сообщение Уведомления об изменении носителя не следует отключать, если нет абсолютно никакой альтернативы; Автозапуск можно отключить для отдельных дисков с помощью групповой политики или реестра.

HKLM SYSTEM CurrentControlSet Services Cdrom
Имя записиТип данных
AutoRunAlwaysDisableREG_MULTI_SZ

Эта запись используется для подавления сообщения MCN для конкретно указанного типа привода CD-ROM,[18] в первую очередь чейнджеры CD-ROM. Данные представляют собой набор идентификаторов устройств, которые соответствуют идентификаторам, сообщаемым системе самими устройствами.

Значение по умолчанию для этой записи состоит из продуктов, определенных в ходе тестирования Microsoft как не поддерживающие AutoRun. Эту запись не следует изменять по умолчанию.

Редактирование групповой политики

Автозапуск может быть подавлен на определенных дисках и типах дисков с помощью методов, описанных в Групповая политика раздел. Однако редактор групповой политики недоступен в домашних версиях Windows XP.[19] и не предоставляет никаких детальных средств выбора дисков.

Однако групповая политика будет приемлемым методом отключения автозапуска для всего домена Windows.

Файлы реестра

Можно создать файл настроек реестра, который при запуске вносит в реестр желаемые изменения.

Редактор реестра Windows версии 5.00[HKEY_LOCAL_MACHINE Программное обеспечение  Microsoft  Windows  CurrentVersion  policy  Explorer]"NoDriveTypeAutoRun"=dword:000000ff
Обратите внимание, что фактический файл всегда должен заканчиваться пустой строкой. Это не обязательно.[11]

В приведенном выше примере автозапуск будет отключен для всех дисков и для всех пользователей. Этот пример необходимо запустить от имени администратора, и для того, чтобы настройки вступили в силу, потребуется перезагрузка.

Отображение файла инициализации

В Windows Vista и более поздних версиях Windows есть параметр политики «Поведение по умолчанию для автозапуска», который можно настроить, чтобы запретить чтение файла autorun.inf на любом томе. Это позволяет избежать определенных сценариев, когда вредоносное ПО использует функции autorun.inf для заражения машины. Предыдущие версии Windows не имели этого параметра политики, но использовали сопоставление файла инициализации - эффективное решение.[20][21]

В качестве файла autorun.inf используется стандартный файл Windows INI файл, соответствующий API вызовы используются Windows при получении своих настроек. Эти вызовы API могут быть перенаправлены с помощью метода сопоставления файлов INI. Следующее Файл реестра иллюстрирует обходной путь, где все настройки autorun.inf берутся исключительно из HKEY_LOCAL_MACHINE Программное обеспечение DoesNotExist Ключ реестра:

Редактор реестра Windows версии 5.00[HKEY_LOCAL_MACHINE ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ  Microsoft  Windows NT  CurrentVersion  IniFileMapping  Autorun.inf]@="@SYS: DoesNotExist"

Поскольку этот ключ не существует, создается впечатление, что файл autorun.inf не содержит информации о настройках. Важно отметить, что это относится к любому autorun.inf в любом месте и на любом диске.

Поскольку либо параметр политики, либо этот обходной путь отключают автозапуск, установка программного обеспечения с автозапуска установочного компакт-диска или DVD, очевидно, больше не будет автоматической. Потребуется просмотреть файл autorun.inf на компакт-диске, а затем вручную запустить соответствующую программу установки.

Проблемы и безопасность

Microsoft признала, что «поскольку код может быть выполнен без ведома или согласия пользователя, пользователи могут захотеть отключить эту функцию из соображений безопасности». и выпустили «Fixit» для отключения автозапуска для пользователей, которым неудобно редактировать реестр.[13]

Ошибка отключения автозапуска

Начиная с Windows 2000 и заканчивая Windows Server 2008, записи реестра, относящиеся к автозапуску, не обрабатывались должным образом, что приводило к уязвимости системы безопасности.[22] Windows 95 и Windows 98 не пострадали.

Когда автозапуск отключен, Windows не должна продолжать активация последовательность, чем проверка реестра. Однако он анализирует любой найденный файл autorun.inf и делает все, кроме последнего действия, чтобы вызвать автозапуск или запустить приложение.

Это оставляет пользователя уязвимым для атак со стороны вредоносного ПО, которое использует autorun.inf для изменения поведения двойного щелчка и контекстного меню. Двойной щелчок по значку диска заразит машину. Щелчок правой кнопкой мыши и выбор параметров «Исследовать» или «Открыть» в контекстном меню не является обходным решением, поскольку эти элементы меню могут быть задействованы соответствующими записями autorun.inf.

Эта ошибка была исправлена ​​в ряде обновлений безопасности, подробно описанных в База знаний Microsoft статья 967715.[13]

Другие вопросы

  • Если добавить компьютер в домен Active Directory, NoDriveTypeAutoRun значение может быть сброшено до значения по умолчанию.[23] Это связано с тем, что настройки групповой политики в домене вступают в силу. Это не ошибка.
  • Некоторые программы могут намеренно изменять настройки AutoRun Registry. Известно, что ранние версии программного обеспечения для записи компакт-дисков, такие как Roxio, изменяли настройки таким образом.[24]
  • Если групповая политика «Ограничить доступ к компакт-диску только локально вошедшим в систему пользователям» параметр безопасности в:
    Конфигурация компьютера Параметры Windows Параметры безопасности Локальные политики Параметры безопасности

    включен (Enabled), то AutoRun может не работать.[24]

    Установщики Windows также будут работать некорректно, поскольку доступ к компакт-диску для «локальной системы» будет запрещен.[25]

    Этот параметр групповой политики отражает значение записи реестра:

    HKLM Программное обеспечение Microsoft Windows NT CurrentVersion Winlogon
    Имя записи Тип данных Классифицировать Дефолт
    allocatecdroms
    REG_SZ
    0 или 1
    0
    и должен быть установлен на 0.
  • RealPlayer 10 мешает работе AutoPlay до такой степени, что может выглядеть так, как будто AutoRun или AutoPlay вообще не работают.[26][27][28]

Векторы атак

Функциональность AutoRun некоторое время использовалась как вектор вредоносного ПО. До Windows Vista действие по умолчанию с типом привода CD-ROM заключалось в выполнении всех инструкций файла autorun.inf без подсказок или предупреждений. Это делает несанкционированные CD-ROM одним из возможных векторов заражения.

К этой же категории относятся CD-ROM со смешанным содержанием. Аудио компакт-диск, который, по мнению пользователя, вообще не будет содержать программного обеспечения, может содержать раздел данных с autorun.inf. Некоторые компании, такие как Sony BMG, использовали этот вектор для установки вредоносного ПО, которое пытается защитить от копирования звуковых дорожек.

U3 включенные флешки, подражание CD-ROM, также может заставить Windows выполнять команды из autorun.inf, находящегося на эмулированном CD-ROM.

Такие устройства, как Huawei E220 Модем HSDPA допустимо использовать этот метод для автоматической установки драйверов для самого модема. Однако воткнуть флешку из неизвестного источника - неразумный ход. USB-переключатель и подобные инструменты сделали атаки на флэш-накопители U3 тривиальными. Учитывая простоту написания сценарий основанные атаки, антивирус программное обеспечение может быть неэффективным в предотвращении кражи данных и паролей.

В Конфикер червь в действии скриншот на Windows 7.

Со стандартным флеш-накопителем можно использовать атаки социальной инженерии, чтобы побудить пользователя щелкнуть соответствующий элемент в диалоговом окне AutoPlay. Заманчивый действие Строка перспективных бесплатных игр или порнографии бы заманить многих пользователей в ловушку. В любой момент двойной щелчок по значку диска приведет к автоматическому использованию autorun.inf, в ловушку которой могут попасть более опытные пользователи.

Любой пользователь может настроить AutoPlay, чтобы принимать за него различные решения; при установке соответствующего флажка в диалоговом окне «Автозапуск» запуск вредоносного ПО на флэш-накопителе происходит автоматически и автоматически.

Вредоносная программа AutoRun была расширена для использования жестких дисков,[29] фоторамки и другие цифровые устройства.[30] Осторожность при обращении с внешними устройствами является приоритетом безопасности. Распространенность заражения вредоносным ПО с помощью автозапуска и USB-накопителя была задокументирована в исследовании Microsoft 2011 года.[31] анализ данных из более чем 600 миллионов систем по всему миру в первой половине 2011 года. Исследование показало, что 26 процентов всех вредоносных программ, зараженных системой Windows, были связаны с USB-накопителями, использующими функцию автозапуска в Майкрософт Виндоус. Этот вывод согласуется с другими статистическими данными, такими как ежемесячный отчет антивирусной компании ESET о наиболее часто обнаруживаемых вредоносных программах, в котором злоупотребление autorun.inf занесено в первую десятку угроз в 2011 году.[32]

Снижение атак

В дополнение к основным мерам безопасности, которые включают[33]

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

  • Отключите автозапуск (но см. Ошибка отключения автозапуска )
  • Используйте групповую политику «Поведение по умолчанию для автозапуска» в Vista (см. над ) для отключения команд autorun.inf
  • Использовать сопоставление файлов инициализации обнулить разделы autorun.inf
  • В Windows 7 только приводы CD и DVD могут указывать приложения, такие как задача AutoRun, в файле autorun.inf. Windows XP и более поздние версии могут быть залатанный вести себя так же с обновлением KB971029.[34] В феврале 2011 года этот патч был добавлен в официальный Центр обновления Windows канал.[35] Поведение задачи автозапуска Windows 7 теперь становится по умолчанию для всех текущих версий ОС Windows.

Кроме того, Microsoft рекомендовала следующие действия, прежде всего во время Конфикер атаки червя:

  • Предотвратить вызов autorun.inf из общих сетевых ресурсов:[13]
    1. Удаление любого существующего файла autorun.inf из корня подключенного сетевого диска
    2. Отказ в правах на создание корневого каталога подключенного сетевого диска
  • Предотвратите использование запоминающих устройств USB с помощью:
    • Настройки USB в Системный BIOS
    • Соответствующие параметры реестра, как описано в статье базы знаний 823732[36]
    • Настройка USB-устройств только для чтения для предотвращения распространения неизвестных червей (и кражи конфиденциальных данных)[37]

Смотрите также

Рекомендации

  1. ^ а б c В чем разница между автозапуском и автозапуском?, Microsoft, Справка Windows Vista
  2. ^ Как получить уведомление о вставке или извлечении компакт-диска, Microsoft, База знаний
  3. ^ Обнаружение вставки или удаления носителя, Microsoft, MSDN Библиотека
  4. ^ Функция RegisterDeviceNotification, Microsoft, Библиотека MSDN
  5. ^ Создание приложения с поддержкой автозапуска, Microsoft, Библиотека MSDN
  6. ^ а б c d Включение и отключение автозапуска, Microsoft, Библиотека MSDN
  7. ^ Интерфейс IQueryCancelAutoPlay, Microsoft, Библиотека MSDN
  8. ^ а б Автозапуск: часто задаваемые вопросы, Microsoft, Справка Windows Vista
  9. ^ а б Как проверить файлы autorun.inf, Microsoft, База знаний
  10. ^ Функция GetDriveType, Microsoft, Библиотека MSDN
  11. ^ а б Как использовать файл регистрационных записей, Microsoft, База знаний
  12. ^ а б Реестр Windows 2000: NoDriveTypeAutoRun, Microsoft, TechNet
  13. ^ а б c d Как отключить функцию автозапуска в Windows, Microsoft, База знаний
  14. ^ а б Реестр Windows 2000: NoDriveAutoRun, Microsoft, TechNet
  15. ^ Руководство по безопасности Windows Vista, глава 3, Microsoft, TechNet
  16. ^ а б Справочник по параметрам групповой политики для Windows и Windows Server, Microsoft, Загрузки, Excel Таблицы.
  17. ^ Реестр Windows 2000: автозапуск, Microsoft, TechNet
  18. ^ Реестр Windows 2000: AutoRunAlwaysDisable, Microsoft, TechNet
  19. ^ Пакет ресурсов Windows XP Pro, отличия от Windows XP Home Edition, Microsoft, TechNet
  20. ^ Черви с карты памяти В архиве 2011-10-31 на Wayback Machine, Блог Ника Брауна
  21. ^ Лучший способ отключить автозапуск для защиты от зараженных флешек В архиве 2013-06-06 на Wayback Machine, Майкл Горовиц - Защитные вычисления
  22. ^ Windows Vista не может должным образом обработать значение реестра NoDriveTypeAutoRun, US-CERT
  23. ^ Значение подраздела NoDriveTypeAutoRun сбрасывается ..., Microsoft, База знаний
  24. ^ а б Функция AutoRun или функция AutoPlay не работает ..., Microsoft, База знаний
  25. ^ Вы получаете сообщение «Установка завершена преждевременно, потому что ...», Microsoft, База знаний
  26. ^ Мастер камеры и сканера, перестал работать, Чат-форум Gladiator Security
  27. ^ Автовоспроизведение не работает с цифровой камерой, vista-xp чат форум
  28. ^ Как восстановить автозапуск камеры скачать, tech-archive.net чат форум
  29. ^ Китайский троянец на жестких дисках Maxtor пугает Тайвань, Реестр, 12 ноября 2007 г.
  30. ^ Вредоносные программы нападают на цифровые устройства, Реестр, 11 января 2008 г.
  31. ^ Отчет Microsoft Security Intelligence, том 11, январь-июнь 2011 г.
  32. ^ Отчет о глобальных угрозах, декабрь 2011 г.
  33. ^ Оповещение вируса о черве Win32 / Conficker, Microsoft, База знаний
  34. ^ Обновление до функции автозапуска в Windows, Microsoft, База знаний
  35. ^ Подробнее об обновлении Security Advisory 967940, Microsoft, Блоги Центра реагирования на безопасность
  36. ^ How can I prevent users from connecting to a USB storage device?, Microsoft, База знаний
  37. ^ Removable storage devices are not recognized after installing Windows XP SP2, Microsoft, База знаний

внешняя ссылка