1 / 34

Bezpieczeństwo aplikacji w systemie Tizen

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

cybele
Download Presentation

Bezpieczeństwo aplikacji w systemie Tizen

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Dane Aplikacja #1 RW

  6. Bezpieczeństwo aplikacji /dev/camera RW Dane Aplikacja #1 RW

  7. Bezpieczeństwo aplikacji /dev/camera RW Dane Aplikacja #1 RW RW Aplikacja #2

  8. Bezpieczeństwo aplikacji /dev/camera RW Dane Aplikacja #1 RW RW RW Aplikacja #2

  9. Bezpieczeństwo aplikacji /dev/camera RW Dane Aplikacja #1 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 • ? /dev/camera Aplikacja #1 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 • ? /dev/camera Serwis (demon) Aplikacja #1 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 • ? /dev/camera Serwis (demon) Aplikacja #1 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 • https://wiki.tizen.org/wiki/Security:Cynara • wkrótce na github’ie... • Amaizing things will happen heresoon. Youjustwait. • Dr. Bertruger, Doom 3

  18. Rozwiązanie (2) – aplikacje i ich dane • Dane, process i przestrzeń adresowa aplikacji są przeznaczone tylko dla niej Dane Aplikacja #1 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 (http://schaufler-ca.com)

  21. Rozwiązanie (2) – aplikacje i ich dane • Smack – jak działa? Exec Access • Jabłko • Truskawka

  22. Rozwiązanie (2) – aplikacje i ich dane • Smack – jak działa? • Truskawka exec() Exec Access • Jabłko • Truskawka

  23. Rozwiązanie (2) – aplikacje i ich dane • Smack – jak działa? • Truskawka exec() Exec Access Access • Jabłko • Truskawka • Kiwi

  24. Rozwiązanie (2) – aplikacje i ich dane • Smack – jak działa? • Truskawka exec() open(..., O_RDWR) Exec Access Access • Jabłko • Truskawka • Kiwi

  25. Rozwiązanie (2) – aplikacje i ich dane • Smack – jak działa? • Truskawka exec() open(..., O_RDWR) Exec Access 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? • Truskawka exec() open(..., O_CREAT) Exec Access Access • Jabłko • Truskawka • Truskawka

  27. Rozwiązanie (2) – aplikacje i ich dane • Tizen – Smack • separacja zasobów i aplikacji etykietami • https://wiki.tizen.org/wiki/Security:SmackThreeDomainModel 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 • IntegrityMeasurementArchitecture • Extended VerificationModule • System podpisów i hashyplików • przechowywanie: xattr • Autor: DimitryKasatkin (http://linux-ima.sourceforge.net) 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 OK ŹLE

  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 OK ŹLE

  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

More Related