De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens.

Verwante presentaties


Presentatie over: "Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens."— Transcript van de presentatie:

1 Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens

2 Overzicht 1. Stack Inspection 2. Spec# Programmeer Systeem 3. Contracten voor Stack Inspection

3 1. Stack Inspection Wat? mechanisme voor veilig uitvoeren van onvertrouwde code mechanisme om principe van least-privilege af te dwingen in CBD Waar? Java, C# (≈ Code Access Security),... Waarom? rechten programma = rechten user?!

4 1. Stack Inspection (2) Hoe? At load time krijgt iedere component een set van statische permissies Tijdens de uitvoering heeft iedere thread een set van dynamische permissies Net voor iedere gevoelige operatie: Zijn de juiste permissies aanwezig in de dynamische permissie set?

5 1. Stack Inspection (3) {FileIO}  Een voorbeeldje... {FileIO} File.Open(...); class File{ Static Stream Open(...){... } SecurityException

6 1. Stack Inspection (4) Andere features: Beïnvloeden van dynamische permissieset Assert, Deny,... Creatie van nieuwe threads...

7 Overzicht 1. Stack Inspection 2. Spec# Programmeer Systeem 3. Contracten voor Stack Inspection

8 2. Spec# Programmeer Systeem Doel? detectie van bugs Hoe? developer expliciteert assumpties run-time en compile-time checking Voorbeelden? Non-null types Methode contracten Object invarianten Checked exceptions...

9 2. Spec# Programmeer Systeem (2) Non-null types T o; = o is null of T-object NullPointerExceptions = fouten! T! o; = o is een T-object (  null)

10 2. Spec# Programmeer Systeem (3)

11 2. Spec# Programmeer Systeem (4)

12 2. Spec# Programmeer Systeem (5) Methode Contracten: = contract tussen developer en callers precondities eis tov caller, garantie voor developer postcondities eis tov developer, garantie voor caller

13 2. Spec# Programmeer Systeem (6) Voorbeeld

14 2. Spec# Programmeer Systeem (7)

15 2. Spec# Programmeer Systeem (8) Meer info: http://research.microsoft.com/specsharp/

16 Overzicht 1. Stack Inspection 2. Spec# Programmeer Systeem 3. Contracten voor Stack Inspection

17 3. Contracten voor Stack Inspection Bijdrage? specificatie formalisme voor Stack Inspection dat statisch verifieerbaar is Waarom? snel ontdekken van fouten documentatie verhoging van performantie

18 3. Contracten voor Stack Inspection (2) 2 soorten contracten: Component-level contracten developer deployer minimal, optional Methode-level contracten developer clients vereiste run-time permissies

19 Component Method-level Contract 3. Contracten voor Stack Inspection (3) Statische Verificatie Component-level Contract Method-level Contract Method-level Contract Method-level Contract Programma Transformatie Programma Verificatie Fouten? Method-level Contract of Referenced Assembly

20 3. Contracten voor Stack Inspection (4) Voorbeeld: Assembly.Load(Uri uri) msdn: in onze aanpak: requires uri.Scheme==“http” ==> new WebPermission().IsSubsetOf(s); requires uri.Scheme==“file” ==> new FileIOPermission(uri).IsSubsetOf(s);

21 Vragen? Meer info: http://www.cs.kuleuven.ac.be/~jans/casverify


Download ppt "Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens."

Verwante presentaties


Ads door Google