Homokozó (biztonság)
A homokozó az informatikai biztonság területén programok elkülönített futtatására szolgáló biztonsági mechanizmus. Gyakran használják még nem tesztelt kódok, ellenőrizetlen gyártóktól, szállítóktól vagy végfelhasználóktól származó, nem megbízható programok futtatására.
A homokozóban futó programok hozzáférése a rendszer erőforrásaihoz általában erősen korlátozott, gyakran átmeneti lemez- és memóriaterületen (scratch space) futhatnak, a hálózati hozzáférés, a bemeneti eszközökről való olvasás, a gazdagép vizsgálata általában tilos vagy csak erősen korlátozottan lehetséges. Ebben az értelemben a homokozó a virtuális gépek speciális válfajának tekinthető.
Néhány példa a homokozók típusaira:
- Az appletek (kisalkalmazások) virtuális gépen vagy homokozófunkciót is ellátó szkriptnyelv-értelmezőn futó, önmagukban álló programok. Alkalmazásközvetítés (lásd alkalmazásvirtualizáció) esetén az applet letöltődik a távoli kliensre, és még azelőtt elkezdheti a futását, hogy teljesen megérkezett volna oda. Az appletek gyakran webböngészőkben futnak, mivel ez a mechanizmus alkalmas arra, hogy nem megbízható kódot illesszenek be egy weboldalba. A három legelterjedtebb applet-megvalósítás (Java, Adobe Flash, Silverlight) az appletek számára minimálisan egy téglalap alakú ablakot biztosítanak, amiben kommunikálhatnak a felhasználóval, továbbá (a felhasználó engedélyével) némi állandó tárterületet.
- A jail („börtön”) a kernel által a processzre alkalmazott erőforrás-korlátozások együttese. Szó lehet I/O sávszélesség- vagy lemezkvóta-korlátozásról, a hálózati hozzáférés korlátozásáról vagy a fájlrendszer elérésének bizonyos névterekre korlátozásáról. A jaileket általánosan használják a virtual hosting (webtárhelyek) területén.
- A szabályalapú végrehajtás (Rule-based Execution) segítségével a felhasználó megszabhatja, hogy milyen folyamatok indíthatók el (a felhasználó, illetve másik alkalmazás által), melyek injektálhatnak kódot más folyamatokba vagy férhetnek hozzá a hálózathoz. Szabályozza a fájl- illetve registry-szintű biztonságot. Ily módon a malware-ek kisebb eséllyel képesek megfertőzni a számítógépet. Linux alatt az SELinux és az Apparmor biztonsági keretrendszerek valósítják meg ezt az üzemmódot.
- A virtuális gépek egy teljes „gazda” számítógépet emulálnak, melyen egy hagyományos operációs rendszer elindulhat, és ugyanúgy futhat, mint egy fizikai számítógépen. A „vendég” operációs rendszer homokozóban fut, abban az értelemben, hogy nem natívan indul el a gazdagépen, és annak erőforrásait csak az emulátoron keresztül érheti el.
- Homokozó natív gazdagépeken: az IT-biztonsági szakemberek a malware-ek viselkedésének vizsgálatakor nagymértékben támaszkodnak a homokozó-technológiákra. A rosszindulatú szoftverek által célzott környezet utánzásával tanulmányozzák a kutatók, hogyan fertőzi meg a célzott gépet a vírus vagy féreg.
- A capability-alapú (képesség-) rendszerek tekinthetők olyan, finoman hangolt homokozó-mechanizmusnak, ahol a programok „átlátszatlan” hozzáférési tokeneket[1] kapnak futtatáskor, és az általuk birtokolt tokentől függően képesek egyes feladatokat végrehajtani. A capability-alapú biztonságot különböző szinteken lehet megvalósítani, userspace-től kernel szintig. A felhasználói szinten futó, capability-alapú biztonságra példa a Google Chrome HTML-megjelenítőmotorja.[2]
- Programozási versenyeken a programok tesztelését végző „online judge” rendszerek
- Új generációs, a beillesztett kódrészletek futtatását lehetővé tevő pastebin-ek
- A Linux Secure Computing Mode (seccomp) a Linux kernelbe épített homokozómegvalósítás. Aktiválása után a seccomp kizárólag a write(), read(), exit() és sigreturn() rendszerhívásokat engedélyezi.
Jegyzetek
szerkesztés- ↑ Ebben a kontextusban az átlátszatlan azt jelenti, hogy a kliens által generált tokent a szerver ellenőrizni képes, de előállítani nem, és viszont.
- ↑ eWeek.com: Google Chrome Puts Security in a Sandbox
Fordítás
szerkesztés- Ez a szócikk részben vagy egészben a Sandbox (computer security) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.