Stolica.ru

Платформа 2003: репортаж с конференции от 8 декабря 2002 года (№2)


Дмитрий Чеканов, Ирина Бабушкина
08/12/2002

Анонс: 28-29 ноября в Москве прошла конференция «Платформа 2003», на которой участники получили самую подробную и новую информацию о современных технологиях и программных продуктах Microsoft. Мы представляем репортаж с конференции, в рамках которого приведено краткое содержание следующих докладов:  Практическое руководство по защите Windows 2000 Server, Построение высокопроизводительных транзакций, Новая серверная платформа Microsoft Windows .Net Server, Архитектура и проектирование распределенных .Net-приложений, Новая архитектура IIS 6.0 – Новый уровень надежности и безопасности, Система безопасности выполнения кода .Net.

28-29 ноября в Москве прошла конференция «Платформа 2003», на которой участники получили самую подробную и новую информацию о современных технологиях и программных продуктах Microsoft.



Двухдневная «Платформа 2003» – это крупнейшая конференция Microsoft, проводимая в России. В конференции приняли участие более 750 специалистов в области информационных технологий промышленных предприятий, государственных структур, банков и корпораций России и стран СНГ.

На конференции с докладами выступили ведущие специалисты российского представительства Microsoft и фирм-партнеров Microsoft. К тому же не обошли вниманием «Платформу-2003» и иностранные специалисты корпорации Microsoft – Рафаль Лукавецки (Rafal Lukawiecki) , Стивен Адлер (Steven Adler), Эрик ван Бевер (Eric van Bever).

Программа конференции включала:
  • обширную тематику докладов, разделенных на пять потоков (см. ниже);
  • лабораторные работы «Коллективная работа над проектом в Microsoft Project 2002» и «Бизнес-процесс и документооборот в среде BizTalk Server»;
  • «круглый стол» с ведущими экспертами Microsoft в области безопасности ИС;
  • экспозицию партнеров Microsoft в области корпоративных решений.
Посетители конференции могли посещать доклады в любом из пяти потоков.

1. Информационная инфраструктура

В потоке рассматриваются основные инфраструктурные решения, такие как построение коммуникационной инфраструктуры, консолидация серверных платформ, мониторинг и управление информационными ресурсами, создание безопасных соединений. Ключевыми продуктами в этом треке являются Microsoft Windows 2000 Server, Microsoft Windows .Net Server, Systems Management Server, Microsoft Operations Manager, Application Center, Internet Security and Acceleration Server, Exchange Server и Mobile Information Server.

2. Платформа построения бизнес-приложений

Поток рассматривает типовые решения для объединения различных компонентов информационных систем как внутри корпорации, так и через Интернет для построения бизнес-приложений. Ключевыми продуктами в этом треке являются Microsoft BizTalk Server, Microsoft SQL Server, Microsoft .Net Framework, Microsoft Commerce Server, Content Management Server.

3. Бизнес-системы повышения производительности

В данном потоке рассматриваются основные направления стратегии Microsoft в области бизнес-систем, направленных на повышение эффективности работы подразделений, рабочих групп, руководителей компаний и отдельных работников. Такие системы включают в себя интранет-решения, решения для управления корпоративными проектами, корпоративные порталы, бизнес-аналитику и другие приложения. Ключевыми продуктам в этом треке являются Microsoft Office, Microsoft SQL Server, Microsoft Project Server, Microsoft Sharepoint Portal Server, Microsoft Content Management Server.

4. Технологии информационной безопасности

Трек полностью посвящен новой концепции безопасности в корпоративных решениях Microsoft. В докладах были даны практические рекомендации по защите корпоративных сетей, разработке защищенных приложений, построению и внедрению Инфраструктуры открытых ключей и Виртуальных частных сетей.

5. Разработка приложений в архитектуре .Net

Технологии Microsoft .NET предлагают новые возможности создания программного обеспечения. В специальном потоке разработчикам и архитекторам корпоративных приложений была предоставлена информация, необходимая для построения надежных, масштабируемых и безопасных веб-сервисов, а также всех типов многоуровневых распределенных приложений для операционных систем Microsoft. В докладах предполагается подробный рассказ о современных технологиях разработки приложений с использованием Visual Studio .NET, ASP.NET, Visual Basic .NET, C#.

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

Практическое руководство по защите Windows 2000 Server

Доклад Дмитрия Вишнякова был разделен на две части, по безопасности серверов и по безопасности Active Directory. Проблема защиты серверов становится все более актуальной, поэтому доклад посетило большое число специалистов. Доклад во многом перекликался с содержанием книги (White Paper) “Security Operations Guide for Windows® 2000 Server”, которая доступна для свободного скачивания на сайте Microsoft.


Обеспечение безопасности требует комплексного подхода

В книге вы найдете рекомендации по решению следующих задач:
  • Определение и анализ рисков
  • Управление системой безопасности средствами групповых политик
  • Защита серверов
  • Управление исправлениями
  • Аудит и обнаружение вторжений
  • Реализация службы реагирования

