Autorun.inf

Autorun.inf — файл, используемый для автоматического запуска или установки приложений и программ на носителях информации в среде операционной системы Microsoft Windows (начиная с версии Windows 95). Этот файл должен находиться в корневом каталоге файловой системы устройства, для которого осуществляется автозапуск. Файл делится на структурные элементы — блоки. Название блоков пишется в квадратных скобках. Описание блоков содержит пары параметр→значение.

Исходное предназначение

[править | править код]

Автоматический запуск приложения позволил чрезвычайно упростить действия пользователя при установке и запуске программного обеспечения и драйверов устройств[1].

Защита от копирования

[править | править код]

Кроме того, некоторые фирмы, производящие диски с аудиосодержимым, пытались применить данную технологию для защиты содержимого дисков от копирования, путём автозапуска программы, препятствующей копированию. Однако известен случай поведения данной программы как руткита[2].

Безопасность

[править | править код]

До настоящего времени файл autorun.inf широко использовался для распространения компьютерных вирусов через flash-накопители и сетевые диски. Для этого авторы вирусов прописывают имя исполняемого файла с вредоносным кодом в параметр open. При подключении заражённого flash-накопителя Windows запускает записанный в параметре «open» файл на исполнение, в результате чего происходит заражение компьютера.

Находящийся в оперативной памяти заражённого компьютера вирус периодически сканирует систему с целью поиска новых дисков, и при их обнаружении (при подключении другого flash-накопителя или сетевого диска) создаёт на них со ссылкой на копию своего исполняемого файла, обеспечивая таким образом своё дальнейшее распространение.

Вирус также часто делает файлы и папки на съёмном диске (флешке, дискете) невидимыми, используя команду attrib. Вместо них он часто создаёт ярлыки с именами файлов и папок, реже ярлык с наименованием диска (E:, F: и т.д.). Ни в коем случае не нужно щёлкать (кликать) мышью по ярлыкам. Для того, чтобы скрытые файлы оказались видимыми, можно изменить свойства проводника (обозревателя explorer.exe), затем выполнить команду в командной строке: cmd /c attrib -s -r -h <путь к вашему файлу или папке>[3] , по этой же ссылке можно прочитать, как в MS Windows XP скрытые файлы и папки снова можно увидеть. После удаления вируса с компьютера рекомендуется удалить его тело с флешки, удалить файл autorun.inf и создать папку с таким же названием. Большинство вирусов смогут копировать свои тела на съёмный носитель, но не смогут автоматически запускаться без текстового файла autorun.inf. Многие опытные пользователи рекомендуют использовать для просмотра содержимого флешек и дискет командную строку или файловые менеджеры (Total Commander, FAR Manager, Norton Commander и др.).

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

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

[править | править код]

Групповая политика (gpedit.msc)

[править | править код]

Настройка автозапуска в групповой политике находится в ветке «Конфигурация компьютера — Административные шаблоны — Система». Пункт «Отключить автозапуск» имеет три значения: не задан, включён, отключен. Задание значения «включён» позволяет выбрать тип дисков:

  • CD-дисководы (включает: неизвестные, CD, сетевые и съёмные диски),
  • все дисководы.

Реестр (ветвь HKCU), Policies

[править | править код]

За включение и отключение автозапуска для разных типов носителей отвечают ключи реестра:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff

Возможные значения данного ключа:

  • 0x01 (DRIVE— отключить автозапуск на дисках, которым не назначена буква (не примонтированных в корень)
  • 0x04 (DRIVE_REMOVABLE) — отключить автозапуск съёмных устройств (дискеты, флешки)
  • 0x08 (DRIVE_FIXED) — отключить автозапуск НЕсъемных устройств (жёсткий диск)
  • 0x10 (DRIVE_REMOTE) — отключить автозапуск сетевых дисков
  • 0x20 (DRIVE_CDROM) — отключить автозапуск CD-приводов
  • 0x40 (DRIVE_RAMDISK) — отключить автозапуск на виртуальном диске (RAM-диск)
  • 0x80 (DRIVE_FUTURE) — отключить автозапуск на приводах неизвестных типов (будущие типы устройств)
  • 0xFF — отключить автозапуск вообще всех дисков.

Значения могут комбинироваться суммированием их числовых значений. Допустимые значения ключа NoDriveTypeAutoRun описаны в KB967715 Архивная копия от 31 марта 2009 на Wayback Machine.

Запрет автозапуска при помощи вышеприведённого ключа реестра не устраняет опасности заражения компьютера. Это связано с тем, что значение ключа влияет только на исполнение autorun.inf при определении системой подключенного носителя, но не запрещает исполнение при двойном клике на значке носителя. Таким образом, даже если функция автозапуска отключена, заражение происходит при попытке пользователя открыть подключённый диск для просмотра. Microsoft выпустила исправление, описанное в KB967715 Архивная копия от 3 марта 2015 на Wayback Machine, полностью решающее данную проблему.

Реестр (ветвь HKLM), подмена autorun.inf файла

[править | править код]

Альтернативный, более радикальный, способ запрета обработки autorun.inf:

Windows Registry Editor Version 5.00

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

По сути, он подменяет содержимое файла autorun.inf значением из реестра, которое нарочно задаётся пустым/неверным. Это приводит к тому, что если на диске и есть файл autorun.inf, то он воспринимается как пустой.

Указанный способ следует считать самым надёжным. Простой способ его использования заключается в создании соответствующего reg-файла, запускаемого на компьютере.[4]

Реестр (ветвь HKLM), запрет автостарта всех типов файлов

[править | править код]

Возможное решение запрета автостарта всех типов файлов (Только автостарт, обработка двойного клика и контекстного меню будет произведена):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files]
"*.*"=""

