De release van het Firejail-project 0.9.72 is verschenen, dat een systeem ontwikkelt voor de geïsoleerde uitvoering van grafische, console- en servertoepassingen, waardoor het risico op compromittering van het basissysteem wordt geminimaliseerd bij het uitvoeren van onbetrouwbare of potentieel kwetsbare programma's. Het programma is geschreven in de programmeertaal C, wordt verspreid onder de GPLv2-licentie en kan worden uitgevoerd in elke Linux-distributie met een kernel ouder dan 3.0. Klaar-om-packages van Firejail zijn voorbereid in de formaten deb (Debian, Ubuntu) en rpm (CentOS, Fedora).
Voor isolatie in Firejail worden namespaces, AppArmor en filtering van systeemaanroepen (seccomp-bpf) in Linux gebruikt. Na de start gebruiken het programma en al zijn dochterprocessen aparte representaties van kernbronnen, zoals de netwerkstack, de proceslijst en de mount-punten. Afhankelijk van elkaar zijnde applicaties kunnen worden samengevoegd in één gemeenschappelijke sandbox. Indien gewenst, kan Firejail ook worden gebruikt om Docker-, LXC- en OpenVZ-containers uit te voeren.
In tegenstelling tot containerisolatie-tools is Firejail uiterst eenvoudig te configureren en vereist het geen voorbereiding van een systeemafbeelding; de samenstelling van de container wordt ter plekke gevormd op basis van de inhoud van het huidige bestandssysteem en wordt na voltooiing van de toepassing verwijderd. Flexibele middelen voor het instellen van toegangsregels tot het bestandssysteem worden aangeboden, en je kunt bepalen tot welke bestanden en mappen toegang is toegestaan of verboden is, tijdelijke bestandssystemen (tmpfs) voor gegevens aansluiten, de toegang tot bestanden of mappen beperken tot alleen-lezen, en mappen combineren via bind-mount en overlayfs.
Voor een groot aantal populaire applicaties, waaronder Firefox, Chromium, VLC en Transmission, zijn kant-en-klare profielen voor isolatie van systeemaanroepen voorbereid. Om de vereiste privileges te verkrijgen voor het instellen van de geïsoleerde omgeving, wordt het uitvoerbare bestand firejail geïnstalleerd met de SUID root-vlag (na initialisatie worden de privileges opgeheven). Om het programma in isolation mode uit te voeren, is het voldoende om de naam van de applicatie als argument voor de firejail-tool op te geven, bijvoorbeeld "firejail firefox" of "sudo firejail /etc/init.d/nginx start".
In de nieuwe release:
- Een seccomp-filter voor systeemaanroepen is toegevoegd dat het creëren van namespaces blokkeert (de optie "—restrict-namespaces" is toegevoegd om deze functie in te schakelen). De tabellen van systeemaanroepen en de seccomp-groepen zijn bijgewerkt.
- De modus force-nonewprivs (NO_NEW_PRIVS) is verbeterd, die het verkrijgen van extra privileges in nieuwe processen verbiedt.
- De mogelijkheid om eigen AppArmor-profielen te gebruiken is toegevoegd (de optie "—apparmor" is aangeboden voor aansluiting).
- In het netwerkverkeer tracking-systeem nettrace, dat informatie over IP en verkeersintensiteit van elk adres weergeeft, is er ondersteuning voor ICMP geïmplementeerd en zijn de opties "—dnstrace", "—icmptrace" en "—snitrace" aangeboden.
- De commando's —cgroup en —shell zijn verwijderd (standaard wordt —shell=none toegepast). De standaardbouw van firetunnel is stopgezet. De instellingen chroot, private-lib en tracelog in /etc/firejail/firejail.config zijn uitgeschakeld. De ondersteuning voor grsecurity is stopgezet.
Bron: opennet.ru
