1 softwareentwicklung mit.net teil 7.net security dr. ralph zeller
TRANSCRIPT
![Page 1: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/1.jpg)
1
Softwareentwicklung mit .NETTeil 7
.NET Security
Dr. Ralph Zeller
![Page 2: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/2.jpg)
2
Motivation
Verteilte Applikationen können Code dynamisch über das Internet laden und ausführen (mobiler Code)
Manipulierter Code kann Systeme und Daten beschädigen
Bisherige Security Mechanismen:• Security bezieht sich auf User und Ihre Rollen• Code wird mit Rechten des Users ausgeführt • Beschränkter Zugriff auf Ressourcen
(Verzeichnisse, Files, Konfiguration)
![Page 3: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/3.jpg)
3
CLR Security Rollen basierte Security
• Benutzer gehört zu einer Gruppe• Benutzer muss sich authentifizieren• Prinzipal Konzept (Gruppenrechte)
Code access security• Zusätzlich zur Rollen basierten Security• Bietet Schutz vor manipulierten Code
Security Modell basiert auf Permissions• Code benötigt Rechte um Operationen
auszuführen
![Page 4: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/4.jpg)
4
OS Security basiert auf Benutzerrechten
CLR Security erteilt Code Ausführungsrechte
vertrauenswürdiger Code
Trusted userTrusted userTrusted codeTrusted code
Untrusted userUntrusted userUntrusted codeUntrusted code
Trusted userTrusted userUntrusted codeUntrusted code
Untrusted userUntrusted userTrusted codeTrusted code
!!!!
![Page 5: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/5.jpg)
5
partiell trusted CodeBeispiel 1: File lesen
![Page 6: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/6.jpg)
6
EvidenceUrsprungsnachweis
Information über ein Assembly (Code)• Wer veröffentlichte das Assembly?• Woher kommt das Assembly?
Beispiele für Evidence• Zone (MyComputer, Intranet, Internet, Trusted,
Untrusted)• Site, URL oder Herkunftsverzeichnis• Hash value• Strong Name• Applikation Verzeichnis• Herausgeber Zertifikat
![Page 7: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/7.jpg)
7
Permissions sind Objekte, die den Zugang zu bestimmten Ressource kontrollieren
Was wird kontrolliert?• Dateisystem, Netzwerk, User Interface, Registry,
Datenbank, Environment Variablen, …
Code kann Permissions anfordern (request)
Die CLR gewährt Permissions auf Anforderung, wenn der Aufrufer vertrauenswürdig ist (grant)
Permissions können von der aufrufenden Funktion angefordert werden (demand)
Permissions (Rechte)
![Page 8: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/8.jpg)
8
Per. schützen Ressourcen FileIO
FileDialog
IsolatedStorage
Environment
Registry
UI
Printing
Reflection
Security
Socket Web DNS OleDb SQLClient MessageQueue EventLog DirectoryServices … erweiterbar
![Page 9: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/9.jpg)
9
Deklarative Permissions … über Attribute
Spezielle Permissions für Assembly, Klasse oder Methode• Lower Lever Security überschreibt Higher
Level Security!
Zur Ladezeit wird entschieden ob Permission gewährt wird
using System.Security.Permissions;
[FileIOPermissionAttribute(SecurityAction.Demand)] public static string ReadData() { // lese File ein }
![Page 10: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/10.jpg)
10
Imperative Permissions … über expliziten Code
Erzeuge ein Permission Objekt und rufe seine Methoden auf
Schutz bezieht sich auf Methode
Zur Laufzeit wird entschieden ob Permission gewährt wird
using System.Security.Permissions;
String fullPath = Directory.GetFullPathInternal(fileName);FileIOPermission p = new FileIOPermission( FileIOPermissionAccess.Read, fullPath);p.Demand();
![Page 11: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/11.jpg)
11
Applikationen umfassen mehrere Assemblies• .exe Assembly• Assemblies aus der Framework Class Library• Fremde Library, Mobile Code, etc.
Wenn ein Assembly ein anderes aufruft wird Security Grenze überschritten
Vor Ausführung einer sensiblen Operation checkt die CLR den Call-Stack• Kontrolle ob jedes Assembly am Call-Stack die
nötigen Permissions hat• Dieser Stack-walk heißt Demand
Security Checks
![Page 12: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/12.jpg)
12
Stack walking
Methode M3Methode M3
Methode M2Methode M2
Methode M1Methode M1
Methode M4Methode M4
Call StackCall Stackwächstwächstnach untennach unten
B2B2
B1B1
B3B3
B4B4
Jede Methode hat be-Jede Methode hat be-stimmte Berechtigungenstimmte Berechtigungen
Methode M4Methode M4fordertfordertPermission PPermission P
PP
P wird mit den P wird mit den BerechtigungenBerechtigungenaller Aufrufer aller Aufrufer am Stack über am Stack über M4 verglichenM4 verglichen
PP
PP
PP
![Page 13: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/13.jpg)
13
Modifikatoren überschreiben das Ergebnis des Stack-Walks
Assert• Ich verbürge mich für meine Aufrufer.
Permission nicht weiter prüfen• Security Loch
Deny• Permission wird explizit verweigert
PermitOnly• Erlaubt Zugriff auf eine spezielle Ressource
Stack Walk Modifikatoren
![Page 14: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/14.jpg)
14
Security checkBeispiel 2: Stackwalk
![Page 15: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/15.jpg)
15
Policies Policy bezeichnet Regeln, nach denen die CLR
Permissions zuweist
Abhängig von der Evidence des Codes und dem Policy Level• Enterprise, Machine, User, Application domain
![Page 16: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/16.jpg)
16
Policy Levels Policies sind auf verschiedenen Ebenen
administrierbar
enterprise
user
machine
appdomain
resultierendesPermission Set
![Page 17: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/17.jpg)
17
Code Gruppen Jeder Policy Level ist ein Baum von Code
Gruppen
Code Gruppen bestehen aus einer Bedingung und einem Permission Set
Bedingung? PCode Gruppe
Erfüllt ein Assembly die Bedingung, wird die Permission erteilt
![Page 18: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/18.jpg)
18
Machine Level Policy
intranet?intranet? Restricted?Restricted?
ExecuteExecute
Local?Local?
FullFull
AllAll
Microsoft?Microsoft?
FullFull
Internet?Internet?
InternetInternet
NetworkNetwork NetworkNetwork
enthält Permissions um auf Datenquellen im Netz
zuzugreifen
intranetintranet
![Page 19: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/19.jpg)
19
Policies administrieren Command line Utility
• Caspol.exe
Konfiguration von Maschinen und User Policies• zufügen, ändern und löschen von
• Code Gruppen• Permissions und Permission Sets
Beispielcaspol –listgroupsCaspol –resolvegroup assembly.dllCaspol –resolveperm assembly.dllcaspol –machine –addfulltrust assembly.dllcaspol –machine –ag 1.1 –zone Internet execution
![Page 20: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/20.jpg)
20
Caspol.exeBeispiel 3: caspol Stackwalk
![Page 21: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/21.jpg)
21
Mscorcfg.msc
Gaphisches Benutzer Interface• Microsoft Management Konsole Snap-In
Administriert Security Policies• Änderungen an Code Gruppen und Permission Sets• Auf Enterprise, Machine und User Level
![Page 22: 1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c51a28ab14218dae5e/html5/thumbnails/22.jpg)
22
Fragen?
Uff...