В ms windows изолированные web приложения исполняются в процессе

Какой ты сисадмин? Дорогой luckyssv , Вы гуру! Мы сами не можем выбить столько правильных ответов в этом тесте. Пожалуйста, пришлите нам Ваше резюме! Правильных ответов: 15 из 16 Пройти тест: Какой ты сисадмин? 1. RAID0 обеспечивает: a. Повышение скорости b. Повышение надежности…

1. RAID0 обеспечивает:
 a. Повышение скорости
 b. Повышение надежности
 c. И то, и другое
 d. Ни то, ни другое.

2. IP-адрес — это:
 a. Адрес компьютера в сети
 b. Адрес устройства в сети
 c. Адрес сетевой карты
 d. Адрес сетевого интерфейса.

3. Какое из перечисленных выражений НЕ является корректной маской подсети?
 a. 255.255.0.0
 b. 255.255.255.224
 c. 255.255.255.216
 d. Ни b., ни c. не являются корректными масками

4. Массив RAID5 можно собрать из (выберите самое точное утверждение):
 a. Двух и более дисков
 b. Трех и более дисков
 c. Ровно трех дисков
 d. Четырех и более дисков

5. В Windows 2000 изолированные (isolated) web-приложения исполняются в процессе:
 a. inetinfo.exe
 b. dllhost.exe
 c. rundll32.exe
 d. svchost.exe

6. В чем отличие между TCP и UDP?
 a. TCP использует UDP как протокол более низкого уровня.
 b. TCP обеспечивает гарантию доставки, а UDP — нет.
 c. TCP используется для передачи данных между сетями, а UDP — только в локальной сети.
 d. Нет отличий — это два названия одного и того же протокола.

7. Какое из условий должно быть выполнено, чтобы ping’и ходили в Интернет через ISA Server?
 a. На клиенте должен быть установлен Firewall Client
 b. Адрес внутреннего интерфейса ISA Server’а должен быть шлюзом по умолчанию для клиента
 c. На ISA Server’е должно быть создано правило, разрешающее залогиненному на клиенте пользователю отправлять и получать соответствующий ICMP трафик
 d. Ни одно из этих условий не является обязательным

8. Чтобы получить удаленный доступ к рабочему столу Windows XP с использованием встроенных механизмов Windows XP, необходимо:
 a. Иметь права администратора на компьютере, к которому осуществляется доступ
 b. Иметь права администратора на компьютере, с которого осуществляется доступ
 c. Включить на компьютере, к которому осуществляется доступ, флажок «Разрешить удаленный доступ к этому компьютеру» в свойствах системы
 d. Установить на компьютере, к которому осуществляется доступ, терминальный сервер

9. На loopback интерфейс попадают пакеты, отправленные на адрес:
 a. 127.0.0.1
 b. 127.1.1.1
 c. Любой корректный адрес вида 127.x.x.x
 d. Любой корректный адрес вида 192.168.x.x

10. Запись 10.0.0.0/24 означает:
 a. Сеть 10.0.0.0 с маской 0.0.0.0
 b. Сеть 10.0.0.0 с маской 255.0.0.0
 c. Сеть 10.0.0.0 с маской 255.255.0.0
 d. Сеть 10.0.0.0 с маской 255.255.255.0

11. Какие VPN протоколы поддерживает Windows?
 a. PPTP
 b. L2TP
 c. И тот, и другой
 d. Ни тот, ни другой

12. Какой из протоколов аутентификации НЕ поддерживает Microsoft SQL Server?
 a. SQL Server authentication
 b. NTLM
 c. Kerberos
 d. Поддерживает все три

13. Вам необходимо подключиться к SQL Server’у на компьютере в другом домене. Трастов между доменом, в котором находится ваш компьютер, и доменом, в котором находится SQL Server, нет. Вам известны логин и пароль пользователя, не являющегося локальным администратором на удаленном компьютере, но имеющего доступ к SQL Server’у. На удаленном компьютере нет ни одной расшаренной папки или принтера. Ваши действия:
 a. net use
\remotecomputerc$ /user:remotecomputernonadminuser
 b. net use
\remotecomputersql$ /user:remotecomputernonadminuser
 c. net use
\remotecomputeripc$ /user:remotecomputernonadminuser, затем запустить cliconfg, на вкладке Alias создать запись для remotecomputer с использованием протокола Named Pipes
 d. net use
\remotecomputersql$ /user:remotecomputernonadminuser, затем запустить cliconfg, на вкладке Alias создать запись для remotecomputer с использованием протокола TCP/IP

14. Сколько жил используется в витой паре при передаче данных в сети Ethernet?
 a. 4
 b. 8
 c. 4 в режиме half duplex, 8 в режиме full duplex
 d. 4 на скоростях до 100Mbps, 8 на скоростях от 1000Mbps

15. Скрытые шары, которые Windows (NT/2K/XP/2K3) создает по умолчанию:
 a. c$ (и другие диски, включая CDROMы), Admin$
 b. c$ (и другие диски, включая CDROMы), Admin$, ipc$
 c. c$ (и другие non-removable диски), Admin$, ipc$
 d. c$ (и другие non-removable диски), Admin$, rpc$

16. Сколько флоппи-дисководов можно поставить в один компьютер (без использования USB)?
 a. 1
 b. 2
 c. 3
 d. 4

dot dot

Date: 2007-09-28 02:19
Subject: НЕ, мне просто интересно, на какой вопрос я не ответил правильно.
Security: Public

Вы гуру! Мы сами не можем выбить столько правильных ответов в этом тесте. Пожалуйста, пришлите нам Ваше резюме!

Правильных ответов: 15 из 16

1. RAID0 обеспечивает:
a. Повышение скорости
b. Повышение надежности
c. И то, и другое
d. Ни то, ни другое.

А вот насчет «разницы между TCP и UDP». не понял уж я! Это ж принципиально разные вещи, которые разве только IP и объединяет.
А откуда вообще такой странный вопрос возник?

По-моему, на 8-й вопрос однозначен ответ c. Он наиболее правильный. Конечно, есть и другие способы включить Remote Desktop. Но остальные три ответа точно неправильные. Ответ d неверен потому, что речь идет о машине с Windows XP.

Нужна была статья о различиях этих двух протоколов на русском языке для быстрого ответа другу. Я, кстати, так и не нашел, пришлось самому объяснять. 🙂

Источник

Microsoft рассказала, почему браузеры в Windows 10 создают так много процессов

Многие замечали, что современные браузеры создают большое количество процессов даже в случаях, когда открыта всего одна вкладка. По словам Microsoft, это происходит из-за многопоточной архитектуры обозревателей, при которой веб-приложения и плагины запускаются в отдельных процессах от вкладок и самого браузера.

13

Изображение: Windows Latest

В операционной системе Windows 10 выполняется большое количество процессов, увидеть которые можно на соответствующей вкладке диспетчера задач. Здесь же можно увидеть, что с запущенным браузером связано сразу несколько процессов. Microsoft утверждает, что это происходит из-за особенностей архитектуры современных браузеров, которая предполагает использование разных процессов для выполнения тех или иных задач.

Такой подход разработан для повышения уровня производительности, безопасности и надёжности браузера. К примеру, если в процессе работы возникла проблема с механизмом рендеринга, в результате чего произошёл сбой одной из вкладок, это никак не повлияет на сам браузер и другие открытые в нём вкладки. Архитектура браузеров включает в себя и другие процессы, направленные на повышение быстродействия и надёжности.

Благодаря этому Microsoft и Google могут использовать ограниченную среду песочницы. Например, если злоумышленники пытаются атаковать компьютер через какой-то веб-сайт, за счёт изолирования процессов можно не дать им заполучить контроль над всей системой. Это также полезно, когда вы переходите на некачественные сайты, которые могут привести к сбоям, но вред от них затронет только один процесс и не отразится на работе браузера в целом.

Для снижения количества потребляемых процессами ресурсов Microsoft разработала функцию под названием «Спящие вкладки», которая ещё не появилась в стабильных версиях Windows 10. Этот инструмент помогает браузеру приостанавливать обработку неиспользуемых вкладок, а также возвращаться к их отображению в случае необходимости. Аналогичная экспериментальная функция появилась ранее в браузере Chrome.

Источник

В ms windows изолированные web приложения исполняются в процессе

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

мысли сходящего с ума психа

флеффмоб (via kf)

Вы гуру! Мы сами не можем выбить столько правильных ответов в этом тесте. Пожалуйста, пришлите нам Ваше резюме!

Правильных ответов: 16 из 16

6 «правильных». Тест абсолюнто направлен на именно администраторов сетей под MS Windows, к коим я никак не отношусь. Но, чтобы не быть голословным, приведу свои ответы.

RAID0 обеспечивает
Хрен знает, наверное, надёжность. Но его обычно используют просто чтобы соединить несколько дисков в один раздел.

IP-адрес — это
Адрес сетевого интерфейса, если вспомнить, что IP-адрес есть даже у loopback’а.

Какое из перечисленных выражений НЕ является корректной маской подсети?
255.255.255.224 и 255.255.255.216.

Массив RAID5 можно собрать из (выберите самое точное утверждение)
ХЗ, наверное, из двух и более.

В Windows 2000 изолированные (isolated) web-приложения исполняются в процессе
Откуда мне знать? Помню, есть там такой svchost.exe — может, в нём.

В чем отличие между TCP и UDP?
TCP обеспечивает гарантию доставки, в отличие от UDP. UDP зато побыстрей будет и поэтому его целесообразнее использовать для передачи по IP всяких «странных вещей», вроде аудио и видео.

Какое из условий должно быть выполнено, чтобы ping’и ходили в Интернет через ISA Server?
Ну, хрен знает про ISA, но в iptables при создании обычного правила MASQUERADE вообще ничего больше не надо прописывать. ICMP-трафик идёт — «вот и ладушки». 🙂

Чтобы получить удалённый доступ к рабочему столу Windows XP с использованием встроенных механизмов Windows XP, необходимо
Откуда мне знать? У меня, что, есть Windows XP?

На loopback-интерфейс попадают пакеты, отправленные на адрес
Любой корректный адрес вида 127.x.x.x.

Запись 10.0.0.0/24 означает
10.0.0.0 с маской 255.255.255.0.

Какие VPN-протоколы поддерживает Windows?
Хорошо живётся телепатам…

…ситуация с SQL Server’ом…
Ребят, кончайте уже, не смешно.

Сколько жил используется в витой паре при передаче данных в сети Ethernet?
Понятия не имею. Захочу узнать — зайду в Википедию и посмотрю распайку, это несложно.

Скрытые шары, которые Windows создаёт по умолчанию
Лучше бы вообще не создавала.

