Пользователь
18,8
рейтинг
26 июля 2010 в 08:41

Администрирование → Windows-компьютер без антивирусов

Предупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.

Каждый раз, когда меня знакомые спрашивают: «какой антивирус лучше?», я могу сказать только одно: «антивирус — как придворный шаман. Бывают лучше, бывают хуже, но определить, кто лучше камлает, не получится». Антивирус не гарантирует защиту от вирусов, более того, у него есть полное моральное право пропустить новую заразу и начать её детектить дня через 2-3 после «инцидента». Т.е. как основное средство защиты он годится не очень.

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

Теория


Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.

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

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

В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.

Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».

Модель безопасности


Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:

1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.

Эти два простых правила позволяют защитить систему от запуска вирусов пользователем — вирус не может образоваться там, куда пользователь не может писать, а туда, куда вирус сможет писать, не даст нужного эффекта — оттуда будет запрещён запуск. Заодно это защищает (на терминальном сервере) от запуска посторонних приложений с неизвестной прожорливостью по ресурсам.

Проблемы


Но за этой радужной простотой скрывается масса подводных камней.

Камень номер один: дикий софт. ПО, которое хранит исполняемые файлы в профиле пользователя, ПО, которое хочет писать «к себе в каталог». В предлагаемой модели строго действует правило: софт (исполняемые файлы) в своих каталогах, пользовательские данные и настройки в своих, и эти каталоги не пересекаются. (Фактически, это воссоздание классического юникс-вея с /usr/bin и ~, подмонтированным с запретом на +x). Сервера настраивают под задачу (а не подбирают задачи под сервер), так что наличие таких программ может автоматически означать невозможность внедрить описываемую систему. Дикого софта много, и он иногда удивляет (например, Adobe Illustrator хочет много писать в каталог Windows).

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

Камень номер три: у пользователей не будут работать ярлыки. Частично это можно решить разместив нужные ярлыки в all users, но пользователи действительно не любят, когда им запрещают создавать ярлычки. Частично это решается созданием персональных quick launch панелей, на которые пользователь не имеет прав записи (т.е. обновление их идёт по запросу пользователя).

Камень номер четыре: многие обновления не будут ставиться (так как им запрещён запуск). Для решения этой проблемы нужно раскручивать групповую политику, ставить апдейты и закручивать её обратно.

Камень номер пять: сетевые компоненты, наподобие IIS/Exchange. Они всё ещё не могут отвыкнуть от привычки писать куда попало (а в случае IIS и выполнять код откуда попало), но я надеюсь, что вы не делаете Exchange на терминальном сервере.

Другими словами — защита не даётся малой кровью.

Настройки


Запрет можно прописать в групповой политике сервера (я обычно использую политику с loopback processing и назначаю её на все терминальные сервера), или в локальной политике (gpedit.msc).

Путь к политике — Computer Configuration, Windows Settings, Security Settings, Software Restriction Policies. При первом использовании их нужно создать — правой кнопкой на Software Restriction Policies, «New Software Policies».

Сначала настраиваются пути, которые разрешены (additional rules):