Обновление Windows

[править | править код]

Большое количество вредоносных программ, распространявшихся с помощью autorun.inf, вынудило корпорацию Microsoft в новой Windows 7 отключить автозапуск программ для носителей информации, подключающихся через порт USB (флешек, кардридеров и др.). В феврале 2011 года Microsoft выпустила обновления, отключающие автозапуск программ из autorun.inf для Windows XP и Windows Vista. В результате уже к лету 2011 года число компьютеров, на которых были зарегистрированы вирусы семейств autorun, уменьшилось примерно на 60%[5].

Структурные блоки файла

[править | править код]

Параметр action

[править | править код]

Параметр action отвечает за отображение текста в меню автозапуска (используется редко).

Пример:

[autorun]
action=Текст Заголовка

Допустимо указания текста из библиотеки dll:

[autorun]
action=[путь\]имя_файла,-IDресурса

Параметр icon

[править | править код]

Параметр icon назначает файл иконки для устройства.

Пример:

[autorun]
icon=имя_ресурса[,номер]

или

[autorun]
icon=файл.ico

Параметр Defaulticon

[править | править код]

Команда Defaulticon отличается лишь тем, что позволяет задавать ещё и путь к файлу значка:defaulticon=iconpath[,index]

В случае использования двух команд — icon и defaulticon система обрабатывает только defaulticon.

Параметр label

[править | править код]

Этот параметр служит для указания «метки тома». Если применить метку label к диску, то реальная метка тома будет скрыта (её можно посмотреть в свойствах).

[autorun]
label=ЛюбойТекст

Параметр open

[править | править код]

Параметр open содержит путь к файлу программы, которая будет запускаться при подключении устройства или попытке доступа к нему (открытие двойным щелчком). Этот параметр не следует использовать вместе с shellexecute, возможно возникновение конфликта!

Синтаксис:

[autorun]
...
open=[путь\]файл [параметр1 [параметр2] ...]
...

Параметр UseAutoPlay

[править | править код]

Этот параметр совместим только с ОС MS Windows XP и работает не только на оптических дисках, но и на других сменных носителях. Допустимое значение одно — 1. Используется для включения обработки файла autoplay. Используется очень редко, в основном для автозапуска с flash-дисков без запросов на выбор действия (открыть в проводнике, ничего не делать и т. д.).

Синтаксис:

[autorun]
...
UseAutoPlay=1
...

Параметр shellexecute

[править | править код]

Файл, указанный в этом параметре, открывается при автозапуске той программой, которая ассоциирована с этим типом файлов в системном реестре Windows.

Этот параметр можно использовать вместо параметра «open», использовать эти два параметра вместе не рекомендуется.

Данный параметр корректно работает на всех версиях ОС семейства Windows. В ОС MS Windows Vista диск с этим параметром сразу определяется как диск с программным обеспечением или играми, и для него вызывается соответствующее меню.

Пример:

[autorun]
shellexecute="Readme.txt"

В данном примере файл «.txt» будет открыт программой, которую пользователь по умолчанию использует для открытия файлов «.txt»

Параметр shell

[править | править код]

shell=ключ указывает команду по умолчанию (default) для контекстного меню диска.

shell\ключ задаёт пункт контекстного меню.

shell\ключ\command задаёт исполняемую команду для пункта меню «ключ».

Пример:

[autorun]
shell\ключевое_слово\command=Файл.exe 
shell\ключевое_слово=Заголовок_меню

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

Значениями для этих ключей могут быть только логическое true (истина) или false (ложь).

Истина задаётся любым из данных значений: 1, y, yes, t, true.

Ложь задаётся как: 0, n, no, f, false.

Пример:

[Content]
MusicFiles=Y
PictureFiles=0
VideoFiles=false

Блок [IgnoreContentPaths]

[править | править код]

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

[IgnoreContentPaths]
\Portable
\Documents
\Install

Данный блок поддерживается только ОС MS Windows Vista.

Блок [DeviceInstall]

[править | править код]

Используется один параметр DriverPath, который указывает путь к драйверам. Используется очень редко и только в MS Windows XP.

[DeviceInstall]
DriverPath=drivers\video 
DriverPath=drivers\audio

Пример листинга файла autorun.inf

[править | править код]
[autorun]
; точка с запятой - это комментарий (также комментариями являются любые сторонние символы и неизвестные команды)
shellexecute=readme.txt
action=Studio
icon=usb.ico
description=Inc_drive
label=Inc_drive
shell\about=ReadMe
shell\about\command=Notepad.exe readme.txt

[Content]
MusicFiles=false
PictureFiles=false
VideoFiles=false

[ExclusiveContentPaths]
\Multimedia\Video
\Multimedia\Music
\Multimedia\Pictures

[IgnoreContentPaths]
\Portable
\Documents
\Install
  1. Инструкция к материнским платам Asus
  2. Эволюция руткитов - Securelist. Дата обращения: 19 мая 2020. Архивировано 27 октября 2020 года.
  3. Stertor. [programmersforum.ru (тема удалена) ].
  4. National Cyber Alert System. Technical Cyber Security Alert TA09-020A. Дата обращения: 14 октября 2009. Архивировано 24 февраля 2009 года.
  5. Количество вредоносных атак на Vista и XP снизилось более чем на 60% | Новости Software - 3DNews - Daily Digital Digest. Дата обращения: 4 января 2012. Архивировано 29 января 2012 года.