I t S p e c
Главная
Вход
Регистрация
Суббота, 18.05.2024, 14:53Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
}|{елезо [1]
Ремонт, разгон,доработка железа.
ОСи [1]
Настройка, хитрости, софт и др.

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » ОСи

Защищенная ось без антивирусов и тормозов
защищенная ось без антивирусов и тормозов
крис касперски ака nezumi aka souriz aka elraton aka laoshu aka толстый нутряк
некоторые   воспринимают   антивирус   как   неотъемлемую   часть   операционно
системы и просто не мыслят свое существование без кучи защитных пакетов о
разных производителей, свободно пропускающих заразу, но вызывающих жутки
тормоза и целый ворох конфликтов, вплоть до выпадения в BSOD. самый лучши
антивирус — это сама ось! нужно только научиться правильно ею пользоваться!
введение
Windows NT  (и все производные от нее системы — W2K,  XP,  и частично  Longhorn
изначально проектировалась как защищенная оси, способные постоять за себя и дать вирусам
решительный   отпор   без   каких-либо   дополнительных   средств,   в   том   числе   и   широк
разрекламированного Microsoft Anti-Spy-Ware. Но, чтобы не увязнуть в терминах,  прежде че
продолжить повествование, необходимо уточить ряд определений.
терминологические войны
Условимся называть вирусами саморазмножающийся программы, паразитирующие на
исполняемых файлах, динамических библиотеках, драйверах и других объектах подобного рода.
Эпоха вирусов  закончилась вместе с крушением  MS-DOS.  Сеть тогда только  зарождалась и
единственным   средством   добычи   свежих   программ   были   дискеты   товарища,   отдельные
счастливчики имели доступ к FIDO и BBS. Все это создавало крайне напряженную обстановку с
эпидемиологической   точки   зрения.   Копировать   программы   друг   у   друга —  все   равно   что
ширяться из одного шприца. Немногие помнят то светлое время, когда вирусов было всего семь,
а антивирус годичной давности считался вполне свежим и актуальным. Фактически, основными
носителями   вирусов   были   люди,   а   не   файлы,   поэтому   масштабы   эпидемии   определялись
исключительно интенсивностью копирования программ.С появлением Сети, пользователи перешли на централизованную скачку дистрибутивов
с официальных серверов, а вирусам для размножения перестали требоваться люди. Используя
дыры в подсистемах безопасности и ошибки типа переполнения буфера, любой вирус буквально
за несколько часов может заразить практически все уязвимые узлы, при этом ему совершенно
необязательно внедряться в исполняемые объекты. Зачем привлекать к себе лишнее внимание,
когда можно ограничиться временным проживанием в оперативной памяти. Если заражен хотя
бы 1% всех машин в сети, то вирус,  умирая при перезагрузке,  через незаткнутые дыры будет
возвращаться   вновь   и   вновь,   ведя   кочевой   образ  жизни.   Такие   вирусы   принято   называть
червями  и   это   один   из   наиболее   распространенных   типов   компьютерной   заразы   на
сегодняшний день.
Еще   существуют   "психологические"   вирусы,   представляющие   обыкновенные
исполняемые   файлы   и   распространяющийся   через   вложения   электронной   почты,  ICQ,   в
меньшей степени  web  и  ftp.  Свою историю они ведут от "крякеров Интернета",  завлекающих
бесплатным доступом в Сеть,  а на самом деле форматирующим жесткий диск.  Этот подкласс
заразы назвали  Троянскими Конями.  Сейчас же времена первобытного варварства остались
позади   и   большинство   троянов   не   уничтожают   информацию,   поскольку   это   сделает   их
пребывание слишком заметным,  а скрыто устанавливает шпионскую закладку,  похищающую
пароли,   содержимое   электронных  кошельков  или позволяющую управлять  компьютером по
сети — такие компьютеры называются  зомби или дронами. Собрав огромную армию дронов,
хакер может совершать распределенные атаки и делать кучу других антисоциальных вещей,
например, рассылать спам.
Антивирусы в настоящее время практически полностью утратили былую значимость и
усиленно пытаются отойти от пропасти на дне которой они находятся.  Вирусы,  заражающие
исполняемые файлы, за последние несколько лет фактически перевелись, к тому же запретить
запись в исполняемые файлами средствами операционной системы намного проще,  дешевле,
быстрее   и   надежнее,   чем   устанавливать   антивирусный   пакет.  И  уж  совсем   бессмысленно
пытаться   лечить   зараженные   объекты,   ведь   в   любой   момент   их   можно   переустановить   с дистрибутивной  копии,   хранящейся  на  CD-R/RW  или   скаченной  их  Сети.  Но  автономный
сканер — это еще туда-сюда. Лично я примерно раз в год скачиваю демонстрационную версию
какого-нибудь антивируса и проверяю свое хозяйство на предмет: "а вдруг?" Впрочем, до сих
пор все было чисто и никаких "авдругов" со мной не случалось.
Антивирусный монитор,  следящий за всеми создаваемыми/открываемыми файлами,  и
проверяющий   их   "на   лету"   это   дополнительные   тормоза   (под   час   _очень_   значительные),
конфликты,   критические   ошибки,   голубые   экраны  смерти   и   прочий   ничем  неоправданный
геморрой. Вся проблема в том, что антивирус может ловить только те вирусы, о которых знает,
а   вирусы   сейчас   пишут   все   кому   не   лень,   так   что   даже   при   экстраординарной   степени
оперативности,  никакой гарантии,  что вся  зараза  будет  распознана,  у нас нет.  Больше  того!
Вирус,   упакованный   слегка  подправленной   версий  крутого  протектора,  имеет   100% шансы
остаться незамеченным! Сложные протекторы уже не распаковываются на эмуляторе ЦП (так
же называемом виртуальной машиной)  и для их снятия требуется статических распаковщик,
входящий   в   "движок"   антивирусной   базы и  справляющийся   только   со   строго  конкретными
версиями протекторов и очень болезненно относящийся даже к незначительным изменениям
структуры упакованного файла.  Да что там структура! Обычно бывает достаточно внедрить в
точку   входа  jump  на  инструкцию неизвестную  эмулятору   (например,   что-нибудь  из  набора
SSE/SSE2) и антивирус идет лесом, поскольку переменная длинна x86 инструкций не позволяет
ему определить начало следующей машинной команды!
Реально,   антивирусы   могут   отлавливать   только   не   модифицированные   версии
Троянских   Коней,   да   и   то   с   оговорками.   Просто   смешно   видеть,   как   на   какой-нибудь
файлопомойке типа www.download.ru пишут: "все программы проверены последними версиями
антивирусов  X и Y". Вы либо доверяете своему поставщику,  либо нет.  Как нельзя быть чуть-
чуть беременной,   так  и нельзя  доверять  наполовину.  Если разработчик   (или дистрибьютор)
задастся целью внедрить закладку — будьте уверены, он внедрит ее так, что никакой антивирус
не поможет.  Запускайте программы,  полученные только из надежных источников,  и только с
минимально   необходимым   уровнем   привилегий.   Криво   спроектированная   программа,
запущенная   с   администраторскими   привилегиями,   способна   уронить   всю  систему   так,   что
"ремонт" последней (в плане времени) обойдется дороже полной переустановки, но… никакого
отношения к вирусам такая программа не имеет,  поэтому антивирус  скромно пропускает ее
между ног, а вот правильно настроенная ось способна предотвратить свое обрушение,  причем
совершенно бесплатно и без тормозов!
Что же касается червей (и,  в частности,  нашумевшего  MS BLAST,  известного так же
под кличкой Love San), то это вообще песня. Удаляют его антивирусы, не удаляют — что толку? Пока есть дыра, он словно феникс из пепла будет появляться вновь и вновь. К тому же всегда
существует вероятность, что кто-то умный напишет свой собственный shell-код, не имеющий с
MS BLAST'ом   ничего   общего,   а   потому   и   не   детектируемый   _никаким_   антивирусом!
Некоторые  дыры можно  закрыть   брандмауэром,  но  в  общем  случае,   для   этого необходимо
установить заплатку от производителя уязвимого продукта, которым может быть как сама ось,
так и один из ее компонентов: IE, FireFox и т. д.
Еще   существует   такой   тип   антивирусов   как  ревизоры,   в   задачу   которых   входит
проверка   целостности   существующих  файлов   и   контроль   за   вновь   созданными.  Некоторые
ревизоры так же контролируют и реестр, особенно ветки, прямо или косвенно ответственные за
автоматический   запуск  программ.  Во  времена  MS-DOS  это  была   очень   хорошая  штука,  но
сейчас… винчестеры так разжирели,  что процедура  сканирования отнимает  кучу времени  (а
если   работает   в  фоне,   то   это   уже   тормоза),   к   тому  же  многие   сканеры  содержат   ошибки,
позволяющие   заразить   файл   без   изменения   его   контрольной   суммы   (см.   статью   "как
подделывают CRC16/32", опубликованную в хакере), не говоря уже о том, что при правильная
политика разграничения доступа сводит актуальность сканеров на нет, тем более, что начиная с
W2K  система сама контролирует целостность жизненно-важных файлов через механизм SFC.
Ну вот, сейчас кто-то скажет, что SFC легко обмануть,  там ведь и сканер обмануть ничуть не
сложнее, особенно если вирус стелсируется на уровне ядра или вообще не внедряется ни в какие
объекты файловой системы, существуя лишь в виртуальной памяти какого-нибудь процесса.
Контроль   за   целостностью   виртуальной   памяти   процессоров   берут   на   себя   как
антивирусы,   так  и персональные   брандмауэры,   распознающие  и  отсекающие   все  известные
способы внедрения в чужое адресное пространство,  да вот только… работает этот механизм
кое-как.   Зловредному   коду,   запущенному   с   пониженными   привилегиями,   доступ   к   чужим
процессам можно  запретить средствами самой операционной системы,  а код,   запущенный с
правами   администратора,   пройдет   сквозь   все   уровни   защиты,   как   нож  сквозь   масло   (при
условии,  что его писал не пионер, а хотя бы комсомолец).  Самое неприятное, что существует
множество   легальных   программ,   например,   мультимедийных   клавиатур   и   мышей,
использующих   внедрение   в   чужое   адресное   пространство   для   реализации   своих
мультимедийных возможностей, поэтому, слепой запрет брандмауэра/антивируса приведет к их
неработоспособности! Значит, необходимо предоставить пользователю возможность выбора. А
сможет ли он отличить честную программу от нечестной? Но даже не это самое страшное. Чем
глубже внедряется брандмауэр/антивирус в систему, тем сложнее зловредному коду его обойти,
но и тем больше конфликтов и глюков он (брандмауэр/антивирус) вызывает.
Получается так,  что грамотно настроенной системе никакой антивирус не нужен,  а с
безграмотной никакой антивирус все равно не справиться  (брандмауэр стоит ставить только
затем,   чтобы   отделить   домашнюю   локальную   сеть   от   Интернет   и   следить   за   сетевой
активностью установленных программ, выявляя не только шпионов, но и легальные программы,
пытающиеся проверить корректность регистрации).
эвристики
Эвристика это одно из многих buzzwords конца XX — начала XXI века, то есть ученое
или   специальное   словечко,   способное   произвести   впечатление   на   непосвящённого.   Это
усилительное   (часто бессмысленное)   слово,  используемое   в профессиональном жаргоне  для
придания продукту тех черт, которыми он не обладает, или обладает, но совсем не в той мере.
Идея эвристики уходит  корнями в эпоху ранней юности  MS-DOS  и в общих чертах
сводится к выявлению признаков, часто встречающихся в вирусах, но практически никогда — в
легальных программах.  Тогда  это было легко!  Код вируса  писался  на  чистом ассемблере  и
укладывался в линейную структуру, которую легко "переваривал" эмулятор, распознающий ряд
заложенных в него шаблонов. Например, если функция FindFist вызывалась с маской *.com
или  *.exe,   это   давало   основание   предположить,   что   мы   имеем   дело   с   программой
внедряющейся   в   исполняемые   файлы.   Но   стоило   зашифровать   маску,   использовать
самомодифицирующийся код или другие хитрые приемы, как эвристик шел лесом. Шаблонный
поиск   уже   не   работал,   а   на   полный   анализ   не   хватало   вычислительной  мощности   и   хотя
существовали эвристики, срабатывающие в 90% случаев (реальных 90%, а не "макетоидных"),
большого   распространения   они   не   получили,   поскольку   требовали   огромного   времени   на
анализ, а пользователь он, как известно, ждать не любит.
Сейчас вычислительные мощности многократно возросли, но вместе с ними возросла и
сложность   вирусов.  На   место   ассемблера   пришли   языки   высокого   уровня,   линейный   код
распался   и   вирус   превратился   в   запутанный   клубок  функций,   взаимодействующих   друг   с другом самым невероятным образом.  Сравните структуру вируса  Boot/Brain.A,  написанного в
далеком 1984 году с червем W32/Bagle.AG@mm, созданным десять лет спустя — в 2004.
Даже   если   антивирусу   удастся   побороть   упаковщик   и   передать   эвристику
распакованный код… никаких вирусных признаков ему все равно там ни за что не обнаружить,
ну разве что это будет совсем пионерский вирус. Наличие незашифрованных текстовых строк с
ключами   реестра,   ответственными   за   автозапуск,   имен   исполняемых  файлов   антивирусных
программ,  команд в стиле "rm -rf /" с высокой степенью указывает на зловредную программу,
но… их очень легко зашифровать.
Еще   эвристик   может   анализировать   таблицу   импорта   и   аргументы,   переедаемые
функции  GetProcAddress,   и,   если   там   встретиться  WriteProcessMemory,
VirtualAllocEx,  CreateRemoteThread  или что-то еще в этом роде,  антивирус сделает
вывод,   что   имеет   дело   с   программой,   способной   внедряться   в   другие   процессы —  верный
признак червей и… отладчиков. Причем, черви сплошь и рядом используют свою собственную
реализацию GetProcAddress, принимающую не имя функции, а ее хэш!
Что касается  классических  вирусов,  внедряющихся   в исполняемые  файлы,   эвристик
может проанализировать адрес точки входа, проверив, не указывает ли он в последнюю секцию
файла   или   в  PE-заголовок   и   если   да,   то   забить   тревогу.  Но   это   всего   лишь   два   способа
внедрения  из…  очень  многих!  В моей книге   ("компьютерные   вирусы  снаружи  и изнутри")
собрана   неплохая   коллекция   методов   внедрения,   большинство   из   которых   с   точки   зрения
антивируса вполне законны и визуально ничем не отличаются от нормальных программ.
Ситуация осложняется тем, что многие вирусные приемы сейчас активно используются
протекторами   и   если   эвристик   не   утихомирить,   он   отправит   в   топку   добрую   половину
легальных программ, чего допускать ни в коем случае нельзя!
Конечно, иногда эвристик все-таки срабатывает (особенно в свете того, что все больше
и больше вирусов пишутся пионерами, научившимся программировать раньше, чем читать), но
возлагать  на  него какие-то надежды —  это  все   равно,   что пытаться  обыграть  казино.  Если
создатель вируса не лось, он многократно прогоняет его через различные эвристики, добиваясь
их полной и безоговорочной капитуляции. В смысле молчания.
Кстати   говоря,   еще   во   времена  MS-DOS  мыщъх   носился   с   идей   антивируса,
распознающего не вирусы,  а… легальные программы!  Уже тогда количество существующих
вирусов и их модификаций на несколько порядков (не двоичных!) превысило число популярных
программ!   В   антивирусной   базе   содержатся   контрольные   суммы   легальных   программ,
рассчитанные по алгоритму  MD5,  который очень сложно подделать,  в результате  чего факт
заражения   распознается   влет   независимо   от   алгоритма   внедрения,   а   все   неизвестные
антивирусы   программы   попадают   в   категорию   потенциально   зараженных.   При   тесной
кооперации   разработчиков  ПО  с   антивирусными   компаниями,   "потенциально   зараженных"
программ   будет   немного   и   это   (в   основном)   будет   программы,   написанные   на   коленке
неизвестно кем и неизвестно как. Ошибки, допущенные при их создании, зачастую несут ничуть
не   меньший   ущерб   чем  вирусы.   Забавно,   но   к   этой   идеи   антивирусная   индустрия   начала
подходить только сейчас, предлагая услуги по сертификации ПО, однако, сама сертификация —
чисто  формальная   процедура   и   даже   если   цифровую  подпись   напрямую  подделать   нельзя
(криптография не велит), можно подкупить (ввести в заблуждение) выдающего его человека, то
есть круг замыкается.
Никакие, даже самые совершенные антивирусы ни от чего не спасают! При этом они 
стоят   немалых   денег,   пожирают   сетевой   трафик   частыми   обновлениями,   вызывают
конфликты и тормозят работу системы,  между тем система вполне может справиться с 
вирусами и сама — никакие дополнительные костыли ей не нужны!
"песочница" как средство от вирусов и прочей заразы
Я сейчас скажу кое-что,  но только если вы пообещаете,  что не будете кидать в меня
камни. Ага, это вы сейчас говорите, что не будете…. ну да ладно, мне уже все равно. Короче, в
отличии от, например,  BSD,  Windows NT _не_ является многопользовательской операционной
системой, поскольку только один пользователь может работать с компьютером в любой момент
времени   и,   прежде   чем  переключиться   на   другого,   необходимо   завершить   текущий   сеанс,
закрыв   все   приложения   и   лишь   потом… А  вот   в  BSD  все   очень   просто:   нажал  Alt-F#   и
переключился на соседнюю консоль и все! В Windows XP наконец-то появилась возможность
переключения сеансов разных пользователей без завершения,  но… механизма взаимодействия
между пользователи как не было, так и нет. Да и неудобно это все равно…
Правда, в текущем сеансе можно запускать программы от имени другого пользователя,
но это во-первых, совсем не то, а, во-вторых, далеко не все программы соглашаются на такой
запуск, и еще меньше из них сохраняют свою работоспособность в полном объеме. Так что без
бубна здесь не обойтись. Если нет бубна, на худой конец сойдет и обычный оцинкованный таз.
Идея   противостояния   вирусам   в   общих   чертах   заключается   в   выборе   правильной
политики разграничения  доступа,  тогда вирус  (или другая  зловредная программа)  просто не
сможет напакостить и нанести сколь ни будь значительный урон. А для этого все потенциально опасные программы нужно запускать в своеобразной  песочнице. В идеале — на виртуальной
машине   типа  VM Ware,   однако,   про  VM Ware  мы   уже   неоднократно   писали,   а   вот   про
разграничение доступа — материалов практически нет.
Начнем  с   того,  что  никогда,  ни при  каких  обстоятельствах  не   следует постоянно
сидеть под "администратором",  поскольку при этом любая  запущенная программа может
делать с системой все, что ей вздумается. Под администратором следует заходить в систему
только   для   выполнения   "ремонтных"   работ —   установки   новых   драйверов,   изменения
параметров   конфигурации   и   т. д.   А   все   остальное   время   проводить   под   "опытным
пользователем"   или   просто   "пользователем"   с   ограниченным  доступом.  Чем меньше   у   вас
привилегий,   тем   меньше   их   и   у   каждой   запущенной   вами   программы,   однако,   под
обыкновенным пользователем многие программы работать отказываются,  поскольку требуют
записи в каталог Program Files или в другие "злачные" места, поэтому приходиться громко бить
в бубен и долго трахаться, но зато потом! Потом наступает тишь да благодать! Ни вирусов, ни
другого малваре.
Необходимости   в   периодическом   резервировании,   естественно,   никто   не   отменял.
Надежнее  всего,  конечно,  резервироваться на  CD-R/RW,  DVD-RW,  ZIP,  стримеры и прочие
внешние носители информации,  однако,  это непроизводительно,  неудобно,  да и надежность у
винчестеров  все  же повыше будет,  чем у  того же  CD-RW.  Поступим так.  Создадим нового
пользователя с администраторскими правами (Пуск -> Панель Управления -> пользователи и
пароли  -> Имя  -> Пароль  -> Другой -> Администраторы),  назовем его,  к примеру,  "backup",
зайдем под его именем в систему,  создадим каталог  general-stores  (т. е.  общее хранилище)  и
скопируем  туда  все,  что необходимо.  Затем,  щелкнув  по каталогу правой кнопкой мыши,  в
появившемся контекстом меню выбираем вкладку "свойства", а там "безопасность" со списком
допущенных лиц. По умолчанию каталог доступен для всех, что никак не входит в наши планы,
поэтому удаляем "всех" на хрен, предварительно сбросив галочку "переносить наследуемые от
родительского   объекта   разрешения  на   этот   объект".  Все!!!  Теперь   этот   каталог   недоступен
никому,  даже системе!  И только владелец,  создавший его  (то есть "backup"),  может войти в
раздел "безопасность" и вернуть "всех" на место. Внимание! Администратор этого сделать _не_
сможет!!!  Ну вообще-то,  чтобы  так не  извращаться,  после  удаления   "всех"  можно добавить
пользователя   "backup",   делегировав   ему   полный   доступ   к   каталогу.   Все   же   остальные
пользователи, включая членов группы администраторы, добраться до этого каталога не смогут.
Хорошая защита от вирусов и прочих деструктивных программ,  неправда ли? (ну вообще-то,
если зловредный код получит права администратора, он запросто сможет забить диск мусором
на секторном уровне, но к счастью, такие вирусы практически не попадаются). Кстати говоря,
задумаемся, а что произойдет, если случайно (преднамеренно) удалить пользователя "backup"?
Ведь тогда к архиву доступ не сможет получить _никто_! К счастью, штатная утилита chkdsk
распознает   такую   ситуацию   и   если   видит   подобный   каталог-зомби,   она   автоматически
возвращает "всех", воскрешая информацию из небытия.
Нашей следующей задачей будет постройка "песочницы" для всех тех программ,  что
могут   быть   атакованы из   сети,  к   числу которых  принадлежит  IE,  Fire Fox,  Outlook Express,
The Bat,   ICQ   и   другие.   Каждая   из   них   должна   быть   запущена   из-под   ограниченного
пользователя,  не имеющего доступа ни к каким каталогам,  кроме тех,  что явно нужны самой
программе. В принципе, можно завести одного ограниченного пользователя на всех, обозвав его
к примеру "sandbox" (то есть песочница), однако, в этом случае червь, пробравшийся через IE,
сможет разрушить почтовую базу,  накопленную за многие годы,  что будет обидно.  Поэтому
лучше всего дать каждой программе по пользователю (конечно,  это увеличивает потребности
системы в памяти, но не столь радикально).
Итак,   создан   ограниченный   пользователь   "sandbox",   в   свойствах   "безопасности"
каждого   каталогов   (или   всех   дисков   целиков)   "sandbox"   добавлен   и   доступ   ему   запрещен
(политика   запрета   имеет   приоритет   над   политикой   разрешений,   поэтому   удалять   "всех"
совершенно необязательно).  По  завершению  этой нехитрой операции,  у  sandbox'а останутся
только те каталоги, которые ему нужны (как правило, это каталоги самой программы, причем
без права записи в исполняемые файлы).
Попробуем запустить в песочнице ну… например, Fire Fox. Создаем ярлык с firefox.exe
(если только это не сделал инсталлятор), щелкаем по нему правой клавишей, идем в "свойства"
и там взводим галочку "запускать от имени другого пользователя". Говорим "ОК" и запускаем.
Появляется грозное диалоговое окно, требующее ввода имени и пароля. Вводим. И… ни хрена
Горящий Лис не запускается!  Между прочим,  в  Linux/BSD  подобная операция протекает без
каких бы то ни было проблем. А здесь нужен бубен или более конкретно — файловый монитор
Марка   Руссиновича,   показывающий   на   каких   именно   файловых   операциях   программа обламывается   (вот   так,   значит,  разработчики относятся  к  сообщениям об ошибках).  Качаем
файловый   монитор:   http://www.sysinternals.com/Utilities/Filemon.html   (он,   кстати,   занимает
меньше   двухсот   килобайт   и   распространяется   совершенно   бесплатно).   Запускаем   из-под
администратора   (создаем   ярлык   и   взводим   уже   известную  нам   галочку   "запускать   от…"),
запускаем!  В данном  случае  файловый монитор  запускается   (потому что  запрограммирован
правильно) и мы быстрым спортивным шагом идем в Options  Filter/Highlight или нажимаем
<CTRL-L>.   В  появившимся   диалоговом   окне   взводим   все   галочки,   кроме   "Log Successes",
поскольку   мониторить   успешные   операции   нам   на   хрен   не   нужно!  Нам   нужны  ошибки!
Нажимаем "OK" и перезапускаем программу (фильтр будет действовать только после запуска).
Вновь запускаем Горящего Лиса.  Что мы видим? Сначала идут ошибки поиска динамических
библиотек в тех каталогах, где их нет — ну это нормально. А вот дальше… дальше, Горящий
Лис пытается создать папку Mozilla прямо в каталоге WINNT (в ней он хранит свои настройки,
кэш страниц и т.д.), куда его, естественно, не пускают и он тихо умирает.
Да…   задача.   Пробуем   утилиту   командной   строки  runas,   запустив   ее   так:
"runas /user:sandbox firefox.exe"   (при   этом  firefox.exe  должен   быть   в   текущей
директории).  Нас деловито спрашивают пароль и… Ни хрена!  Теперь,  Горящий Лис лезет в
Document-n-Setting\Default User, куда ему доступа так же нет! В чем же дело?! В чем причина?!
А  в   том,   что   для   корректной   работы  большинства   программ  необходимо   загрузить   еще   и
профиль   пользователя,   от   имени   которого  мы  их   запускаем,   поэтому   правильный   вариант
выглядит   так:   "runas /profile /user:sandbox firefox.exe".   Теперь   запуск
проходит без проблем!
А  вот  Опера   хранит   кэш  не   в   профиле   пользователя,   а   непосредственно   в   своем
каталоге (впрочем, это зависит от ее настроек), поэтому sandbox'у необходимо присвоить права
на запись в "program files\opera".
Остальные   программы   "распутываются"   аналогичным   образом.   Если   не   помогает
файловый монитор, качаем монитор реестра (http://www.sysinternals.com/Utilities/Regmon.html) и
смотрим в каких ветвях нуждается программа. Маленький подводный камень — перенаправить
ввод с клавиатуры на файл, увы не удастся и пароль придется каждый раз вводить вручную, что
напрягает. Впрочем, программисты запросто напишут программу лишенную этих недостатков.
Нам   же   главное —  создать   кучу   пользователей,   распределив   правда   доступа   так,   чтобы
зловредные  программы не  имели никаких  шансов  ни  для   размножения,  ни  для  шпионской
деятельности.
заключение
Создание защищенной системы без использования антивирусов — это реально! Пускай,
на первоначальном этапе нам придется проделать большой объем работы и очень много думать
головой,   создавая   столько  пользователей,  чтобы полностью изолировать  одно потенциально опасное   приложение   от   всех   остальных,   но   и   с   другой   стороны,   не   запутаться   какой
пользователь на что отвечает.  Зато какая благодать давать своим домашним играть на вашей
машине, зная, что они _ничего_ плохо с ней не смогут сделать, ну разве что очень-очень сильно
захотят.
Категория: ОСи | Добавил: LiRvD (16.06.2010)
Просмотров: 1353 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024Создать бесплатный сайт с uCoz