libvirt-sandbox
libvirt-sandbox er et spændende project, som bruger virtualseringsteknologien i linux til at opnå application sandboxes. (en application sandbox vil forhindre at et hacket program ikke kan gøre skade på systemet).
Projektet gør det nemt, at oprette enten en LXC container eller en fuld KVM instans til at afvikle et enkelt program i. I stedet for at begrænse et programs rettigheder med f.eks. seccomp eller selinux, så indfanger man simpelthen programmet i sin egen vm.
Køres libvirt-sandbox med kvm, så vil man få en fuld vm, hvor det originale systems filsystem mountes som readonly. Der bootes kernel op man har et identisk system. Der kan gives parametre med, som specificerer hvilke mapper der må skrive til. De vil blive mounted efterfølgende.
En evt. hacker vil nu både skulle hacke programmet, men også kunne bryde ud af den virtuelle maskine (det er bevist muligt), men selve den vm'en kan blive kørt med svirt (selinux) som beskyttelse. Det er en rigtig god beskyttelse.
Det lyder måske lidt overdrevet at lave en vm for hver process. Det dog ikke så galt endda. Det tager kun ca. 3 sekunder ekstra at starte på denne måde. Det er godt givet ud for at få en sikker browser, mailklient, videoafspiller osv.
Sandboxen kan demonstreres med denne lille test:
Her ses det, at der køres med en virtuel (qemu) cpu.
Desværre kræve libvirt-sandbox med kvm, at hardware understøtter virtualisering. Det afskriver pt. arm-processorer og ældre hardware. Ofte ser man også computere hvor virutalisering er slået fra i bios. Det ligner derfor ikke rigtig en mainstream løsning på nuværende tidspunkt.
Som alternativ er der LXC. Den kan køres uden virutaliseringssupport i hardwaren og koster kun 200ms under opstart af et program. Den giver ikke nær så god afskærmning som ved fuld virtualisering, men den ligner dog et bedre bud på en brugbar løsning til f.eks. gnome os.
En LXC sandbox startes f.eks. med:
Læs mere:
http://berrange.com/posts/2012/01/17/building-application-sandboxes-wit…
Projektet gør det nemt, at oprette enten en LXC container eller en fuld KVM instans til at afvikle et enkelt program i. I stedet for at begrænse et programs rettigheder med f.eks. seccomp eller selinux, så indfanger man simpelthen programmet i sin egen vm.
Køres libvirt-sandbox med kvm, så vil man få en fuld vm, hvor det originale systems filsystem mountes som readonly. Der bootes kernel op man har et identisk system. Der kan gives parametre med, som specificerer hvilke mapper der må skrive til. De vil blive mounted efterfølgende.
En evt. hacker vil nu både skulle hacke programmet, men også kunne bryde ud af den virtuelle maskine (det er bevist muligt), men selve den vm'en kan blive kørt med svirt (selinux) som beskyttelse. Det er en rigtig god beskyttelse.
Det lyder måske lidt overdrevet at lave en vm for hver process. Det dog ikke så galt endda. Det tager kun ca. 3 sekunder ekstra at starte på denne måde. Det er godt givet ud for at få en sikker browser, mailklient, videoafspiller osv.
Sandboxen kan demonstreres med denne lille test:
virt-sandbox -c qemu:///session /bin/cat /proc/cpuinfo
Her ses det, at der køres med en virtuel (qemu) cpu.
Desværre kræve libvirt-sandbox med kvm, at hardware understøtter virtualisering. Det afskriver pt. arm-processorer og ældre hardware. Ofte ser man også computere hvor virutalisering er slået fra i bios. Det ligner derfor ikke rigtig en mainstream løsning på nuværende tidspunkt.
Som alternativ er der LXC. Den kan køres uden virutaliseringssupport i hardwaren og koster kun 200ms under opstart af et program. Den giver ikke nær så god afskærmning som ved fuld virtualisering, men den ligner dog et bedre bud på en brugbar løsning til f.eks. gnome os.
En LXC sandbox startes f.eks. med:
virt-sandbox -c lxc:/// /bin/date
Læs mere:
http://berrange.com/posts/2012/01/17/building-application-sandboxes-wit…
Kommentarer4
Farvel til siloer, goddag
Spændende. Men er det
Forklar lige silo. Hvad
Forklar lige silo. Hvad er det? (Når man ikke lige putter korn i osv).
En vertikal stak der ikke