14:10
13/9/2010

Dziś 256 dzień roku, czyli święto programistów. Z racji tego, postanowiliśmy opisać ciekawy program, który reprezentuje dość nowatorskie podejście do ochrony komputera przed złośliwym oprogramowaniem…

Przy okazji: z racji Dnia Programisty, Helion ma dziś -20% na wszystkie książki, także te z działu “Hacking” :-)

Sandboxie – piaskownica dla Windows

Sandboxie pozwala na odpalenie dowolnego programu w tzw. “piaskownicy” czyli “izolowanej przestrzeni”, odseparowanej od prawdziwego systemu operacyjnego. Uruchomione poprzez Sandboxie programy nie mają dostępu do całgo dysku twardego, a jedynie do specjalnie wydziedzielonych zasobów.

Sandboxie - zasada działania

Sandboxie - zasada działania separacji

W Sandboxie uruchamiać można m.in. przelądarkę internetową czy czytnik PDF. Aplikacja integruje się z Windowsem, a dla każdego z programów, które chcielibyśmy zawsze uruchamiać w sandboksie można stworzyć odpowiedni skrót na pulpicie, lub opcję w menu kontekstowym:

C:\Program Files\Sandboxie\Start.exe" c:\windows\system32\calc.exe

Jeśli w uruchomionym poprzez Sanboxie czytniku PDF, otworzymy plik, który okaże się złośliwym exploitem, “przejęta” zostanie tylko ta sesja Sanboxie, a nie cały Windows. Podobnie, atakujący nie będzie miał np. możliwości skasowania wszystkich danych na dysku, a jedynie tylko tych, które są związane z “zaatakowaną” sesją Sandboxie. To co może “czytać” dany sandboksowany program można skonfigurować w opcjach Sandboxie.

Pobierz Sandboxie

Sandboxie można pobrać stąd (jest polska wersja językowa). Aplikacja posiada bogatą dokumentację i kilka przydatnych przełączników do sterowania z command-line’u (przyda się administratorom).

P.S. Mam wrażenie, że korzystanie z Sandboxie jest odrobinę wygodniejsze dla zwykłego użytkownika niż wirtualizacja.

Przeczytaj także:

33 komentarzy

