Приветствую Вас Гость | RSS

ALLDev

Воскресенье, 08.09.2024, 05:08
Главная » Статьи » Системное администрирование » Windows

Windows XP Home без антивирусов
Все началось с того, что в одной конторе, что я до не давнего времени обслуживал, постоянно были проблемы с вирусами. На антивирусы начальство денег давать не хотело, везде стояли хоумы, автозапуски с дисков и флешек были заблокированы, IE тоже… Но это не помогало. В конце концов мне все это надоело и я пошел на «крайний шаг»…

В Windows есть возможность создать «белый» или «черный список». «Черный список» подразумевает, что программы занесенные в него запускаться не будут, а «белый», что запускаться будут только те программы, которые занесены в него + необходимые для работы системы.


«Белый список»


Основываясь на «белом списке», можно сделать не плохую защиту от малвари. Чтобы его создать нужно выполнить, как минимум, два шага:
  1. В ветке реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVerson\Policies\Explorer нужно создать параметр RestrictRun типа DWORD (REG_DWORD) со значением 1.
  2. В ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ создать ключ RestrictRun, а в нем параметр 01 типа STRING (REG_SZ) со значением regedit.exe.
Чтобы изменения вступили в силу, нужно перезагрузить компьютер.

ВАЖНО! Если выполнить пункт 1, но НЕ выполнить пункт 2, то после перезагрузки вы не сможете запустить никакую программу. Чтобы это исправить, вам нужно будет войти под другим пользователем с админскими правами, открыть редактор реестра, найти в ветке HKEY_USERS подветку пользователя, под именем которого был сделан этот косяк и удалить параметр RestrictRun либо присвоить ему значение 0, после чего перезагрузиться.

В дальнейшем можно добавлять программы в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun аналогично пункту 2. При этом перезагрузка уже не нужна, изменения вступают в силу сразу.

Чтобы не лезть в редактор реестра каждый раз, я создал reg-файл, в который занес список программ и в дальнейшем, по мере необходимости, подправлял его, а после правки запускал.
Ниже приведу не большой кусочек этого файла:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RestrictRun"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
"0"="regedit.exe"
"1"="notepad.exe"
"2"="wupdmgr.exe"
"3"="cleanmgr.exe"
"4"="wordpad.exe"
"5"="calc.exe"
"6"="mstsc.exe"
"7"="taskmgr.exe"
"8"="7zFM.exe"
"9"="7zG.exe"
"10"="7z.exe"
"11"="firefox.exe"
"12"="java.exe"
"13"="FlashUtil10d.exe"
"14"="NPSWF32_FlashUtil.exe"
"15"="thunderbird.exe"
"16"="soffice.exe"
"17"="soffice.bin"
"18"="python.exe"
"19"="sbase.exe"
"20"="scalc.exe"
"21"="sdraw.exe"
"22"="simpress.exe"
"23"="smath.exe"
"24"="swriter.exe"
А сам файл целиким можно скачать тут. Однако, стоит имейть ввиду, что мой вариант вредли подойдет вам. У меня же файлы различались от компа к компу, но обычно первые 24 проги были всегда.


Недостатки

  1. Данный метод не защитит компьютер от вирусов, которые не создают файлы на диске (например, мс-бласт), а также от проникающих путем «запуска» динамической библиотеки2 (например, конфикер).
  2. Сложность реализации. Приходится исследовать3 программы, выяснять какие файлы они запускаю при старте и в процессе работы, чтобы их так же включить в «белый список».
  3. Неудобство внесения изменений. В ключ RestrictRun юзер писать не может, не смотря на то, что изменения призводятся в ветке HKEY_CURRENT_USER. Поэтому приходится выходить из под учетной записи юзера, входить под админом, давать юзеру админские права, входить под юзером, вносить правки в реестр, опять выходить, снова входить админом, отбирать админские права у юзера %) Либо же из под админа через ветку HKEY_USERS, как было описано выше.
  4. Нельзя указать полные пути. Если файл вируса будет называть так же, как какая-нибудь программа из «белого списка», то он (вирус) будет запущен. Так же юзер может сам переименовать файл в разрешенный и запускать таким образом (почти) любые программы.

Практика


За два года использования данного «трюка» вирусов замечено не было. На каждом компе стоял ClamWin, который по вечерам сканировал диски. Так же раз в месяц я проверял системы антивирусами в оффлайне. Единственная проблема — не довольство юзеров, которое было быстро пресечено путем объяснения начальству «что, для чего да как».


«Черный список»


Раз заикнулся в начале о «черном списке», то расскажу немного и про него. Он может быть полезен, когда надо запретить запуск нескольких программ. Создается он так же, как и «белый список», в два шага:
  1. В ветке реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVerson\Policies\Explorer нужно создать параметр DisallowRun типа DWORD (REG_DWORD) со значением 1.
  2. В ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ создать ключ DisallowRun, а в нем параметр 01 типа STRING (REG_SZ) со значением, например, чтобы запретить запуск калькулятора, calc.exe.
Чтобы изменения вступили в силу, нужно перезагрузить компьютер.




1 Названия параметров должны состоять из чисел. Отсчет начинается с нуля. Числа должны идти по порядку.
2 Винда контролирует запуск прог за счет того, что функции ShellExecute и ShellExecuteEx, которые запускаю процессы, проверяю ключ RestrictRun. А какие функции вызываются при запуске через dll-ку я не знаю (возможно тут используется CreateProcess или что-то в этом роде), поэтому не уверен, что через dll-ку может запуститься зараза (например, конфикер). Подробнее про это можно почитать тут (там речь идет про LockWin, но сам механизм работы RestrictRun описан хорошо).
3 Для исследования я использовал программы Process Explorer и Process Monitor.
Категория: Windows | Добавил: artkil (21.08.2010)
Просмотров: 2068 | Теги: админинг, windows, regestry, реестр | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: