Автозагрузка в Windows
Сегодня сложно найти организацию, которая не подвергалась бы вирусным атакам. И хотя практически везде уже установлено антивирусное программное обеспечение, иногда возникает необходимость вручную посмотреть, где же в реестре запускают программы, причем даже не обязательно вредоносные. При поиске резидентных вредоносных программ нас интересуют следующие вопросы.
- Как осуществляется автозагрузка?
- Где найти список программ, загружаемых автоматически?
- Как отключить соответствующий список автозагрузки?
Именно этому будет посвящена данная статья.
Способы автозагрузки
Способов автозагрузки существует много. Ниже приведены некоторые из вариантов. Надеюсь, что это сможет вам помочь в розыске и удалении вредоносных программ из автозагрузки.
Реестр
В реестре Windows 7 автозагрузка представлена в нескольких разделах:
- [HKEY_LOCALMACHINE\SOFT-WARE\Microsoft\Windows\CurrentVersion\Run] — программы, запускаемые при регистрации в системе. Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе (см. экран 1).
Использование групповой политики для автозапуска
Откройте оснастку «Групповая политика» (gpedit.msc), перейдите в раздел «Конфигурация компьютера, Административные шаблоны, Система». В правой части оснастки перейдите в узел «Вход в систему» (см. экран 2).
По умолчанию эта политика не задана, но можно добавить туда программу: включаем политику, нажимаем кнопку «Показать — Добавить», указываем путь к программе, при этом если запускаемая программа находится в папке WINDOWS\System32\, то можно указать только название программы, иначе придется вводить полный путь к ней. Фактически в данном разделе локальной групповой политики можно указать дополнительную программу или документ, который будет выполняться при регистрации пользователя в системе.
Данный пункт политики доступен в разделах конфигурации компьютера и конфигурации пользователя. Если заданы оба пункта политики, то вначале будет запущена программа, указанная в разделе конфигурации компьютера, а затем уже пользователя. При этом в системном реестре в разделе [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies] создается подраздел\Explorer\Run с параметрами добавленных программ.
[HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\ policies\Explorer\Run] «1»=»notepad.exe»
В итоге при регистрации в системе происходит запуск приложения «Блокнот» (см. экран 3).
Аналогично задается автозапуск для текущих пользователей, в оснастке «Групповая политика» это путь «Конфигурация пользователя — Административные шаблоны — Система» (см.экран 2), а в реестре раздел [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run].
При этом программы из данного списка не отображаются в списке программ, доступных для отключения в msconfig.exe, а также определяются не всеми менеджерами автозагрузки.
Игнорирование списков автозагрузки программ, выполняемых однократно
Настраивается с помощью групповой политики в разделе «Конфигурация компьютера, Административные шаблоны, Система, Вход в систему» через параметр «Не обрабатывать список однократного запуска программ». Если эту политику включить, то не будут запускаться программы из списка [HKEY_LOCAL_MACHINE\
Software\Microsoft\Windows\Current
Version\RunOnce]. Если эта политика включена, в реестре создается следующий параметр:
[HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\ policies\Explorer] «DisableLocalMachineRunOnce»= dword:00000001
Так же настраивается политика для текущих пользователей: «Конфигурация пользователя, Административные шаблоны, Система, Вход в систему», параметр «Не обрабатывать список однократного запуска программ». Параметры реестра:
[HKEY_CURRENT_USER\SOFTWARE\ Microsoft\Windows\CurrentVersion\ policies\Explorer] «DisableLocalUserRunOnce»= dword:00000001
Назначенные задания
Программы могут запускаться с помощью «Планировщика заданий». Посмотреть список установленных заданий, а также добавить новое можно так: указываем в меню «Пуск», «Все программы», «Стандартные», «Служебные», «Планировщик заданий» и видим окно «Планировщика заданий», в котором отображены назначенные задания (см. экран 4).
Чтобы добавить новое задание, нужно в панели «Действия» выбрать пункт «Создать простую задачу» (см. экран 5).
Запуск программ с помощью этого мастера возможен однократно, при регистрации в Windows, при включении компьютера, а также по расписанию.
Папка «Автозагрузка»
Папка, в которой хранятся ярлыки для программ, запускаемых после регистрации пользователя в системе. Ярлыки в эту папку могут добавляться программами при их установке или пользователем. Существует две папки — общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
- \Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup — это папка, программы из которой будут запускаться для всех пользователей компьютера;
- %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup — это папка, программы из которой будут запускаться для текущего пользователя.
Посмотреть, какие программы у вас запускаются таким способом, можно, открыв меню «Пуск», далее выбрав «Все программы», «Автозагрузка». Если вы создадите в этой папке ярлык для какой-то программы, она будет запускаться автоматически после регистрации пользователя в системе.
Смена папки автозагрузки
Windows считывает данные о пути к папке «Автозагрузка» из реестра. Этот путь прописан в следующих разделах:
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] «Common Startup»=»%ProgramData%\Microsoft \ Windows\Start Menu\Programs\Startup» — для всех пользователей системы.
- [HKEY_CURRENT_USER\Soft-ware\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]»Startup»=»%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup» — для текущего пользователя. Сменив путь к папке, мы получим автозагрузку всех программ из указанной папки.
Пример: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User ShellFolders] «Startup»=»c:\mystartup» — система загрузит все программы, ярлыки которых находятся в папке c:\mystartup\, при этом папка «Автозагрузка» все так же будет отображаться в меню «Пуск», а если у пользователя в ней ничего не было, то он и не заметит подмены.
Скрытые уязвимости
Подмена ярлыка для программы из списка автозагрузки выполняется просто. Допустим, у вас установлено приложение Adobe Acrobat. Тогда в папке «Автозагрузка» у вас будет находиться ярлык «Adobe Reader Speed Launch», он устанавливается туда по умолчанию. Но вовсе не обязательно этот ярлык ссылается именно на соответствующее приложение — вместо него может быть запущена любая другая программа, тем более что на функциональности Acrobat это не скажется.
Добавление программы к программе, запускаемой из списка автозагрузки, есть модификация предыдущего варианта — одновременно с загрузкой какой-либо программы из списка автозагрузки у вас будет стартовать другая программа. Дело в том, что можно «склеить» два исполняемых файла в один, и они будут запускаться одновременно. Существуют специальные программы для такой «склейки». Или ярлык может ссылаться на командный файл, из которого и будут запускаться как оригинальная программа из списка, так и добавленные посторонние программы.
Посмотреть список автоматически загружаемых программ можно, открыв окно «Сведения о системе». Для этого откройте меню «Пуск», «Все программы», «Стандартные», «Служебные», «Сведения о системе» или наберите msinfo32.exe в командной строке и перейдите в раздел «Программная среда — Автоматически загружаемые программы». Приложение «Свойства системы» отображает группы автозагрузки из реестра и папок «Автозагрузка» (см. экран 6).
Другая программа, позволяющая посмотреть список программ автозагрузки, — «Настройка системы» (для запуска наберите msconfig.exe из командной строки). Эта программа, кроме просмотра списка автозагрузки, предоставляет возможность отключить все пункты автозагрузки (вкладка «Общие») или выборочных программ (вкладка «Автозагрузка»).
Сведения, приведенные в данной статье, нельзя считать исчерпывающими, однако, надеюсь, они помогут вам в нелегкой борьбе с вредоносными программами.
Владимир Безмалый — специалист по обеспечению безопасности, MVP Consumer Security
Настройка автозагрузки приложений в операционных системах Windows
У многих пользователей после продолжительной работы с операционной системой и после установки/удалений разнообразных приложений часто возникают вопросы по автозагрузке приложений. Вместе с операционной системой могут загружаться ненужные для вас приложения или наоборот, приложение которое должно запускаться автоматически не наблюдается в области уведомлений после загрузки системы, а также производительность системы и время запуска может значительно ухудшиться. Для того чтобы избежать этих проблем я предлагаю разобраться с процессами, которые выполняются при загрузке операционной системы и с автозагрузкой установленных приложений.
Загрузка операционной системы
Важно отметить, что на самом деле загрузка Windows начинается не с того момента как вы подошли к персональному компьютеру и включили или перезагрузили его, процесс загрузки операционной системы на самом деле начинается непосредственно с ее установки. В ходе выполнения процесса установки, жесткий диск подготавливается для своего участия в процессе загрузки системы. В это время создаются компоненты, которые участвуют в загрузке базовой системы ввода/вывода (BIOS). К этим компонентам можно отнести:
- Winload.exe – загружает процесс Ntoskrnl.exe и зависимые от него библиотеки, а также загружает драйвера установленного оборудования;
- Winresume.exe – позволяет восстанавливать систему после длительного бездействия (гибернации) и отвечает за файл гибернации (Hiberfil.exe);
- Ntoskrnl.exe – инициализирует исполнительные подсистемы загрузки и запуск системных драйверов для устройств, а также подготавливает систему для работы со штатными приложениями и загружает процесс smss.exe;
- Hal.dll — является неотъемлемой частью кода, исполняемого в режиме ядра, которая запускается загрузочным модулем Winload.exe, загружаемым совместно с ядром;
- Smss.exe (Session Manager Subsystem Service) – подсистема управления сессиями в Windows. Этот компонент не входит в ядро Windows, но его работа исключительно важна для системы;
- Wininit.exe – загружает Service control manager (SCM), Local Security Authority process (LSASS), и local session manager (LSM). Этот компонент также инициализирует системный реестр и выполняет определенные задачи в режиме инициализации;
- Winlogon.exe – управляет безопасным входом пользователя и запускает LogonUI.exe;
- Logonui.exe – отображает диалог входа пользователя в систему;
- Services.exe – загружает и инициализирует системные службы и драйверы, установленные по умолчанию.
Важно понимать, что драйверы устройств являются важнейшей частью процесса загрузки. При указании раздела операционной системы, установочная программа записывает загрузочный сектор. Загрузочный сектор Windows дает информацию о структуре и формате раздела файлу Bootngr. Bootmgr выполняет свою работу в то время, когда операционная система начинает свой жизненный цикл в режиме реального времени. Затем Bootmgr вычитывает файл BCD из папки \Boot, расположенной в системном разделе. Если в BCD файле указаны настройки о выходе из режима гибернации, то Bootmgr запускает процесс Winresume.exe, который будет читать содержимое файла для возобновления системы из спящего режима.
Если в записи BCD существует две и более системы, то Bootmgr отображает пользователю загрузочное меню для выбора операционной системы. После выбора системы или, в том случае, если у вас установлена только одна операционная система, загружается процесс Winload.exe. Этот процесс загружает файлы, расположенные в загрузочном разделе и стартует инициализацию ядра. Winload.exe выполняет следующие действия:
- Загружает ядро и образы HAL (Ntoskrnl.exe и Hal.dll), а также все их зависимости. Если у Winload.exe не получается запустить образы HAL или их зависимости, вы увидите соответствующее предупреждение;
- Вычитывает файлы VGA шрифтов (Vgaoem.fon);
- Вычитывает файлы национальных языковых систем (National Language System — NAL) для использования интернационализации;
- Вычитывает раздел реестра \Windows\System32\Config\System для определения драйверов устройств необходимых для загрузки операционной системы;
- Сканирует раздел системного реестра SYSTEM и находит все драйверы устройств загрузки. Эти драйверы указаны в реестре со значением SERVICE_BOOT_START (0) в разделе HKLM\SYSTEM\CurrentControlSet\Services;
Затем начинается инициализация ядра и исполнительных подсистем. После того как Windows вызывает Ntoskrnl, он передает данные параметров блока загрузчиков, которые содержат системные пути загрузочного раздела сгенерированного Winload для описания физической памяти в системе. По завершению двух этапов (Session 0 и Session 1) инициализации ядра стартуют процессы Smss.exe, Csrss.exe и Wininit. Smss вызывает исполнительный менеджер конфигурации подсистемы для окончания инициализации системного реестра.
После этого запускается процесс запуска оболочки системы Winlogon, параметры которого указаны в разделе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit. Winlogon уведомляет систему о зарегистрированных поставщиках сетевых услуг, прошедших идентификацию поставщиков сетей Microsoft (Mpr.dll).
Последним этапом загрузки системы является процесс автоматического запуска приложений при загрузке и входе в операционную систему.
Управление автозапуском
Большинство приложений, которые автоматически запускаются с операционной системой, вы можете увидеть в области уведомлений. О методах настройки области уведомлений я рассказывал в статье «Настройка области уведомлений Windows 7», поэтому в рамках этой статьи настройка области уведомлений рассматриваться не будет. Для управления приложениями автозапуска, пользователи операционных систем Windows обычно используют утилиту «Конфигурация системы».
Утилита «Конфигурация системы»
Программа «Конфигурация системы» — это утилита операционной системы Windows, предназначенная для управления автоматически запускаемыми программами и загрузкой системы, а также определения проблем, которые могут помешать запуску операционной системы в обычном режиме. При помощи этой утилиты вы можете изменять параметры загрузки, отключать службы и автоматически запускаемые программы. Эта утилита впервые появилась в операционной системе Windows 98, предоставляя удобный интерфейс для выполнения своих задач. Утилита вызывается файлом MSConfig.exe, который расположен в папке System32 раздела с установленной операционной системой. Огромным недостатком этой утилиты является отсутствие возможности добавления нового элемента в автозапуск. Для того чтобы открыть эту утилиту выполните любое из следующих действий:
- Нажмите на кнопку «Пуск» для открытия меню, в поле поиска введите msconfig и в найденных результатах откройте приложение;
- Воспользуйтесь комбинацией клавиш
+R для открытия диалога «Выполнить». В диалоговом окне «Выполнить», в поле «Открыть» введите msconfig и нажмите на кнопку «ОК».
На следующем скриншоте отображена утилита «Конфигурация системы»:
В текущей утилите существует пять вкладок:
- Общие. На этой вкладке вы можете выбрать вариант загрузки: «Обычный запуск» – операционная система запускается обычным способом, «Диагностический запуск» — система загружается только с использованием основных служб и драйверов, а также «Выборочный запуск» — помимо основных служб и драйверов, с операционной системой еще загружаются выбранные службы и автоматически загружаемые программы.
- Загрузка. На этой вкладке вы можете найти параметры загрузки операционной системы, а также дополнительные параметры отладки, такие как «Без GUI» — при загрузке не отображается экран приветствия, «Информация об ОС» — в процессе загрузки операционной системы отображаются загружаемые драйвера и прочее.
- Службы. Эта вкладка содержит список только тех служб, которые запускаются автоматически вместе с операционной системой, а также текущее состояние каждой службы. В связи с тем, что установленное программное обеспечение может устанавливать свои службы, у вас без базовых знаний системных служб могут возникнуть проблемы с поиском служб, не установленных с операционной системой по умолчанию. Установив флажок «Не отображать службы Майкрософт», в списке служб будут отображаться только приложения сторонних разработчиков. Для того чтобы отключить службу достаточно снять с нее флажок.
- Автозагрузка. Вкладка «Автозагрузка» отвечает за загрузку приложений, а так же определённых служебных утилит, загружаемых не через службы. Как видно на предыдущем скриншоте данная вкладка разбита на пять колонок. Эти колонки были созданы для того, чтобы вы могли знать название автоматически загружаемого приложения, издателя данной программы, путь, указывающий, откуда загружается та или иная программа, расположение раздела реестра или ярлыка программы, а также дату, когда программа была отключена из автозагрузки. Для того чтобы определенный элемент автозагрузки не запускался во время следующей загрузки, снимите соответствующий флажок
- Сервис. На этой вкладке вы можете найти список диагностических средств, позволяющих следить за работоспособностью вашей системы. Для запуска любого средства, отображенного в этой вкладке, выделите его и нажмите на кнопку «Запуск».
Более опытные пользователи, возможно, захотят не только отключать ненужные программы автозапуска, но и добавлять собственные программы для автоматического запуска вместе с операционной системой. Для этого нужно будет воспользоваться средствами системного реестра.
Управление автозапуском средствами системного реестра
В системном реестре вы можете найти параметры автозапуска приложений для учетной записи компьютера и учетной записи текущего пользователя. Приложения, которые запускаются с учетной записью компьютера, не зависят от того, под какой записью пользователь выполнил вход в систему. Эти параметры вы можете найти в разделе HKLM\Software\Microsoft\Windows\CurrentVersion\Run. Приложения, которые запускаются с учетной записью пользователя, для каждой учетной записи могут отличаться. Эти параметры вы можете найти в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Run.
Для того чтобы добавить новое приложение (программу «Редактор реестра») в автозапуск операционной системы Windows для всех существующих пользователей, выполните следующие действия:
- Откройте редактор реестра;
- Перейдите в раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run;
Но для более опытных пользователей операционных систем Windows, работы утилиты «Конфигурация системы» и двух разделов реестра может быть недостаточно, так как неизвестно что загружалось вместе с системой помимо программ автозапуска и системных служб. Для того чтобы узнать обо всех процессах, которые были запущены вместе с вашей системой, вам поможет утилита Autoruns от Sysinternals.
Работа с утилитой Autoruns
Программа Autoruns от Марка Руссиновича и Брайса Когсуэлла помогает проверять максимальное количество размещений автозапуска на наличие программ, настроенных на запуск в процессе загрузки или входа в систему, в отличие от любых других программ мониторинга автозапуска. Сейчас доступна версия 8.61 и ее можно загрузить по следующей ссылке. Эта программа абсолютно бесплатна и к одному из ее преимуществ можно отнести то, что все программы отображаются в том порядке, в каком операционная система обрабатывает их. На самом деле, такие программы могут располагаться не только в разделах Run, а также в RunOnce, ShellExecuteHooks, ContextMenuHandlers и в других разделах системного реестра. С данной программой можно работать как под 32-разрядными, так и под 64-разрядными операционными системами Windows.
Перед запуском этой утилиты в первый раз отобразится диалоговое окно с лицензионным соглашением. Прочитайте его и нажмите на кнопку «Agree».
После загрузки текущей программы вы увидите приложения, настроенные для автоматического запуска, где вы можете найти названия приложений и разделы системного реестра, в которых хранятся сведения об их запуске, краткое описание приложения, издателя, а также путь к запускаемому файлу или библиотеке.
Элементы, которые отображает программа Autoruns, принадлежат к нескольким категориям, которые можно просмотреть на 18-ти вкладках программы. В данной статье мы не будем рассматривать каждую вкладку, но стоит отметить, что к категориям программы можно отнести: объекты, автоматически запускаемые при входе в систему, дополнительные компоненты проводника, дополнительные компоненты Internet Explorer, задачи планировщика, библиотеки DLL инициализации приложений, объекты, исполняемые на ранних стадиях загрузки, службы Windows и многое другое.
На каждой вкладке вы можете:
- запустить любое выбранное приложение, дважды щелкнув на названии программы;
- открыть раздел реестра, в котором размещены параметры автозапуска приложений, дважды щелкнув мышкой на строке с разделом реестра или выбрав команду «Jump to» из контекстного меню;
- открыть диалог свойств выбранного объекта (для этого из контекстного меню выберите команду «Properties»);
- открыть Process Explorer с вкладкой «Image» для выбранного объекта, а также найти информацию об интересующем вас объекте;
- отключить объект, запускаемый автоматически, сняв соответствующий флажок;
- удалить объект при помощи команды контекстного меню или кнопки «Delete»;
- просмотреть автоматически запускаемые элементы для учетных записей других пользователей, выбрав нужный пункт меню «User».
По умолчанию, в программе Autoruns отображаются все приложения и библиотеки, запускаемые автоматически с операционной системой. Для того чтобы отображались только те приложения, которые прописаны в разделах реестра \Software\Microsoft\Windows\CurrentVersion\Run, перейдите на вкладку «Login».
Помимо приложений, запускаемых автоматически с операционной системой, вы можете просмотреть все задания, назначенные планировщиком при загрузке или входе в систему. Для этого перейдите на вкладку «Scheduled tasks». На этой вкладке, при выборе команды контекстного меню «Jump to» или двойному щелку мыши на определенном объекте откроется оснастка «Планировщик заданий» с указанной задачей.
Вы можете сохранить объекты автозапуска по нажатию на кнопку «Save» на панели инструментов или выбрав данную команду в меню «File». Отчет будет сохранен с расширением *.arn или *.txt. Для того чтобы загрузить сохраненные ранее данные программы Autoruns воспользуйтесь командой «Open» меню «File».
Использование утилиты Autoruns для управления объектами автозапуска средствами командной строки
Если вы предпочитаете работать с консолью, вы также можете воспользоваться командами утилиты Autoruns. С ее помощью вы можете выполнять те же действия, что и с утилитой Autoruns, только при помощи командной строки, выводя информацию в окно консоли или перенаправляя вывод команды в текстовый файл. В связи с тем, что данная утилита открывается только средствами командной строки, для работы с Autoruns, выполните следующие действия:
- Откройте командную строку от имени администратора;
- Перейдите в папку с загруженной утилитой Autoruns, например «C:\Program Files\Sysinternals Suite\»;
- Запустите утилиту с необходимым параметром.
Доступны следующие параметры:
-a – отображение всех элементов автозапуска;
-b – отображение информации об объектах, которые загружаются на ранних стадиях загрузки системы;
-c – экспорт отображаемых данных в CSV-файл;
-d – отображение библиотек DLL инициализации приложений;
-e – отображение расширений проводника Windows;
-g – отображение гаджетов боковой панели Windows и рабочего стола;
-h – отображение Hijacks элементов;
-i – отображение дополнительных элементов браузера Internet Explorer;
-k – отображение известных библиотек DLL;
-l – отображение элементов, запускаемых автоматически при входе в систему;
-m – не отображать объекты с цифровой подписью Microsoft;
-n – отображение поставщиков протокола Winsock;
-o – отображение элементов кодеков;
-p – отображение драйверов монитора печати;
-r – отображение поставщиков безопасности LSA;
-s – отображение служб в режиме автоматического запуска и не отключенных драйверов;
-t – отображение элементов планировщика задач;
-v – проверка цифровых подписей;
-w – отображение элементов Winlogon;
-x – экспорт отображаемых данных в XML-файл;
User – отображение автоматически запускаемых объектов для указанной учетной записи пользователя.
Например, если вам нужно просмотреть только элементы, автоматически запускаемые при входе в систему, используйте утилиту с параметром –l, как показано ниже:
Заключение
В этой статье рассказывается о настройке элементов автоматически запускаемых приложений при загрузке и входе в операционную систему Windows. Вкратце описан процесс загрузки операционной системы Windows 7, а также рассмотрены методы работы и мониторинга автозапуска средствами системной утилиты «Конфигурация системы», изменение элементов автозапуска при помощи системного реестра, принципы работы с приложениями Autoruns и консольной версией Autoruns от Sysinternals. С помощью помещенной в статье информации, вы сможете грамотно настроить автозагрузки приложений своей операционной системы.