App sandbox / Firejail / tapasztalat?

Fórumok

Sziasztok,

Van valakinek tapasztalata a Firejail megoldással?

https://l3net.wordpress.com/projects/firejail/

Sandbox megoldást keresek tetszőleges programhoz, amely egyszerűen konfigurálható és a hálózati hozzáférés is finoman szabályozható (milyen hálózati erőforrásokhoz férhet hozzá és milyen protokollon, milyen porton illetve IPC limit is lehetséges legyen, tehát teljes kontroll).

- SELinux sandbox-a túl egyszerű és keveset tud
- SELinux-ot körülményes konfigurálni
- AppArmorhoz nem találok sandbox-ot illetve nem tud port és IPC limitet tudomásom szerint
- mbox csak fájl szinten limitál

Egyéb ötlet? Programot és script-eket akarok sandbox-ba zárni virtualizáció nélkül. LXC és Docker overkillnek tűnik beállítás szempontjából.

Kösz.

Hozzászólások

Ez kurvajónak tűnik így első ránézésre. :D
Ha lesz időm, valószínűleg kipróbálom, egy sima chrootnál csak többet tudhat.

(rejtett subscribe)

subscribe
(Bár kicsit félek az ilyen one man show jellegű prokect-ektől.)

Ha csak egy sima scriptet/programot kell jail-be zárni, arra a chroot (+grsec-es kernel) is tökéletes.

A probléma ezekkel viszont az, hogy a kernel közös marad, így azon keresztül "könnyedén" lehet ki-be jutni.

LXC, Docker is inkább kénylemi, mint biztonsági megoldás. Ha valós és biztonságos szeparációra van szükésg, akkor csak a teljes virtualizáció jöhet szóba - szerintem.

--
zrubi.hu

Azt valóban nem.

A "túl nagy" meg relatív, és emelett nagyon sok előnye van egy jail-es megoldással szemben.
Egyébként melyik erőforrás, ami miatt túl nagy??

- RAM
a minimum, hogy a VM saját kernel egyátalán bebootoljon, ez egy gyári kernel esetén lehet nagy, de egy custom kernellel már más a helyzet. De ha egy alkalmazást is akarsz benne futtatni, akkor már általában nagyságrendileg több memória kell - és ezt jailek esetében sem úszod meg.

- CPU, network
ebben gyakorlatilag nincs overhead.

- diszk IO
igen, ez lehet probléma, de egy SSD segít rajta.

- diszk terület
template alapú megoldásokkal remekül optimalizálható.
Qubes (Xen) pl így csinálják:
https://www.qubes-os.org/en/doc/template-implementation/

--
zrubi.hu

és emelett nagyon sok előnye van egy jail-es megoldással szemben.

De van egy nagy hátránya is: nem tudod teljesen kiüríteni, mivel úgy nem lehet menedzselni a VM-et. Egy VM-be kénytelen vagy rakni sh-t, ls-t, ps-t, és társaikat, meg valamit, amin keresztül bejelentkezel. Kénytelen vagy /proc-ot mountolni, mert anélkül nem megy bent a ps - kintről meg nem látsz be. Kézzel nehéz bebootolni képes VM-et összelapátolni, ergó disztribúciót fogsz használni -> még egy komplett package management is lesz ott bent.
Egy jailben ezek nem feltétlenül szükségesek, oda bele tudsz "születni" kívülről is, csak úgy, bizonyos dolgokat meg simán lehet kívülről is csinálni. Az én szememben ez egy óriási biztonsági hátránya a VM-nek: nem tud letisztult, kicsi, egyszerű lenni.