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

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

BESTURINGS SYSTEMEN Vincent Naessens.
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
Corba Overzicht. Corba referenties Belangrijkste: CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments (Steve Vinoski)
Java in Space Joffrey Lambregs. Agenda Introductie Waarom van C naar Java Tekortkomingen van Java Oplossingen JSR302 DAL-Levels Data diodes Werken in.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Greenfoot Workshop Bobby - Snake.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
Phoenix Contact ILC150ETH F. Rubben, Ing.. Phoenix Contact ILC150ETH F. Rubben, Ing.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
De koektrommel of de grabbelton
1 Orientatie InformatieSystemen K.M.van Hee hgl. architectuur van informatiesystemen dir. Deloitte & Touche Bakkenist TU/e 2001.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Verdieping Programmeren in Java - deel 1 college 6 mei 2001.
Inleidend probleem Data structuur (hiërarchie van classes)
Visual Basic .NET voor studenten
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
1 Inleiding Programmeren in Java Ma 29 januari 2001.
Spatial subgroup mining
Project: Gedistribueerde Systemen Bart Stukken Bjorn Schobben Wietse Jorissen.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Algoritmiek Object-georiënteerd Programmeren
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
HK39/40: Internet Infrastructuur Docent: André Mariën (Ubizen) Assistent: Lieven Desmet.
Onderwijsstandaarden
Presenteert:.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Game Design Document Florian & Maurice Flints Project.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Visual Basic 2010 – What’s new André Obelink
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling.
.NET-productiviteit verhogen met een gepast gebruikt van lambda's en F# TETRA project proposal 2015.
Inleiding tot programmeren
Database beveiliging in Access 97. Database beveiliging Overzicht van Access beveiliging Het 10 stappen programma Onderhoud van beveiligde database Anders.
Visual Basic.NETPag.1 Hoofdstuk 8 – Fout afhandeling Inleiding Structured Exception Handling Hoe fouten opvangen Geen foutafhandeling Alle fouten opvangen.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Datacommunicatie en netwerken
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Programmeercursus O.O.P. met VISUAL BASIC.NET
Fase 3: Technisch Ontwerp
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Datum Task Force Architectuur development in 2008.
Automatische builds vanuit ClearCase UCM 1 Visual & Integrated Build Engine Automatische builds vanuit ClearCase en UCM Download ClearVibe Light Download.
Variabelen. Wat zijn variabelen? Klassiek: een variabele houdt informatie bij. Klassiek: een variabele houdt informatie bij. bvb: int getal; getal = 5;
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
J.J. Keijser Nikhef Amsterdam Grid Group Nikhef Jan Just Keijser 4 December 2013.
PPGM Voor databeheerders Johan Van Rensbergen 09/08/2016.
‘Business at the speed of change’
Object georiënteerd programmeren
De programmeertaal C++
Gameprogrammeren: Animatie
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
The Hybrid Workspace Gino van Essen Technical Consultant.
COINS Navigator 2.
COINS Navigator 2.
Software Development fundamentals
Het proces agile gemaakt
Java Masterclass Sar Maroof.
Software Development fundamentals
Transcript van de presentatie:

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

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

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?!

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?

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

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

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

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...

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)

2. Spec# Programmeer Systeem (3)

2. Spec# Programmeer Systeem (4)

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

2. Spec# Programmeer Systeem (6) Voorbeeld

2. Spec# Programmeer Systeem (7)

2. Spec# Programmeer Systeem (8) Meer info:

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

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

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

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

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);

Vragen? Meer info: