воскресенье, 22 августа 2010 г.

Windows XP Home без антивирусов

Недавно прочитал топики "Windows-компьютер без антивирусов" и "Настройка групповых политик ограниченного использования программ в Windows 7"... И подумал "А ведь не мало мелких и средних компаний используют Windows XP Home Edition, а там такие трюки не прокатят." Поэтому сегодя хочу поделиться, как я настраивал Windows XP Home Edition, чтобы не использовать антивирусы, а точнее свести к минимуму вероятность заражения.


Все началось с того, что в одной конторе, что я до не давнего времени обслуживал, постоянно были проблемы с вирусами. На антивирусы начальство денег давать не хотело, везде стояли хоумы, автозапуски с дисков и флешек были заблокированы, 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, выделить ее, выбрать меню Файл -> Загрузить куст..., в диалоге открытия файла найти файл NTUSER.DAT в каталоге юзера, под именем которого был сделан этот косяк, и нажать кнопку "Открыть". После чего найти и удалить параметр RestrictRun либо присвоить ему значение 0, а потом перезагрузиться.
Спасибо xn__p2a


В дальнейшем можно добавлять программы в 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. Поэтому приходится выходить из под учетной записи юзера, входить под админом, давать юзер
    91; админские права, входить под юзером, вносить правки в реестр, опять выходить, снова входить админом, отбирать админские права у юзера %) Либо же из под админа через ветку 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, которые являются "оберткой" для CreateProcess, проверяю ключ RestrictRun. Таким образом предложенный метод защитит только от несанкционированного запуска программ только самим пользователем, а так же от тех вирусов, которые пытаются что-то запустить через ShellExecute (коих большинство). Подробнее про ShellExecute и RestrictRun можно почитать тут (там речь идет про LockWin, но сам механизм работы RestrictRun описан хорошо).
Спасибо shiko_1st.
3 Для исследования я использовал программы Process Explorer и Process Monitor от Марка Руссиновича (Mark Russinovich).



UPD1: Для ограничения запуска программ только из Program Files можно использовать утилиту SteadyState от Microsoft. Спасибо kondorkm

UPD2: Для управления правами доступа в домашней винде в состав входит консольная утилита cacls.exe, а так же:
xcacls.vbs — скачивается с сайта MS
xcacls.exe — входит в пакет Windows Support Tools
subinacl.exe — входит в пакет Windows Resource Kit Tools
Спасибо xn__p2a



PS: Решил перепостить свой топик с хабра, дабы не потерялся.






Информация с сайта http://angel2s2.blogspot.com/. Если Вы читаете информацию на другом сайте, пожалуйста свяжитесь с автором сайта http://angel2s2.blogspot.com/.

