Оглавление:
- Определение - Что означает Code Access Security (CAS)?
- Techopedia объясняет безопасность доступа к коду (CAS)
Определение - Что означает Code Access Security (CAS)?
Безопасность доступа к коду (CAS) - это механизм безопасности, с помощью которого общеязыковая среда выполнения (CLR) платформы .NET может ограничивать управляемый код для выполнения операций с ограниченным набором разрешений.
CAS применяет политики безопасности в .NET Framework, предотвращая несанкционированный доступ к защищенным ресурсам и операциям. В отличие от традиционных методов безопасности, когда пользовательские учетные данные получают от пользователя, CAS предназначен для решения проблем, возникающих при получении кода из внешних источников, которые содержат ошибки и уязвимости. Эти ошибки и уязвимости могут сделать систему пользователя уязвимой для вредоносного кода, который может выполнять задачи без ведома пользователя. CAS фактически знает и разрешает только те операции, которые данный пользовательский код может и не может выполнять. Эта функция применима ко всему управляемому коду, ориентированному на CLR.
CAS обеспечивает основанную на доказательствах безопасность, построенную на уровне выше безопасности, обеспечиваемой операционной системой Windows. В то время как Windows основан на разрешениях пользователя, CAS основан на свидетельстве для сборки. Сборка содержит разрешения, определенные в политике безопасности, и служит основой для выполнения кода необходимыми действиями.
Techopedia объясняет безопасность доступа к коду (CAS)
CAS построен на следующих элементах, среди прочего:
- Разрешения: это основные права, необходимые для доступа к защищенному ресурсу или выполнения защищенной операции.
- Набор разрешений: это набор разрешений, таких как «полное доверие», «ничего», «Интернет», «локальная интрасеть» и другие.
- Группа кодов: это логическая группа кода с заданным условием для членства, например LocalIntranet_zone и Internet_zone.
- Свидетельство: это информация, связанная со сборкой, такая как каталог приложения, издатель, URL и зона безопасности.
- Политика безопасности: это набор правил, настроенных администратором для определения разрешений, предоставленных для кода, выраженного иерархически на четырех уровнях, таких как домен предприятия, компьютер, пользователь и домен приложения.
Привилегированная операция выполнения кода требует CLR для одного или нескольких разрешений. Фактическое разрешение рассчитывается с использованием объединения разрешений, установленных в группах кода, а затем пересечения на уровне политики. CLR гарантирует, что требуемые разрешения находятся в предоставленных разрешениях метода этой сборки. Если разрешение не предоставлено, возникает исключение безопасности.
CAS предоставляет два режима безопасности для определения разрешений для кода:
- Декларативная безопасность реализуется путем определения атрибутов безопасности на уровне сборки, уровня класса или уровня элемента. Декларативный режим используется, когда вызовы должны оцениваться во время компиляции.
- Императивная безопасность использует вызовы методов во время выполнения для создания экземпляров классов безопасности. Императивный режим используется, когда вызовы должны оцениваться во время выполнения.
CAS имеет ограничения, в том числе неисправность приложения, перемещенного в другую систему, когда политика безопасности отличается. Кроме того, отсутствует контроль над неуправляемым кодом и отсутствует контроль над разработкой приложений для удовлетворения потребностей различных сценариев настроек безопасности в пользовательских системах.
Чтобы эффективно использовать детализированную технологию безопасности CAS, разработчики должны писать безопасный для типов код, использовать декларативный или императивный синтаксис на основе контекста, запрашивать разрешения у среды выполнения для выполнения кода и использовать безопасные библиотеки.