Разрешается к запуску всё, что находится в c:\windows, c:\windows\system32 c:\program files. c:\documents and settings\all users\desktop, c:\documents and settings\Start menu. Всё остальное запрещено. В частности, обязательно нужно запретить запуск из корня диска, т.к. пользователи по-умолчанию могут писать в корень диска (да, это фагофича майкрософта для совместимости с старым тупым софтом). Разрешать запуск из c:\documens and settings\All users\* (оптом_ так же не следует — там лежит каталог общих документов, открытых на запись всем пользователям.

Всё, кроме перечисленного выше, запрещено. Точнее, в ходе работы может захотеться разрешить отдельные каталоги (например, сетевые шары), но следует строго соблюдать описанное правило: можно запускать — нельзя писать. Можно писать — нельзя запускать.

Запрет включается в два этапа — сначала в secruty levels (Disallowed), потом в корне Software Restriction Policy в Enforcement — в «All software files» и «All users».

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

Практическая эксплуатация


Конфигурация используется уже несколько лет без особых изменений, за это время не было ни одного случая инфицирования терминального сервера (в лучшие времена до 70 человек с IE6/7 и кучей флешек) или рабочих станций под управлением Windows XP (около трёх десятков в трёх фирмах). В в логах я периодически вижу сообщения о запрете запуска того или иного файла (чаще всего из temporary internet files). За это время было обнаружена масса ПО несовместимого с конфигурацией — от Autodesk view (просмотровщик DWG, кое-как работает, но с матюгами) до Thunderbird (который пытается хранить плагины в профиле у пользователя).

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

Более того, в этом режиме работает даже один компьютер из-под администратора (специфика применяемого ПО) — за это время не было ни одного удачного инфицирования (хотя теоретически в таких условиях оно возможно).

Windows 2008/7/Vista


Тут я уже не очень уверенно могу говорить, но в том небольшом объёме, сколько я их смотрел, там поменяли имена каталогов (в частности, для приложений и all users), что требует существенной переработки политик (с пол-пинка windows 7 с описанными выше путями пользователю не позволяла запускать программы).
Георгий Шуклин @amarao
карма
272,0
рейтинг 18,8
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (133)

  • +2
    Что-то похожее я когда-то использовать на 2000 винде и стареньком компе: жалко было давать антивирусу жрать проц.

    Работало. За полгода не одной заразы не подсело. Обходился без груповой политики
    • +5
      мне и с современным железом жалко антивирус содержать.
      Использую те же методы защиты как описано в статье, рекламу блокирую браузером, по идиотским ссылкам не захожу… Работает великолепно.
      • +1
        Ну, есть некоторая разница «не захожу» и толпой… далёких от IT, назовём их так, сотрудников отдела продаж и бухгалтерии.
      • +5
        У меня сейчас метод кординальней.
        Но для программистов вышеописанный метод не подходит
      • +4
        Не использую антивирус без особых мер предосторожности (кроме очевидных для меня, т.е резать рекламу, не ходить по непроверенным местам, заплатка на autorun итд) вот уже за 7-8 лет вирусов на моей машине почти не было, один раз пустил сам когда напился…

        НО ЕСТЬ ОДНО НО…
        Одно дело личный комп человека с опытом, другое дело «домохозяйка», таким думаю даже на Gentoo будет нужен антивирь, ибо наверняка умудрятся и скомпилить, и из под рута запустить, и.т.д.
        • +2
          Не поможет антивирус.

          cat README
          Для запуска программы «vkontakte-rating.sh» необходимо отключить антивирус.
      • +1
        На самом деле «не ходить по левым ссылкам» — не решает проблему.
        Жена поймала винлокер недавно во время простого гугления какого-то вопроса…
        • 0
          А гугл не ссылку разве выдал? Сразу винлок в систему поставил? =)))
          По твоему гугл выдает только чистые проверенные ссылки?
          • 0
            Я этого не говорил. Я всего лишь сказал, что необязательно ходить по _идиотским_ ссылкам. Достаточно просто пройти по ссылке в гугле, которая может выглядеть как нормальная.
    • +10
      Мне вот тут самое интересное — как вы узнали, что ни одной заразы не подсело?
      • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        отсутствие посторонней активности (как в списке процессов, так и на файрволе) — для меня достаточно.
        • +2
          Ну собственно, малваря из ring0 может как фильтровать список процессов, изменяя EPROCESS, так и лазить в сеть в обход файрвола, используя свой NDIS драйвер.
          Полагаться только на эти инструменты не стоит.
          • 0
            Извините, под «firewall» я имел в виду именно файрвол (как отдельный фильтрующий узел сети с двумя интерфейсами), а не встроенное непонятно что. Ну и данные netflow.
        • НЛО прилетело и опубликовало эту надпись здесь
          • –2
            Я не вижу странного поведения, если не считать общую странность Windows как операционной системы.
      • 0
        проверял антифирусом
  • +4
    Сэкономим на презервативах, ударим мастурбацией по СПИДу?

    Если бы вы немного больше разбирались в антивирусах, то знали бы что их полезные функции выходят далеко за пределы мониторинга файловой системы.
    • +13
      М… Мне в общем и целом пофигу, что использовать. Только скажите, зачем мне их _полезные_ функции о которых я не знаю? Если мне нужен какой-то полезный функционал — я ставлю ПО, которое его реализует. А от странного приложения, которое висит в памяти и каждый открываемый файл муржит без каких-либо гарантий (вы видели хоть один антивирус с гарантиями?) — какой от него прок?
      • 0
        Только скажите, зачем мне их _полезные_ функции о которых я не знаю?

        Действительно. Зачем знать о том, что существует консервный нож, если до этого банки и камнями неплохо открывались.
        • +1
          Подождите. Вы антивирусом что-то полезное делаете? Или таки предотвращаете вредное? Ближайшей аналогией может быть железная дверь вместо цепных собак. И да, обслуживание собак много дороже и геморройнее (особенно в разделе покуса добросовестных посетителей) чем железная дверь.
          • +2
            антивирусные сигнатуры сейчас не просто поиск по подстроке, а анализ графов код, эмуляция кода, встроенные ids/ips, куча всякой эвристики и прочего. SRP и Applocker, конечно повышают защищенность, но при проникновении вируса через эксплоит ничего поделать уже не может, просто вирусы туповаты и создают файлы в невыполняемой области. антивирус (как и srp) просто создает дополнительные преграды и увеличивает скилл необходимый для создания зловреда.
            Глобально SRP в изначальной блокировке не распространишь особо, если сеть не особо маленькая.
            • 0
              Ниже в топике несколько примеров (http://habrahabr.ru/blogs/sysadm/97594/#comment_3094208 — и ответы на него).

              И где все эти эвристики?
              • 0
                ну а чем тут поможет srp?
                • 0
                  кстати пример из разряда коня в вакууме — смысла нет в этом коде для вирусописателя.
                • 0
                  RSP тут не поможет. Но фича в том, что и антивирус не поможет. Но одно бесплатно и ресурсы не потребляет, а второе жрёт ресурсы, даёт ложные срабатывания и хочет денег ежегодно. Зачем тогда оно, если его задачи решаются rsp, а задачи, которые rsp не решает, оно тоже не решает?
                  • 0
                    ну я про это и говорю, что оба инструмента хороши и увеличивают защищенность.

                    У меня самого, кстати, антивирус не стоит, и в домене пользователям я его тоже не ставлю (из-за тех же тормозов, проблем когда антивирус врезается в api или в tcp/ip стек и прочих), но всегда ставлю IDS и антивирус по сигнатурам на файловый сервер.

                    Домашним пользователям и пользователям с локальным админом антивирус ставлю.

                    Основная идея в том, что и то и то — инструменты которые можно использовать в зависимости от обстоятельств.
                    • +1
                      Нет, антивирус, как инструмент мониторинга, приносит лишь проблемы. Чего стоит, например, блокирование запуска почтового клиента из-за заблудшего лавсан в почтовой базе. Один такой экцесс (а их не один!) решает вопрос об использовании антивируса.

                      Главное же — он не предсказуем. Завтра его во время обновления смутит самописная программа на сервере — и прощай пол-дня работы компании. А послезавтра ему не понравится ещё какой-нибудь файл. И ни ответственности, ни внятной документации о том, как это предотвратить (метод «исключить из проверки» я за метод не считаю).
                      • 0
                        микрософт тоже, кстати, выпускает антивирус, в том числе интегрированный windows defender.
                        кстати обновления для windows тоже приносит проблемы — мы, собственно, для этого нужны решать такие моменты.
                        • +1
                          насчёт «антивируса от майкрософта» ничего не скажу, я с виндами распрощался раньше, чем они его выпустили.

                          А вот у обновлений к виндам, между прочим, есть существенное различие с обновлениями к антивирусам — к каждому обновлению есть документация и чёткое описание что меняется в системе. В отличие от обновления баз антивирусов, при которых даже создатели не могут сказать, какие файлы начнут быть подозрительными.
    • +2
      Просвяти
    • +2
      И кстати все антивирусы беспомощны перед свежеиспеченным зловредным приложением.
      Они на ура сканируют его и с увереностью выдают его как безопасное приложение.
      А потом творятся чудеса в системе. Зачем использывать такой продукт, который не обеспечивает безопасность и нагружет систему ??? при этом приходится за это еще и платить…
      • 0
        Вы неправы. Почитайте про эвристику и эмулятор кода. Вирусописателям приходится всячески изощряться лишь для того чтобы обойти их. И приемы которые они используют быстро попадают в базы сигнатур.
        • 0
          Давайте проверим эвристику, а? Ну серьёзно, я напишу программу на Си, вы её запустите на рабочей машине, а мы потом обсудим результаты… м… эвристик.
          • +1
            Давайте.
            • +4
              for /r c:\ %a in (*) DO move "%a" "%ahihi"
              • 0
                Хм. Таки, это не Си.
                • 0
                  извините, я осознал всю сложность задачи по компиляции бинарников под win32 из-под lenny adm64. Последняя винда с mingw у меня померла примерно пол-года назад.
              • +1
                Интересный однострочник, пострадало: каталог с Boost'ом, временные файлы в C:\Temp. Вероятно та же участь постигла бы файлы профиля, но мне не хватило терпения дождаться пока скрипт до них дойдет.
                Все остальное:

                Access is denied.
                        0 file(s) moved.
                

                ОС: Windows Vista.
                • 0
                  профиль пользователя?
                  • 0
                    Профиль из под которого работаю каждый день.
                    Группа Администраторы. UAC включен.
                • 0
                  баловАлся в школе, создав bat-файлик с содержимым «shutdown -s -t 0 -f» и кинув ярлык в папку автозапуска.
                  Еще месяц назад проверял файлик последней бетой касперского — никаких нареканий =)
        • 0
          Правильно, так же у некоторых антивирусов есть возможность блокировать приложение которое ведет себя как вредоносное по хэшу, пока сигнатура не добавлена.
          • 0
            Каким образом мы узнаем хеш вредоносного приложения? Каким образом мы узнаем, что это приложение вредоносно?
            • 0
              Вероятно он имел ввиду определенные последовательности байт, являющиеся деструктивными, которые, скорее всего, не должны быть в норм ПО.
              Мои шалости так ловились касперским.
              • +1
                Хуже всего, когда ты пишешь «добрые скрипты» на vbs для автоматизации процессов, а тут на тебе! Удалён антивирусом.
                Я так мульон раз накалывался.
              • 0
                Как отличить деструктивную последовательность байт от конструктивной? Например, dd, который может затереть первые несколько Гб диска чем отличается от винчиха? А от wipeinfo? А чем отличается компрессор исполняемых файлов от вируса? А система parient control'а от sms-локера?
                • 0
                  Прогнать на эмуляторе. Например иметь прямой доступ к диску могут иметь как wipeinfo, так и fdisk, но редактировать таблицу разделов, MBR только fdisk.
                  чем отличается компрессор исполняемых файлов от вируса?


                  Здесь даже эмулятора ненужно, достаточно взглянуть на таблицу импорта. Например у известного UPX она выглядит так:



                  Много видите «опасных» функций? А у типичного вируса их будет много, даже самый простенький дроппер не сможет обойтись без каких-нить CreateProcess, CreateFile и наличие таких функций, вместе с поиском исполняемых файлов и, к примеру, возможностью записи в реестр уже наводит на подозрения.
                  Согласитесь, если что-то выглядит как утка, плавает как утка и крякает как утка, то это, вероятнее всего, утка и есть.

                  А система parient control'а от sms-локера?


                  Тут тоже ничего особо сложного. Обычно Parental Control'ы устанавливаються в положенное место %ProgramFilesDir%, имеют деинсталятор, соответствующие записи в реестре, стартуют чаще всего в виде системных сервисов. Тогда как большая часть семейства WinLocker, внедряется через дыры в браузерах, запускаються либо стартом ехе-файла, либо через rundll32, либо подгрузкой себя в адресное пространство всех/доверенных процессов (AppInit_DLLs), используя для этого кучку общеизвестных мест в реестре. Плюс место дислокации исполняемых файлов. Чаще всего это %Temp%, %Tmp%, Temporary Internet Files, %WINDIR%, %WINDIR%\System32 и т д.

                  Я не спорю, ложные срабатывания бывают, у некоторых антивирусов даже очень часто, но это приемлемая цена за свою безопасность, пусть и не 100%, для ОБЫЧНОГО пользователя. А более-менее продвинутые в состоянии выяснить можно доверять «подозреваемой» программе или нет.
                  • 0
                    Меня не интересует безопасность «обычного пользователя» (АКА чайника/ламера обыкновенного). Их всё равно ни антивирус не спасёт, ни строгое следование параноидальным политикам.

                    Речь идёт про корпоративную сеть и управление ресурсами администратором. В этих условиях антивирус не даёт никакого нового уровня гарантии целостности системы, зато создаёт сразу несколько дополнительных источников непредсказуемости (в случае проблем с установкой ПО выключите антивирус, да?). Причём, как я сказал ранее, момент изменения логики срабатывания антивируса не документируется и происходит по желанию левой пятки разработчика.
                    • 0
                      Речь идёт про корпоративную сеть и управление ресурсами администратором.

                      Я думаю в таких условиях установкой ПО занимаються сотрудники отдела IT, которые в состоянии разобраться почему антивирус вдруг стал выдавать предупреждения и принять меры для решения проблемы. Кроме того, незнаю как у вас, но у нас в компании используемое ПО жестко стандартизировано, и список разрешенного к применению утверждаеться тем же IT департаментом, который просто не пропустит левые программы.

                      Кроме того, в средних и больших компаниях обычно используються корпоративные версии антивирусных пакетов, которые в случае чего позволяют централизированно прямо с сервера добавлять определенные каталоги/файлы в списки исключений или восстанавливать из карантина подозрительные обьекты, если в этом есть необходимость.
                      Но лично я, еще никогда не сталкивался с ситуацией, когда антивирус блокировал рабочее приложение на компьютерах пользователей «ни с того ни с сего», а логика его работы внезапно изменилась до неузнаваемости.
                      • +1
                        Я полагаю, что те 30 минут, которые человек разбирается, почему перестали печтать инвоисы стоит очень дорого.

                        И я повторю, в отличие от всех остальных обновлений безопасности, для которых можно провести аудит (или по описанию, или, в случае более открытых ОС, по исходным текстам), обновления антивируса непредсказуемы принципиально — именно из-за этих грёбанных эвристик.

                        Антивирус на продакт сервере или рабочей станции с высокими требованиями по доступности — бред и маразм.

                        Антивирус неконтролируем.
                        • 0
                          Вы слишком категоричны, при грамотном подходе антивирус — дополнительный барьер в защите системы, равно как и файрволл, деп, UAC и кернелмод дебаггер :)
                  • 0
                    Да, относительно ПО.

                    fdisk имеет право доступа. А самописный mbreditor? А dd, testdisk, ещё сотня аналогичных утилит? Как их различить?

                    Алсо, я не вижу разницы между upx (который умеет upx *.exe) и вирусом, который дописывает своё тело — последовательность операций строго идентичная, различается лишь код, который дописывается.

                    И ложные срабатывания это НЕПРИЕМЛИМАЯ цена за неполноценную защиту. Хотя бы потому, что ложные срабатывания начинаются без предупреждения и могут затрагивать жизненно важные в продакте приложения.
                    • 0
                      fdisk имеет право доступа. А самописный mbreditor?

                      Извините, а самописным mbreditor разве место в корпоративной среде?
                      я не вижу разницы между upx и вирусом, который дописывает своё тело

                      Тут значение имеет то, что может делать этот самый код, который дописываеться в ехе-файл. Если его жизненный цикл сводиться к простым шагам, вроде распаковать/расшифровать тело исполняемого модуля и передать управление на точку входа это одно, а если же этот модуль ищет другие файлы и копирует в них себя, уже можно говорить с вероятностью 99,9% что это вирус, поскольку нормальная программа так себя вести никогда не будет.
                • 0
                  Например, байты в после С++ кода code[i] ^= key; — распознаются как потенциально опасный криптор. Код, который что-то блокирует особое, подозрителен.
                  Вот посмотрите мой пост про дорожное яблоко, там хороший пример.
                  • 0
                    Т.е. простейшее корпоративное приложение, устанавливающееся в качестве модуля для Winlogon (забыл как называется, что-то вроде gina), отправляющее некие зашифрованные данные, получающее команды от центрального сервера, расшифровывающее исполняемый файл для корпоративной системы на рам-диск и передающее ему управление (а при необходимости и скачивающее программу с сервера, разумеется, в зашифрованном виде) — это уже подозрительное приложение? Которое стоит заблокировать, остановив, например, работу склада с миллионными оборотами?

                    Спасибо большое. Не надо.
                    • 0
                      Я имел в вижу шифрование отдельных секций PE файла, а не файла целиком. Шифрование файла угрозы не несет. Вот пример (под хабраэффектом наверное ляжет) моего учебного криптора в котором если заменить not на xor, то касперский говорит что полиморфный криптор o_O.
                      Шифрование файлов не является явно подозрительной деятельностью.
        • +2
          Да-да, эвристика это вещь. Процентов 30 нормальных файлов, пожатых Crinkler'ом, определяются как вредоносные трояны.
          PS. Это я про NOD32, Dr. Web, Panda. AVZ считаю идеальным антивирусом, потому что в нем есть необходимые средства для лечения системы, а также он честно пишет, что именно в проверяемом файле ему не понравилось.
        • 0
          Эвристика и эмулятор кода не сильно останавливает злоумышленика в реализации его идеи.
          На примере касперского, могу сказать что он сваливается при изменении даты превышающую его лицензию(тоесть смело можно изменить дату на 10 лет вперед) и дорога открыта.
          Если мне не изменяет память, то году в 2009 зацепил модификацию червя kido, который и без изменения даты каспера грохнул, при этом я не заметил этой крутой скорости добавления в базы сигнатур.
          • 0
            Ещё были такие, которые грохали и ставились с таким же значком в бар вместо каперского.
            Забавно обновлялись так, как бы беспалева)
    • +9
      Не знаю не знаю, мне казалось, что главная их функция — тормозить и в неожиданный момент ложно срабатывать
      • 0
        Так же могут качать зараженные файлы с сервера обновлений и мужественно удалять с поросячьим визгом на весь офис.
        Симбурде?
  • +3
    Интересный способ.

    Проблему с производительностью и вирусами на терминальном сервере решили проще. Пользователи не получают десктопа. Только опубликованные приложения для управленческого и бухгалтерского учета. То ради чего и заводили терминалку.
    • +3
      А получают они это через Remote Desktop App? Просто мы на 2008 r2 пытались запустить так 1С и выяснили, что работать в принципе нереально — постоянно скачет фокус по элементам и окнам. Служба техподдержки MS пожала плечами и обещала пофиксить этот новомодный режим RDP, но уже год как воз и ныне там. Забавно, что SeamlessRDP от rdesktop работает на отл, так что неожиданно выяснилось, что Linux на всех десктопах и нужное для бухни ПО на терминалках MS — это великолепный вариант выхода из ситуации.
      • 0
        Не пробовал на 2008. Сидим как чайники уже лет 5 на Win 2003 + Citrix XPe. Желания переходить на что более новое пока нет. Все что нужно работает.
        • 0
          А, цитрикс, так бы и сказали))) Круто, но дорого, увы, для большинства контор необоснованные траты.
          • 0
            Ну есть решения и от других производителей дешевле чем цитрикс.
      • 0
        Не подскажите, где взять свежую сборку rdesktop с seamless rdp под win? Или вы его только из linux запускаете?
        • –1
          Ну, запускать-то rdesktop конечно под Linux, какой смысл использовать винду на рабочих машинах, если всё нужное ПО опубликовано на терминалках? На терминалке винда со специальной приблудой для коннекта rdesktop и нужный софт, а всё остальное в сети на Linux, включая клиентов. Можно вообще использовать тонких линуксовых клиентов. Очень, кстати, гибкое и крутое решение, если вас конечно устраивает работа через терминалки. Линукс на компах вообще в разы проще обслуживается, чем винда.
    • 0
      Это не поможет от пользователя, который поставил своей целью что-то запустить. Проверено и на 2008, и на цитриксе, и на 2003 с RSP.

      Но задачи бывают разные. У меня в предыдущей конторе большинство сидело на тонких клиентах — в этих условиях и браузер на терминальном сервере, и десктоп.
      • 0
        Ага, практически из любого приложения можно запустить другое. Если конечно совсем уже не драконовские меры по лишению прав.
  • 0
    Возможно я чего-то не понимаю, но собственно говоря, если использовать уязвимости софта, то эксплойт выполнится под правами того, кто этот софт запустил со всеми разрешениями, как в виндах так и никсах. Что мешает использовать баги в софте для записи в закрытые области?
    Теоретически нулевое кольцо тоже от записи со стороны закрыто, но если очень нужно, то доступ к нему можно получить :)
    Так что не вижу повода отказываться от антивируса.
    • 0
      Если софт запущен под ограниченым юзером, то эксплойт и унаследует эти права… А с ограничеными правами далеко не уедешь. Я так понимаю…
      • +5
        Разве мало эксплойтов на повышение привилегий в системе?
        • 0
          Это хороший аргумент. Но много ли совпадений синхронно 0day на пользовательское приложение и эскалейшен?
          • 0
            А 0day сейчас на свободе думаю не мало. Думаю в связках могут кем-то вполне использоваться, правда на кого попало расходовать их не будут.
            • –1
              Я полагаю, что в таком случае и антивирус не будет существенной защитой.

              Кроме того, есть большая вероятность, что такой 0day таки запустит (попытается запустить) файл. С понятным результатом.
    • +1
      Если эксплоит системный, то да, он пишется в виндовый каталог, прописывает себя в драйвера и всё, добрый день руткит. Я этот вопрос подробно в статье разобрал.

      Если же мы говорим про эксплоит в IE/Adobe *, то что происходит после запуска кода? Он прописывает себя в автозапуск. Пользователь релогинится — и автозапуск не запускается (а в журнал пишется варнинг).
  • 0
    Использую такую схему в отдалённых офисах, где нет AD, разворачивая GroupPolicy копированием нужных файлов руками… Делалось всё это для того чтоб ограничить и так ограниченных пользователей запускать всякий левый софт, в основном портабельный.
  • +11
    Безопасность на Windows — это просто!
    • +12
      Идите собирайте ядро и не отвлекайтесь на этих дурачков :)
  • –1
    Мифы и легенды древней Греции

    Хотя в научный атеизм тоже подойдет
  • 0
    Вот она — причина нелюбви вирусов к юникс-системам…
    А что лично меня радует — Микрософт в 7ке начала закручивать гайки для дикого софта, и его становится меньше. По крайней мере, дикий софт стал себя проявлять UAC-окном.
  • +2
    У нас тут в программерской конторе такую политику пытались применять. Только еще и с антивирусом в довесок. Админ молодой, неопытный, начальству пофиг. Понятно, собрали все подводные камни как по нотам, сейчас в итоге плюнули и всем выдаются админские права. Апокалипсиса не случилось, но и пользователи более-менее ответственные, конечно.
  • +2
    такие теоретики мне по душе ))
    халтурю и не плохо на этом подзарабатываю.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      сделайте пожалуйста скрин побольше
    • +1
      Это оно и есть, только с расширением «кому что можно». Раньше это реализовывалось групповыми политиками на пользователя/группу.
      • 0
        Applocker это, по идее, новый продукт, который, кстати, доступен только в W7 Enterprice и Ultimate, которые далеко не все покупают.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Как начинающий разработчик пока еще дикого софта хотел спросить у гуру принцип организации хранения настроек и пр. файлов для записи естественно не в папке программы, но с возможностью установки и запуска второй+ копии программы есессно со своими настройками.
    • 0
      Просто стоит хранить данные в пользовательской папке. Например в Application Data.
      • 0
        А что со второй+ инсталляцией того же пользователя?
        • 0
          Ну видимо стоит уже руками организовать многопрофильность. Хранить в папке одного пользователя несколько наборов настроек и выбирать при запуске нужный.
        • 0
          .../Profile/c_program_files_programm1/данные профиля для инсталяции 1
          .../Profile/c_program_files_programm2/данные профиля для инсталяции 2

          При запуски программа берет настройки из папки соответствующей папке запущенного экземпляра.

          Во многих приложениях так и делается.
    • 0
      Выбор профиля при запуске? Если у вас в приложении действительно куча настроек, как в какой-нибудь Миранде, да еще и каждому пользователю может потребоваться несколько вариантов конфигурации приложения — это был бы неплохой выход. А файлы с настройками профиля можно хранить в каталоге пользователя.
      • 0
        Интуитивно как-то так и представлял. Спасибо.
        Вдогонку. А что делать с автоматическими обновлениями? Они по идее должны от администратора исполняться?
        • 0
          Автообновления можно делать либо каждый раз новой установкой от администратора. Либо делать собственный загрузчик который будет хранить актуальный исполняемый файл в пользовательском пространстве (как Гугл Хром, например).
          • 0
            Но ведь оттуда (согласно ТС) исполнять нельзя?
            • 0
              Исполнять оттуда нельзя согласно мнению автора данной статьи. Но многие программы так делают. Если такой вариант кажется Вам несекурным, то лучше делать через повторную инсталляцию от администратора.
              • 0
                т.е. Вы предлагаете полностью ставить программу в %user%\Application Data\app (или куда он еще может писать)?
                Есть еще вариант обновляться из под юзверя, в его локальной папке хранить обновленную версию без возможности запуска оттуда (скажем переименованную в .tmp) и затем от администратора обновлять в Program Files. Но что-то я такого не видел…
                • 0
                  Вот именно для защиты от таких программ хорошо помогает RSP.

                  Ставиться ПО должно из MSI, хранить исполняемые файлы и библиотеки в program files, данные пользователя в %user%. И никак иначе.

                  Потому что есть RSP, есть roaming profiles…
                  • 0
                    Это вроде выяснили.
                    Вопрос был про обновления…
                    • 0
                      Обновления в конторах ставятся через msp.
                      Почитайте Technet, там это всё дааавно описано.
                • 0
                  Я не предлагаю, я говорю что это один из путей. И его используют такие ковбои как гугл. Так что видимо подход то неплохой. И я говорю о хранении не всей программы в папке пользователя, а лишь тех частей, которые могут быть обновлены. Их вообще можно хранить как исходный код или бинарную библиотеку, не суть.
                  Но мне как то приятнее, когда исполняемые файлы живут в защищенном хранилище Program Files.
                • 0
                  То, что описано в статье — фактически попытка сделать из win — *nix (собственно там так и написано), а значит если следовать и дальше этой логике — для обновления обязательны администраторские права.
                  Зависит от того, что у вас за программа.
                  Если она не большая — просто повторная установка из под администратора. Если большая то лучше б конечно частичные обновления и все такое прочее — но все равно из под администратора.
        • 0
          Из-под администратора и выполнять. Задачу в скедулер, например.
          • 0
            С планировщиком не очень понятно. Часто обновление требует нажатия каких-то кнопочек. И что делать, если планировщик запустил обновление, а в это время у пользователей программа запущена?
            • 0
              А не надо никаких кнопочек. Если кнопочки касаются жизни ПО — письмо администратору и ничего не делать, ждать ручного вмешательства. Откуда тётя маша из бухгалтерии знает, что отвечать?
              • 0
                стоп — добавляем в планировщик задачу и ставим выполнять от администратора. Тетя Маша по идее не должна ничего увидеть, так?
                «Не надо никаких кнопочек» — это не все обновлялки умеют… В смысле я такого софта мало видел, чтоб обновился и не спросил ничего. Разве только серверные какие, типа антивирусов и сервисов всяких.
            • 0
              В Windows наколько я помню это традиционно решается с помощью run once при перезагрузке и предложением перегрузить.
    • 0
      Лениво искать на msdn, там была подробная статья по путям. В частности: код в c:\program files, данные пользователя в %user%\Application Data\app, файлы, которые могут быть воссозданы (кеш, например) в %user%\Local Settings.
      • 0
        Эт понятно. Я спрашивал о том, что пользователь хочет поставить вторую копию программы с другими настройками. Т.е. если не делать как посоветовали выше профилями, откуда бы программа не запускалась, она всегда возьмет настройки из %user%\Application Data\app ибо юзер тот же.
        • 0
          ну заведите %user%\Application Data\app\profile1, %user%\Application Data\app\profile2
          и сделайте два ярлыка. в одном c:\program files\app\app.exe -p profile1, в другом — c:\program files\app\app.exe -p profile2
        • 0
          Ну сделайте хэш от пути запускаемого файла и храните настойки в подкаталоге с таким именем в каталоге пользователя / вашей программы.
  • 0
    не юзаю антивирь как таковой.
    достаточно следить за системой и ничего не подсядет.
    • 0
      Следить за системой — это что значит?
      • +2
        Вычитывать полный дамп оперативки в машинных кодах каждые 5 минут.
        • 0
          … с использованием аппаратного деббагера на JTAG или чём-то подобном. Ах, да, на отдельную консольку из светодиодов нужно ещё состояние маски прерываний выводить.
  • +3
    Windows без антивируса — это фантастика… ещё 7-ка хоть как-то сопротивляется.

    Может если отключить автозапуск внешних накопителей и отрубить интернет — чего бы и получилось, ненадолго…
    • 0
      Как я уже сказал — три с половиной года. Причём, не в тепличных условиях опытного пользователя, а в условиях оравы идиотов разной степени упёртости, пытающихся запустить свои программы, шарящиеся в инете где попало и т.д…

      … Впрочем, я забыл указать ещё одну существенную деталь конфигурации: у меня запрещён ActiveX как класс.
  • 0
    Windows без антивируса — это НЕ фантастика… Это большой бубен + угроза получить в этот бубен за самодеятельность + угроза прослыть врагом №1 у половины коллектива (поскольку файлы с зараженной флешки куда то исчезают и пр. хр.) + 10 умных специалистов с критикой «О… у вас нет антивируса? А что Вы тогда хотите?».
    Делал нечто подобное по упрощенной схеме — потом бросил… Инициатива наказуема.
    • +1
      Ну, это зависит от изложения позиции. Поскольку в одной конторе (где рабочие станции) я единственный айтишник на аутсорсе, то как я сказал, так и есть. А во-второй (где терминальный сервер) я просто сказал «это терминальный сервер, так надо». И все вопросы отпали.
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    >Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку

    Ну вот, забыт уже code red. Который (как и многие другие черви, на самом деле) не лез в файловую систему, сидя только в памяти.
    • 0
      … но у меня же дальше описано, что такая проблема в случае дыры в клиентской части не опасна, а в случае дыры в серверной — не должна быть применима к терминальному серверу или рабочей станции (зачем там IIS?). Дыра же в RPC (а-ля МС бласт) в условиях 0day, действительно, делает решение неэффективным.
  • 0
  • 0
    народ, подскажите, а можно ли из по непривилегированного пользователя запускать панель управления или отдельно утилиты администрирования, подобно как в линуксе «sudo progamm_name»? если нужно выполнить исполняемый файл, то в контекстном меню есть пункт «Запустить от имени», а если нужно запустить настройки брендмауера или msconfig может есть какой нить параметр для запуска из консоли, а потом это дело на ярлык прикрутить? уж очень неудобно для любой настройки переходить в аккаунт админа…
    • 0
      runas. В силу долбоебизма MS не работает для explorer.exe и control.exe (и компоненты его из панели).
    • 0
      Апплеты панели управления это *.cpl из System32. Используйте rundll32.exe, например так:

      rundll32.exe shell32.dll,Control_RunDLL Firewall.cpl

      Эта команда открывает настройки файрволла. Сделайте ярлык для %WinDir%\System32\rundll32.exe, в качестве параметров — оставшаяся часть строки и для него будет работать «Запуск от имени».

      • 0
        Насколько я помню XP, это не прокатывало с runas. Оно молча закрывалось.
        • 0
          Да, я тоже что-то такое припоминаю, но любопытства ради только что попробовал на sp3 — сработало. Видимо пофиксили.

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