Fileguards czyli implementacja operacji na plikach przez u ytkownika
Download
1 / 16

FileGuards czyli implementacja operacji na plikach przez u?ytkownika - PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on

FileGuards czyli implementacja operacji na plikach przez użytkownika. Rafal@Wijata.com. Strażnik - wprowadzenie. Tradycyjne systemy plików – obsługa w jądrze OS Nikłe (jeśli w ogóle) możliwości rozszerzenia funkcjonalności i zachowań plików.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'FileGuards czyli implementacja operacji na plikach przez u?ytkownika' - base


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Fileguards czyli implementacja operacji na plikach przez u ytkownika

FileGuardsczyli implementacja operacji na plikach przez użytkownika

Rafal@Wijata.com


Stra nik wprowadzenie
Strażnik - wprowadzenie

  • Tradycyjne systemy plików – obsługa w jądrze OS

    • Nikłe (jeśli w ogóle) możliwości rozszerzenia funkcjonalności i zachowań plików.

  • Strażnik – wyprowadzenie obsługi plików poza jądro OS

    • Nieuprzywilejowane programy mogą obsługiwać pliki (lub katalogi)

    • Więcej kosztują tylko podmienione funkcje na metryczkach (przełączenia kontekstu, kopiowanie, szeregowanie, opóźnienia w czytaniu z dysku, itp).

    • Rozwiązanie transparentne dla programów!


Stra nik jak
Strażnik – jak ?

  • Dodatkowa funkcja systemowa fglink.

  • Funkcje rejestracji strażników [un]register_fgfunc

    • Parametry = nazwa + file_operations

  • W strukturze file dodatkowa file_operations

    • Funkcja open() podmienia f_ops jeśli plik pilnowany.

    • Tak uzyskujemy transparencję dla klientów

  • User process

    sys_open

    Request Open()

    If (guarded & module_registered) {

    remember orig f_ops;

    f_ops = our_f_ops;

    };

    Requests Read(), Write(), etc.

    Calls our wrappers !


    Stra nik w a ciwo ci
    Strażnik – właściwości

    • Minimalna modyfikacja jądra

      • Tylko 16 nowych/zmodyfikowanych linii kodu !

        • Na razie całość ma 2000 linii.

    • Włączanie w konfiguracji jądra.

    • Automatyczne ładowanie modułów

    • Flaga fg_allow (/proc/fs)


    Stra nik akcje
    Strażnik – akcje

    • Co może podmieniona funkcja ?

      • Wykonać operację i zwrócić wynik.

      • Zwrócić błąd.

      • Wykonać jakąś czynność, wywołać oryginalną funkcję z jądra, zmodyfikować wynik.

      • Poprosić jądro o wykonanie funkcji jak zwykle.

      • [ Jeśli brak funkcji , jądro wykonuje standardowy kod ]


    Stra nik modu u ytkownika
    Strażnik – moduł użytkownika

    • Osobne struktury (działa jako moduł)

    • Sam rejestruje procedury obsługi w jądrze w imieniu procesów użytkownika

    • Zajmuje się wymianą danych między jądrem i procesami


    Stra nik komunikacja z procesami
    Strażnik – komunikacja z procesami

    • Komunikacja za pomocą urządzeń /dev/fguX

    • Restrykcyjny protokół = bezpieczeństwo ?

    • Komunikacja: żądanie – odpowiedź.

      • Jądro nie przyjmuje żądań – tylko odpowiedzi.

    • Ścisłe komunikaty

      • { magic, cmd, nr, sid, pid, datalen, data }

      • Dane również maja strukturę zależną od funkcji.

    • Kolejki komunikatów: do wysłania i do odebrania


    Stra nik proces
    Strażnik – proces

    Odczytaj MINOR z /dev/fgu0

    Zarejestruj nazwę i obsługiwane funkcje poprzez /dev/fguMINOR

    Zamknij /dev/fgu0

    While (true) {

    odczytaj komunikat

    sprawdź typ komunikatu, wykonaj odpowiednie akcje

    wygeneruj komunikat odpowiedzi i wyślij do jądra

    }

    • Cała komunikacja odbywa się przez urządzenie /dev/fguMINOR,

      Jądro nie zaakceptuje danych od innego procesu niż ten, który otworzył urządzenie.


    Stra nik modu
    Strażnik – moduł

    Strażnik

    systemowa tablica otwartych plików

    Proces

    /dev/fguX

    STRZEŻONY PLIK

    systemowa tablica sesji

    Struktura FGU_DATA

    Wygeneruj żądanie

    Komunikaty


    Stra nik modu1
    Strażnik – moduł

    Strażnik

    systemowa tablica otwartych plików

    Proces

    /dev/fguX

    STRZEŻONY PLIK

    systemowa tablica sesji

    Struktura FGU_DATA

    Odczytaj odpowiedź

    Komunikaty


    Stra nik czego brak
    Strażnik – czego brak ?

    • Podmiany inode_operations, a przynajmniej permission()

    • W module użytkownika nie ma jak zaimplementować niektórych funkcji (mmap).

    • readv/writev – ale to nie jest brak !


    Stra nik wydajno
    Strażnik – Wydajność

    CPU = 572 743 000 Hz

    Przykładowo: 170 = 0.29 microsek, 426 = 0.74 microsek


    Stra nik wydajno1
    Strażnik – Wydajność

    170 = 0.29 microsek, 19305 = 33 microsek




    Stra nik dalsze plany
    Strażnik – Dalsze plany

    • Rozwijanie projektu

      • Utrzymywanie patchy

      • Może nawiązanie kontaktu z ludźmi od MonaFS

      • http://www.wijata.com/fileguard

    • Obrona pracy