Codezugriffssicherheit

Was ist Codezugriffssicherheit?
Die Codezugriffssicherheit (Code Access Security, CAS) ist ein Sicherheitsmechanismus, mit dem die Common Language Runtime (CLR) des .NET-Frameworks den verwalteten Code auf die Ausführung von Operationen mit eingeschränkten Berechtigungen beschränken kann.

CAS erzwingt Sicherheitsrichtlinien im .NET-Framework, indem es den nicht autorisierten Zugriff auf geschützte Ressourcen und Operationen verhindert. Im Gegensatz zu herkömmlichen Sicherheitsmethoden, bei denen Benutzeranmeldeinformationen vom Benutzer abgerufen werden, wurde CAS entwickelt, um die Probleme zu lösen, die auftreten, wenn Code von externen Quellen bezogen wird, die Fehler und Sicherheitslücken enthalten. Diese Fehler und Sicherheitslücken können das System eines Benutzers anfällig für bösartigen Code machen, der möglicherweise Aufgaben ausführt, ohne dass der Benutzer es bemerkt. CAS kennt und erlaubt nur die Operationen, die ein bestimmter Benutzercode ausführen kann und kann. Diese Funktion gilt für den gesamten verwalteten Code, der auf die CLR abzielt.

CAS bietet evidenzbasierte Sicherheit, die auf einer Ebene über der Sicherheit des Windows-Betriebssystems liegt. Während Windows auf den Berechtigungen des Benutzers basiert, basiert CAS auf dem Beweis für die Assembly. Die Assembly enthält die in der Sicherheitsrichtlinie definierten Berechtigungen und bildet die Grundlage dafür, dass der Code die erforderlichen Aktionen ausführen kann.

CAS baut unter anderem auf folgenden Elementen auf:

Berechtigungen: Dies sind die grundlegenden Rechte, die erforderlich sind, um auf eine geschützte Ressource zuzugreifen oder eine geschützte Operation auszuführen.

Berechtigungssatz: Hierbei handelt es sich um eine Reihe von Berechtigungen, z. B. ‚vollständige Vertrauensstellung‘, ’nichts‘, ‚Internet‘, ‚lokales Intranet‘ und andere.

Codegruppe: Dies ist eine logische Gruppierung von Code mit einer bestimmten Bedingung für die Mitgliedschaft, z. B. LocalIntranet_zone und Internet_zone.

Beweis: Dies sind montagebasierte Informationen wie Anwendungsverzeichnis, Herausgeber, URL und Sicherheitszone.

Sicherheitsrichtlinie: Hierbei handelt es sich um eine Reihe von Regeln, die von einem Administrator zum Ermitteln der Berechtigungen konfiguriert werden, die für einen Code erteilt werden, der hierarchisch auf vier Ebenen als Unternehmens-, Maschinen-, Benutzer- und Anwendungsdomäne ausgedrückt wird.

Die codeausführende privilegierte Operation fordert die CLR für eine oder mehrere Berechtigungen an. Die tatsächliche Berechtigung wird mithilfe der Vereinigungsmenge berechnet, die in den Codegruppen festgelegt wurde, und dann auf der Richtlinienebene. Die CLR stellt sicher, dass die angeforderten Berechtigungen in den erteilten Berechtigungen der Methode dieser Assembly enthalten sind. Wenn die Berechtigung nicht erteilt wird, wird eine Sicherheitsausnahme ausgelöst.

CAS bietet zwei Sicherheitsmodi zum Definieren von Berechtigungen für Code:

Deklarative Sicherheit wird implementiert, indem Sicherheitsattribute auf Assemblerebene, Klassenebene oder Mitgliederebene definiert werden. Der Deklarationsmodus wird verwendet, wenn Aufrufe zur Kompilierungszeit ausgewertet werden müssen.

Imperative Sicherheit verwendet Laufzeitmethodenaufrufe, um Instanzen von Sicherheitsklassen zu erstellen. Der Imperativ-Modus wird verwendet, wenn Aufrufe zur Laufzeit ausgewertet werden müssen.

CAS hat Einschränkungen, einschließlich der Fehlfunktion einer Anwendung, die in ein anderes System verschoben wurde, wenn die Sicherheitsrichtlinie anders ist. Darüber hinaus gibt es keine Kontrolle über nicht verwalteten Code und keine Kontrolle über die Entwicklung von Anwendungen, um den Anforderungen unterschiedlicher Szenarien von Sicherheitseinstellungen auf Benutzersystemen gerecht zu werden.

Um die feingranulare Sicherheitstechnologie von CAS effektiv zu nutzen, sollten Entwickler typensicheren Code schreiben, deklarative oder imperative Syntax basierend auf Kontext verwenden, Berechtigungen zur Laufzeit anfordern, damit Code ausgeführt werden kann, und sichere Bibliotheken verwenden.


War die Erklärung zu "Codezugriffssicherheit" hilfreich? Jetzt bewerten:

Weitere Erklärungen zu