Сколько флоппи-дисководов можно поставить в один компьютер (без использования USB)?
Контроллер 1 де-факто. Но кто запрещает взять материнскую плату с двумя, тремя, 10 контроллерами floppy?

>RAID0 обеспечивает
>Хрен знает, наверное, надёжность. Но его обычно используют просто чтобы соединить несколько дисков в один раздел
a. Повышение скорости

>Какое из перечисленных выражений НЕ является корректной маской подсети?
>255.255.255.224 и 255.255.255.216.
c. 255.255.255.216
255.255.255.224 совершенно корректная маска /27, кроме того варианта для вашего ответа там нет.

>Массив RAID5 можно собрать из (выберите самое точное утверждение)
>ХЗ, наверное, из двух и более.
b. Трех и более дисков

Эти 3 вопроса должен знать каждый админ. Знание Win-систем при этом совершенно не обязательно.

>В Windows 2000 изолированные (isolated) web-приложения исполняются в процессе
>Откуда мне знать? Помню, есть там такой svchost.exe — может, в нём.
b. dllhost.exe
Из умных книжек по Windows, курсов, практики, друзей/знакомых.

>Чтобы получить удалённый доступ к рабочему столу Windows XP с использованием встроенных механизмов Windows XP, необходимо
>Откуда мне знать? У меня, что, есть Windows XP?
c. Включить на компьютере, к которому осуществляется доступ, флажок «Разрешить удаленный доступ к этому компьютеру» в свойствах системы
Админ работающий с Windows-системами такое знать должен. Компания эта ориентируется на Win, о чём и пишет на странице о компании. Ваше возмущение некорректно.

>Какие VPN-протоколы поддерживает Windows?
>Хорошо живётся телепатам…
c. И тот, и другой
При чём тут телепатия? Если бы вы работали с этой системой, вы бы знали, вот и всё.

>…ситуация с SQL Server’ом…
>Ребят, кончайте уже, не смешно.
c. net use \remotecomputeripc$ /user:remotecomputernonadminuser, затем запустить cliconfg, на вкладке Alias создать запись для remotecomputer с использованием протокола Named Pipes
Ситуация нехарактерная и с явным подъёбом, но если вы не знакомы с этими системами, что вы вообще делали в этом тесте?

>Сколько жил используется в витой паре при передаче данных в сети Ethernet?
>Понятия не имею. Захочу узнать — зайду в Википедию и посмотрю распайку, это несложно.
d. 4 на скоростях до 100Mbps, 8 на скоростях от 1000Mbps
При чём тут распайка? И что ж не пошли, не посмотрели, а?

>Скрытые шары, которые Windows создаёт по умолчанию
>Лучше бы вообще не создавала.
c. c$ (и другие non-removable диски), Admin$, ipc$
-__-

>Сколько флоппи-дисководов можно поставить в один компьютер (без использования USB)?
>Контроллер 1 де-факто. Но кто запрещает взять материнскую плату с двумя, тремя, 10 контроллерами floppy?
b. 2
Ключевое слово «без использования USB». Покажите мне, пожалуйста, материнскую плату с 10 контроллерами.

Источник

Основы функционирования веб-приложений

Что такое веб-сервер?

Цель лекции: дать определение понятию «веб-сервер» и сформировать представление о работе этого механизма.

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

03 01

