A seccomp filters funkció a Berkeley Packet Filter-t (BPF) használja fel arra, hogy korlátozza a programok, alkalmazások hozzáférését a rendszerhívásokhoz. A seccomp filters használatával korlátozni lehet, hogy az egyes user space processzek mely rendszerhívásokat használhatják, így nincs szükség arra, hogy az összes rendszerhívást "láthatóvá" tegyük számukra.
A seccomp teljes dokumentációja elérhető itt. Egy tutorial a használatához itt.
- A hozzászóláshoz be kell jelentkezni
- 2919 megtekintés
Hozzászólások
systrace? :)
- A hozzászóláshoz be kell jelentkezni
nem, ez elvileg nem broken by design
- A hozzászóláshoz be kell jelentkezni
Erre nem lenne elég, alkalmas a SELinux? Ez egy újabb megoldás ugyanarra a problémára?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
+1
Inkább a részéve kéne tenni selinux/apparmor/akármi cuccnak...
--
Discover It - Have a lot of fun!
- A hozzászóláshoz be kell jelentkezni
A leírás meg a tutorial alapján itt arról van szó, hogy nem "kívülről kényszeríted ki" bizonyos szolgáltatások elrejtését, hanem a program maga deklarálja (a forráskód módosítása után, a futtatható állományba beleégetve) hogy mely rendszerhívásokat szeretné használni, és mit nem. Ezzel azt éri el, hogy a programban levő esetleges sebezhetőséget nehezebb lesz kihasználni. Az, hogy ez más, mint a SELinux és társai, az világos. Az, hogy ennek van-e több értelme, vagy annak, hogy ezekhez a programokhoz megfelelő SELinux / AppArmor stb. profil készüljön, vitatható.
- A hozzászóláshoz be kell jelentkezni
Igen, az nekem is feltűnt, hogy a kérdezők nem nézték meg ennek a dokumentációját.
Az, hogy ennek van-e több értelme, vagy annak, hogy ezekhez a programokhoz megfelelő SELinux / AppArmor stb. profil készüljön, vitatható.
Vagy mindkettőnek egyszerre. Jó lenne tudni, hogy mennyi erőforrást igényel a kettő együtt.
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Szintén érdekes leírás itt:
http://code.google.com/p/seccompsandbox/wiki/overview
Lazán kapcsolódó cucc:
http://git.chromium.org/gitweb/?p=chromiumos/platform/minijail.git;a=tr…
Chromium OS(?) hardening cuccai között találtam, aranyos kis jószág, pl
seccomp-ot is tud, nincs hülyére doksizva, kis kísérletezéssel, közel használhatóvá tehető :)
- A hozzászóláshoz be kell jelentkezni
Nekem az nem vilagos, hogy ugye egy atlag program nem fog syscall-okat hivogatni, hanem libc-t hasznal. Mi van, ha a libc-ben valtozik, hogy egy adott funkciot konkretan milyen syscall-okkal old meg? A program igy nem feltetlen tudja, hogy sajat maganak milyen syscall-okat kell engedni, foleg, ha kozben van egy libc upgrade, es ebben valtozas van. Ez elsore talan nem tunik realisztikusnak (miert hasznalna mas syscall-t?), de emlekeim szerint volt mar ilyenre pelda, hogy a libc "emulal" valamit tobb syscall-t hasznalva, aztan kesobb megjelenik egy kernel szintu jobb megoldas, sajat syscall-al erre, es a libc is atter arra (glibc marmint esetunkben).
- A hozzászóláshoz be kell jelentkezni