Нашей следующей задачей будет постройка «песочницы» для всех тех программ, что могут быть атакованы из сети, к числу которых принадлежит IE, Fire Fox, Outlook Express, The Bat, ICQ и другие. Каждая из них должна быть запущена из-под ограниченного пользователя, не имеющего доступа ни к каким каталогам, кроме тех, которые явно нужны самой программе. В принципе, можно завести одного ограниченного пользователя на всех, обозвав его, к примеру, «sandbox» (то есть песочница), однако в этом случае червь, пробравшийся через IE, сможет разрушить почтовую базу, накопленную за многие годы, что будет обидно. Поэтому лучше всего дать каждой программе по пользователю (конечно, это увеличивает потребности системы в памяти, но не столь радикально).
Итак, создан ограниченный пользователь «sandbox», в свойствах «безопасности» каждого каталогов (или всех дисков целиков) «sandbox» добавлен, и доступ ему запрещен (политика запрета имеет приоритет над политикой разрешений, поэтому удалять «всех» совершенно не обязательно). По завершению этой нехитрой операции у sandbox’а останутся только те каталоги, которые ему нужны (как правило, это каталоги самой программы, причем без права записи в исполняемые файлы).
Попробуем запустить в песочнице, например, Firefox. Создаем ярлык с firefox.exe (если только это не сделал инсталлятор), щелкаем по нему правой клавишей, идем в «свойства», затем — в «дополнительно» и там взводим галочку «запускать от имени другого пользователя». Говорим «ОК» и запускаем. Появляется грозное диалоговое окно, требующее ввода имени и пароля. Вводим. И… Горящий Лис не запускается! Между прочим, в Linux/BSD подобная операция протекает без каких бы то ни было проблем (в XP и выше проблем с конкретной Firefox также не возникает. — Прим. редактора). А здесь нужен бубен или более конкретно — файловый монитор Марка Руссиновича, показывающий, на каких именно файловых операциях программа обламывается (вот так, значит, разработчики относятся к сообщениям об ошибках). Качаем файловый монитор: www.sysinternals.com/Utilities/Filemon.html (он, кстати, занимает меньше двухсот килобайт и распространяется совершенно бесплатно). Запускаем из-под администратора: создаем ярлык и взводим уже известную нам галочку «запускать от…»! В данном случае файловый монитор запускается, потому что запрограммирован правильно, и мы быстрым спортивным шагом идем в Options -> Filter/Highlight или нажимаем
Да… задача. Пробуем утилиту командной строки runas, запустив ее так: «runas /user:sandbox firefox.exe» (при этом firefox.exe должен быть в текущей директории). Нас деловито спрашивают пароль и… ничего! Теперь Горящий Лис лезет в Document-n-Setting\Default User, куда ему также нет доступа! В чем же дело?! В чем причина?! А в том, что для корректной работы большинства программ необходимо загрузить еще и профиль пользователя, от имени которого мы их запускаем, поэтому правильный вариант выглядит так: «runas /profile /user:sandbox firefox.exe». Теперь запуск проходит без проблем!
А вот Опера хранит кэш не в профиле пользователя, а непосредственно в своем каталоге (впрочем, это зависит от ее настроек), поэтому sandbox’у необходимо присвоить права на запись в «program files\opera».
Остальные программы «распутываются» аналогичным образом. Если не помогает файловый монитор, то качаем монитор реестра (www.sysinternals.com/Utilities/Regmon.html) и смотрим, в каких ветвях нуждается программа. Маленький подводный камень: перенаправить ввод с клавиатуры на файл, увы, не удастся, и пароль придется каждый раз вводить вручную, что напрягает. Впрочем, программисты запросто напишут программу, лишенную этих недостатков. Нам же главное — создать кучу пользователей, распределив права доступа так, чтобы зловредные программы не имели никаких шансов ни для размножения, ни для шпионской деятельности.
Создание защищенной системы без использования антивирусов — это реально! Пускай на первоначальном этапе нам придется проделать большой объем работы и очень много думать головой, создавая столько пользователей, чтобы полностью изолировать одно потенциально опасное приложение от всех остальных. Зато будешь знать наверняка, что, работая на твоей любимой машине, домашние ничего плохого с ней сделать не смогут.