После того, как пользователь обратился к определенному ресурсу по протоколу HTTP, клиент (обычно браузер) формирует HTTP-запрос к веб-серверу. Обычно указывается символическое имя сервера (например, «http://www.microsoft.com») – в этом случае браузер предварительно преобразует это имя в IP-адрес при помощи сервисов DNS. После этого по протоколу HTTP на веб-сервер отправляется сформированное HTTP-сообщение. В этом сообщении браузер указывает какой ресурс необходимо загрузить и всю дополнительную информацию. Задача веб-сервера – прослушивать определенный TCP-порт (обычно порт 80) и принимать все входящие HTTP-сообщения. Если входящие данные не соответствуют формату сообщения HTTP, то такой запрос игнорируется, а клиенту возвращается сообщение об ошибке.

В простейшем случае при поступлении HTTP-запроса веб-сервер должен считать содержимое запрашиваемого файла с жесткого диска, упаковать его содержимое в HTTP-ответ и отправить клиенту. В случае если требуемый файл не найден на жестком диске, то веб-сервер сгенерирует ошибку с указанием статусного кода 404 и отправит это сообщение клиенту. Такой вариант работы веб-сервера принято называть статическими сайтами. В этом случае на стороне сервера не запускается никакой программный код, кроме программного кода самого веб-сервера. Однако подобные сценарии работы все чаще оказываются непригодными, а им на смену приходят полноценные веб-приложения. Отличие таких приложений состоит в том, что HTML-документы и другие ресурсы не хранятся на сервере в виде неизменяемых данных. Вместо этого, на сервере хранится программный код, который способен сгенерировать эти данные в момент обработки запроса. Разумеется, некоторые ресурсы (такие как файлы каскадных стилей, изображения и т.д.) могут храниться как статическое содержимое, но основные страницы HTML генерируют в процессе обработки. В таком случае веб-сервер при обработке запроса HTTP должен обращаться к программному коду, который должен сгенерировать содержимое. С учетом вышесказанного алгоритм работы веб-сервера будет выглядеть следующим образом.

03 02

Одной из наиболее важных задач, которые решаются при построении веб-сервера является задача обеспечения масштабируемости (т.е. возможности увеличения количества обслуживаемых пользователей) и защищенности от внешних атак. Поскольку веб-сервер работает в открытой среде – глобальной сети Интернет – то зачастую доступ к нему может осуществляться откуда угодно. Это делает веб-сервер подверженным большим нагрузкам и потенциальным атакам. Наиболее распространенными атаками на веб-сервер является обращение к веб-серверу с большим количеством запросов и их высокой частотой. В этом случае веб-сервер не сможет быстро обрабатывать все запросы, а это может сказаться на производительности веб-сервера для настоящих пользователей. Особенно остро подобным атакам подвержены веб-сервера, на которых исполняется какой-то внешний программный код за исключением программного кода самого веб-сервера. Обычно для борьбы с подобными атаками блокируются все запросы, которые приходят с определенного IP-адреса. Кроме того, в подобных случаях следует позаботится об оптимизации программного кода приложения, например, использовать кэширование – в этом случае при обработке каждого запроса нагрузка на центральный процессор будет меньше, что может существенно усложнить задачу атакующим.

Нередко на одном и том же веб-сервере располагается множество независимых веб-сайтов. Более того, все эти веб-сайты используют один и тот же IP-адрес. Т.е. веб-сервер, имеющий только один IP-адрес может размещать внутри себя несколько веб-сайтов и при этом каждый такой веб-сайт будет ассоциирован с собственным адресом (например, на одном веб-сервере могут располагаться веб-сайты: «microsoft.com», «gotdotnet.ru», «techdays.ru» и т.д.). Каким образом это становится возможным? Такое явление называется виртуальным хостингом. Для того чтобы понять как это работает, давайте еще раз обратимся к процессу взаимодействия клиента и сервера. Браузер отправляет HTTP-запрос на IP-адрес веб-сервера, который ассоциирован с доменным именем. Разрешение IP-адреса происходит с помощью служб DNS. Однако, несмотря на то, что запрос отправляется, используя полученный IP-адрес, клиент указывает дополнительный HTTP-заголовок » Host «, в котором определяется оригинальное имя веб-сайта. Благодаря этой информации веб-сервер может разграничить доступ к нескольким веб-сайтам и при этом использовать один и тот же IP-адрес. Это очень важный момент, поскольку если бы для каждого доменного имени приходилось бы регистрировать отдельный IP-адрес, то адресное пространство протокола IP (v.4) очень быстро бы закончилось, а стоимость размещения веб-сайта в глобальной сети Интернет была бы намного выше. Для того, чтобы было более понятно давайте рассмотрим работу виртуального хостинга на примере. Предположим, имеется веб-сервер с IP-адресом 85.51.210.22. На этом сервере размещено несколько веб-сайтов: mysite1.com, mysite2.com, mysite3.com. Сервера DNS настроены таким образом, что каждое из этих доменных имен указывает на единственный IP-адрес 85.51.219.22. Давайте посмотрим, какие HTTP-запросы браузер будет генерировать при обращении к каждому из сайтов. При обращении к сайту «mysite1.com» HTTP-запрос может выглядеть следующим образом.

03 a01

При обращении к сайту «mysite2.com» HTTP-запрос будет выглядеть иначе.

03 a02

При анализе HTTP-запросов хорошо видно, что HTTP-заголовок » Host » отличается в каждом из запросов. Таким образом, становится понятно, что веб-сервер анализирует этот заголовок и отправляет клиенту содержимое соответствующего сайта. Схематически этот процесс можно представить следующим образом.

03 03

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

Как уже говорилось ранее, самый простой сценарий работы веб-сервера заключается в получении HTTP-запроса, его обработки, считывания нужного файла с жесткого диска, формирование HTTP-ответа и отправки его клиенту. Подобный сценарий является самым простым, однако, в реальности встречается все реже. Дело в том, что при подобном подходе, содержимое, которое передается клиенту, является статическим (т.е. не изменяется от запроса к запросу). Однако если требуется построить веб-приложение, то содержимое HTML-страницы, которое передается клиенту должно изменяться от различных внешних условий (параметров запроса, содержимого базы данных, времени обработки запроса, типа пользователя и т.д.). В этом случае требуется запускать внешний (по отношению к веб-серверу) программный код, реализующий логику веб-приложения. Этот код должен содержаться отдельно от программного кода самого веб-сервера, поскольку код приложения будет различным от одного приложения к другому, а веб-сервер будет один и тот же. Таким образом, программный код, обрабатывающий HTTP-запросы и генерирующий HTTP-ответы можно условно разделить на две части:

Поскольку программный код веб-приложения обычно упаковывается в отдельные модули и поставляется независимо, то требуются механизмы взаимодействия этих двух частей, т.е. интерфейс взаимодействия. В данном случае под интерфейсом взаимодействия понимается набор правил, по которым веб-сервер и приложение будут взаимодействовать друг с другом. Фактически, схема обработки запроса может выглядеть следующим образом.

03 04

CGI (Common Gateway Interface) – наиболее ранний способ взаимодействия веб-сервера и веб-приложения. Основная идея, которая лежит в основе CGI заключается в том, что при поступлении очередного HTTP-запроса, веб-сервер инициирует создание нового процесса и передает ему все необходимые данные HTTP-запроса. После того, как этот процесс отработает, он завершается, передав при этом результат обратно веб-серверу. Поскольку веб-сервер и приложение – это разные процессы с точки зрения операционной системы, то для обмена информации между ними используются средства межпроцессного взаимодействия (IPC) – зачастую это переменные окружения, именованные каналы и т.д. Основным преимуществом CGI является то, что процесс веб-сервера и приложения изолированы друг от друга и в случае неполадок в веб-приложении, завершится с ошибкой именно процесс приложения, при этом процесс самого веб-сервера будет продолжать функционировать.

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

ISAPI (Internet Server API) – альтернативный способ взаимодействия веб-сервера и веб-приложения. В отличии от CGI, при взаимодействии в рамках интерфейса ISAPI, при поступлении очередного запроса, веб-сервер инициирует создание нового потока в рамках основного процесса, в котором работает веб-сервер. Поскольку с точки зрения операционной системы создание потока – это менее дорогостоящая операция, чем создание процесса, то такие приложения на практике оказываются более масштабируемыми. Кроме того, упрощается взаимодействие веб-сервера и веб-приложения, поскольку в этом случае используется единое адресное пространство в рамках операционной системы (поскольку весь код работает в одном и том же процессе). Однако, в случае серьезных неполадок в веб-приложении, которое взаимодействует с веб-сервером в рамках ISAPI, веб-сервер также потенциально подвергается риску быть завершенным. Поскольку веб-сервер и веб-приложение работают в одном и том же процессе, это действительно так. Поэтому разработчикам программного кода веб-сервера, поддерживающего ISAPI следует уделить этому вопросу особое внимание.

На сегодняшний день наиболее распространенным способом взаимодействия веб-сервера и веб-приложения является интерфейс ISAPI, поскольку обеспечивает наиболее оптимальные показатели по накладным расходам и масштабируемости. Однако, при работе нескольких веб-приложений на одном и том же веб-сервере, в этом случае существует потенциальная опасность влияния одного приложения на другое. Если говорить о компаниях, размещающих веб-приложения на своих серверах, то может случиться такая ситуация, что на одном и том же веб-сервере одновременно размещаются веб-сайты компаний-конкурентов. В этом случае теоретически одна из компаний может намеренно загрузить код, который будет завершать работу веб-сервера с ошибкой и, таким образом, все веб-сайты размещенные на этом веб-сервере окажутся недоступными. Для того, чтобы избежать подобной ситуации используется совмещенный подход – для каждого приложения может создаваться пул приложения (application pool), который представляет из себя отдельный процесс, в котором функционируют потоки для обработки входящих HTTP-запросов от пользователей. В этом случае, если какое-то из приложений будет содержать код, который завершает работу процесса с ошибкой, то будет завершаться процесс только этого приложения. Более того, каждый пул приложения содержит набор заранее созданных и подготовленных потоков. Это необходимо для того, чтобы не тратить время на создание потока в момент поступления входящего запроса. Такой набор заранее созданных потоков называется пулом потоков. Как правило, веб-сервер следит за каждым пулом приложения и если оно завершает свою работу с ошибкой, то веб-сервер перезапускает его процесс.

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

Источник

Изоляция приложений IIS

Проблемы «песочницы»

Время от времени каждому администратору приходится развертывать Web-приложения, связанные с пересылкой конфиденциальной информации. Приложение необходимо установить на надежно защищенном сервере таким образом, чтобы никакая другая программа Microsoft IIS не имела доступа к файлам приложения. Эффективные меры позволяют защитить конфиденциальную информацию от злоумышленников и опасных программ, размещенных на одном сервере с конфиденциальной информацией. Я всегда считал, что приложения, нуждающиеся в особенной защите, необходимо размещать на отдельном сервере. Однако нередко администраторам приходится разворачивать защищенные приложения на одном сервере со многими другими программами.

Например, после слияния двух компаний перед администратором может быть поставлена задача консолидации центров обработки данных, но в соответствии с политиками безопасности программы одной компании должны быть строго изолированы от приложений другой компании, даже если они размещены на одном сервере. В некоторых случаях ресурсы сервера, на котором хранятся важнейшие приложения с конфиденциальной информацией, недоиспользуются, и в процессе консолидации на сервере размещаются другие программы. Каковы бы ни были причины, предположим, что перед администратором поставлена задача развернуть приложение, требующее надежной защиты, на одном IIS-сервере с другими приложениями. На какие вопросы следует ответить и какие обстоятельства учесть, составляя план развертывания максимально изолированных друг от друга приложений?

Особенности изолирования

Желательно сразу предупредить руководителей предприятия о том, что идеальная изоляция приложений не достижима ни на одной из существующих платформ IIS. В частности, полная изоляция приложений в IIS 5.0 невозможна, потому что продукт не проектировался в расчете на использование «песочницы» (sandbox). Важнейшие компоненты и процессоры сценариев, такие как Cold Fusion компании Macromedia, работают в процессе inetinfo.exe, который должен выполняться в контексте учетной записи System. В таких условиях высокий уровень изоляции просто невозможен.

В IIS 6.0 Web-приложения по умолчанию запускаются в контексте безопасности встроенной учетной записи Network Service. Данный контекст — значительный шаг вперед по сравнению с учетной записью System. Благодаря одному этому улучшению IIS 6.0 — уже явно предпочтительный вариант для размещения Web-сервера. Уделив достаточное внимание деталям, можно обеспечить высокий уровень изоляции приложений на сервере IIS 6.0.

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

Представление и идентификация процесса

Для безопасности IIS всегда важно идентифицировать процесс, в котором выполняются приложения. Каждое приложение связано с конкретным экземпляром процесса. Например, если пользователь, зарегистрированный как Joe, запускает notepad.exe, то программа работает под управлением Joe и располагает пользовательскими правами и разрешениями Joe. Как правило, службы выполняются с правами учетной записи System, административные инструменты работают с расширенными правами учетной записи Administrator, а пользовательские программы, такие как Microsoft Office, выполняются с правами запустившего их пользователя. Во всех случаях программа связана со средой исполнения, именуемой также контекстом безопасности.

Как и другие приложения, IIS для запуска Web-приложений задействует хост-процесс (в зависимости от версии IIS). Хост-процесс оценивает системные ресурсы, используя идентификатор процесса. Например, IIS 6.0 задействует хост-процесс с именем w3wp.exe, который работает с идентификатором процесса Network Service. Однако если w3wp.exe всегда использует Network Service для доступа к файлам, то пользовательские разрешения NTFS теряют свое значение! Каждому файлу и программе требуется только разрешение Network Service для чтения, исполнения или записи (по необходимости), а любые другие разрешения излишни.

Очевидно, что такой сценарий неприемлем. Требуется более высокий уровень детализации при управлении разрешениями пользователей и групп. Для этой цели IIS не идентифицирует процессы, а представляет (impersonate) пользователя, сравнивая пользовательский маркер доступа, назначенный в ходе аутентификации, с разрешениями NTFS для файла. Таким образом, реализуются пользовательские разрешения.

Разработчики спроектировали как IIS 6.0, так и IIS 5.0 таким образом, чтобы IIS в большинстве случаев представлял пользователя, но некоторые Web-приложения обходят эту процедуру. Другими словами, программист может составить приложение, которое «обращается к себе» для доступа к системным ресурсам IIS. То есть IIS сверяет разрешения для доступа к системным ресурсам с разрешениями для экземпляра процесса, а не для учетной записи пользователя.

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

Другой способ определить, обращается ли приложение к файлам от имени экземпляра процесса или от имени учетной записи пользователя, — задействовать утилиту Filemon.exe компании Sysinternals. Эта бесплатная утилита показывает в реальном времени все обращения к файлам на сервере. Необходимо лишь отменить разрешения Full Control для нужного файла, запустить Filemon и обратиться к файлу, чтобы увидеть запись Access Denied в столбце результатов и имя пользователя, обратившегося к файлу. Процедура показана на экране 1.

069 1
Экран 1. Выяснение тонкостей доступа к файлу с помощью Filemon

Идентификация процесса чрезвычайно важна для изоляции приложений. Рассмотрим два приложения — защищенное и общедоступное. Если оба приложения работают с одним экземпляром процесса, то разработчик общедоступного приложения может загрузить на сервер программу, которая переключает экземпляр процесса. В данном контексте безопасности программа, работающая в общедоступном приложении, может прочитать весь контент Web-узла из безопасного приложения и даже вызывать размещенные в нем приложения. Самая большая угроза при этом исходит от пользователей, имеющих право загружать на сервер и запускать программы, особенно двоичные исполняемые файлы. Поэтому главную опасность представляют программисты, имеющие доступ к приложениям. Взломщик извне может добиться таких же результатов, успешно проведя атаку с использованием идентификатора процесса общедоступного приложения. Типичный пример — атаки с переполнением буфера. Злоумышленник также может разместить «троянского коня» на рабочей станции программиста и получить привилегированный доступ к серверу или получить доступ методами «социальной инженерии». По этой причине приложения, которые должны работать в контексте учетной записи System или Administrator, нельзя надежно изолировать друг от друга.

В идеальном случае, решая задачу создания изолированного в «песочнице» приложения, можно применить к Web-контенту разрешения NTFS. В результате получаем экземпляры процессов, связанных с защищенным приложением, и его пользователи — единственные субъекты безопасности, имеющие доступ к контенту. Другими словами, следует убедиться, что разрешения NTFS не дают доступа к экземпляру процесса любому другому Web-приложению. Для этого необходимо знать все идентификаторы процессов, используемые IIS. В IIS 6.0 назначить защищенному приложению уникальный идентификатор достаточно просто (об этом будет рассказано в следующем разделе), а для IIS 5.0 можно руководствоваться таблицей. Таблица применима и к IIS 6.0 при работе в режиме изоляции исполняемого процесса IIS 5.0.

Изменение идентификаторов процессов

При выполнении типичного Web приложения в IIS 5.0 можно увидеть три имени процесса, каждое с собственным идентификатором. Inetinfo.exe — главный процесс, который работает в контексте процесса System. IIS использует dllhost.exe, когда приложение настроено на работу в режиме Medium или High Application Protection в IIS Manager и выполняется в контексте пользователя IWAM_servername user (создаваемого в процессе установки IIS). Приложения ASP.NET выполняются в процессе с именем aspnet_wp.exe, который использует в качестве идентификатора процесса учетную запись ASPNET.

При запуске Web-приложений в Inetinfo с идентификатором процесса System возникает проблема. В случае атаки с переполнением буфера (как было при нападениях Code Red и Nimbda), взломщик получает доступ к самым широким правам на сервере.

Microsoft не поддерживает работу inetinfo.exe в контексте учетных записей, кроме учетной записи System. Кроме того, несмотря на возможность изменить идентификатор процесса приложений ASP.NET, все приложения ASP.NET выполняются в одном экземпляре aspnet_wp.exe. Лучшее решение для IIS 5.0 — использовать Component Services для настройки идентификатора IWAM для dllhost.exe. Сделав это, необходимо изменить пароль в метабазе и для локальной учетной записи пользователя IWAM. Из-за необходимости специализированных настроек усложняются развертывание, диагностика и администрирование. В результате, а также в силу зависимости от inetinfo.exe (работающей от имени System) не рекомендуется применять IIS 5.0 для изоляции приложений в «песочницах».

Объединять идентификаторы процессов IIS 6.0 гораздо проще, чем в IIS 5.0. По умолчанию любая программа, запускаемая на сервере IIS 6.0, будет выполняться в контексте учетной записи Network Service, за исключением приложений Common Gateway Interface (CGI), которые работают в собственном контексте пользователя, вызвавшего их. Назначить уникальный идентификатор любому пулу приложений, в котором размещено Web-приложение, можно на вкладке Identity в диалоговом окне свойств пула (экран 2).

069 2
Экран 2. Диалоговое окно Properties пула приложений

Однако есть одна особенность: учетная запись Network Service — член группы, существующей только в Windows Server 2003 с установленным IIS 6.0, группы IIS_WPG. Как указывается в справочных файлах IIS 6.0, группа IIS_WPG располагает минимальным набором полномочий, необходимых для IIS, и обеспечивает удобный способ использования учетной записи определенного пользователя в качестве идентификатора, не назначая вручную разрешений этому идентификатору. Далее: «В тех случаях когда учетная запись не принадлежит к группе IIS_WPG и не имеет соответствующих разрешений, попытка запуска исполнительного процесса закончится неудачей». Эта цитата не точна и вводит в заблуждение. Идентификатор, присвоенный пулу приложений (экран 2), должен быть членом группы IIS_WPG. Это обязательное условие. Нельзя назначить учетной записи пользователя все необходимые полномочия, так как некоторые из них встроены в группу IIS_WPG и связаны с http.sys.

Это обстоятельство имеет важное значение для изоляции приложений в IIS 6.0. Следует помнить, что программист может управлять представлением. Все экземпляры процессов (пулы приложений) являются членами группы IIS_WPG, поэтому по умолчанию все Web-приложения могут обращаться к любому контенту на сервере, доступ к которому для IIS_WPG разрешен настройками NTFS.

Задача администратора здесь простая, но не очевидная: необходимо назначить уникальный экземпляр процесса каждому изолируемому приложению, сделать экземпляр членом группы IIS_WPG и предоставить уникальному экземпляру разрешения NTFS Read и Execute для контента сайта. Нельзя использовать такие группы, как Users, Everyone, Authenticated Users и IIS_WPG для назначения разрешений на Web-сайте, поскольку уникальные экземпляры процесса будут членами этих групп.

Управление разрешениями для IIS_WPG

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

Группа IIS_WPG имеет разрешения Full Control в папке IIS Temporary Compressed Files. IIS использует эту папку в тех случаях, когда в IIS Manager активизирован режим сжатия. В результате сжатия IIS записывает сжатые данные в папку IIS Temporary Compressed Files и в ответ на последующие запросы извлекает документы из кэша. Для всех Web-узлов существует только одна папка IIS Temporary Compressed Files, и в соответствии со статьей Microsoft «Using HTTP Compression for Faster Downloads» (http://www.microsoft.com/resources/ documentation/IIS/6/all/techref/en-us/iisRG_PER_26.mspx) группа IIS_WPG должна иметь разрешения Full Control для данной папки. Эта информация противоречит сведениям, приведенным в статье Microsoft «Default permissions and user rights for IIS 6.0» (http://support.microsoft.com/ kb/812614), в которой стандартными разрешениями названы List, Read и Write. В действительности группа IIS_WPG наделена разрешениями Full Control.

Для изолируемых приложений угрозу представляет любая область, в которой группа IIS_WPG имеет разрешения Full Control. Администратору при управлении сжатием предоставляется следующий выбор.

Легко заметить, что группа IIS_WPG также имеет разрешения Full Control в папке %windir%system32inetsrvASP compiled templates. В статье Microsoft «ASP Template Caching» указывается, что для этой папки группе IIS_WPG требуются только разрешения Read, Write и Delete, но в действительности группе предоставляется Full Control. Неверная информация приводится и в статье Microsoft «AspDiskTemplateCacheDirectory», в которой говорится: «Как правило, идентификаторы процессов, выполняющих Asp.dll, — учетные записи IWAM_USER и System». Данное утверждение явно относится к IIS 5.0, но не к IIS 6.0, так как IIS 6.0 по умолчанию использует запись Network Service.

К счастью, размещение компилируемых шаблонов настраивается по сайту, папке и виртуальному каталогу. В результате можно построить раздельные папки кэша шаблонов ASP, назначив им такие разрешения NTFS, что ни одно другое приложение, работающее на сайте (за исключением имеющих разрешения Administrator или System), не сможет производить чтение или запись в папке кэша шаблонов. Местоположение определяется параметром AspDiskTemplateCacheDirectory в метабазе. Можно создать этот параметр метабазы с помощью Metabase Explorer или Adsutil, а затем связать его с уникальной папкой для защищенного приложения. Разрешения Full Control следует предоставить администраторам и уникальному экземпляру процесса, назначенному защищенному пулу приложений.

При подготовке программ к изоляции в ASP.NET необходимо корректно настроить разрешения для временных файлов ASP.NET. Группе IIS_WPG предоставляются разрешения Full Control в папке %systemroot%Microsoft.NET Frame workv1.1.4322Temporary ASP.NET Files. К счастью, указать местонахождение временных файлов ASP.NET можно для каждого приложения отдельно через элемент файла web.config, как описано в статье Microsoft «ASP.NET Settings Schema». Таким образом обеспечивается должный уровень изоляции и защиты папки.

Безусловно, специалистам, не использующим ASP или ASP.NET, необходимо выяснить область полномочий группы IIS_WPG в языке сценариев или приложении, и принять соответствующие меры. Если возникает ситуация, когда для корректного функционирования приложения необходимо предоставить группе IIS_WPG разрешения в определенном каталоге и такой каталог единственный на всем сервере, следует убедиться, что другие приложения на сервере не могут прочитать и изменить данные защищенного приложения в этом каталоге. Как уже отмечалось, в число таких каталогов входят кэши временных файлов, а также общие базы данных, файлы настройки, общие двоичные файлы и т. д. Детали целиком определяются конкретными обстоятельствами.

С помощью утилиты cacls.exe можно вывести разрешения в текстовый файл для последующего анализа. Ниже приведен пример для стандартной установки IIS.

cacls C:inetpubwwwroot* /T > output.txt

Управление анонимным доступом

Наконец, необходимо создать уникальную учетную запись анонимного пользователя для защищенного Web-узла. Этому пользователю не нужны особые разрешения, так как все необходимые права имеются у стандартной учетной записи пользователя. Здесь важно выбрать очень надежный пароль и не следует использовать IUSR в качестве имени учетной записи — в противном случае IIS может перепутать стандартную учетную запись IUSR с учетной записью, созданной администратором.

При назначении разрешений NTFS следует помнить, что для защищенного контента нельзя использовать такие группы, как Users, Authenticated Users и Everyone, если только анонимным пользователям явно не запрещено обращаться к другим Web-узлам во всем каталоге с контентом.

Другие технологии и факторы

Задача изоляции приложений часто не ограничивается отдельным сервером IIS и распространяется на другие серверы предприятия. Детали способа доступа к сетевым ресурсам, контекст безопасности, используемые службы и механизмы аутентификации играют определенную роль в организации доступа приложения к базе данных, файл-серверу и другим сетевым устройствам. Эти вопросы выходят за рамки данной статьи, но читатели могут ознакомиться с разделами COM+ в статье «What Are COM+ Partitions» и ограниченным делегированием в статье «Kerberos Protocol Transition and Constrained Delegation» на сайте Microsoft. Кроме того, можно прочитать документ «Configuring Application Isolation on Windows Server 2003 and Internet Information Services (IIS) 6.0».

Методичный подход — залог успеха

Разместить приложение на IIS-сервере, максимально изолировав его от других приложений на том же сервере, — нелегкая задача. IIS 5.0 не подходит для этой цели из-за неупорядоченности экземпляров процессов и управляющих ими механизмов. IIS 6.0 — гораздо более удобная платформа. Изолировать приложения здесь проще благодаря контролю над экземпляром процесса пулов приложений и управлению разрешениями NTFS. Для изоляции и защиты любых каталогов, использующих группу IIS_WPG, требуется точность, и администратору необходимо аккуратно назначать разрешения NTFS. Однако, придерживаясь методичного подхода, можно достичь высокой степени изоляции.

Специалист по IIS 7.0 и Web-службам в Microsoft, редактор журнала Windows IT Pro. brett@iisanswers.com

Поделитесь материалом с коллегами и друзьями

Источник

Adblock
detector

Проблемы «песочницы»

Время от времени каждому администратору приходится развертывать Web-приложения, связанные с пересылкой конфиденциальной информации. Приложение необходимо установить на надежно защищенном сервере таким образом, чтобы никакая другая программа Microsoft IIS не имела доступа к файлам приложения. Эффективные меры позволяют защитить конфиденциальную информацию от злоумышленников и опасных программ, размещенных на одном сервере с конфиденциальной информацией. Я всегда считал, что приложения, нуждающиеся в особенной защите, необходимо размещать на отдельном сервере. Однако нередко администраторам приходится разворачивать защищенные приложения на одном сервере со многими другими программами.

Например, после слияния двух компаний перед администратором может быть поставлена задача консолидации центров обработки данных, но в соответствии с политиками безопасности программы одной компании должны быть строго изолированы от приложений другой компании, даже если они размещены на одном сервере. В некоторых случаях ресурсы сервера, на котором хранятся важнейшие приложения с конфиденциальной информацией, недоиспользуются, и в процессе консолидации на сервере размещаются другие программы. Каковы бы ни были причины, предположим, что перед администратором поставлена задача развернуть приложение, требующее надежной защиты, на одном IIS-сервере с другими приложениями. На какие вопросы следует ответить и какие обстоятельства учесть, составляя план развертывания максимально изолированных друг от друга приложений?

Особенности изолирования

Желательно сразу предупредить руководителей предприятия о том, что идеальная изоляция приложений не достижима ни на одной из существующих платформ IIS. В частности, полная изоляция приложений в IIS 5.0 невозможна, потому что продукт не проектировался в расчете на использование «песочницы» (sandbox). Важнейшие компоненты и процессоры сценариев, такие как Cold Fusion компании Macromedia, работают в процессе inetinfo.exe, который должен выполняться в контексте учетной записи System. В таких условиях высокий уровень изоляции просто невозможен.

В IIS 6.0 Web-приложения по умолчанию запускаются в контексте безопасности встроенной учетной записи Network Service. Данный контекст — значительный шаг вперед по сравнению с учетной записью System. Благодаря одному этому улучшению IIS 6.0 — уже явно предпочтительный вариант для размещения Web-сервера. Уделив достаточное внимание деталям, можно обеспечить высокий уровень изоляции приложений на сервере IIS 6.0.

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

Представление и идентификация процесса

Для безопасности IIS всегда важно идентифицировать процесс, в котором выполняются приложения. Каждое приложение связано с конкретным экземпляром процесса. Например, если пользователь, зарегистрированный как Joe, запускает notepad.exe, то программа работает под управлением Joe и располагает пользовательскими правами и разрешениями Joe. Как правило, службы выполняются с правами учетной записи System, административные инструменты работают с расширенными правами учетной записи Administrator, а пользовательские программы, такие как Microsoft Office, выполняются с правами запустившего их пользователя. Во всех случаях программа связана со средой исполнения, именуемой также контекстом безопасности.

Как и другие приложения, IIS для запуска Web-приложений задействует хост-процесс (в зависимости от версии IIS). Хост-процесс оценивает системные ресурсы, используя идентификатор процесса. Например, IIS 6.0 задействует хост-процесс с именем w3wp.exe, который работает с идентификатором процесса Network Service. Однако если w3wp.exe всегда использует Network Service для доступа к файлам, то пользовательские разрешения NTFS теряют свое значение! Каждому файлу и программе требуется только разрешение Network Service для чтения, исполнения или записи (по необходимости), а любые другие разрешения излишни.

Очевидно, что такой сценарий неприемлем. Требуется более высокий уровень детализации при управлении разрешениями пользователей и групп. Для этой цели IIS не идентифицирует процессы, а представляет (impersonate) пользователя, сравнивая пользовательский маркер доступа, назначенный в ходе аутентификации, с разрешениями NTFS для файла. Таким образом, реализуются пользовательские разрешения.

Разработчики спроектировали как IIS 6.0, так и IIS 5.0 таким образом, чтобы IIS в большинстве случаев представлял пользователя, но некоторые Web-приложения обходят эту процедуру. Другими словами, программист может составить приложение, которое «обращается к себе» для доступа к системным ресурсам IIS. То есть IIS сверяет разрешения для доступа к системным ресурсам с разрешениями для экземпляра процесса, а не для учетной записи пользователя.

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

Microsoft ASP.NET — пример приложения, в котором не всегда используется представление. Для активизации представления (я рекомендую сделать это для приложений, не использующих аутентификацию на базе форм) следует выполнить действия, описанные в главе «ASP.NET Impersonation» руководства Microsoft .NET Framework Developer?s Guide (http://msdn.microsoft.com/library/ default.asp?url=/library/en-us/cpguide/html/cpconaspnet impersonation.asp).

Управлять представлением в ASP.NET можно с помощью параметра в файлах .config, однако не так легко убедиться в корректности представления в скомпилированных приложениях. Один из признаков неисправности — приложение работает, только если запущено в контексте учетной записи System. Если разработчики или поставщики настаивают на выполнении приложения в режиме Low application protection в IIS 5.0 или назначают идентификатор LocalSystem пулу приложений, в котором приложение размещено в IIS 6.0, то приложение должно потребовать привилегированного контекста. Это верный признак неполноты представления.

Другой способ определить, обращается ли приложение к файлам от имени экземпляра процесса или от имени учетной записи пользователя, — задействовать утилиту Filemon.exe компании Sysinternals. Эта бесплатная утилита показывает в реальном времени все обращения к файлам на сервере. Необходимо лишь отменить разрешения Full Control для нужного файла, запустить Filemon и обратиться к файлу, чтобы увидеть запись Access Denied в столбце результатов и имя пользователя, обратившегося к файлу. Процедура показана на экране 1.


Экран 1. Выяснение тонкостей доступа к файлу с помощью Filemon

Идентификация процесса чрезвычайно важна для изоляции приложений. Рассмотрим два приложения — защищенное и общедоступное. Если оба приложения работают с одним экземпляром процесса, то разработчик общедоступного приложения может загрузить на сервер программу, которая переключает экземпляр процесса. В данном контексте безопасности программа, работающая в общедоступном приложении, может прочитать весь контент Web-узла из безопасного приложения и даже вызывать размещенные в нем приложения. Самая большая угроза при этом исходит от пользователей, имеющих право загружать на сервер и запускать программы, особенно двоичные исполняемые файлы. Поэтому главную опасность представляют программисты, имеющие доступ к приложениям. Взломщик извне может добиться таких же результатов, успешно проведя атаку с использованием идентификатора процесса общедоступного приложения. Типичный пример — атаки с переполнением буфера. Злоумышленник также может разместить «троянского коня» на рабочей станции программиста и получить привилегированный доступ к серверу или получить доступ методами «социальной инженерии». По этой причине приложения, которые должны работать в контексте учетной записи System или Administrator, нельзя надежно изолировать друг от друга.

В идеальном случае, решая задачу создания изолированного в «песочнице» приложения, можно применить к Web-контенту разрешения NTFS. В результате получаем экземпляры процессов, связанных с защищенным приложением, и его пользователи — единственные субъекты безопасности, имеющие доступ к контенту. Другими словами, следует убедиться, что разрешения NTFS не дают доступа к экземпляру процесса любому другому Web-приложению. Для этого необходимо знать все идентификаторы процессов, используемые IIS. В IIS 6.0 назначить защищенному приложению уникальный идентификатор достаточно просто (об этом будет рассказано в следующем разделе), а для IIS 5.0 можно руководствоваться таблицей. Таблица применима и к IIS 6.0 при работе в режиме изоляции исполняемого процесса IIS 5.0.

Изменение идентификаторов процессов

При выполнении типичного Web приложения в IIS 5.0 можно увидеть три имени процесса, каждое с собственным идентификатором. Inetinfo.exe — главный процесс, который работает в контексте процесса System. IIS использует dllhost.exe, когда приложение настроено на работу в режиме Medium или High Application Protection в IIS Manager и выполняется в контексте пользователя IWAM_servername user (создаваемого в процессе установки IIS). Приложения ASP.NET выполняются в процессе с именем aspnet_wp.exe, который использует в качестве идентификатора процесса учетную запись ASPNET.

При запуске Web-приложений в Inetinfo с идентификатором процесса System возникает проблема. В случае атаки с переполнением буфера (как было при нападениях Code Red и Nimbda), взломщик получает доступ к самым широким правам на сервере.

Microsoft не поддерживает работу inetinfo.exe в контексте учетных записей, кроме учетной записи System. Кроме того, несмотря на возможность изменить идентификатор процесса приложений ASP.NET, все приложения ASP.NET выполняются в одном экземпляре aspnet_wp.exe. Лучшее решение для IIS 5.0 — использовать Component Services для настройки идентификатора IWAM для dllhost.exe. Сделав это, необходимо изменить пароль в метабазе и для локальной учетной записи пользователя IWAM. Из-за необходимости специализированных настроек усложняются развертывание, диагностика и администрирование. В результате, а также в силу зависимости от inetinfo.exe (работающей от имени System) не рекомендуется применять IIS 5.0 для изоляции приложений в «песочницах».

Объединять идентификаторы процессов IIS 6.0 гораздо проще, чем в IIS 5.0. По умолчанию любая программа, запускаемая на сервере IIS 6.0, будет выполняться в контексте учетной записи Network Service, за исключением приложений Common Gateway Interface (CGI), которые работают в собственном контексте пользователя, вызвавшего их. Назначить уникальный идентификатор любому пулу приложений, в котором размещено Web-приложение, можно на вкладке Identity в диалоговом окне свойств пула (экран 2).


Экран 2. Диалоговое окно Properties пула приложений

Однако есть одна особенность: учетная запись Network Service — член группы, существующей только в Windows Server 2003 с установленным IIS 6.0, группы IIS_WPG. Как указывается в справочных файлах IIS 6.0, группа IIS_WPG располагает минимальным набором полномочий, необходимых для IIS, и обеспечивает удобный способ использования учетной записи определенного пользователя в качестве идентификатора, не назначая вручную разрешений этому идентификатору. Далее: «В тех случаях когда учетная запись не принадлежит к группе IIS_WPG и не имеет соответствующих разрешений, попытка запуска исполнительного процесса закончится неудачей». Эта цитата не точна и вводит в заблуждение. Идентификатор, присвоенный пулу приложений (экран 2), должен быть членом группы IIS_WPG. Это обязательное условие. Нельзя назначить учетной записи пользователя все необходимые полномочия, так как некоторые из них встроены в группу IIS_WPG и связаны с http.sys.

Это обстоятельство имеет важное значение для изоляции приложений в IIS 6.0. Следует помнить, что программист может управлять представлением. Все экземпляры процессов (пулы приложений) являются членами группы IIS_WPG, поэтому по умолчанию все Web-приложения могут обращаться к любому контенту на сервере, доступ к которому для IIS_WPG разрешен настройками NTFS.

Задача администратора здесь простая, но не очевидная: необходимо назначить уникальный экземпляр процесса каждому изолируемому приложению, сделать экземпляр членом группы IIS_WPG и предоставить уникальному экземпляру разрешения NTFS Read и Execute для контента сайта. Нельзя использовать такие группы, как Users, Everyone, Authenticated Users и IIS_WPG для назначения разрешений на Web-сайте, поскольку уникальные экземпляры процесса будут членами этих групп.

Управление разрешениями для IIS_WPG

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

Группа IIS_WPG имеет разрешения Full Control в папке IIS Temporary Compressed Files. IIS использует эту папку в тех случаях, когда в IIS Manager активизирован режим сжатия. В результате сжатия IIS записывает сжатые данные в папку IIS Temporary Compressed Files и в ответ на последующие запросы извлекает документы из кэша. Для всех Web-узлов существует только одна папка IIS Temporary Compressed Files, и в соответствии со статьей Microsoft «Using HTTP Compression for Faster Downloads» (http://www.microsoft.com/resources/ documentation/IIS/6/all/techref/en-us/iisRG_PER_26.mspx) группа IIS_WPG должна иметь разрешения Full Control для данной папки. Эта информация противоречит сведениям, приведенным в статье Microsoft «Default permissions and user rights for IIS 6.0» (http://support.microsoft.com/ kb/812614), в которой стандартными разрешениями названы List, Read и Write. В действительности группа IIS_WPG наделена разрешениями Full Control.

Для изолируемых приложений угрозу представляет любая область, в которой группа IIS_WPG имеет разрешения Full Control. Администратору при управлении сжатием предоставляется следующий выбор.

  • Не использовать сжатия. Чтобы сжатия не было, нужно удалить группу IIS_WPG из числа имеющих разрешения в папке IIS Temporary Compressed Files.
  • Использовать сжатие только для надежно защищенных сайтов. Требуется удалить группу IIS_WPG из числа имеющих разрешения в папке IIS Temporary Compressed Files и назначить разрешения Full Control уникальной учетной записи, созданной для пула приложений.
  • Использовать сжатие только для сайтов, отличных от защищенного сайта. Сделать это проще всего в папке IIS Temporary Compressed Files: запретить доступ с Full Control экземпляру процесса, назначенного пулу приложений, в котором находится защищенное приложение. В такой конфигурации сжатие могут использовать все приложения, за исключением защищенного.

Легко заметить, что группа IIS_WPG также имеет разрешения Full Control в папке %windir%system32inetsrvASP compiled templates. В статье Microsoft «ASP Template Caching» указывается, что для этой папки группе IIS_WPG требуются только разрешения Read, Write и Delete, но в действительности группе предоставляется Full Control. Неверная информация приводится и в статье Microsoft «AspDiskTemplateCacheDirectory», в которой говорится: «Как правило, идентификаторы процессов, выполняющих Asp.dll, — учетные записи IWAM_USER и System». Данное утверждение явно относится к IIS 5.0, но не к IIS 6.0, так как IIS 6.0 по умолчанию использует запись Network Service.

К счастью, размещение компилируемых шаблонов настраивается по сайту, папке и виртуальному каталогу. В результате можно построить раздельные папки кэша шаблонов ASP, назначив им такие разрешения NTFS, что ни одно другое приложение, работающее на сайте (за исключением имеющих разрешения Administrator или System), не сможет производить чтение или запись в папке кэша шаблонов. Местоположение определяется параметром AspDiskTemplateCacheDirectory в метабазе. Можно создать этот параметр метабазы с помощью Metabase Explorer или Adsutil, а затем связать его с уникальной папкой для защищенного приложения. Разрешения Full Control следует предоставить администраторам и уникальному экземпляру процесса, назначенному защищенному пулу приложений.

При подготовке программ к изоляции в ASP.NET необходимо корректно настроить разрешения для временных файлов ASP.NET. Группе IIS_WPG предоставляются разрешения Full Control в папке %systemroot%Microsoft.NET Frame workv1.1.4322Temporary ASP.NET Files. К счастью, указать местонахождение временных файлов ASP.NET можно для каждого приложения отдельно через элемент файла web.config, как описано в статье Microsoft «ASP.NET Settings Schema». Таким образом обеспечивается должный уровень изоляции и защиты папки.

Безусловно, специалистам, не использующим ASP или ASP.NET, необходимо выяснить область полномочий группы IIS_WPG в языке сценариев или приложении, и принять соответствующие меры. Если возникает ситуация, когда для корректного функционирования приложения необходимо предоставить группе IIS_WPG разрешения в определенном каталоге и такой каталог единственный на всем сервере, следует убедиться, что другие приложения на сервере не могут прочитать и изменить данные защищенного приложения в этом каталоге. Как уже отмечалось, в число таких каталогов входят кэши временных файлов, а также общие базы данных, файлы настройки, общие двоичные файлы и т. д. Детали целиком определяются конкретными обстоятельствами.

С помощью утилиты cacls.exe можно вывести разрешения в текстовый файл для последующего анализа. Ниже приведен пример для стандартной установки IIS.

cacls C:inetpubwwwroot* /T > output.txt

Управление анонимным доступом

Наконец, необходимо создать уникальную учетную запись анонимного пользователя для защищенного Web-узла. Этому пользователю не нужны особые разрешения, так как все необходимые права имеются у стандартной учетной записи пользователя. Здесь важно выбрать очень надежный пароль и не следует использовать IUSR в качестве имени учетной записи — в противном случае IIS может перепутать стандартную учетную запись IUSR с учетной записью, созданной администратором.

При назначении разрешений NTFS следует помнить, что для защищенного контента нельзя использовать такие группы, как Users, Authenticated Users и Everyone, если только анонимным пользователям явно не запрещено обращаться к другим Web-узлам во всем каталоге с контентом.

Другие технологии и факторы

Задача изоляции приложений часто не ограничивается отдельным сервером IIS и распространяется на другие серверы предприятия. Детали способа доступа к сетевым ресурсам, контекст безопасности, используемые службы и механизмы аутентификации играют определенную роль в организации доступа приложения к базе данных, файл-серверу и другим сетевым устройствам. Эти вопросы выходят за рамки данной статьи, но читатели могут ознакомиться с разделами COM+ в статье «What Are COM+ Partitions» и ограниченным делегированием в статье «Kerberos Protocol Transition and Constrained Delegation» на сайте Microsoft. Кроме того, можно прочитать документ «Configuring Application Isolation on Windows Server 2003 and Internet Information Services (IIS) 6.0».

Методичный подход — залог успеха

Разместить приложение на IIS-сервере, максимально изолировав его от других приложений на том же сервере, — нелегкая задача. IIS 5.0 не подходит для этой цели из-за неупорядоченности экземпляров процессов и управляющих ими механизмов. IIS 6.0 — гораздо более удобная платформа. Изолировать приложения здесь проще благодаря контролю над экземпляром процесса пулов приложений и управлению разрешениями NTFS. Для изоляции и защиты любых каталогов, использующих группу IIS_WPG, требуется точность, и администратору необходимо аккуратно назначать разрешения NTFS. Однако, придерживаясь методичного подхода, можно достичь высокой степени изоляции.


Специалист по IIS 7.0 и Web-службам в Microsoft, редактор журнала Windows IT Pro. brett@iisanswers.com

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

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

Способов применения технологиям Sandbox можно найти множество. Самое главное — подобрать подходящий инструментарий, определиться с выбором которого поможет наша подборка песочниц для широко востребованной во всём мире платформы Windows.

 Источник изображения: Sentavio / freepik.com

Источник изображения: Sentavio / freepik.com

⇡# Windows Sandbox

Разработчик: Microsoft.
Сайт продукта: microsoft.com/windows.
Стоимость: бесплатно (включена в состав ОС).

Начнём обзор с самого простого и доступного варианта — встроенной песочницы Windows 10/11, поставляемой в комплекте с операционной системой редакций Pro и Enterprise.

В основу Windows Sandbox положены гипервизор Hyper-V и технологии контейнеризации. Как следствие, для запуска песочницы необходим ПК на базе процессора с поддержкой аппаратной виртуализации и объёмом оперативной памяти не менее 4 Гбайт. По умолчанию функция Sandbox отключена в системе. Для её активации необходимо через панель управления открыть меню «Компоненты Windows», выставить галочку напротив пункта «Песочница Windows», дождаться установки необходимых системных файлов и перезагрузить ОС.

Windows Sandbox представляет собой виртуальную машину с облегчённой копией ОС, все вносимые изменения в которую автоматически откатываются при закрытии изолированной среды, и при каждом запуске песочница запускается «с нуля» в чистом виде. Такой подход освобождает от необходимости удалять установленные в виртуальном окружении программы и здорово экономит время.

В отличие от классической виртуальной машины при использовании песочницы нет необходимости заморачиваться самостоятельной установкой, настройкой и лицензированием отдельной копии Windows. Второй важный момент — в Sandbox используется динамически создаваемый образ ОС, который формируется на основе файлов и DLL-библиотек установленной на компьютере системы. Благодаря этому виртуальная машина с песочницей занимает меньше места на диске и потребляет гораздо меньше ресурсов.

Запускать Windows Sandbox можно только в одном экземпляре. Для управления настройками песочницы и защищённой среды (включение/выключение виртуализации графического процессора, поддержки сети, общих папок с хост-системой и буфера обмена данными, запуска скриптов) допускается использование конфигурационных файлов с расширением .wsb. Об особенностях работы с ними можно узнать на этой странице сайта Microsoft.

⇡#Microsoft Defender Application Guard

Разработчик: Microsoft.
Сайт продукта: microsoft.com/windows.
Стоимость: бесплатно (включена в состав ОС).

Если песочницу планируется использовать только для защищённого веб-сёрфинга, то вместо установки Windows Sandbox можно ограничиться модулем Application Guard, функционирующим в связке с антивирусом Microsoft Defender.

Чтобы воспользоваться Application Guard, необходимо в окне «Компоненты Windows» активировать соответствующий пункт меню, дождаться установки системных файлов и перезапустить ОС.

После перезагрузки компьютера в поставляемом с Windows браузере Edge появится возможность запускать интернет-обозреватель в изолированной среде, использующей технологии виртуализации Hyper-V. При включённом режиме Application Guard можно смело открывать любые сайты и не опасаться, что размещённый на них вредоносный код сможет выйти за пределы песочницы и нанести вред системе.

О том, что браузер действительно запущен в изолированном окружении, свидетельствует значок Application Guard на панели инструментов Microsoft Edge.

Помимо Edge песочницу можно использовать в Google Chrome и Mozilla Firefox — для этого необходимо установить в браузер расширение Application Guard, доступное для скачивания в магазине Chrome Web Store и на сайте Firefox Browser Add-ons.

Application Guard также поддерживает интеграцию с пакетом Microsoft 365 и позволяет открывать в безопасной среде офисные документы. Функция крайне полезная, но, увы, доступная только в решениях софтверного гиганта для корпоративного сегмента рынка. По этой причине мы оставляем её за рамками нашего обзора.

⇡#Sandboxie

Разработчик: Дэвид Ксанатос (David Xanatos).
Сайт продукта: sandboxie-plus.com.
Стоимость: бесплатно с лимитированным набором функций (для снятия ограничений предлагается приобрести сертификат стоимостью от $20).

Ещё одно доступное широкой аудитории решение для работы с приложениями в изолированной среде. Отличительными особенностями Sandboxie являются открытый исходный код, поддержка Windows 7/8.1/10/11 и неограниченного количества песочниц, а также огромное множество всевозможных настроек, позволяющих гибко конфигурировать параметры защищённых сред. Наличие на компьютере средств аппаратной виртуализации не требуется, что является несомненным плюсом программы. Кроме того, Sandboxie можно установить как портативное приложение и запускать с флешки на любом компьютере.

С помощью Sandboxie можно создавать списки автоматически запускаемых в песочнице исполняемых файлов, настраивать политики доступа приложений к системным компонентам Windows и ресурсам компьютера, конфигурировать правила встроенного брандмауэра для каждого процесса и осуществлять скрупулёзный мониторинг всех действий программ и вносимых ими изменений. Для каждой из песочниц Sandboxie позволяет закреплять индивидуальный набор настроек. Поддерживается интеграция с рабочим окружением Windows и быстрый запуск приложений в песочнице через контекстное меню проводника. Для наглядности окна «изолированных» программ обводятся жёлтой рамкой.

В отличие от прочих представленных на рынке приложений-песочниц Sandboxie требует грамотного подхода к конфигурированию изолированных сред, и неправильные настройки последних могут серьёзно ослабить защиту от вредоносного софта. По этой причине мы рекомендуем данный инструмент тем, кто хорошо разбирается в IT и досконально знает все тонкости работы операционных систем Windows. Допущенные ошибки могут обойтись очень дорого.

⇡#SHADE Sandbox

Разработчик: SHADE Sandbox LLC.
Сайт продукта: shadesandbox.com.
Стоимость: от $30 (доступна 30-дневная пробная версия продукта).

Песочница, к созданию которой приложил руку наш соотечественник, выпускник государственного университета «Дубна», основатель компании SHADE Sandbox LLC Евгений Балабанов.

SHADE Sandbox имеет аскетичный интерфейс, а само управление программой построено по принципу Drag-and-drop — для включения того или иного приложения в защищённую среду достаточно перенести его ярлык в стартовое окно песочницы. Настроек как таковых практически нет: доступны только средства просмотра виртуальных директорий, выступающих в качестве связующего звена между хостовой ОС и изолированными средами, а также инструменты для быстрой очистки песочниц от файлового мусора. Поддерживается одновременная работа с несколькими защищёнными окружениями и интеграция с проводником Windows. Наличие аппаратной виртуализации для работы с SHADE Sandbox не обязательно, что допускает возможность использования программы на старых ПК.

Comodo Free Antivirus

Разработчик: Comodo Security Solutions.
Сайт продукта: antivirus.comodo.com.
Стоимость: бесплатно.

Антивирусное решение, важная составляющая которого (применительно к нашему обзору) — встроенная песочница. Обычно подобного рода инструменты предлагаются только в коммерческих продуктах, здесь же американская компания-разработчик Comodo Security Solutions сделала приятное исключение.

Comodo Free Antivirus поддерживает одновременную работу со множеством песочниц и позволяет управлять уровнем обеспечиваемой ими защиты. В частности, для изолированных сред можно открывать доступ к определённым файлам и папкам на компьютере, а также к буферу обмена, указанным ключам и значениям реестра Windows. Также допускается настройка автоматического запуска в песочнице приложений, требующих повышенных привилегий в системе либо имеющих низкий рейтинг согласно оценочной шкале антивируса и используемых им облачных аналитических сервисов. Предусмотрена парольная защита песочниц.

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

В целом Comodo Free Antivirus производит впечатление качественно сделанного продукта. Он бесплатен и при этом не раздражает пользователя навязчивыми рекламными баннерами как иные распространяемые на безвозмездной основе антивирусы. Единственное замечание: в процессе инсталляции программа норовит установить фирменный браузер Comodo Dragon Web Browser — тут необходимо быть внимательным.

Avast Premium Security

Разработчик: Avast Software.
Сайт продукта: avast.com/premium-security.
Стоимость: от $40/год (доступна 30-дневная пробная версия продукта).

Коммерческий антивирус со множеством защитных функций, в числе которых также фигурирует возможность создания безопасных сред. При этом устанавливать весь комплект входящих в Avast Premium Security модулей нет необходимости, можно ограничиться только песочницей — инсталлятор программы допускает такую возможность.

Набор предлагаемых песочницей Avast Premium Security функций довольно скромный: можно блокировать доступ «виртуализованных» приложений в интернет, разрешать перенос данных за пределы изолированного окружения и составлять список автоматически запускаемых в защищённой среде программ.

Для мониторинга запущенных в песочнице процессов предусмотрен простейший диспетчер задач.

Avast Software почти четверть века работает в сфере информационной безопасности, имеет хорошую репутацию, а поэтому в надёжности и практичности программных решений чешского разработчика можно не сомневаться. К сожалению, в свете последних геополитических событий компания приостановила продажу своих продуктов в России и Белоруссии, поэтому приобрести антивирус теперь можно только окольными путями. Скачивание дистрибутивов тоже заблокировано — для обхода этого ограничения необходимо использовать VPN.

⇡#360 Total Security

Разработчик: Beijing Qihu Keji.
Сайт продукта: 360totalsecurity.com.
Стоимость: бесплатно.

Ещё один антивирус, поддерживающий работу с Sandbox-окружениями. Разработан в Китае и в бесплатной версии обвешан баннерами как новогодняя ёлка, — типичное явление едва ли не для всех программных продуктов из Поднебесной империи.

В отличие от упомянутых выше Comodo Free Antivirus и Avast Premium Security программный комплекс 360 Total Security требует поддержки виртуализации на аппаратном уровне — без неё песочница работать не будет. Этот важный момент почему-то не отмечен в прилагаемой к программе документации, но на него следует обращать внимание.

По набору функций песочница 360 Total Security во многом повторяет конкурирующие решения. Можно блокировать доступ в Сеть для изолированных приложений и управлять настройками хранения создаваемых в песочнице файлов. Доступен выбор программ для автоматического запуска в защищённой среде и простейший менеджер задач.

Помимо песочницы и собственно антивируса 360 Total Security несёт в себе ворох программных компонентов сомнительной ценности вроде анализатора дискового накопителя и оптимизатора ОС. Отказаться от этого балласта не представляется возможным, а зазря забивать диск компьютера ненужным софтом — довольно сомнительная затея, на наш взгляд. Видимо, китайские разработчики думают иначе.

⇡#Заключение

Ассортимент Sandbox-приложений для платформы Windows и индивидуальных пользователей нельзя назвать обширным — приходится выбирать из того, что есть. Из приведённых в обзоре песочниц смело можем рекомендовать Windows Sandbox, Microsoft Defender Application Guard и Comodo Free Antivirus (если не смущает «довесок» в виде антивируса). Avast Premium Security тоже неплох, но он платный, и есть трудности с его приобретением. Хорош во всех отношениях Sandboxie, но это продукт профессионального уровня, который может быть интересен скорее IT-гикам, нежели обычным пользователям, привыкшим, чтобы всё работало «из коробки».

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Forum rules
Before you post please read how to get help. Topics in this forum are automatically closed 6 months after creation.

otlichnik73

Level 3
Level 3
Posts: 128
Joined: Tue Mar 20, 2018 6:20 pm

Isolated Web Co process

Hi there! I wonder if some wiz out there can shed a light on the process I noticed is running — it is called Isolated web Co. See output of

Does anyone know what it is? Would it have to do with me running Waterfox browser? Cheers!

Code: Select all

1632106 *****     20   0 3993540 598952 323908 S   7.6   3.7   5:47.79 waterfox                                                  
1631370 root      20   0  930316 129852  96440 S   5.0   0.8   3:05.18 Xorg                                                      
1631713 xxxx     20   0 4793884 173384  96324 S   3.0   1.1   1:41.10 cinnamon                                                  
1632576 xxxx     20   0 2522300 151816  92480 S   3.0   0.9   0:47.39 Isolated Web Co                                           
1636861 xxxx     20   0  461420  40464  31552 S   2.7   0.2   0:00.82 gnome-terminal-                                           
1632337 xxxx     20   0 2568956 210808  99956 S   2.0   1.3   0:17.73 Isolated Web Co                                           
1631795 xxxx     20   0 5123656 242968  70804 S   0.3   1.5   0:10.68 dropbox                                                   
1632301 xxxx     20   0 2819856 312088  96020 S   0.3   1.9   0:39.55 Isolated Web Co                                           
1635238 xxxx     20   0 3222360 269196 157476 S   0.3   1.7   0:18.90 chromium                                                  
1636850 root      20   0       0      0      0 I   0.3   0.0   0:00.05 kworker/u16:2-events_power_efficient                      
1636878 xxxx     20   0   12112   4300   3392 R   0.3   0.0   0:00.49 top                                                       
      1 root      20   0  168828  11264   7344 S   0.0   0.1   1:39.88 systemd                                                   
      2 root      20   0       0      0      0 S   0.0   0.0   0:01.36 kthreadd                                                  
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                    
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                                      
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                              
     10 root      20   0       0      0      0 S   0.0   0.0   0:22.03 ksoftirqd/0                                               
     11 root      20   0       0      0      0 I   0.0   0.0  20:00.03 rcu_sched                         

Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.

Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.

User avatar

xenopeek

Level 25
Level 25
Posts: 27808
Joined: Wed Jul 06, 2011 3:58 am
Location: The Netherlands

Re: Isolated Web Co process

Post

by xenopeek » Tue Dec 07, 2021 4:18 am

Probably. Same processes when you run Firefox. With Firefox if you run command pstree you can see all the Isolated Web Co processes are child processes of GeckoMain process (and Gecko is the web engine of Firefox).

Image

jarkky

Level 3
Level 3
Posts: 141
Joined: Fri Oct 30, 2020 10:49 am
Location: Philippines

Re: Isolated Web Co process

Post

by jarkky » Mon Dec 20, 2021 8:29 am

It looks like this with the ‘pstree’:

Code: Select all

├─lightdm─┬─Xorg───9*[{Xorg}]
│         ├─lightdm─┬─cinnamon-sessio─┬─GeckoMain─┬─Isolated Web Co───26*[{Isolated Web Co}]

User avatar

karlchen

Level 22
Level 22
Posts: 16894
Joined: Sat Dec 31, 2011 7:21 am
Location: Germany

Re: Isolated Web Co process

Post

by karlchen » Fri Feb 18, 2022 8:48 am

botao wrote: ↑

Fri Feb 18, 2022 8:43 am

it comes from firefox

Hm, from Waterfox I would say, considering that the OP uses Waterfox .
1632106 ***** 20 0 3993540 598952 323908 S 7.6 3.7 5:47.79 waterfox

Image
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet’s Song

Популярность веб серверов, как главных целей для взломщиков и вирусописателей во всем мире создала естественные условия для Microsoft, чтобы сосредоточиться на ее «Trustworthy Computing Initiative». В результате IIS был полностью перепроектирован, с целью быть защищенным по умолчанию и защищенным по своей внутренней архитектуре. В этой статье мы обсудим конфигурацию, заданную по умолчанию, и изменения, включенные в IIS 6.0, чтобы сделать его более безопасной платформой для хостинга критических веб приложений.

Роит Белени и Майкл Макин, перевод и редакция Владимир Куксенок 

Популярность веб серверов, как главных целей для взломщиков и вирусописателей во всем мире создала естественные условия для Microsoft, чтобы сосредоточиться на ее «Trustworthy Computing Initiative». В результате IIS был полностью перепроектирован, с целью быть защищенным по умолчанию и защищенным по своей внутренней архитектуре. В этой статье мы обсудим конфигурацию, заданную по умолчанию, и изменения, включенные в IIS 6.0, чтобы сделать его более безопасной платформой для хостинга критических веб приложений.

Защищенный по умолчанию

В прошлом разработчики, включая Microsoft, снабжали установки по умолчанию своих серверов множеством типовых скриптов, обработчиков файлов и минимальными ограничениями файловой системы, чтобы обеспечить администраторам необходимую гибкость и простоту использования. Однако такой подход имел тенденцию увеличения доступной плоскости нападения и был основой нескольких атак против IIS. В результате IIS 6.0 разработан, чтобы быть более безопасным «из коробки», чем его предшественники. Самое примечательное изменение это то, что IIS 6.0 не устанавливается по умолчанию с Windows Server 2003. Другие изменения включают в себя:

— Заданная по умолчанию инсталляция — только статический HTTP сервер

По умолчанию IIS 6.0 настроен для обслуживания только статических HTML страниц, динамический контент не разрешается. Следующая таблица сравнивает возможности установки по умолчанию IIS 5.0 и IIS 6.0 .

Компонент IIS IIS 5.0 установка по умолчанию IIS 6.0 установка по умолчанию
Static file support включено включено
ASP включено отключено
Server-side includes включено отключено
Internet Data Connector включено отключено
WebDAV включено отключено
Index Server ISAPI включено отключено
Internet Printing ISAPI включено отключено
CGI включено отключено
Microsoft FrontPage® server extensions включено отключено
Password change interface включено отключено
SMTP включено отключено
FTP включено отключено
ASP.NET нет отключено
Background Intelligence Transfer Service нет отключено

— Не устанавливается никаких типовых приложений

IIS 6.0 не содержит никаких типовых скриптов, подобных showcode.asp и codebrws.asp . Первоначально эти программы были разработаны, чтобы позволить программистам быстро просматривать их код подключения к базе данных и осуществлять его отладку. Однако, showcode.asp и codebrws.asp корректно не проверяют ввод, чтобы гарантировать, что запрошенный файл находится в пределах корневой веб директории. Это позволяет взломщику просматривать любые файлы (включая те, которые содержат важные настройки конфигурации) в системе.
Обратитесь по следующей ссылке для получения дополнительной информации об этой уязвимости:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS99-013.asp

— Улучшенный контроль прав доступа файловой системы

Анонимные пользователи больше не имеют прав на запись в домашнею директорию веб сервера. Кроме того, FTP пользователи изолированы в их собственных домашних каталогах. Эти ограничения препятствуют пользователю загружать злонамеренные файлы в другие части файловой системы сервера. Такие атаки могут включать «дефейс» веб сайтов, используя загрузку файлов в корневую директорию и удаленное выполнения команд через запуск злонамеренного исполняемого файла, который может быть загружен в каталог /scripts.

— Нет исполняемых виртуальных директорий

Виртуальные директории не имеют прав на исполнение файлов, находящихся в них. Это предотвращает использование многочисленных «directory traversal» уязвимостей и MDAC эксплойтов, которые существовали в прошлом.

— Удален Sub-authentication модуль

IISSUBA.dll был удален из IIS 6.0 . Любые учетные записи, который требовали эти функциональные возможности в предыдущих версиях IIS, требовали «доступ к этому компьютеру из сети» привилегий. Удаления этой DLL удаляет эту зависимость и таким образом уменьшает плоскость нападения, проводя все идентификации непосредственно через SAM или Active Directory.

— Абсолютные пути отключены

Доступ к абсолютным путям в файловой системе заблокирован по умолчанию. Это должно предотвратить «directory traversal» атаки, которые могут позволить атакующему выходить за пределы корневой веб директории и получить доступ к важным файлам файловой системы, например SAM файлам. Обратите внимание, что это может причинить проблемы при переносе приложений, которые использовали абсолютные пути на предыдущих версиях IIS.

Защищенный по внутренней архитектуре

Фундаментальные изменения проектирования, включенные в IIS 6.0, включают улучшенную проверку правильности данных, усовершенствованное протоколирование, защиту от сбоя, изоляцию приложений и приверженность принципу минимальных привилегий.

Улучшенная проверка правильности данных

Главная новая особенность, включенная в IIS 6.0 это HTTP драйвер режима ядра, HTTP.sys . Он добавлен не только для увеличения производительность и универсальности веб сервера, но и для значительного усиления безопасности. HTTP.sys действует как шлюз для пользовательских запросов на веб сервер. Вначале он анализирует запрос, затем отправляет его соответствующим процессам пользовательского уровня. Ограничение рабочих процессов в режиме пользователя препятствует им обращаться к привилегированным ресурсам в ядре системы. Таким образом, возможности атакующего, намеревающегося получить доступ к серверу, очень ограничены.

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

Чтобы препятствовать использованию переполнения буфера или кучи, которые могут быть обнаружены в будущем, Microsoft использовала принцип «глубокой защиты» во внутренней архитектуре IIS 6.0. Это было достигнуто добавлением определенных возможностей синтаксического анализа URL к набору возможностей включенных в HTTP.sys. Эти особенности в будущем могут настраиваться изменением определенных значений системного реестра. Следующая таблица проводит обзор наиболее важных ключей реестра (могут быть найдены здесь: HKLMSystemCurrentControlSetServicesHTTPParameters).

AllowRestrictedChars Этот ключ принимает значение типа boolean, которое не равное нулю позволяет HTTP.sys принимать hex-коды символов в запросе URL. Значение по умолчанию — 0. Это рекомендованное значение, облегчающее задачу проверки правильности входящих данных на уровне сервера. Если ключ равен 1, злонамеренные символы могут быть закодированы в шестнадцатеричной системе счисления, в попытке обойти проверку правильности ввода.
MaxFieldLength Этот ключ позволяет администратору установить максимальный размер (в байтах) для каждого заголовка. Значение по умолчанию — 16 Кб.
MaxRequestBytes Этот ключ устанавливает максимальное значение строки запроса и заголовков. Значение по умолчанию также 16 Кб.
UrlSegmentMaxCount Этот ключ определяет максимальное количество сегментов пути URL, принимаемых сервером. Фактически это ограничивает число слешей, которые могут быть включены пользователем в запросе URL. Рекомендуется устанавливать это значение на основе глубины корневой директории веб. Значение по умолчанию — 255.
UrlSegmentMaxLength Этот ключ устанавливает максимальное количество символов в любом сегменте пути URL. Значение по умолчанию — 260.
EnableNonUTF8 Значение этого ключа определяет допустимый набор символов. Заданное по умолчание значение 1 позволяет HTTP.sys принимать ANSI- и DBCS-закодированные URL в дополнение к URL закодированным в формате UTF8.

Расширенные механизмы протоколирования

Всестороннее протоколирование — основное требование для успешного обнаружения и реагирования на инциденты безопасности. Microsoft осознала эту необходимость и осуществила исчерпывающий и надежный механизм протоколирования в HTTP.sys . HTTP.sys пишет в log-файл перед диспетчеризацией запроса к рабочему процессу. Это гарантирует, что причина ошибки будет зарегистрирована, даже если это заставит рабочий процесс завершить работу некорректно. Начало log-файла состоит из даты и времени возникновения ошибки, обратного и целевого IP адресов и портов, версии протокола, HTTP запроса, URL, состояния протокола, идентификатора сайта и комментария об ошибке. Комментарий содержит детальную информацию о причине возникновения ошибки — может ли это быть по причине тайм-аута или из-за разрыва соединения вследствие неожиданного завершения рабочего процесса.

Пример log-файла HTTP.sys может быть найден по следующей ссылке:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/iis/iis6/proddocs/resguide/iisrg_log_qlow.asp

Защита от сбоя

В дополнения к настройкам в системном реестре, администраторы IIS 6.0 могут настроить сервер на автоматическое завершение или перезапуск рабочих процессов, приложения которых неоднократно завершались с ошибкой (в течение определенного времени). Это дополнительная гарантия защиты приложения от повторяющихся ошибок, которые быть индикаторами атак. Эта возможность названа «Защита от быстрого сбоя» (Rapid-Fail Protection).

Защита от быстрого сбоя может быть настроена через IIS Manager следующим образом:

1. В IIS Manager разверните локальный компьютер.
2. Выберите Application Pools.
3. Щелкните правой кнопкой мыши на приложении.
4. Нажмите на Properties.
5. В Health поставьте галочку на Enable rapid-fail protection.
6. В поле Failures напишите допустимое количество ошибок (перед завершением процесса).
7. В поле Time Period определите количество минут, в течение которых ошибки будут накапливаться.

Изоляция приложений

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

Принцип минимальных привилегий

IIS 6.0 придерживается фундаментального принципа защиты — принципа минимальных привилегий. Это было достигнуто путем включения всего кода, который должен выполняться с правами Local System (наивысший уровень), в HTTP.sys . Все рабочие процессы выполняются как Network Service (Сетевая служба), новый тип учетной записи в Windows 2003 с чрезвычайно ограниченными правами. Далее, IIS 6.0 позволяет использовать средства командной строки только администраторам, таким образом предотвращая использование этих средств злонамеренными эксплойтами. Такие изменение внутренней архитектуры уменьшают вероятность компрометирования сервера через потенциальную уязвимость. Кроме этих фундаментальных изменений в архитектуре, некоторые простые изменения конфигурации включают запрещение прав на запись в домашние директории веб сервера для анонимных пользователей, изоляцию FTP пользователей в их собственный домашние директории, что также увеличивает защищенность IIS 6.0 .

IIS 6.0 — шаг Microsoft в правильном направлении, помогающий организациям повысить свою безопасность. Он обеспечивает надежную и защищенную инфраструктуру для хостинга веб приложений. Улучшенная зашита в конфигурации по умолчанию — очевидный акцент к защите в процессе разработки и расширение возможностей мониторинга и протоколирования сервера IIS 6.0 . Однако, администраторы не должны получить ложное ощущение защищенности, просто перейдя на эту платформу, а объединить переход на новую платформу с созданием многократных уровней защиты. Это соответствовало бы принципу «глубокой защиты» и создало бы надежный щит от угроз подобных Code Red или Nimda.

Понравилась статья? Поделить с друзьями:
  • В iis нет проверки подлинности windows
  • В bootcamp нет пункта создать диск установки windows
  • В boot priority order только windows boot manager
  • В boot menu только windows boot manager
  • В bios мышь работает а в windows нет