1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller.

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
Was gibt´s neues im Bereich Sicherheit
Sichere Anbindung kleiner Netze ans Internet
Rechnernetze und verteilte Systeme (BSRvS II)
Smart Clients in.NET: Leicht installieren, einfach verteilen, sicher betreiben Christof Sprenger Technologieberater.NET Strategy & Developer Group Microsoft.
Deklarative Programmierung mit Attributen
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Deployment und Versioning von .NET Applikationen
Security.NET Was darf mein Code?
SPS / WSS Entwicklung Martin Saternus Technical Student Consultant Microsoft Deutschland GmbH
Pflege der Internetdienste
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Attribute Profile.
Objektorientierte Programmierung
Datenbankzugriff im WWW (Kommerzielle Systeme)
Ausnahmen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
JAVA RMI.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
Command Pattern Karola Schäuble,
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Einführung in Java1 Einführung in JAVA.
Björn Schmidt, Hoang Truong Nguyen
JDBC: JAVA Database Connectivity
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
YouTube5 .0 Projektpräsentation
Open Services Gateway Initiative
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Workshop: Active Directory
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
Wir bauen uns eine Webapplikation!
Michael Haverbeck System Engineer
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Aurich – Jonas Jacobi OSGi Tutorial Aurich – Jonas Jacobi Das OSGi Service Framework Dynamisches Modulsystem für Java Dynamische.
.Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich.
Seminar aus Softwareentwicklung: Inside Java and .NET
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Programm-Module Lehrbuch, Kapitel 7.
SQL Server 2005 CLR-Integration
Systemaufbau / Komponenten
Windows Server 2008 Kurzüberblick Dr. Richtmann+Eder AG Olschewskibogen München.
Arbeitsgruppen-administration
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Seminar Internet Technologien
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Datenanbindung in Webapplikationen
Plugin Design Patterns in
Die AppDomain Das unbekannte Wesen?
CODA - Installation Installation der Binärdateien –Venus: Client-Programm –Vice: Server-Programm –Für Windows existiert eine Alpha-Version (Coda Client.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Grundkurs Informatik 11-13
Implementieren von Klassen
 Präsentation transkript:

1 Softwareentwicklung mit.NET Teil 7.NET Security Dr. Ralph Zeller

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)

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

4  OS Security basiert auf Benutzerrechten  CLR Security erteilt Code Ausführungsrechte vertrauenswürdiger Code Trusted user Trusted code Untrusted user Untrusted code Trusted user Untrusted code Untrusted user Trusted code !!

5 partiell trusted Code Beispiel 1: File lesen

6 Evidence Ursprungsnachweis  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

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)

8 Per. schützen Ressourcen  FileIO  FileDialog  IsolatedStorage  Environment  Registry  UI  Printing  Reflection  Security  Socket  Web  DNS  OleDb  SQLClient  MessageQueue  EventLog  DirectoryServices  … erweiterbar

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 } using System.Security.Permissions; [FileIOPermissionAttribute(SecurityAction.Demand)] public static string ReadData() { // lese File ein }

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(); using System.Security.Permissions; String fullPath = Directory.GetFullPathInternal(fileName); FileIOPermission p = new FileIOPermission( FileIOPermissionAccess.Read, fullPath); p.Demand();

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

12 Stack walking Methode M3 Methode M2 Methode M1 Methode M4 Call Stack wächst nach unten B2 B1 B3 B4 Jede Methode hat be- stimmte Berechtigungen Methode M4 fordert Permission P P P wird mit den Berechtigungen aller Aufrufer am Stack über M4 verglichen P P P

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

14 Security check Beispiel 2: Stackwalk

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

16 Policy Levels  Policies sind auf verschiedenen Ebenen administrierbar enterprise user machine appdomain resultierendes Permission Set

17 Code Gruppen  Jeder Policy Level ist ein Baum von Code Gruppen  Code Gruppen bestehen aus einer Bedingung und einem Permission Set Bedingung? P Code Gruppe  Erfüllt ein Assembly die Bedingung, wird die Permission erteilt

18 Machine Level Policy intranet? Restricted? Execute Local? Full All  Microsoft? Full Internet? Internet Network Network enthält Permissions um auf Datenquellen im Netz zuzugreifen intranet

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  Beispiel caspol –listgroups Caspol –resolvegroup assembly.dll Caspol –resolveperm assembly.dll caspol –machine –addfulltrust assembly.dll caspol –machine –ag 1.1 –zone Internet execution caspol –listgroups Caspol –resolvegroup assembly.dll Caspol –resolveperm assembly.dll caspol –machine –addfulltrust assembly.dll caspol –machine –ag 1.1 –zone Internet execution

20 Caspol.exe Beispiel 3: caspol Stackwalk

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

22 Fragen? Uff...