Bezpieczeństwo aplikacji w systemie Tizen

34
SRPOL Security © 2014 SAMSUNG Electronics Co. Bezpieczeństwo aplikacji w systemie Tizen Tomasz Świerczek Samsung R&D Institute Poland

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

Page 1: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.

Bezpieczeństwo aplikacji w systemie Tizen

Tomasz ŚwierczekSamsung R&D Institute Poland

Page 2: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.2/

Tizen – czym jest?

Page 3: Bezpieczeństwo aplikacji  w systemie Tizen

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

• ...

Page 4: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 5: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.5/

Bezpieczeństwo aplikacji

Aplikacja #1 Dane RW

Page 6: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.6/

Bezpieczeństwo aplikacji

/dev/camera

RW

Aplikacja #1 Dane RW

Page 7: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.7/

Bezpieczeństwo aplikacji

RW

Aplikacja #2

RW

Aplikacja #1 Dane RW

/dev/camera

Page 8: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.8/

Bezpieczeństwo aplikacji

RW

Aplikacja #2

RW

Aplikacja #1 Dane RW

RW

/dev/camera

Page 9: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.9/

Bezpieczeństwo aplikacji

RW

Aplikacja #2

RW

Aplikacja #1 Dane RW

RW

/dev/camera

Page 10: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 11: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 12: Bezpieczeństwo aplikacji  w systemie Tizen

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

)

Page 13: Bezpieczeństwo aplikacji  w systemie Tizen

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

?

Page 14: Bezpieczeństwo aplikacji  w systemie Tizen

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”?

Page 15: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 16: Bezpieczeństwo aplikacji  w systemie Tizen

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***

Page 17: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 18: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 19: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.19/

Rozwiązanie (2) – aplikacje i ich dane

• Android – UID per aplikacja• multiuser?

Page 20: Bezpieczeństwo aplikacji  w systemie Tizen

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)

Page 21: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.21/

Rozwiązanie (2) – aplikacje i ich dane

• Smack – jak działa?Ac

cess Exec

Jabłko Truskawka

Page 22: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 23: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 24: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 25: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 26: Bezpieczeństwo aplikacji  w systemie Tizen

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)

Page 27: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 28: Bezpieczeństwo aplikacji  w systemie Tizen

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?

Page 29: Bezpieczeństwo aplikacji  w systemie Tizen

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)

Page 30: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.30/

Rozwiązanie (3) – aplikacje i ich dane

• IMA/EVM – jak działa?

exec()open()

Page 31: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 32: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 33: Bezpieczeństwo aplikacji  w systemie Tizen

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

Page 34: Bezpieczeństwo aplikacji  w systemie Tizen

SRPOL Security © 2014 SAMSUNG Electronics Co.34/

Pytania