Приведем некоторые советы по защите серверов. Они носят тезисный характер, более подробное описание вы найдете в указанной выше книге.
  • Ограничения для журналов
    • 10 Мб
    • Не переписывать события
  • Аудит успешных и неуспешных событий
    • Регистрация пользователя, управление учетными записями, доступ к объектам, изменение политик, системные события
  • Аудит неуспешных событий
    • Доступ к службе каталогов и использование привилегий
  • Системные параметры
    • Очищать файл подкачки при выключении системы
    • Цифровая подпись коммуникаций между клиентами и серверами
    • При невозможности записать сообщения в журнал безопасности немедленно завершить работу
  • Запрет на анонимные подключения
  • Отключена аутентификация LM и NTLM
    • Разрешен только NTLM v 2
  • Отключено кэширование регистрации пользователей
  • Параметры реестра для TCP/IP (Q315669)
    • EnableICMPRedirect – 0
    • EnableSecurityFilters – 1
    • SynAttackProtect – 2
    • EnableDeadGWDetect – 0
    • EnablePMTUDiscovery – 0
    • KeepAliveTime – 300,000
    • DisableIPSourceRouting – 2
    • TcpMaxConnectResponseRetransmissions – 2
    • TcpMaxDataRetransmissions – 3
    • NoNameReleaseOnDemand – 1
    • PerformRouterDiscovery - 0
    • TcpMaxPortsExhausted – 5
  • Параметры реестра для Windows Sockets (Afd.sys) (Q142641)
    • EnableDynamicBacklog - 1
    • MinimumBacklog - 20
    • MaximumBacklog - 20000
    • DynamicBacklogGrowthDelta – 10
  • Отключено создание “Lmhash”
    • Service Pack 2
  • Отключена авто-генерация имен файлов в формате 8.3
  • Отключен Autorun

Среди служб, присутствие которых необходимо в режиме Auto (автоматического запуска) отметим следующие.
  • DHCP Client
  • Distributed Link Tracking
  • DNS Client
  • Event Log
  • Logical Disk Manager
  • Netlogon
  • Plug and Play
  • Protected Storage
  • RPC
  • Remote Registry
  • Security Accounts Manager
  • Server
  • System Event Notification
  • TCP/IP NetBIOS Helper
  • Windows Time
  • Workstation
В режим Manual (ручного запуска) следует установить следующие службы:
  • COM+ Event Services
  • Logical Disk Manager Administrative Service
  • Network Connections
  • Performance Logs and Alerts
  • Windows Management Instrumentation Driver
Что касается контроллеров домена, то для них следует учесть некоторые изменения политики безопасности.
  • Основана на базовой политике для серверов
  • Добавлены сервисы
    • Distributed File System
    • DNS Server
    • File Replication
    • Kerberos Key Distribution Center
    • NTLM Security Support Provider
    • RPC Locator
  • Отключены сервисы – утилита DCDiag выдаст сообщение об ошибке
    • Simple Mail Transport Protocol (SMTP)
    • Intersite Messaging
    • IIS Admin Service
    • Distributed Link Tracking Server Service

Если вы планируете запускать на компьютере сервер IIS, то следует выполнить дополнительные настройки.
  • Включены сервисы
    • IISAdmin
    • W3SVC
  • Инструмент IISLockdown
    • Блокировка файлов
    • Отключение служб и компонент
    • URL Scan
    • Удаление ненужных ISAPI script mappings
    • Удаление ненужных папок
    • Модификация списков контроля доступа
  • Дополнительные операции
    • Отключение учетной записи ‘IUSR_computername’
    • Установка фильтров IPSecurity

В хозяйстве любого администратора пригодятся утилиты.
  • Hfnetchk
    • Утилита командной строки, проверяющая установленные исправления
    • Информация из файла MSSecure.xml
    • Скрипты Hfnetchk.cmd и Movelog.vbs
  • Microsoft Baseline Security Analyzer
    • Графический инструмент для анализа конфигурации параметров безопасности серверов и рабочих станций
  • Доставка и установка исправлений
    • Windows Update
    • Software Update Services (SUS)
    • SMS Value Pack

В конце первой части доклада Дмитрий вывел десять законов безопасности компьютеров.
  1. Технологии – не панацея.
  2. Абсолютной анонимности практически не бывает, ни в реальной жизни, ни в Интернете.
  3. Устаревший антивирусный сканер не намного лучше, чем отсутствие сканера вообще.
  4. Зашифрованные данные защищены ровно настолько, насколько защищен ключ шифрования.
  5. Машина защищена ровно настолько, насколько Вы уверены в своем администраторе.
  6. Слабые пароли сводят на нет сильную систему защиты.
  7. Если Вы разрешаете “плохому парню” загружать исполняемые файлы на Ваш Веб-сайт – это больше не Ваш Веб-сайт.
  8. Если “плохой парень” имеет неограниченный физический доступ к Вашему компьютеру – это больше не Ваш компьютер.
  9. Если “плохой парень” может изменить настройки операционной системы на Вашем компьютере – это больше не Ваш компьютер.
  10. Если “плохой парень” может запускать свои программы на Вашем компьютере – это больше не Ваш компьютер.

Вторая часть доклада была посвящена безопасности Active Directory. При этом Дмитрий постарался оценить риски вторжения в систему в зависимости от роли злоумышленника. Скажем, если к вашей сети подключился пользователь, не имеющий учетной записи, то мы получаем одну ситуацию, а если у вас подкупили администратора сервисов – совершенно другую ситуацию.


Анализ угроз безопасности в зависимости от роли злоумышленника

Роли злоумышленников были разделены следующим образом.
  • Администратор служб
    • Контролирует работу сервисов
    • Может изменять настройки контроллеров
    • Имеет физический доступ к контроллерам
  • Администратор данных
    • Может создавать, модифицировать и удалять объекты в каталоге
  • Аутентифицированный пользователь
    • Имеет учетную запись в доверяемом домене
    • Имеет доступ к определенным объектам
  • Анонимный пользователь
    • Не имеет учетной записи
    • Подключен к локальной сети

Анонимный пользователь может угрожать сети с помощью следующих методов.
  • Подбор имен и паролей пользователей
  • Исследование работающих программ
    • Системные процессы на контроллерах
    • Системные процессы на рабочих станциях администраторов
    • Процессы на серверах и рабочих станциях, работающих в контексте администраторов
  • Потребление ресурсов контроллеров Windows 2000 большим потоком запросов
    • В Windows .NET Server по умолчанию анонимные запросы допустимы только к rootDSE

