net security. motivation rad nicht neu erfinden -> nutzung der sicherheitsfunktionen des...
TRANSCRIPT
![Page 1: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/1.jpg)
.Net Security
![Page 2: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/2.jpg)
Motivation
• „Rad nicht neu erfinden“ -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung, ...)
• Zusätzlich eigenes Sicherheitssystem: CAS• Ziele von Code Access Security:
– Rechte für Code (nicht User) vergeben– feinere Granularität (verschiedene Rechte für
Codestücke einer Anwendung)– sichere Ausführung von Code von verschiedenen
Quellen
![Page 3: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/3.jpg)
Role-based Security
• In den meisten Betriebssystemen verwendet
• „Sag mir, wer du bist, und ich sag dir, was du darfst“
• Principal = Identity + Roles
• -> Beispiel1
• Oft problematisch -> Code-based Security!
![Page 4: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/4.jpg)
Code-based Security
• Auch ‚Evidence-based Security‘
• „Sag mir, woher du kommst, und ich sag dir, was du darfst“
• Rechte werden für jedes Assembly einzeln vergeben -> feine Granularität
• Kann erweitert und modifiziert werden -> individuelle Anpassung
![Page 5: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/5.jpg)
Permissions
• Permission: Objekt, das Rechte repräsentiert, auf eine geschützte Ressource zuzugreifen
• Permission Set: Menge von Permissionshöchstens ein Objekt pro Permissiontyp-> Vereinigung der Objekte
![Page 6: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/6.jpg)
Zuweisung von Rechten (1)
Evidence + Security Policy = Permission Set
![Page 7: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/7.jpg)
Evidence
• Beschreibt Herkunft des Assemblies
• 7 vordefinierte Evidence-Typen• Woher wurde Code geladen?
URL, Site, Zone, ApplicationDirectory
• Wer hat Code geschrieben?StrongName, Publisher
• Allgemein: Hash
![Page 8: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/8.jpg)
Security Policy
• Regeln zur Rechtevergabe
• Security Manager bestimmt anhand von Security Policy und Evidence die Rechte eines Assemblies
• Wird auf jede Policy Ebene angewandt
![Page 9: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/9.jpg)
Policy Levels (1)
Enterprise Machine
UserApplicationDomain
GrantedPermissionSet
![Page 10: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/10.jpg)
Policy Levels (2)
• Jedes Policy Level besteht aus:– Hierarchie von Codegruppen (baumartig)– Liste mit Named Permission Sets– Liste mit Policy Assemblies
• Durchschnitt der Permission Sets aller Ebenen = granted Permission Set
![Page 11: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/11.jpg)
Codegruppen (1)
• Jede Codegruppe besteht aus:– Membership Condition– Permission Set– Attribute (LevelFinal, Exclusive)
• Permission Set eines Policy Levels = Vereinigung der Permission Sets aller passender Codegruppen
![Page 12: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/12.jpg)
Codegruppen (2)
![Page 13: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/13.jpg)
Zuweisung von Rechten (2)
• mögliche Rechte != erhaltene Rechte• Ziel: nur minimale Menge von Permissions
anfordern– RequestMinimum– RequestOptional– RequestRefuse
• Zugewiesene Permissions: (MaxGrant (ReqMin ReqOpt)) - ReqRefuse
![Page 14: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/14.jpg)
Zuweisen von Rechten (3)
![Page 15: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/15.jpg)
Policy Enforcement implizit
Stack Walk
![Page 16: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/16.jpg)
Policy Enforcement explizit (1)
• Demand, Link-Demand• Assert• Deny• PermitOnly• Immer nur eine Permission kann jeweiligen
Zustand annehmen, bei mehreren Permissions -> Permission Set
![Page 17: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/17.jpg)
Policy Enforcement explizit (2)
• Prioritäten: Deny – Assert – PermitOnly
• Code, der Assert aufruft, muss spezielle Permission haben
• RevertAssert, RevertDeny, ...
• Keine unnötigen Stack Walks!
• Beispiel2
![Page 18: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/18.jpg)
Policy Enforcement explizit (3)
• Imperativ: dynamisch (Demand, Assert, ...)
• Deklarativ: statisch (benutzerdefinierte Attribute) -> Beispiel3
![Page 19: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/19.jpg)
Bedeutung für Praxis (1)
• Meist keine explizite Verwendung der CAS nötig aber: SecurityExceptions abfangen!
• Beim Zugriff auf geschützte Ressourcen ohne Umweg über Bibliotheken
• Defaulteinstellungen modifizierbar
![Page 20: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/20.jpg)
Bedeutung für Praxis (2)
• Selbst definierbar:– Evidence-Typen– Permissions– Permission Sets
• Tools für Konfigurationen:– mscorcfg.msc– caspol.exe
![Page 21: Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich](https://reader035.vdocuments.site/reader035/viewer/2022062512/55204d7349795902118c7531/html5/thumbnails/21.jpg)
Danke für die Aufmerksamkeit!