SRPOL Security © 2014 SAMSUNG Electronics Co.
Bezpieczeństwo aplikacji w systemie Tizen
Tomasz ŚwierczekSamsung R&D Institute Poland
SRPOL Security © 2014 SAMSUNG Electronics Co.2/
Tizen – czym jest?
SRPOL Security © 2014 SAMSUNG Electronics Co.3/
Tizen – nad czym pracujemy?
• Webkit• W3C• ...
• Bootloadery• uboot• ...
• Rozwijamy jądro Linuksa• Smack• IMA/EVM• Linux Containers• Sterowniki• ...
• ...wiele innych projektów• systemd• KDBus• libima• libsmack• conman
• ...
SRPOL Security © 2014 SAMSUNG Electronics Co.4/
Bezpieczeństwo aplikacji w systemie Tizen
• 3 przykłady problemów w projektowaniu systemu
• 3 rozwiązania Open Source
SRPOL Security © 2014 SAMSUNG Electronics Co.5/
Bezpieczeństwo aplikacji
Aplikacja #1 Dane RW
SRPOL Security © 2014 SAMSUNG Electronics Co.6/
Bezpieczeństwo aplikacji
/dev/camera
RW
Aplikacja #1 Dane RW
SRPOL Security © 2014 SAMSUNG Electronics Co.7/
Bezpieczeństwo aplikacji
RW
Aplikacja #2
RW
Aplikacja #1 Dane RW
/dev/camera
SRPOL Security © 2014 SAMSUNG Electronics Co.8/
Bezpieczeństwo aplikacji
RW
Aplikacja #2
RW
Aplikacja #1 Dane RW
RW
/dev/camera
SRPOL Security © 2014 SAMSUNG Electronics Co.9/
Bezpieczeństwo aplikacji
RW
Aplikacja #2
RW
Aplikacja #1 Dane RW
RW
/dev/camera
SRPOL Security © 2014 SAMSUNG Electronics Co.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
SRPOL Security © 2014 SAMSUNG Electronics Co.11/
Rozwiązanie (1) – aplikacje i zasoby systemowe
• (Niektore) aplikacje (czasami) mogą mieć dostęp do (pewnych) zasobów
Aplikacja #1 RW?
/dev/camera
SRPOL Security © 2014 SAMSUNG Electronics Co.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 RW?
/dev/camera
RWSerwis(demon
)
SRPOL Security © 2014 SAMSUNG Electronics Co.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 RW?
/dev/camera
RWSerwis(demon
)
Serwis uprawnieńaplikacji
?
SRPOL Security © 2014 SAMSUNG Electronics Co.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”?
SRPOL Security © 2014 SAMSUNG Electronics Co.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
SRPOL Security © 2014 SAMSUNG Electronics Co.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***
SRPOL Security © 2014 SAMSUNG Electronics Co.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• https://wiki.tizen.org/wiki/Security:Cynara• wkrótce na github’ie...
Amaizing things will happen here soon. You just wait.Dr. Bertruger, Doom 3
SRPOL Security © 2014 SAMSUNG Electronics Co.18/
Rozwiązanie (2) – aplikacje i ich dane
• Dane, process i przestrzeń adresowa aplikacji są przeznaczone tylko dla niej
Aplikacja #2
Aplikacja #1 Dane RW
Dane RW
SRPOL Security © 2014 SAMSUNG Electronics Co.19/
Rozwiązanie (2) – aplikacje i ich dane
• Android – UID per aplikacja• multiuser?
SRPOL Security © 2014 SAMSUNG Electronics Co.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 (http://schaufler-ca.com)
SRPOL Security © 2014 SAMSUNG Electronics Co.21/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?Ac
cess Exec
Jabłko Truskawka
SRPOL Security © 2014 SAMSUNG Electronics Co.22/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?Ac
cess Exec
exec()Truskawka
Jabłko Truskawka
SRPOL Security © 2014 SAMSUNG Electronics Co.23/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?
Acce
ssAcce
ss Exec
exec()Truskawka
Jabłko TruskawkaKiwi
SRPOL Security © 2014 SAMSUNG Electronics Co.24/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?
Acce
ssAcce
ss Exec
exec()Truskawka
Jabłko Truskawka
open(..., O_RDWR)
Kiwi
SRPOL Security © 2014 SAMSUNG Electronics Co.25/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?
Kiwi
Acce
ssAcce
ss Exec
exec()Truskawka
Jabłko Truskawka
open(..., O_RDWR)
Truskawka Kiwi RW
Podgląd reguł:cat /smack/load2
SRPOL Security © 2014 SAMSUNG Electronics Co.26/
Rozwiązanie (2) – aplikacje i ich dane
• Smack – jak działa?
Truskawka
Acce
ssAcce
ss Exec
exec()Truskawka
Jabłko Truskawka
open(..., O_CREAT)
SRPOL Security © 2014 SAMSUNG Electronics Co.27/
Rozwiązanie (2) – aplikacje i ich dane
• Tizen – Smack• separacja zasobów i aplikacji etykietami• https://wiki.tizen.org/wiki/Security:SmackThreeDomainModel
A
Usługi
System
A A
SRPOL Security © 2014 SAMSUNG Electronics Co.28/
Rozwiązanie (3) – ochrona integralności plików
Aplikacja #1
• Czy uruchomiona aplikacja na pewno jest tą za którą się podaje?• Czy otwierany plik nie został podmieniony?
SRPOL Security © 2014 SAMSUNG Electronics Co.29/
Rozwiązanie (3) – ochrona integralności plików
Aplikacja #1
• Z pomocą przychodzi Linux – IMA/EVM• Integrity Measurement Architecture• Extended Verification Module• System podpisów i hashy plików• przechowywanie: xattr• Autor: Dimitry Kasatkin (http://linux-ima.sourceforge.net)
SRPOL Security © 2014 SAMSUNG Electronics Co.30/
Rozwiązanie (3) – aplikacje i ich dane
• IMA/EVM – jak działa?
exec()open()
SRPOL Security © 2014 SAMSUNG Electronics Co.31/
Rozwiązanie (3) – aplikacje i ich dane
• IMA/EVM – jak działa?
exec()open()
1. Policz hash z zawartości
2. Odczytaj podpis z xattr
3. Zweryfikuj podpis cyfrowy zawartości pliku
ŹLE OK
SRPOL Security © 2014 SAMSUNG Electronics Co.32/
Rozwiązanie (3) – aplikacje i ich dane
• IMA/EVM – jak działa?
exec()open()
1. Policz hash z zawartości
2. Odczytaj podpis z xattr
3. Zweryfikuj podpis cyfrowy zawartości pliku
ŹLE OK
Klucz publiczny do weryfikacji
Klucz prywatny poza urządzeniem
SRPOL Security © 2014 SAMSUNG Electronics Co.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 samymiIMA/EVM
SRPOL Security © 2014 SAMSUNG Electronics Co.34/
Pytania