Homokozó (biztonság)

A Wikipédiából, a szabad enciklopédiából

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.

Források[szerkesztés | forrásszöveg szerkesztése]

  1. 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.
  2. eWeek.com: Google Chrome Puts Security in a Sandbox