Okruženje podrazumijeva virtualni spremnik (memorijski kontekst u kojem se program izvršava) kreiran od strane korisničke aplikacije - za razliku od okruženja kreiranog od jezgre operacijskog sustava - izoliran od ostatka sustava, koji se naziva i sandbox (pješčanik). Koristi se za odvajanje izvršnog okruženja programa izvršnog okruženja ostatka sustava kako bi se isti zaštitio od mogućih zlonamjernih aktivnosti. Takav spremnik, osim što ne dijeli kontekst izvršavanja s ostatkom korisničkih programa, mora biti odvojen i od sistemskih procesa.

Kako bi se proučavani programi zadržali u spremniku, spremnik nužno mora zadovoljavati sljedeće kriterije:

  • odvojen spremnik unutar radne memorije - sandbox alat mora skladištiti kontekst izvršavanja programa tako da bude lokaliziran i udaljen od ostatka sustava,
  • odvojen spremnik na tvrdom disku - ukoliko program zahtijeva veliku količinu radne memorije, sandbox alat pružit će mu memorijski prostor diska, međutim takav prostor također mora biti odvojen od ostatka sustava i lokaliziran,
  • pristup mreži, čitanje/pisanje vanjskih uređaja ili sistemski pozivi moraju biti strogo nadzirani.

Opisana funkcionalnost naziva se virtualizacija na razini operacijskog sustava (eng. operating system level virtualization) te podrazumijeva postojanje jedinstvenog operacijskog sustava sa jedinstvenom jezgrom (eng. kernel) unutar kojeg postoje međusobno odvojeni konteksti izvršavanja (eng. user space).

Osim navedene vrste virtualizacije postoji još i sklopovska virtualizacija (engl. platform virtualization, hardware virtualization) gdje se na virtualnom računalu virtualiziranom na poslužiteljskom operacijskom (engl. host OS) sustavu pokreće gostujući operacijski sustav (guest OS). Takvo vrsta virtualizacije može se koristiti u sljedeće svrhe:

  • moguće je koristiti aplikacije nedostupne na poslužiteljskom operacijskom sustavu,
  • cijeli gostujući operacijski sustav (zajedno sa korisničkim aplikacijama) moguće je prenijeti na drugo virtualno računalo te je
  • moguće zapisati stanje gostujućeg operacijskog sustava te ga vratiti u zapisano stanje u slučaju greške unutar sustava.

Sandboxie

Sandboxie je alat koji omogućava izvršavanje programa u ograničenom okruženju tj. kontekstu. Aktualna inačica je 3.54, izdana 24.3.2011., a alat je u aktivnom razvoju. Podržane su sve novije Windows platforme (XP,  Vista, 7), ali ne postoje varijante alata za Linux/BSD operacijske sustave. Alat je vlasničkog karaktera (proprietary), ali je besplatan za osobnu uporabu u osnovnom izdanju.

Stvaranje i konifguracija konteksta

Odabirom opcije Sandbox - Create new sandbox stvara se novi kontekst izvršavanja (na primjeru sa slike stvorena su tri konteksta).

  alt 

Slika 1. Stvaranje konteksta

Svaki kontekst posjeduje svoje konfiguracijske postavke te je moguće u potpunosti konfigurirati svaki zasebno. Odabirom određenog konteksta i izborom opcije Sandbox settings, moguće je detaljno konfigurirati svaki aspekt rada konteksta.

Važnije postavke su:

  • oporavak - u slučaju da program unutar konteksta djeluje na datoteku koja nije proizišla iz rada istog, moguće je tu datoteku iznijeti izvan konteksta, tj. omogućiti datoteci interakciju s ostatkom sustava,
  • brisanje - moguće je specificirati naredbu koja će se pozivati kada programi konteksta završe s radom,
  • grupe - programe je moguće smjestiti u grupe te za svaku definirati posebno ponašanje i postavke, tj. sva ostala pravila moguće je primjeniti na pojedinačni program ili na više programa u danoj grupi,
  • prepoznavanje pokretanja - moguće je specificirati mape ili pojedinačne programe koji će se pri pokretanju automatski smjestiti u zatvoreni kontekst,
  • ograničenja - moguće je postaviti ograničenja (npr. pristup Internetu) na određene programe unutar konteksta.

alt

Slika 2. Konfiguracija konteksta

Korištenje konteksta

Nakon stvaranja konteksta i odabira postavki, pokretanje programa unutar konteksta svodi se na izbor konteksta pokretanja (ukoliko se ne radi o automatskom pokretanju) te izbora programa koji će se pokrenuti.

alt

Slika 3. Pokretanje programa unutar konteksta

Korisnik može prekinuti rad svakog od pokrenutih programa pojedinačno ili svih programa grupno. Ukoliko kao rezultat nekog programa nastane datoteka, ona je također dio konteksta. Svaku takvu datoteku korisnik može, ukoliko zaključi da je sigurna, premjestiti izvan konteksta. Naravno, sve takve datoteke  korisnik može i obrisati (zasebno ili grupno). Pregled svih datoteka može se prikazati odabirom opcije View - Files and Folders (na primjeru sa slike datoteka favicon.ico nastala je kao rezultat programa chrome te je kao takva spremljena unutar konteksta).

alt

Slika 4. Pregled datoteka unutar konteksta

Više o alatu možete saznati na službenim stranicama.

BSD jail / Linux OpenVZ

Na BSD/Linux operacijskim sustavima postoje mnoga virtualizacijska rješenja (na razini operacijskog sustava), no dva spomenuta nameću se po zrelosti i stabilnosti. Budući da su navedene platforme češće korištene kao poslužiteljska nego korisnička računala, navedena rješenja optimizirana su upravo u tu svrhu pa tako svaki odvojeni kontekst posjeduje:

  • odvojen datotečni sustav (što uključuje aplikacije),
  • odvojen autorizacijski sustav (korisnike, grupe i prava),
  • odvojeno procesno stablo (kontekstu su vidljivi samo svoji procesi) i
  • virtualni mrežni uređaj što omogućuje posebnu mrežnu konfiguraciju tog sučelja (npr. posebna pravila filtriranja prometa).

Navedena svojstva omogućuju da se od jednog fizičkog poslužitelja napravi više virtualnih poslužitelja od kojih će svaki služiti svojoj svrsi (WEB poslužitelj, DNS poslužitelj itd.).

Više o BSD jail alatu i OpenVZ alatu možete saznati na službenim stranicama.

Retnil Virtual System

Na Windows platformama, alternativa opisanom alatu je Retnil Virtual System. Alat je također vlasničkog karaktera uz besplatno korištenje za osobnu uporabu. Osim mogućnosti odvajanja konteksta izvršavanja, alat posjeduje još i ugrađeni antivirusni sustav te sustav zapisivanja i povratka sistemskog stanja (system restore).

Više o alatu možete saznati na službenim stranicama.

Idi na vrh