Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdVictor Smets Laatst gewijzigd meer dan 10 jaar geleden
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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.