Для предотвращения атак анонимных пользователей необходимо реализовать следующие моменты защиты.
  • Усиление требований к сложности паролей
  • Своевременная установка обновлений и исправлений
  • Минимизация количества кода, который исполняется
    • В системном контексте на контроллерах и рабочих станциях администраторов
    • В контексте администратора на всех компьютерах
  • Администраторы служб должны регистрироваться только на определенных рабочих станциях
    • Если Вы администратор служб, спросите себя: “Хочу ли я зарегистрироваться на этой машине?  А что, если на ней вирус?”
  • Мониторинг использования ресурсов контроллеров
Плюс дополнительные меры защиты.
  • Блокировка учетной записи при серии неудачных попыток регистрации
  • Использование смарт-карт для аутентификации пользователей
  • Доступ к контроллерам и рабочим станциям администраторов только по IPSec

Если «плохим парнем» оказался администратор баз данных, то ситуация осложняется новыми угрозами.
  • Блокировка возможности регистрации пользователей по UPN (name@domain.com)
    • Для нормальной работы UPN пользователя должен быть уникален в домене
      • Уникальность гарантируется запросом к Глобальному каталогу
  • Создание группы с количеством членов более 5000
    • Разрушает процесс репликации между контроллерами Windows 2000
      • Исправлено в Windows .Net Server
  • Последовательное создание огромного количества объектов каталога
    • Переполнение хранилища контроллеров

Защита должна включать следующие меры.
  • Мониторинг событий KDC
    • Event ID 11 “Duplicate UPN”
    • Обнаружение и удаление повторных UPN
  • Запрет на использование UPN для регистрации пользователей
  • Мониторинг процесса репликации
    • Event IDs 1479 и 1083
      • Записи о событии содержит информацию о контроллере и о группе
  • Мониторинг дискового пространства на контроллерах
    • Неожиданное существенное снижение свободного дискового пространства
    • Контроль за наличием минимального свободного пространства
      • Не менее 20% от текущего размера файла ntds.dit
    • Анализ данных аудита для обнаружения нарушителя и лишних объектов

Наконец, самый ужасный случай – когда атакует администратор служб. Какие же угрозы могут за этим последовать?
  • Внедрение на контроллер “плохого” кода, который может изменить поведение Active Directory
    • Имперсонация любого пользователя в любом домене
    • Чтение, модификация или удаление любого ресурса и любой настройки в любом домене
    • Обход, отключение или порча системных инвариантов
      • Списки контроля доступа, аудит, роли FSMO и др.
    • Репликация изменений на другие контроллеры
  • Загрузка контроллера в режиме восстановления
    • Произвольная модификация базы данных каталога

Защита от таких атак достаточно сложна.
  • “Ничего личного” – только доверенный (проверенный) персонал администраторов
  • Минимизация количества администраторов служб
    • Делегирование выполнения повседневных операций администраторам данных
  • Обязательное использование антивирусного ПО на контроллерах и рабочих станциях администраторов служб
  • Администраторы служб не должны быть локальными администраторами рабочих станций
  • Администраторы служб должны регистрироваться только на определенных рабочих станциях
  • Контроль за перезагрузками контроллеров домена

Вторая часть также была закончена выводом десяти законов безопасности.
  1. Технологии – не панацея.
  2. Безопасность – это не средство избежать риски, безопасность – это управление рисками.
  3. Эффективность защиты информационной системы прямо пропорциональна сложности системы защиты.
  4. Самая защищенная сеть – та, которую хорошо администрируют.
  5. Наверняка есть кто-то, кто пытается (или попытается) подобрать пароли в Вашу систему.
  6. “Вечная бдительность” - вот цена безопасности.
  7. Впрочем, это практически бесполезно – устанавливать исправления – если система не была защищена изначально.
  8. Если Вы не следите за своевременной установкой исправлений, Вы потеряете контроль над своей сетью достаточно быстро.
  9. Защита реально работает только в том случае, если защищенный путь – наиболее простой.
  10. Никто не верит, что что-то плохое может случиться с ним, до тех пор, пока это на самом не случится.

Построение высокопроизводительных транзакций

Проблемой построения надежной и высокопроизводительной транзакционной системы сегодня занято огромное количество архитекторов ПО в разных отраслях.
Для определения «высокопроизводительный» Алексей Добровольский сравнил термины «скорость» и «масштабируемость».

Скорость
– длительность выполнения операции, или количество операций за единицу времени.

Для получения скорости работы приложения необходимо:
  1. открыть все файлы;
  2. подключится к БД;
  3. загрузить все в память;
  4. быстро выполнить алгоритм (это достигается за счет «шлифовки» кода и алгоритмов);
  5. перед завершением программы освободить занятые ресурсы.

Масштабируемость – способность системы обеспечить одновременное выполнение операции (смеси операций) определенным числом пользователей с сохранением нормированного максимального времени отклика системы с нормированной интенсивностью.

Для организации масштабируемости необходимо
  •  занимать ресурсы как можно позднее и освобождать как можно раньше
  • минимизировать использование разделяемых ресурсов
  • минимизировать накладные расходы на обслуживание запросов пользователей, создание и ликвидацию объектов;
  • использовать пулы ресурсов (потоков, подсоединений).
Это все дополняется оптимизацией архитектуры приложения, а затем «шлифовкой» кода и алгоритмов.

Для многопользовательских систем термин «скорость» не имеет никакого смысла. То есть термин «высокопроизводительный» в многопользовательских системах приравнивается к термину «масштабируемый».