Dodaj komentarz
  1. Korzystam już od jakiegoś czasu. Polecam :]

  2. mam to w Comodo Internet Security, na początku trochę uciążliwe zapoznać go z każdą aplikacją, ale potem się przydaje.

  3. Nie znane programy zawsze odpalałem w virtual box’ie i chyba przy tym pozostane :)
    takie przyzwyczajenie, a o ile dobrze mi się wydaje to w windowsie 7 jest opcja o nazwie “uruchom w osobnym obszarze pamięci ” nie wiem czy to ma coś wspólnego z tym sandboxem ale tak mi się wydaje.

  4. w pracy jestem to teraz nie sprawdzę, ale czy ten program podczepia się może do menu kontekstowego pod p-klikiem na dowolnym pliku z opcję “Uruchom w trybie sandbox” czy coś w tym stylu? Byłoby to niezmiernie wygodne :>

  5. Wszystko piknie do momentu, aż ktoś nie napisze exploita pozwalającego uciec z sandboxa (dlaczego pachnie mi tu unixowym chroot’em?).
    Najbezpieczniej, choć niekoniecznie najwygodniej jest jednak używać VirtalBox’a/Xen/KVM oraz co najważniejsze – myśleć co się robi.

    • Koziołek: piszesz tak, jakby w Vbox czy VMWare nie było przypadków “ucieczki” z guesta do hosta ;-)

    • Panowie… wystarczy uruchomić sandboxa na wirtualnej
      maszynie i będzie git.

  6. ok, sam sobie odpowiem po przejrzeniu FAQa Sandoxie – http://www.sandboxie.com/index.php?ConfigureMenu#shell – jest taka opcja :>

  7. Orientuje się może ktoś, czy do Sandboxie istnieje jakiś plugin, lub jakiś program pozwalający przeglądać zmiany w rejestrze dokonane wewnątrz piaskownicy?

  8. “P.S. Mam wrażenie, że korzystanie z Sandboxie jest odrobinę wygodniejsze dla zwykłego użytkownika niż wirtualizacja” – A to jest bardzo na wyrost.

    Nie sądzę, że sandbox jest aż tak bardzo bezpieczniejszy… tak czy inaczej dla uściślenia obszarów wirtualizacji, to bardziej przypomina wirtualizację aplikacji, czyli rozwiązanie Application Virtualization w wydaniu Microsoft, niż wirtualizację VMWare, której z kolei odpowiednikiem jest Microsoft Hyper-V (rozwiązanie dla Panów Administratorów, nie dla zwykłych użytkowników). Dla użytkowników są inne wirtualizacje, jeżeli mówimy tylko o stajni Microsoft to jest wspomniane wyżej Application Virtualization (App-V aka. softGrid), Med-V, czy XPMode.

    Kończąc przydługi wywód o obszarach wirtualizacji i nomenklaturze, separacja przestrzeni dyskowej, plików rejestru, dll, plików konfiguracyjnych daje możliwość uruchomienia aplikacji tworzących konflikty na jednym systemie operacyjnym (np. Office 2003 i Office 2007), lae nie separuje na poziomie w drastyczny sposób zabezpieczającym dany system.

    • soo: ja nie porównywałem w P.S.-ie bezpieczeństwa a wygodę…

  9. “Uruchom w oddzielnym obszarze pamięci” pozwala uruchamiać programy 16-bitowe w procesie dedykowanym Wirtualnej maszyny DOS.

    źródło:
    http://support.microsoft.com/kb/292504/pl

  10. lunatyk: przegladnij dokladnie forum sandboxie, byly tam dwa warte uwagi dodatki jak nie wiecej :).

  11. @lunatyk:
    mozna obserwowac zmiany za pomoca pipe’ow AFAIR.

  12. Ta aplikacja jest świetna i każdemu ją polecam. Warta jest swojej ceny. Od kiedy ją odkryłem instaluję przez nią większość programów i gier. Jak coś się sprawdzi i jest przydatne to przenoszę to z piaskownicy. Jeżeli mi się nie spodoba to klik… i nie ma śladu po programie lub grze. System jest czyściutki jakbym w nim nic nie instalował.

  13. Czyli najlepiej korzystać z Windowsa zainstalowanego w sandboxie… (a nie odwrotnie!)
    Windows ->Sandboxie -> drugi Windows & programy i to na nim działamy, bo wszystko w piaskownicy
    Bo przecież nie da się uruchomić każdego programu w Sandboxie np. większości instalatorów

  14. Czy aby na pewno “atakujący nie będzie miał dostępu do wszystkich danych na dysku”?? Z tego, co zaobserwowałem to “przekierowywane” do piaskownicy są jedynie operacje zapisu, ale odczytu już nie. Przy użyciu opcji otwierania pliku w programie uruchomionym w piaskownicy zasoby dyskowe widoczne są normalnie i można je bez problemu otwierać.

  15. @Koziołek
    –quote–
    Wszystko piknie do momentu, aż ktoś nie napisze exploita pozwalającego uciec z sandboxa (dlaczego pachnie mi tu unixowym chroot’em?).
    –end of quote–

    Dwie rzeczy: żeby “napisać exploita” najpierw trzeba znaleźć lukę, a ilość znajdowanych luk jest funkcją zależną od czasu (zazwyczaj czym bardziej dojrzały kod tym bardziej bezpieczny) oraz ilości researcherów “czytających” dany produkt. Więc w pewnym momencie sandboxie może być równie bezpieczny jak chroot.
    Co nas sprowadza do drugiej rzeczy – czy są jakieś znane publicznie metody na wyjście z chroota w najnowszej wersji Linuxa? Prawdę mówiąc to nie kojarzę :) Więc imo, jeśli pachnie chroot’em, to całkiem niezły początek :)
    W zasadzie nie kojarze również aby były jakieś znane publicznie metody wyskoczenia z Sandboxie.

    Niemniej jednak, imo na sprawę należy patrzeć z szerszej perspektywy. Tj, żeby ocenić czy warto aby użytkownik używał Sandboxie należy odpowiedzieć na następujące pytania:
    – Czy jeśli zostanie znaleziona metoda wyskoczenia z sandboxie, to czy WSZYSCY autory malware dodadzą ją do swojego malware?
    – Jeśli nie wszyscy, to jaki procent?
    – Jak długo zajmie autorowi Sandboxie napisanie patcha i dystrybucja update’u?
    – Jaka jest szansa, że malware z zaimplementowaną uczieczką zostanie uruchomiony w Sandboxie?
    – Ile jest na rynku sandboxów tego typu? Jakie jest prawdopodobieństwo, że autorzy malware akurat będą targetować sandboxie?
    – Na ile autorzy malware uważają sandboxie za zagrożenie dla ich procederu?

    Zachęcam do przemyślenia powyższego :)
    Imo to, czy użytkownik używa Sandboxie czy VMware ma stosunkowo niewielkie znaczenie. Natomiast bardzo duże znaczenie ma czy użytkownik używa czegokolwiek w tym stylu. W zasadzie nawet testowy user na Windowsie, bez żadnych praw, do uruchamiania tego typu rzeczy jest już dużym krokiem naprzód.

  16. Błąd: Czynik PDF. Czy nie powinno być czytnik?

  17. Program wydaje się być dość przydatny w firmach, gdzie dba się o to by nie przeszedł najmniejszy malwarek. Przeglądarka uruchamiana w piaskownicy to całkiem sensowna rzecz (to samo programy pocztowe).

  18. Może i fajne ale “nowatorskie podejście do ochrony komputera przed złośliwym oprogramowaniem” to trochę na wyrost… chroot jest dosyć starym pomysłem ;]

    • XANi: Racja. Ja bardziej o światku Windowsowym myślałem — przed sandboxie nie widziałem tego typu wynalazków dla “okienek”.

  19. Cieszy fakt, że Sanboxie dorobiło się funkcji całkowitego blokowania odczytu danych z wybranych katalogów. Warto zablokować sobie np. dostęp do odczytu danych klienta FTP bo malware może i nic nie skasuje poza piaskownicą ale w dalszym ciągu może szybko wykraść hasła i je komuś przesłać. ;-)

    @Gynvael Coldwind
    Jeżeli masz na myśli chroota, w którym przejęliśmy kontrolę nad procesem z prawami roota oraz:
    – mamy możliwość zapisu np. swoich binarek w chroocie i ich uruchomienie
    – lub mamy pełną kontrolę nad procesem i możemy odpalać syscalle
    – lub są podstawowe binarki w chroocie i możemy je uruchomić
    – lub…

    To tu dalej nic się nie zmieniło. :) W 2.6.35 w dalszym ciągu można uciec przez:
    – stworzenie sobie mknodem np. takiego “sda1” i zamontowanie go w chroocie, lub bez montowania – przez bezpośrednią modyfikację obrazu dysku
    – stworzenie mknodem “mem” i pogrzebanie bezpośrednio w pamięci kernela
    – zmuszenie procesu poza chrootem przy pomocy np. ptrace do otworzenia drzwiczek
    – stare jak świat combo: fd = open(“.”, O_RDONLY); chroot(“katalog_w_chroocie”); fchdir(fd); close(fd); chdir(“..”) /* aż dojdziemy do / */; chroot(“.”); execl(“/bin/sh”, “-i”, NULL);
    – i pewnie wiele innych metod

    W sumie chroot z założenia miał służyć do zmiany środowiska a nie do izolowania procesów, ale zawsze to dodatkowa bariera, na której można połamać zęby. Na szczęście Grsecurity ciągle jest rozwijany i można nim w pełni zjailować chroota i dobić przy pomocy RBAC. :)

  20. Najbezpieczniej jest używać “Live CD” z jakąś prostą (choć nie koniecznie) dystrybucją Linuxa.

  21. @Zerg2000
    Miałem ofc na myśli chroot bez uprawnień roota :)

  22. @Gynvael Coldwind
    ja sądzę, że Zerg2000 chodziło o sytuacje, gdzie błąd pozwalający nawet nieuprawnionemu userowi rozszerzyć uprawnienia do root’a sprawia, że cała idea chroot’a trochę traci na znaczeniu.

  23. @Piotr Konieczny, uciec z VB/VMWare da się.

    @Gynvael Coldwind, dostałeś przykład.

    Moim zdaniem, napisanie exploita jest kwestią czasu. Jeżeli znajdzie się wystarczająco zdeterminowany cracker/zespół to złamanie zabezpieczeń będzie kwestią czasu.
    Zabezpieczenia mają służyć utrudnianiu życia crackerów, a nie rzeczywistej ochronie.

    Już dawno temu Mitnick stwierdził, że nie włamał się tylko do jednego systemu. Nie zrobił tego tylko dlatego, że był on odcięty od świata i musiałby jechać do Walii, czy gdzieś tam…

    Zatem zabezpieczamy, patchujemy, aktualizujemy i MYŚLIMY.

  24. Ja do Sandboxie mam spory dystans. Mam wątpliwości co do skuteczności realizacji tego sandboxa. Z tego co na szybko sprawdziłem, to uruchomiony w sandbox proces ma założonych sporo hooków na API, dodatkowo chyba uruchamiany jest w procesie dodatkowy wątek. Sam token, z którym pracuje uruchomiony proces jest pełnym tokenem użytkownika (z dokładnością do użytkowników z prawami Administrators i Power Users w przypadku zaznaczenia odpowiedniej opcji w ustawieniach piaskownicy). Może w wolnym czasie prześledzę sobie dokładniej jak wyglądają wywołania poszczególnych funkcji z poziomu sandboxa i jak ewentualnie z tego uciec…

    Istotne jest też to, co pisał Gynvael. Jeśli będzie wystarczająca ilość komputerów, na których nie trzeba będzie uciekać z sandboxa, to taka funkcja nie będzie implementowana w malware.

  25. > Najbezpieczniej jest używać “Live CD” z jakąś prostą (choć
    > nie koniecznie) dystrybucją Linuxa.

    Niezupełnie. Dystrybucje LiveCD często logują użytkownika z uprawnieniami roota, a jeśli nawet tego nie robią, root ma puste hasło. Jeśli dodamy do tego częstą praktykę domyślnego montowania wszystkich partycji twardego dysku, to stacja, na której uruchomiono LiveCD jest praktycznie bezbronna.
    Jedyny powód, dla którego jest to rozwiązanie w miarę bezpieczne to fakt, że wirusów na Linuksa jest mało. Co nie znaczy, że ich nie ma.

  26. A czy taki COMODO firewall też działa na podobnej zasadzie? Też umożliwia sandboxing.

  27. Od lat używam Sandboxie i jest to nieprawdopodobnie rewelacyjne narzędzie, ale na innym systemie mam też DefenseWall Personal Firewall i mogę powiedzieć jedno, Sandboxie jest tym samym dla przeglądarki czym dla systemu jest DefenseWall :) O którym też przydało by się tu napisać. Inne tego typu rozwiązania z pakietów KIS, CIS, PIS nie są tak dopracowane czego potwierdzeniem jest Rootkit TDL/TDSS :D

  28. Używając Sandboxie warto ustawić sobie Ramdisk (np. Z:) i w ustawieniach piaskownicy wskazać na niego folder pojemnika. Wtedy całe ciasto jest niszczone.

  29. Nie używajcie tego, to staroć zasrany..
    Teraz są stealery mimo że RAMDISK, piaskownica.. mimo to stealer wyciagnął dane z firefoxa z systemu.

    syyf..

Twój komentarz

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

RSS dla komentarzy: