Zastosowanie bisymulacji do. Non-Interference XVI FIT, Karpacz 2002



Podobne dokumenty
CsPL, system do weryfikacji bezpieczeństwa programów p.1/20

Języki, automaty i obliczenia

Definicje. Algorytm to:

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka.

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Obliczenia inspirowane Naturą

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Język ludzki kod maszynowy

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Podstawy i języki programowania

Języki formalne i automaty Ćwiczenia 9

Sztuczna inteligencja : Zbiory rozmyte cz. III

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Teoria układów logicznych

Analiza matematyczna i algebra liniowa Macierze

Poprawność semantyczna

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zestaw zadań konkursowych XVII Regionalnego Konkursu Informatycznego

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Maszyna Turinga języki

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

napisać konstrukcję instrukcji decyzyjnej If wraz z jej rozwinięciem Else i ElseIf; podać definicję algorytmu z rozgałęzieniami;

Gramatyki atrybutywne

Algorytmy w teorii liczb

CO TO SĄ BAZY GRÖBNERA?

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Praktyczne metody weryfikacji

Algebra Boole a i jej zastosowania

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Analizator syntaktyczny

1 Automaty niedeterministyczne

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

0 + 0 = 0, = 1, = 1, = 0.

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Temat: Projektowanie sterownika rozmytego. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Podstawy Informatyki i algorytmizacji

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Elementy modelowania matematycznego

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

PROCES PROJEKTOWY METODYKA PROJEKTOWANIA

Szablony funkcji i szablony klas

Programowanie komputerów

Złożoność informacyjna Kołmogorowa. Paweł Parys

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Budowa systemów komputerowych

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Zmienne zależne i niezależne

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

5. Logarytmy: definicja oraz podstawowe własności algebraiczne.

POD- I NADOKREŚLONE UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Algorytmy dla maszyny PRAM

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

Automat skończony FSM Finite State Machine

Temat: Model SUGENO. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Budowa atomu. Układ okresowy pierwiastków chemicznych. Promieniotwórczość naturalna i promieniotwórczość sztuczna

Inżynieria Oprogramowania w Praktyce

Podstawy Informatyki. Algorytmy i ich poprawność

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

AUTOMATYKA INFORMATYKA

Podstawy Automatyki. wykład 1 ( ) mgr inż. Łukasz Dworzak. Politechnika Wrocławska. Instytut Technologii Maszyn i Automatyzacji (I-24)

Obliczenia inspirowane Naturą

Podstawy Informatyki i algorytmizacji

Imię, nazwisko, nr indeksu

Architektura komputerów Wykład 2

O ALGORYTMACH I MASZYNACH TURINGA

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

4 Klasyczny rachunek zdań

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Automat Moore a. Teoria układów logicznych

Algebra i jej zastosowania ćwiczenia

Bramki logiczne V MAX V MIN

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

Zaawansowane algorytmy i struktury danych

ALGORYTMY I PROGRAMY

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Hierarchia Chomsky ego Maszyna Turinga

Analiza konstrukcji zawierających wskaźniki. Piotr Błaszyński

Turing i jego maszyny

Wprowadzenie do złożoności obliczeniowej

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Składnia języka EPL. EUCIP Programming Language

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Transkrypt:

Zastosowanie bisymulacji do weryfikowania własności Non-Interference XVI FIT, Karpacz 2002 Wojciech Tomanik, Wiktor Zychla Uniwersytet Wrocławski Instytut Informatyki 14 grudnia 2002 Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.1/18

Bezpieczeństwo - dla nas Pojęcie poufności program czyta dane z dysku, następnie wysyła je w świat program próbuje czytać dane, których nie powinien czytać Pojęcie przepływu informacji stan systemu zmienia się w czasie działania programu Pojęcie interakcji wiele składników systemu działa jednocześnie, może więc wchodzić w przeróżne interakcje Pojęcie niedeterminizmu współczesne systemy działają niedeterministycznie - kolejność wykonywania akcji procesów równoległych jest nieokreślona Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.2/18

Non-Interference W najbardziej ogólnym sformułowaniu, Non-Interference oznacza brak przepływu informacji między równocześnie działającymi agentami W naturalny sposób można to pojęcie wykorzystać do sprawdzania czy system jest bezpieczny: system jest bezpieczny, gdy nie ma w nim niepożądanych przepływów informacji Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.3/18

Non-Interference, świat H-L Załóżmy, że wszystkie akcje klasyfikujemy jako jawne (bezpieczne, publiczne, L) lub tajne (niebezpieczne, prywatne, H). Dwa poziomy dostępu wystarcza do analizy bardziej złożonych scenariuszy. Klasyfikacja akcji jest punktem wyjścia do dalszej analizy systemu. Non-Interference nie narzuca tutaj jednak żadnych ograniczeń. Użytkownik L nie powinien w trakcie wykonywania swojego programu mieć możliwości bezpośrednio ani pośrednio wchodzić w posiadanie informacji nie przeznaczonych dla niego Podobnie użytkowników systemu dzielimy na użytkowników L i H. Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.4/18

Non-Interference, definicja System nazwiemy bezpiecznym w sensie Non-Interference, jeśli nie ma żadnej interferencji między akcjami jawnymi i tajnymi, to znaczy że obserwując wykonanie się swojego programu, użytkownik L nie potrafi wydedukować czy w systemie wykonują się jakiekolwiek akcje tajne Okazuje się, że w pewnych przypadkach jest to polisa zbyt silna. Mimo to, Non-Interference potrafi wykrywać wiele jawnych oraz niejawnych kanałów możliwego wycieku informacji. Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.5/18

System analizy NI Opis programu (algebry SPA lub VSPA) budowanie kontekstów algebraicznych Modele procesów (automaty skończone) testowanie równoważności modeli Odpowiedź Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.6/18

Rachunek SPA Rachunek SPA jest rozwinięciem rachunku CCS, zaproponowanego przez Milnera. Składnia rachunku: E :: 0 µ E E E E E E L E f Z Act H - akcje użytkownika uprzywilejowanego Act L - akcje użytkownika nieuprzywilejowanego wszystkie akcje: Act Act H Act L τ akcje wejściowe i akcje wyjściowe: a, a Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.7/18

Kontesty algebraiczne Różne własności NI testujemy w tzw. kontekstach agebraicznych. Załóżmy, że chcemy sprawdzić proces P. Umieszczamy P w różnych kontekstach, następnie generujemy odpowiednie LTS. Testujemy równoważność otrzymanych LTS. Dobierając różne konteksty dla procesu P badamy różne własności. Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.8/18

Równoważność automatów Testowanie równoważności automatów będących modelami różnych procesów jest podstawowym narzędziem NNI. Wiele jest definicji równoważności automatów. równoważność śladowa, T równoważność bisymulacyjna, B Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.9/18

Rodzaje nieinterferencji NNI SNNI BNNI BSNNI P P IAct H P IAct H P Act H Act H Act H T P Act H B P T P Act H B P Act H Act H Act H Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.10/18

Bisymulacja Dla danego automatu skończonego S Q Act T binarna relacja ρ Q Q jest bisymulacją gdy: q0, r 1 r 2 p 1 p2 ρ p 1 r a 1 p 2 r a 2 a r 2 r 1 Act p 2 r a 2 p 1 r a 1 r 1 r 1 r2 r2 ρ ρ Algorytm polega na skonstruowaniu klas B 1 które reprezentują równoważne stany w automacie S, rozpoczynając od najbardziej uniwersalnej relacji ρ U. Bn Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.11/18

Rozróżnienie T i Mamy dwa automaty dane przez konteksty algebraiczne NI. W jaki sposób system odróżnia T i B? W przypadku obu relacji buduje się tranzytywne domknięcie relacji τ W przypadku T automaty są determinizowane (klasyczny algorytm determinizacji automatu skończonego) Teraz oba automaty są przekazywane do jądra algorytmu, które testuje ich równoważność. Dzięki jednorodnemu podejściu łatwiej jest rozbudowywać system o dodatkowe wersje NI oraz inne rodzaje równoważności. B Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.12/18

NIC - Non-Interference Checker System stworzony od zera, potrafi wszystko o czym mówiliśmy Budowanie modeli w kontekstach algebraicznych - Java (Wojtek) Fazy wstępne + test Paige-Tarjan - C# (Wiktor) Złożoność: Budowanie modeli Operator powoduje wykładniczy wzrost ilości stanów (state explosion). Fazy wstępne + test bisymulacji Determinizacja automatu skończonego może powodować wykładniczy wzrost ilości stanów. W praktyce okazuje się, że często powstaje automat o porównywalnej ilości stanów. Sam algorytm PT ma złożoność O mlogn Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.13/18

$ % Przykład - dostępu Access1 Ob ject xy r xy! accessr l if x r x else val l y Ob ject 10 Ob ject l then val accessw l if x w x else z err x l l then y xy x w! write! l z Ob ject x z 00 Ob ject xz rw Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.14/18

$ dostępu, pułapka Access2 Ob ject xy r xy accessr if x r x else val! l accessw y Ob ject Ob ject l l then val err l x l y xy x 10 w! write! l z Ob ject w x x z z 00 Ob ject Użytkownik H może zapisać wartość do obiektu L, łamiąc reguły polisy bezpieczeństwa. xz rw Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.15/18

dostępu, analiza Wyniki analizy obu ów dostępu: Access1 jest NNI Access2 nie jest NNI Na przeciętnym PC (500Mhz) test w obu przypadkach trwa krócej niż 1 sekundę Za pomocą pozostałych wariantów NI można analizować o wiele bardziej subtelne sposoby przekazywania informacji między światami L i H (tzw. covert channels czyli kanały ukryte). Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.16/18

Perspektywy Kierunki możliwych badań: Inne warianty Non-Interference, relacje między nimi Inne rodzaje równoważności, relacje między nimi Modele symboliczne Lepsze algorytmy testowania bisymulacji Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.17/18

Koniec Dziękujemy za uwagę Zastosowanie bisymulacji do weryfikowania własności Non-Interference p.18/18