Разработчикам многопользовательских приложений Алексей посоветовал при тестировании руководствоваться следующими положениями.
  • Оптимизация кода и алгоритмов – последний этап разработки, после того, как достигнута (или почти достигнута) необходимая масштабируемость. При анализе работы систем никогда не стройте предположений – только измеряйте! Для анализа времени выполнения на уровне строк кода и функций/процедур используйте профайлеры (NuMega/Compuware, Rational, Intel, …). На сайте www.numega.com есть бесплатный профайлер для VS.Net. Профилируйте только основные части кода (или те места, на медленную работу которых жалуются пользователи).
  • Проблемы с масштабируемостью на 100% определяются неправильной архитектурой, при чем ошибки в архитектуре невозможно исправить оптимизацией кода (хотя иногда их можно скомпенсировать мощью железа). При анализе архитектуры приложения сначала необходимо обратиться за рекомендациями по архитектуре приложений к производителям серверного ПО и инструментальных средств, они предоставляют рекомендации по архитектуре для всех категорий и назначений приложения. Если у вас нет очень веских оснований (собственного глубокого опыта) для других решений, придерживайтесь рекомендаций. Кроме этого при анализе архитектуры следут разнести уровни приложения по раздельным компьютерам (узлам) – это даст возможность эффективно применять «грубые» методы анализа, такие как Task Manager, System (Performance) Monitor, и облегчает применение «продвинутых» средств.
  •  Для создания нагрузки и измерения времени отклика используйте средства эмуляции работы пользователей – WEB Stress Tool, Application Center Test и другие.
Относительно использования хранимых процедур следует помнить, что помещение бизнес-логики в хранимые процедуры увеличивает скорость, но снижает масштабируемость – т.к. сервер СУБД становится узким местом системы. Поэтому в хранимых процедурах стоит оставлять только простые операции, имеющие непосредственное отношение к функциям хранения/извлечения информации, все остальное (если хотите достичь высокой масштабируемости на оборудовании разумной стоимости) необходимо помещать в объекты сервера приложений.

Относительно простым и недорогим путем увеличения масштабируемости системы является применение многодисковых систем хранения совместно с серверами баз данных. Для балансировки нагрузки «нагруженные» объекты (таблицы, индексы, лог, tempdb) должны находится на отдельных физических дисках

При обработке запросов в многопользовательских приложениях не обойтись без блокировок. Различают «пессимистичные» и «оптимистичные» блокировки. «Пессимистичная» блокировка запрещает изменение используемой записи, тем самым гарантирует целостность данных. Однако она несовместима с многоуровневыми системами, рассчитанными на неустойчивые канал связи и тонкого клиента (бошльшинство записей может оказаться заблокированными), и не позволяет достичь высокой масштабируемости. «Оптимистичные» блокировки приходится реализовывать вручную – или добавляя timestamp (номер версии) в каждую таблицу, или при обновлении в предложение WHERE подставлять условие равенства старым значениям колонок. Это дает возможность пользователям  работать со всеми записями, блокировка происходит только в момент изменения записи (на момент вашего измения записи, ее содержимое уже «устарело», была изменена ранее другим пользователем, в изменении будет отказано).

Dead lock’и (2 транзакции ждут выполнения друг друга) обычно проявляются в большом количестве при высокой нагрузке. Возникновение dead lock’ов приводит к появлению задержек, уменьшающих количество успешно выполняемых операций. Для их устранения следует аккуратно программировать операции (за счет выполнения всех операций в одной последовательности прохода по таблицам). Для определения существования dead lock’ов  следует испльзовать Performance Monitor (конкретное условие возникновения можно определить с помощью trace flag 1204).

Проблему масшабируемости можно решить и за счет «наращивания железа», однако идти по этому пути емеет смысл только в трех случаях.
  1. Стоимость переделки системы соизмерима или превышает стоимость мощного оборудования, которое обеспечит работу системы с нужными параметрами.
  2. Нет времени на перепрограммирование системы.
  3. Руководство предпочитает гарантированный результат.
Для эффективного выполнения многопользовательских приложений Microsoft предлагает использовать ОС Windows 2000 Dataсenter Server, обеспечивающая эффективное управление памятью (до 32GB), поддержку до 32 процессоров. Система предназначена для центров обработки данных, поддерживает технологию hyper-threading.

В качестве сервера баз данных - SQL Server 2000 Enterprise Ed. Основные зхарактеристики:
  • сертифицирован на платформе Windows 2000 Datacenter Server;
  • позволяет использовать до 64 GB памяти;
  • поддерживает 32 процессорные системы;
  • стабильно работает под стрессовой нагрузкой на многопроцессорных системах и кластерах;
  • использует преимущества Windows 2000 Datacenter Server по эффективному выполнению многопользовательских и многопоточных приложений;
  • поддерживается круглосуточно работающим центром поддержки.

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

Новая серверная платформа Microsoft Windows .Net Server

Доклад Дмитрия Вишнякова был посвящен серверной линейке Microsoft .Net Server, которая должна выйти в 2003 году. Мы обозначим основное содержание доклада в виде тезисов.


Линейка новых серверов

Что же нового нас ждет в серверах .Net? Во-первых, следует отметить поддержку .NET приложений.
  • .NET Framework runtime
    • Встроен в Windows .Net Server
    • Готов для запуска .NET приложений
    • COM+ приложения могут быть доступны как Web Services
      • Опция в конфигурировании приложений
  • Интеграция и поддержка .Net Passport
  • Встроенная поддержка UDDI

Немало изменений претерпела и NTFS. Помимо улучшений старых функций появились и новые возможности.
  • Мощная многопоточная файловая система NTFS
    • Динамические диски
    • Компрессия файлов
    • Дисковые квоты
    • Управление съемными носителями
    • Поддержка внешних хранилищ
    • система резервного копирования
    • Служба репликации файлов
  • Теневые копии папок
    • Возможность восстановления файлов
    • Возможность хранения истории файлов
    • Возможность фонового архивирования файлов, которые заняты приложениями
  • Автоматическая система восстановления
    • Автоматическое восстановление компьютера с нуля
  • Оптимизированная служба дефрагментации файлов
    • Производительность и масштабируемость
    • Дефрагментация MFT в режиме онлайн


Улучшение производительности линейки .NET (использована 3-я бета)


Улучшение масштабируемости линейки .NET (использована 3-я бета)


Преимущества использования распределенной файловой системы (DFS)

В линейке .NET была улучшена работа с распределенной файловой системой (DFS). Перечислим основные отличия.
  • На одном сервере можно создать несколько корней DFS
    • Гибкая конфигурация корней DFS в группах кластерных ресурсов
    • Инкрементальный переход от целевых/корневых серверов DFS Windows 2000 к Windows .Net
    • Возможно комбинированная структура отдельных и доменных серверов DFS
  • Динамическое отслеживание размещения целевых/корневых серверов по сайтам
  • Улучшенная масштабируемость DFS
    • Меньше времени на конфигурацию и запуск DFS
    • Командные запросы на синхронизацию DFS
    • Оптимизировано использование памяти
    • Масштабируемость корней
      • Большее количество корневых серверов DFS

Сетевые службы .NET претерпели следующие улучшения по сравнению с Windows 2000.
  • Возможность архивирования и восстановления базы сервера DHCP
  • Групповые политики для сетевых настроек
  • Усовершенствованная служба балансировки сетевой нагрузки (NLB)
  • Новые возможности Cluster Server и поддержка Storage Area Networks
  • Поддержка протокола IP v. 6
  • Планировщик сетевых пакетов
    • Для службы Quality of Service

У службы Network Load Balancing появились интересные дополнения.
  • Виртуальные кластеры
    • Размещение нескольких Web-серверов на одном кластере
      • Отдельные правила портов
  • Двунаправленная аффинность
    • VPN (PPTP, L2TP)
    • ISA Server 2000
  • Инструменты управления
    • NLB Manager
    • Пакет управления для Microsoft Operations Manager 2000


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

Кластеризация приобрела новые возможности.
  • Упрощенный процесс установки и настройки кластера
    • Дополнительные опции для сложных конфигураций хранилищ
  • Новые типы ресурсов
    • «Generic Script»
  • Интеграция и взаимодействие с Active Directory
  • Новые инструменты управления
    • WMI-scripts
    • Пакет управления для Microsoft Operations Manager 2000
  • Новый тип кворум-ресурса
    • “Majority Node Set”
  • Полноценная поддержка Storage Area Networks (SAN)
  • Расширенные возможности файловой системы
  • Поддержка службы Автоматического восстановления сервера (ASR)
  • Усовершенствованная система диагностики
    • Улучшенная структура журналов регистрации
    • Утилита ClusDiag.exe

Важной частью Windows 2000 является служба Active Directory. Как вы наверняка можете предположить, в .NET серверах служба AD претерпела дальнейшие улучшения и дополнения.
  • Новые инструменты для диагностики и отладки сервера DNS
  • Мониторинг состояния контроллеров домена и процесса репликации каталога
  • Оптимизация LDAP
    • Динамические данные
    • Хранение истории запросов к каталогу
  • Возможность переименовывать домен
    • Утилита Rendom.exe
  • Возможность удалять из схемы

Глобальный каталог Active Directory:
  • Модифицирован протокол репликации Глобального каталога
    • Синхронизируются только добавленные атрибуты
  • При аутентификации пользователя не требуется доступ к Глобальному каталогу
    • Информация о членстве пользователя в универсальных группах кэшируется на контроллерах
      • при первом входе в систему

Репликация каталога Active Directory:
  • Установка реплики контроллера со съемного носителя
    • Резервная копия реплики действующего контроллера может быть использована при установке нового контроллера
  • Оптимизация репликации членства в группах
    • Реплицируются индивидуальные изменения, а не полный список
    • Снято ограничение в 5000 прямых членов группы
  • Оптимизация Knowledge Consistency Checker (KCC)
  • Новая версия Inter-Site Topology Generator (ISTG)

Функциональные уровни:
  • Необходимы для представления обратно-несовместимых возможностей
    • Администратор вручную повышает функциональный уровень
      • Уровень можно только повысить
    • Доступные уровни
      • Лес Windows .Net
      • Промежуточный лес Windows .Net
    • Домены в Mixed-mode
      • Домен Windows .Net

В групповых политиках Windows .NET произошли следующие изменения.
  • Более 100 новых параметров
    • В том числе для настройки Microsoft Windows XP
  • Мастер анализа результатов применения групповых политик
    • Позволяет увидеть результаты применений групповых политик к объектам
    • Возможность планирования конфигураций


Новые инструменты по управлению

Благодаря появлению новых инструментов управления системой облегчилась работа системных администраторов.
  • Средства удаленного управления
  • Расширенный набор утилит командной строки
  • Усовершенствованная служба Remote Installation Service (RIS)
  • Механизмы управления «бесконсольными» машинами
    • Терминальное управление
    • Поддержка технологии EMS
  • Software Update Services
  • Политика ограничения для исполняемых программ
  • “Мастера” настройки сервера для специфических ролей
    • Web, AD, TS, DHCP, File, Print, etc…
    • Устанавливают и конфигурируют необходимые компоненты
  • Упрощенная инсталляция первого сервера в сети
    • DHCP, DNS и AD устанавливаются в конфигурации по умолчанию

Наконец, отметим улучшения в подсистеме безопасности Windows .NET
  • Новые возможности Центра Сертификации и Инфраструктуры открытых ключей
    • Административные роли для ЦС
    • Редактируемые шаблоны сертификатов
    • Архивирование личных ключей
    • Ограниченная субординация
    • Поддержка Delta CRL
    • Автоматическое получение и обновление сертификатов
  • Поддержка смарт-карт в терминальных сессиях и в административных утилитах
  • Новые возможности EFS

