Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Bezpieczeństwo aplikacji w systemie Tizen
Tomasz Świerczek Samsung R&D Institute Poland
2
Tizen – czym jest?
3
Tizen – nad czym pracujemy?
...wiele innych projektów systemd KDBus libima libsmack conman ... Webkit W3C ... Bootloadery uboot Rozwijamy jądro Linuksa Smack IMA/EVM Linux Containers Sterowniki
4
Bezpieczeństwo aplikacji w systemie Tizen
3 przykłady problemów w projektowaniu systemu 3 rozwiązania Open Source
5
Bezpieczeństwo aplikacji
Aplikacja #1 Dane RW
6
Bezpieczeństwo aplikacji
/dev/camera RW Aplikacja #1 Dane RW
7
Bezpieczeństwo aplikacji
/dev/camera RW Aplikacja #1 Dane RW RW Aplikacja #2
8
Bezpieczeństwo aplikacji
/dev/camera RW Aplikacja #1 Dane RW RW RW Aplikacja #2
9
Bezpieczeństwo aplikacji
/dev/camera RW Aplikacja #1 Dane RW RW RW Aplikacja #2
10
Problemy do rozwiązania
(1) Ochrona zasobów systemowych przed aplikacjami (2) Ochrona aplikacji i ich zasobów przed innymi aplikacjami (3) Ochrona aplikacji przed nimi samymi
11
Rozwiązanie (1) – aplikacje i zasoby systemowe
(Niektore) aplikacje (czasami) mogą mieć dostęp do (pewnych) zasobów ? Aplikacja #1 /dev/camera RW
12
Rozwiązanie (1) – aplikacje i zasoby systemowe
(Niektore) aplikacje (czasami) mogą mieć dostęp do (pewnych) zasobów Uprzywilejowany serwis zarządza dostępem do zasobu ? Aplikacja #1 Serwis (demon) /dev/camera RW RW
13
Rozwiązanie (1) – aplikacje i zasoby systemowe
(Niektore) aplikacje (czasami) mogą mieć dostęp do (pewnych) zasobów Uprzywilejowany serwis zarządza dostępem do zasobu Osobny uprzywilejowany proces zna uprawnienia aplikacji ? Aplikacja #1 Serwis (demon) /dev/camera RW RW ? Serwis uprawnień aplikacji
14
Rozwiązanie (1) – aplikacje i zasoby systemowe
Serwis obsługuje zasób systemowy musi umieć zidentyfikować klienta (np getsockopt(...,SO_PEERSEC,...) Serwis uprawnień aplikacji zna wszystkie aplikacje i ich uprawnienia potrafi odpowiedzieć na pytanie „czy A ma dostęp do B”?
15
Rozwiązanie (1) – aplikacje i zasoby systemowe
Serwis obsługuje zasób systemowy musi umieć zidentyfikować klienta (np getsockopt(...,SO_PEERSEC,...) Serwis uprawnień aplikacji zna wszystkie aplikacje i ich uprawnienia potrafi odpowiedzieć na pytanie „czy A ma dostęp do B”? PolKit gotowe rozwiązanie użyty np. w Ubuntu
16
Rozwiązanie (1) – aplikacje i zasoby systemowe
Serwis obsługuje zasób systemowy musi umieć zidentyfikować klienta (np getsockopt(...,SO_PEERSEC,...) Serwis uprawnień aplikacji zna wszystkie aplikacje i ich uprawnienia potrafi odpowiedzieć na pytanie „czy A ma dostęp do B”? PolKit gotowe rozwiązanie użyty np. w Ubuntu IPC : DBUS skomplikowana polityka, reguły w JS ***WOLNY***
17
Rozwiązanie (1) – aplikacje i zasoby systemowe
Autorskie rozwiążanie – projekt Cynara po angielsku Artichoke po polsku Karczoch Serwis uprawnień aplikacji oparty o prostą bazę danych polityki sqlite3 IPC: Unix Domain Socket wkrótce na github’ie... Amaizing things will happen here soon. You just wait. Dr. Bertruger, Doom 3
18
Rozwiązanie (2) – aplikacje i ich dane
Dane, process i przestrzeń adresowa aplikacji są przeznaczone tylko dla niej Aplikacja #1 Dane RW Dane Aplikacja #2 RW
19
Rozwiązanie (2) – aplikacje i ich dane
Android – UID per aplikacja multiuser?
20
Rozwiązanie (2) – aplikacje i ich dane
Android – UID per aplikacja multiuser? Tizen – Smack Simplified Mandatory Access Control in Kernel rodzaj LSM etykiety per proces, plik, socket, ... każdy dostęp musi być zezwolony wprost poza standardowymi etykietami na dysku: xattr autor: Casey Schaufler (
21
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? Access Exec Jabłko Truskawka
22
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? exec() Truskawka Access Exec Jabłko Truskawka
23
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? exec() Truskawka Access Exec Access Jabłko Truskawka Kiwi
24
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? exec() Truskawka open(..., O_RDWR) Access Exec Access Jabłko Truskawka Kiwi
25
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? exec() Truskawka open(..., O_RDWR) Access Exec Truskawka Kiwi RW Podgląd reguł: cat /smack/load2 Access Jabłko Truskawka Kiwi
26
Rozwiązanie (2) – aplikacje i ich dane
Smack – jak działa? exec() Truskawka open(..., O_CREAT) Access Exec Access Jabłko Truskawka Truskawka
27
Rozwiązanie (2) – aplikacje i ich dane
Tizen – Smack separacja zasobów i aplikacji etykietami A A A Usługi System
28
Rozwiązanie (3) – ochrona integralności plików
Czy uruchomiona aplikacja na pewno jest tą za którą się podaje? Czy otwierany plik nie został podmieniony? Aplikacja #1
29
Rozwiązanie (3) – ochrona integralności plików
Z pomocą przychodzi Linux – IMA/EVM Integrity Measurement Architecture Extended Verification Module System podpisów i hashy plików przechowywanie: xattr Autor: Dimitry Kasatkin ( Aplikacja #1
30
Rozwiązanie (3) – aplikacje i ich dane
IMA/EVM – jak działa? exec() open()
31
Rozwiązanie (3) – aplikacje i ich dane
IMA/EVM – jak działa? exec() open() Policz hash z zawartości Odczytaj podpis z xattr Zweryfikuj podpis cyfrowy zawartości pliku ŹLE OK
32
Rozwiązanie (3) – aplikacje i ich dane
IMA/EVM – jak działa? exec() open() Policz hash z zawartości Odczytaj podpis z xattr Zweryfikuj podpis cyfrowy zawartości pliku Klucz publiczny do weryfikacji Klucz prywatny poza urządzeniem ŹLE OK
33
Podsumowanie rozwiązań
(1) Ochrona zasobów systemowych przed aplikacjami Wprowadzenie serwisów + Cynara/PolKit (2) Ochrona aplikacji i ich zasobów przed innymi aplikacjami Smack (3) Ochrona aplikacji przed nimi samymi IMA/EVM
34
Pytania
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.