14 комментариев:

  1. Здравствуйте. Извините что не по теме, но я хотел задать вам вопрос. Кажется вы хорошо разбираетесь в линуксах. Я хочу перейти на линукс, скачал ОпенСУСЕ. 11.3. Четыре гигабайта, полный образ дистрибутива со всеми прикладными программами. Установил рядом с Виндовс 7. Производитель моего компьютера предоставил вместе с компьютером диски с драйверами для видеокарты, материнской платы и для чипсета для материнской платы. Все эти драйвера только для Виндовс. Так вот, я установил, всё работает (Сусе). Видимо в сусе уже есть драйвера для видеокарты ( у меня НВидия) и моей материнской платы и для прочего "железа", в том числе жёстких дисков. Но я точно знаю что в ней нет драйверов для чипсета материнской платы. Видите ли когда я устанавил Виндовс, я сразу установил все драйвера с дисков. И вот когда я устанавливал драйвера для чипсета, в этот момент мой экран "моргнул" а звук вентилятора (процессора, я так думаю) изменился, стал что ли медленнее. А в сусе такой же звук как до установки в Винде. То есть можно сделать вывод, что в Сусе нет драйверов для чипсета. Разница - до загрузки системы, звук один (блока), когда загружается Винда звук становится медленнее. А когда загружается Сусе звук не меняется вообще. Это ничего что мой комп будет работать без дров на Сусе? Это не повредит моему компьютеру? В Виндовс блок работает тише (с дровами же). Извините что так много букв.

    ОтветитьУдалить
  2. Под "медленнее" вы имели ввиду тише?

    Драйвер на чипсет скорее всего включает управление скоростью вращения кулера, которое по умолчанию не активируется, т.е. реализовано на программном, а не на аппаратном, уровне (не совсем верно, но так думаю понятнее будет вам). А Linux просто не знает ваш чипсет или его модификацию, поэтому и шум больше от кулера. Думаю вам надо просто активировать/установить соответствующий модуль ядра (т.е. драйвер), отвечающий за это дело.

    Кстати, на видео карту драйвера (родные) у вас скорее всего не стоят, т.к. они являются проприетраными и в комплекте дистрибутивов, как правило, не поставляются. А стоит у вас драйвер vesa (универсальный OpenSource драйвер для видео карт). Поищите драйвер (по слову nvidia) в менеджере управления пакетами (не помню, как он называется в сусе) и установите его. Либо скачайте с сайта нвидиа rpm пакет для своего дистрибутива, а потом его поставьте. После этого, шум у вас может стать тише.

    Если не поможет, уточните слующее...
    Какая у вас материнаская плата (в частности чипсет)? И видео карта (т.к. экран моргнул, то это и видяшка может быть)? Т.ж. напишите какой у вас процессор.

    ОтветитьУдалить
  3. Angel2S2 Спасибо, что откликнулись на мою проблему. На счёт драйвера для видеокарты: спасибо я скачал с сайта НВидия для линукс - установился. Звук по прежнему, значит дело в драйверах к чипсету. Я посетил сайт моего изготовилеля материнской платы, но не нашёл драйверов под линукс.

    Изготовитель м. п.: MICRO-STAR INTERNATIONAL CO.,LTD, сокращённо MSI, сайт www.msi.com, русский сайт: http://ru.msi.com/index.shtml

    Процессор:
    Ядра 2
    Потоки 2
    Название Intel Core 2 Duo E8400
    Кодовое имя Wolfdale
    Конструктив Socket 775 LGA
    Техпроцесс 45nm
    Спецификация Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz

    В общем ситуация такая - большинство драйверов есть, только к чипсету нет.. У вас по моему тоже линукс? Убунту? А как вы решали проблему драйверов к материнской плате, видеоплате? У вас такой ситуации не было как у меня? Как вы думаете, это не критично для "железа"? В принципе это не смертельно? Интересно узнать ваше мнение.

    ОтветитьУдалить
  4. Если я вас правильно понял, под "медленне" вы имели ввиду "тише", то скорее всего у вас просто кулер работает на полной скорости. Это в принципе не опасно, если не считать, что кулер быстрее изнашивается. В принципе, потому что не известно, в чем дело именно. Если греестся сильно CPU или GPU (были проблемы с каким-то видяхами, детали уже не помню), из-за чего кулер работает на полную, то это уже не хорошо (не уверен, но проверить не помешает). Чтобы проверить температуру, можете поставить пакет lm-sensors, потом выполнить в терминале sensors-detect, после чего sensors, в результате увидите температуру устройств, которые lm-sensors смог обнаружить (и которые он знает). Еще есть графическая утилита HardInfo, в ней раздел Devices -> Sensors. Ставьте через менеджер пакетов.

    Да, у меня GNU/Linux Ubuntu 10.04. OpenSUSE видел всего один раз, года 3 назад, когда выбирал себе дистрибутив и только начинал учить Linux.
    Проблем с драйверами на моих обоих ноутах не было, только драйвера на видеокарту ставил, все остальное само подхватывалось.
    Нет, такой ситуации у меня не было.
    Если температура нормальная, то не критично и не смертельно. Единственное, кулер будет немного быстрее изнашиваться.

    Обычно в Linux'е чипсеты/мамки/процессоры/etc подхватываются "из коробки" (модули обычно поставляются с ядром/дистрибутивом). Просто драйвера для них могут быть не такие функциональные, как в винде, например, нет поддержки управления скорость вращения кулера, т.к. производитель железа не всегда раскрывает необходимые детали, чтобы написать полноценный модуль (драйвер). Поэтому разработчикам Linux требуется время, чтобы изучить новую "железку" и написать для нее модули (драйверы). Не все производители и не всегда заботятся о поддержке Linux.

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

    Попробуйте поискать вашу мамку/чипсет тут - http://hardware4linux.info/systems/ (подобных сайтов море, гугл их выдает по запросу "Linux Hardware Compatibility"). Т.ж. список совместимых мамок, которые поддерживаются в OpenSuse - http://en.opensuse.org/HCL:Motherboards . Еще можете глянуть тут - http://linuxhcl.org/browse/search?keywords=sis&x=0&y=0 .

    ОтветитьУдалить
  5. Ещё раз спасибо Angel2S2 за помощь. Да, я имел ввиду именно, что кулер работает тише при установленных драйверах и чуть громче при не установленных. Я тоже склоняюсь к мнению, что это не смертельно для кулера. Так что я буду переучиваться на работу с линуксом. А то, что производитель "железа" пишет дрова только под Винду, то это дискриминация! Подать бы в суд на них за монополию и косвенному приучению к продукту под названием "windows". Ваши ссылки я изучу. Ещё раз спасибо за помощь.

    ОтветитьУдалить
  6. AmoN

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

    ОтветитьУдалить
  7. Спасибо, Игорь.

    Антивирь от M$ бесплатен только для дома. В организациях его нельзя ставить.

    Я в последнее время ставил Comodo Internet Security, который бесплатный. У них на сайте написано, что для компаний он тоже бесплатен. А там и фаер и антивирь в одном флаконе :)
    Еще можно ClamWin + Spyware Terminator. Последний умеет интегрировать первый. Не плохая связка получается в принципе :)

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

    ОтветитьУдалить
  9. Хе... Обычно когда приходят маски-шоу с оредром на обыск (если только на осмотр, то не имеют права, хотя могут), то могут и коммуникатор/флешку/мобилку/ноут/etc, который принадлежит сотруднику, изъять. Потом надо будет доказывать, что это твое личное, а не фирме принадлежит. Если же документы о покупке ноута есть, где твоя фамилия пробита, то тогда уже фиг знает как поступят.

    ОтветитьУдалить
  10. Я координально защитился от вирусов, полностью отказавшись от винды 5 лет назад. :) Постоянно подкалываю про контрацепцию знакомых форточников. Линукс - это, все таки, не реально круто. :)

    ОтветитьУдалить
  11. Полностью согласен, сам уже четвертый год с пингвином в обнимку живу :)

    ОтветитьУдалить
  12. Прикольно, если прочитавший заметку юзер-торопыга дочитает только до слов ВАЖНО =))

    ОтветитьУдалить
  13. В смысле если будет строка за строкой все выполнять на рабочей системе, не прочитав предварительно весь пост?
    Хахахаха :))) Представил себе :) Ну... Тогда он будет сам себе злобный буратино :)

    ОтветитьУдалить