Архитектура и проектирование распределенных .Net-приложений

Доклад Дмитрия Старостина начинал поток, посвященный разработке приложений в архитектуре .Net.

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



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



В ходе изложения доклада Дмитрий остановился на каждом из перечисленных элементов приложения.

Уровень представления предназначен для обращения к компонентам доступа данных из компонентов уровня представления. На уровне представлений докладчик выделил компоненты следующих категорий:
  • пользовательского интерфейса Windows;
  • Web пользовательского интерфейса;
  • интерфейса для мобильных устройств;
  • реализации интерфейса на основе документов.
Их функции заключаются в отображении данных, принятии введенных пользователем данных, проверке данных, могут содержать ссылки на компоненты UI-процесса, а также содержать функциональность отображения и функциональность управления.

Пользовательский интерфейс Windows – это развитый интерфейс настольного приложения, построенный с помощью Windows Forms, встроенного HTML и дополнителных модулей приложения. При разработке интерфеса следуйте советам:
  • используйте связывание для синхронизации данных между одновременно открытыми формами;
  • избегайте использования в коде жестких связей между формами;
  • реализуйте обработчики ошибок в формах;
  • в пользовательских контролах делайте публичными только необходимые методы;
  • не реализуйте функции управления внутри обработчиков событий.
По использованию компонент Web пользовательского интерфейса Дмитрий дает следующие советы:
  • реализуйте пользовательскую страницу обработки ошибки и глобальный обработчик ошибок в Global.asa;
  • используйте инфрастуктуру проверки ASP.NET для оптимизации задачи проверки вводимых данных;
  • используйте Web User Controls;
  • осуществляйте переходы между страницами из компонент UI процесса (получите контекст и вызовите Redirect);
  • функции управления реализуйте как отдельный функции на ASP.NET странице или в отдельных .NET классах;
  • используйте ASP.NET view state для хранения состояния страницы.
Программные средства: Microsoft Content Management Server, Microsoft SharePoint Portal™ Server 2002, IBuySpy Portal.

Среди интерфейсов мобильных устройств Дмитрий выделил два. Web интерфейс – для его программирования предлагается использовать Mobile Internet Toolkit, модель ASP.NET. Второй: интерфейс для интеллектуального мобильного устройства – для его создания используйте Smart Device Extensions.

И последний вид пользовательских интерфейсов – это реализация на основе документов. Здесь можно выделить работу с докуметами извне и работу с документами изнутри.

Кроме компонентов графического интерфейса, на уровне представлений могут быть использованы компоненты процесса графического интерфейса. Они включаются в приложение если семантика пользовательского интерфейса тесно связана со схемами и методами доступа данных, или физически компоненты UI и компоненты доступа к данным расположены вместе, а также если для доступа к данным не требуется авторизации или дополнительной обработки на уровне бизнес логики. При использовании компонентов UI процесса необходимо идентифицировать:
  • бизнес процессы, в которых участвует пользовательский интерфейс;
  • данные, необходимые для бизнес процессов;
  • дополнительное состояние, необходимое для поддержания пользовательской активности;
  • а также разработать визуальное представление пользовательского процесса.


Службы бизнеса – это следующий уровень структуры многоуровнего приложения. При проектировании компонент этого уровня необходимо руководствоваться следующими принципами:
  1. максимально используйте ориентированные на передачу сообщений взаимодействия;
  2. обеспечьте устойчивость интерфейсов к непоследовательным воздействиям;
  3. тщательно выбирайте границы транзакций;
  4. обеспечьте возможность вызова из сервиса (без передачи контекста пользователя);
  5. последовательно используйте форматы данных для входных и выходных параметров.

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

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

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

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

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

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

Интерфейс сервиса является точкой входа в приложение, помогают изолировать изменения в бизнес логики (не должны реализовывать бизнес логику), повышают эксплутационную устойчивость. Для компоненты бизнес логики может быть разработано и опубликовано несколько интерфейсов, предназначенных для разных типов вызывающих приложений. Сервисные интерфейсы могут реализовываться для разных протоколов взаимодействия, форматов сообщений, схем аутентификации, Service Level Agreement (SLA), а также для возможности поддержки транзакций. Кроме этого, сервисные интрефейсы могут выполняться под собственным идентити без имперсонации оригинального вызывающего.



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

Для предоставления данных и передачи их между уровнями используют XML, DataReader, DataSet, типизированный DataSet и пользовательский объект.

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



Кроме описанных компонентов многоуровнего приложения архитектуру приложения составляют политики безопасности, мониторинга и управления, политика взаимодействия.

Политика безопасности включает вопросы аутентификации, авторизации, безопасности каналов, аудита и управление профилями.

Термин политика операционного управления объединяет процессы управления исключениями, мониторинга бизнес логики, метаданные, конфигурацию и локаторы сервисов.

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

В заключении Дмитрий дает следующие рекомендации по созданию архитектуры приложения:
  1. определите распределение компонент приложения по уровням;
  2. выберите технологии взаимодействия компонент с учетом поддержки транзакций;
  3. спроектируйте политики безопасности и операционного управления;
  4. спланируйте развертывание приложения.


Новая архитектура IIS 6.0 – Новый уровень надежности и безопасности

Доклад Андрея Крючкова был посвящен новому Internet Information Server 6.0, который мы увидим совместно с другими .NET продуктами в следующем году.

