Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

Drupal[.org] Open Source CMS 6/
Agenda • Hvorfor? • Case • Google App Engine • Alternativer til GAE • Hvad er GAE velegnet til?
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
App Inventor. Hvad er App Inventor? Et web-baseret app udviklings ”tool” hvor programmør novicer kan udvikle Android apps. Det bruges stort set ligesom.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
C#: Data Typer. Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies, written in different languages, to.
07 – Kort om OO Introduktion.
Efteruddannelse Embedded C Modul 4 (Torsdag den 14/1-2010)
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
Using Transactional NTFS (TxF) in.NET Mark S. Rasmussen iPaper ApS improve.dk.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
B.V. Electronic Østerbro Skive GuideOnLine.
Web Services Protokoller og Arkitektur
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Cell ● Cell er implementeret vha. intermediate state transfer ● State der skal overføres – Værdi referencen – Delta af versionerne af de værdi-orienterede.
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
Arkitektur Embedded SQL Tema Persistens
SQL sortering og gruppering. RHS – IT A 2 SQL - sortering Hvis en forespørgsel returnerer mange rækker, kan det være bekvemt at sortere resultatet SQL.
Effective Java items Orange gruppe Thuy, Janne, Mads T.P., Oliver og Sebastian.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
SPSS II: lineære modeller
Medialogy Learning Spaces in Copenhagen What do we want ? What can we do ? Possibilities and concerns.
DotNET Remoting Præsentation. Beskrivelse af arkitekturen i et dot NET program. Hvad er en Proxy. Klient, server og host begreberne. Marshaling. Eventuelt.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 ServerServer.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Tråde og synkronisering. Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje.
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion Bjørk Boye Busch Otto Knudsen
Distribution af funktionalitet Webservice med WCF x.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Distribution af funktionalitet Webservice med WCF x.
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Object-Orienteret Programmering og Design Kilde: Joe Hummel.
Web Analytics Wednesday Attribution Modeling i Google Analytics Dato:
Portalintegrationsprojektet Nyt fra brugerstyring ERFA møde 6. februar 2008 Thomas Gundel.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: Carsten Juel Andersen.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
CLR (.NET) og JVM 1.NET vs. Java.NET har fokus på sprog-uafhængighed … Java har fokus på platforms-uafhængighed … Windows OS.NET CLR IL kode (.exe,.dll)
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Rohde & Schwarz - WPF Det bedste siden skiveskåret brød? v/Magnus Toftdal Lund.
Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS
1..NET Arkitektur. Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines.
Eksempel på realisering af domænemodel
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
OIM Fælles Udviklingstargets | Side 1 Fælles udviklingstargets Analyseopgave Resultatet bliver en tilføjelse/rettelse i OIM-bilag A.2 Udføres med fokus.
1 Web-apps vs native apps Cross-platform værktøjer (tools) Steen Jensen, efterår 2013.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Indledende Programmering Uge 6 - Efterår 2006
Software Testing Software testing.
Opsætning.
Præsentationens transcript:

Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2

whois • Technical iPaper ApS • Backend udvikling • MSSQL Database administration • Bløde opgaver (sysadm) • AS3 / Flex efter behov • Tidligere MSP • MDIP

agenda • Native code tilgang • Custom permissions • Custom evidence & membership condition • Sandboxing • Transparent security • CoreCLR security model • Silverlight

spørgsmål

native code tilgang • Manglende granularitet • Gateway classes – Begrænser mængden af unmanaged kode der kan kaldes – Løser ikke umiddelbart granuleritets problemet • Implicit LinkDemand for FullTrust – APTCA • Eksempel på gateway behov

custom permissions • Design af permission klassen – Overlap af permissions – Granularitet – Minimer dependencies – bør være eget assembly – Bør seales (eller InheritanceDemand) • Ipermission – Copy, Demand (CodeAccessSecurityPermission), FromXml, Intersect, IsSubsetOf, ToXml, Union • IUnrestrictedPermission – Valgfri, bør benyttes til alle CAS permissions • Eksempel på permission implementation

custom permissions • Deklarativ sikkerhed via en Attribute klasse – Nedarves fra CodeAccessSecurityAttribute – Krævet for LinkDemand & InheritanceDemand – TypeLoadException hvis deklareret I samme assembly som det bruges I • Eksempel på permission attribut implementation

custom permissions • Opdatering af security policy – Everything er ikke alting! – Fortæl policy om din permission • Tilføj til GAC – fulltrust foræres • Lav en permission XML til import brug • Opret permission set & import permission XML • Eksempel på tildeling af custom permission

custom evidence • Evidence klasse (GAC) • Serializer evidence i binært format • Test app fra LocalIntranet • Custom membership condition • Opret IMembershipCondition xml snippet • Opsæt membership condition i caspol • Kør app

sandboxing • Isolering af 3. parts kode • Runtime policy oprettelse & permission tildeling • Hvordan? – Oprettelse af selvstændigt AppDomain – Opret custom app domain level policy – Opsætning af codegroup m/ membership conditions – Tildeling af permission set – Opsætning af policy hierarki – Afvikling af sandboxed assemblies / typer • Eksempel

sandboxing • Gotcha’s – Hvis type ikke er MarshalByRefObject så kopieres den til det oprindelige AppDomain – Hvis non-MarshalByRefObject typer skal bruges (eller f.eks. Ved loading af andre assemblies) kan det løses via en intermediary loader klasse – Send ikke referencer til andre typer/instancer i sandkassen tilbage til det oprindelige domæne • System.Addin indeholder sandboxing funktionalitet

transparent security • Simplificerer sikkerhedsmodellen, begrænser muligheden for fejl & behovet for reviews • Kan ikke ændre CAS stack walks – dvs. Ingen Assert • Kan ikke opfylde LinkDemands, blot Demands • Kan ikke afvikle unverifiable kode, uanset SkipVerification • Kan ikke kalde unmanaged kode via P/I eller COM Interop • Kan ikke tilgå kritisk kode som ikke specifikt tillader det • Vil have MIN(TranspSecAssemblyPermSet, CallerPermSet) permissions – I praksis callees security kontekst

transparent security • Ikke mere transparent end at vi kan få stack walks til at fejle • Kører med callees permissions Evil.dllFullTrust Framework.dllFullTrust Transparent.dllLocalIntranet (Transparent) Host.exeFullTrust Evil.dllFullTrust Framework.dllFullTrust Transparent.dllFullTrust (Transparent) Host.exeLocalIntranet

transparent security • Hvordan laver vi transparent kode? – Kritisk som standard – [SecurityTransparent] – [SecurityCritical] • Transparent som standard! – [SecuritySafeCritical]

coreclr security model • Al kode kørende under CoreCLR er 100% transparent – Påhæftning af SecurityTransparent, SafeCritical & Critical ignoreres • Transparent vs. Critical code • Transparent kode kan ikke kalde critical kode • Gateway klasser som er safe critical • Kun platform assemblies kan være (safe)critical – Hvad er platform kode?

silverlight • CAS eksisterer ikke! – Kan ikke opfylde en LinkDemand – Kan ikke udføre en CAS assert • Injection af UnmanagedCodePermission demand – Umuliggør unverifiable kode – Umuligør P/I & COM interop • Kan ikke tilgå kritisk kode – Kan ikke tilgå standard CLR klasser – SecuritySafeCritical gateway klasser som del af CoreCLR platformen