9:30
3/1/2012

Sandbox w OS X można obejść

Domyślne profile sandboksa od Apple można łatwo obejść.

Ominięcie Sandbox

Przypomnijmy, sandbox w Mac OS X umożliwia programistom na dokładne zdefiniowanie jakich zasobów i praw potrzebuje aplikacja. Niebawem Apple nie będzie przyjmował do Mac App Store aplikacji, które nie są sandboksowane.

Sandbox ma jednak błędy, które pozwalają na “wyskoczenie” z piaskownicy. Przykładowo, profil “no-network” (kSBXProfileNoNetwork) blokujący aplikacji możliwość dostępu do internetu można obejść przez wykorzystanie Open Scripting Architecture i komunikację z inną aplikacją, np. Terminalem, który wykona odpowiedni skrypt.

osascript -e 'tell application "Terminal" to do script'

Efekt: mimo, że uruchomiony przez “sandboksowaną” aplikację, Terminal nie dziedziczy restrykcji.

Podobny problem został zgłoszony Apple już w 2008 roku przez Charliego Millera.

Przeczytaj także:

6 komentarzy

Dodaj komentarz
  1. aplkacja, odpowidni, Efelt ?
    Sylwester dalej trzyma? :P

  2. Pytanie, czy Apple przyjmie do App Store aplikację, która z tego korzysta?

    Poza tym jeśli okaże się i zostanie im zgłoszone, że jakaś aplikacja faktycznie korzysta z tej dziury to dosyć szybko z App Store wyleci :). Co nie zmienia faktu, że do tego czasu część użytkowników może mieć przez nią problemy.

    Podejrzewam, że błąd nie jest trywialny do załatania, ciekawy jestem w jaki sposób rozwiążą dziedziczenie uprawnień przez zewnętrzną aplikację systemową (osascript).

    • Przetestowałem POC przed chwilą i tak jak się spodziewałem – otwiera on dodatkowe okno Terminala na moment, co niemal każdego zmusi do zastanowienia co jest grane, bo żadna normalna aplikacja tak się nie zachowuje :).

    • Owszem nie jest trywialny. Dziedziczenie uprawnień też ma swoje minusy ‘tell application “Finder” to open application XXXXX’ spowoduje że Finder otworzy nam aplikacje. Czyli że powinien odziedziczyć uprawnienia? Czy może nie powinien… pojawia się czy korzystanie z OSA miałoby stać się kolejnym poziomem uprawnień? Ciężko podjąć sensowną decyzję

  3. Ten sandbox to wciąż “beta” – nie bez powodu przesunęli “premierę” z listopada na marzec. Prace trwają. Inna rzecz, że już dzisiaj nie jest źle – sandbox tylko pomoże i miejmy nadzieję, że zbyt mocno nie ograniczy aplikacji

  4. “Niebawem Apple nie będzie przyjmował do Mac App Store aplikacji, które nie są sandboksowane”

    Wielki brat :)

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.