Андрей начал доклад с рассказа о тех уроках, которые разработчики вынесли из предыдущей версии IIS 5.0.
  • Черви Code Red и Nimda нанесли большой урон
  • Какой урок мы вынесли из всего этого
    • Windows 2000 из коробки является сервером приложений – слишком много путей для атак
    • Мягкие настройки по умолчанию
    • Работает от пользователя с большими привилегиями
    • Нет автоматизации установки заплаток
      • В результате: Заплатки выпущены за месяцы до червей, но их установили не все
      • Unicode Fix (Nimda) выпущен в октябре 2000
      • Index Server Fix (Nimda, Code Red) выпущен в июне 2001
  • Многие заказчики устояли от Code Red & Nimda
  • IIS Lockdown Wizard & URLSCAN для IIS 4/5
  • Улучшены механизмы управления расстановкой заплаток

Затем мы переходим к нововведениям, включенным в IIS 6.0.
  • Решенные задачи
    • Снижена возможность для атак
    • Безопасные настройки по умолчанию
    • Пониженные привилегии
    • Безопасный код
  • Новые схемы для аутентификации и авторизации
    • Делегированная аутентификация и Авторизация
    • Аутентификация через Passport
    • Аутентификация через URL
  • Дополнительные возможности для безопасности
    • Новая архитектура – более безопасная в IIS 6.0
    • Улучшенная система безопасности в ASP / FTP

Рассмотрим эти улучшения более подробно. Под снижением возможности для атак подразумевается
  • IIS не устанавливается по умолчанию
    • И еще более 20 других сервисов
  • Server Lockdown: Обслуживаете только статический HTML
    • Устанавливается только Web service
    • WebServicesRestrictionList
    • Активируются возможности с использованием шаблонов
  • При обновлении версии Web service будет выключен
  • Запрет на установку IIS6 через групповую политику
  • Более глубокая оборона с помощью Urlscan

В отличие от IIS 5.0, в следующей версии продукта по умолчанию устанавливаются более строгие права и более безопасные настройки.
  • Нет виртуальных папок с разрешенным исполнением
    • /SCRIPTS и /MSADC
  • Настроены тайм-ауты и ограничения
    • 16k на запрос (128K в Win2K)
  • Настроены ACL
    • Утилиты командной строки
      • Запрещено пользователю “Web Anonymous Users” исполнение всех .EXE файлов в  папке system32
    • Наполнение
      • Запрет на записи пользователям из “Web Anonymous Users”
    • Чтение/запись в Logfiles
    • Папку с Custom error
    • Папки с кешем

IIS 6.0 работает под учетной записью с пониженными привилегиями.
  • IIS 6.0 Worker процесс работает как NetworkService по умолчанию
    • LocalSystem
      • Практически администратор
      • 22 привилегии, включаяTCB (Trusted Computer Base)
    • NetworkService
      • Как пользователь
      • Всего 5 привилегий
    • Процесс Worker настраивается

Очень много внимания при разработке IIS 6.0 было уделено безопасности кода.
  • Проверки на переполнение буфера
    • Автоматизированы при сборке Windows
    • Поддержка компилятором VC++ (/Gs)
  • Переписаны процессы получения канонического имени
    • Убраны потоки NTFS
      • Bar.asp::$DATA
      • Bar.asp.
    • \?  (не используется канонизация через createfile())
  • Исследования кода и попытки проникновения
    • Внутренние и внешние тесты
  • Выброшен на свалку старый код
    • ISM.DLL / .HTR


IIS 6.0 поддерживает делегированную аутентификацию


А также аутентификацию passport


Авторизацию теперь можно производить относительно URL

IIS 6.0 обладает более безопасной архитектурой по сравнению с предшественником.
  • Улучшена изоляция приложений
    • Код приложений работает только в процессах Worker
    • Процессам Worker доступ открывают через ACL
      • Каждый ресурс должен иметь прописанный ACL для каждого процесса Worker и анонимного пользователя
      • Наполнение сайта
      • Общие ресурсы имеют ACL для группы IIS_WPG
      • Метабаза, Реестр, Папки с кешем
  • Снижение атак на отказ в обслуживании:
    • Мониторинг жизненно важных параметров сервера
    • Pinging, Rapid Fail Protection
    • Сброс после
    • Количества запросов, Время дня, Объем памяти
    • CPU Accounting


Большое внимание в докладе было уделено изоляции. Сравнение с подходом виртуальных машин.


Архитектура IIS 6.0 изначально ориентирована на изоляцию.


IIS 6.0 может работать даже с плохо написанными приложениями, регулярно их сбрасывая

Изоляция полезна и с точки зрения производительности.
  • Ограничения на использование ресурсов
    • По памяти
    • По процессору
  • Ждущие процессы
    • Выжидаем и останавливаем ждущие процессы
    • Освобождаем память для работающих приложений
    • Приложения все равно будут доступны
  • Запуск по запросу
    • Запуск рабочего процесса по первому запросу к приложению
  • Общие правила для приложений
    • Используйте Idle Timeout (ждущие процессы) для высвобождения ресурсов для тяжело нагруженных процессов
    • Не используйте idle timeout если приложение долго стартует

Применительно к FTP изоляция дает следующие приемущества
  • Блокирует пользовательскую сессию по FTP к его каталогу
  • Аутентифицирует локальным или доменным пользователем
  • Использование AD
    • Аутентификация использует пользователя AD в определенном контейнере
    • Выше производительность при большом количестве пользователей
    • Два новых атрибута в AD
      • FTProot
      • FTPdir
  • Использование локального пользователя
    • Перенаправляет название каталога по имени пользователя
  • Анонимный доступ при изоляции
    • Создайте виртуальный каталог Public/Pub
    • Доступ только на чтение

