Bezpieczeństwo aplikacji w systemie Tizen

Post on 22-Feb-2016

90 views 0 download

description

Bezpieczeństwo aplikacji w systemie Tizen. Tomasz Świerczek Samsung R&D Institute Poland. Tizen – czym jest?. Tizen – nad czym pracujemy?. ...wiele innych projektów systemd KDBus libima libsmack conman . Webkit W3C ... Bootloadery uboot ... Rozwijamy jądro Linuksa - PowerPoint PPT Presentation

Transcript of Bezpieczeństwo aplikacji w systemie Tizen

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