Заключение.
  • Продолжается поддержка IIS 5 и IIS 4
  • IIS безопасная платформа, которая может устоять при атаках
  • IIS 6.0 более защищен от атак установленный «из коробки»
  • Лучше механизмы для управления заплатками
  • Новые схемы авторизации и аутентификации в IIS 6.0
  • На одном можно обеспечить надежность и безопасность запуска нескольких приложений если вы уделите внимание…
    • Настройкам безопасности
    • Авторизации (ACL)
    • Требованиям к приложениям и их работе
    • Пулам приложений и настройкам сервера
  • Используйте изоляцию для…
    • Запуска нескольких приложений на одном сервере
    • Создания общего ресурса для приложений
  • Безопасность не только в технологиях… это совокупность трех составляющих – организационного процесса, технологий и людей, которые эти технологии используют


Система безопасности выполнения кода .Net

Доклад Дмитрия Старостина посвящен вопросам использования новых подходов к обеспечению безопасности при разработке .NET приложений - Code Access Security и Evidence Based Security.

В начале доклада Дмитрий дал определения основных терминов:

Принципал (Principal) - пользователь или какая-либо сущность, действующая от его лица (компьютер, сервис, ...).
Аутентификация (Authentication) - распознавание и проверка личности принципалов (пароли, сертификаты, смарткарты, биометрика, Basic, Digest, Passport, Integrated, Custom).
Авторизация (Authorization) - проверка наличия у принципала прав на выполнение операции или доступ к ресурсу.

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

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

Существует три пути решения этой проблемы.

Решение 1. Безопасность на основе прав доступа кода (CAS – Code  Access Security)
CAS предоставляет компонентно-центрический механизм безопасности поверх возможностей ОС. Каждый код обладает правами доступа к защищенным ресурсам, которые определяются на основе идентификации и определения происхождения кода, что предотвращает от непреднамеренного или злоумышленного использования.

Политика безопасности реализуется в .NET Framework через определение значения по умолчанию для доступа программного кода к защищенным ресурсам.

Права кода на доступ к ресурсам определяются через полномочия:
  • Code access: права кода на доступ к защищённому ресурсу или на выполнение защищённых операций;
  • Identity: права кода на поддержку конкретного вида identity;
  • Role-based security: принадлежность к определённой роли.
Полномочия используюся при обращении к объекту одним из следующих способов:
  1. код запрашивает (request) необходимые полномочия для выполнения операции или для доступа к объекту;
  2. среда исполнения (CLR) предоставляет (grant) полномочия;
  3. код требует (demand) наличие полномочий у вызывающей стороны.
Проверка полномочий реализуется через стек: запрос на доступ к защищенному ресурсу приводит к проверке CLR разрешений для каждого фрагмента стека (рис.)



Запросы на доступ к защищенным ресурсам приводят к большой нагрузке системы. Чтобы разрузить систему необходимо ограничить эффективный набор разрешений одним из способов.
  1. Определить что точно не понадобится: метод Deny класса permission запрещает доступ к ассоциированному ресурсу (метод Revert Deny отменяет эффект ранее сделанных вызовов Deny). При разработке следует использовать обработку исключительных ситуаций типа SecurityException, генерирующихся при попытке осуществления доступ к защищенным ресурсам без наличия соответствующих полномочий.
  2. Специфицировать то, что понадобится: метод PermitOnly гарантирует коду, что только указанные защищенные ресурсы могут быть доступны без генерации исключения безопасности (метод RevertPermitOnly отменяет эффект произведенного ранее вызова PermitOnly).
  3. Полномочия могут быть затребованы  перед осуществлением доступа к защищенному ресурсу: метод Demand.
  4. Для ограничения глубины просмотра стека используется метод Assert (отстаивать), при этом доверяемые компоненты могут точно указывать свои требования (выполнять действия, неразрешенные для вызывающего кода), что может неумышленно привести к ослаблению безопасности.



CAS может быть реализована через атрибуты. В этом случае информация будет записывается как часть метаданных assembly и доступна на уровне assembly, класса или метода., что позволяет эффективно использоваться загрузчиком.

Решение 2. Безопасность на основе свидетельства происхождения кода (Evidence Based Security)
.NET Framework включает концепцию доказательство происхождения кода для определения уровня доверия assembly. Каждая assembly предоставляет информацию CLR о месте ее происхождения или идентификации (зона поступления, URL, X.509 сертификат, цифровая подпись, строгое имя assembly).

Assembly никогда не будет предоставлено больше прав чем предусмотрено полдитикой безопасности. Политика безопасности имеет 4 уровня: Предприятие, Компьютер, Пользователь и домен приложения (Application Domain).



По умолчанию уровни Предприятия и Пользователя дают полный доступ всему коду. Уровень политики Компьютера содержит много групп кода для определения различного доступа (Assembly локального происхождения получают больше доверия, чем полученные из Интернет).

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

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

Assembly может попадать больше, чем в одну группу, доказательство Assembly сравнивается условием принадлежности к группе кода. Несколько групп кода на каждом уровне политики могут удовлетворять доказательству Assembly. На уровне политики assembly получает права (набор разрешений) от объединения удовлетворяемых групп кода, при этом пересечение разрешений, полученных на всех уровнях политики безопасности, определяет эффективный набор разрешений.
Каждая группа имеет только один набор разрешений, ассоциированный с ней. Набор может включать в себя несколько различных разрешений: полный доступ к локальным ресурсам; Read/Write доступ к локальному файлу или Read доступ к указанной переменной среды.

Реализация политики безопасности для группы кода. Пусть весь код – это корневая вершина P1. Pi – политика безопасности кода некоторого приложения. Для определения политики безопасности для группы кода определяются принадлежностик группе (во внимание принимается положение в иерархии).



Для измерения и управления политиками безопасности можно использовать консоль управления (Mscorcfg.msc) или утилиту командной строки (caspol.exe).

Решение 3. Изолированное хранилище
Долгое время возможность безопасно сохранять данные о состоянии пользователя или приложения на клиенте было проблемой для разработчиков. Изолированные хранилища в.Net Framework п





Loading...