Popoln vodič o sandboxingu v Linuxu s Firejailom in še več

Zadnja posodobitev: 22/02/2026
Avtor: Isaac
  • Sandboxing v Linuxu se za izolacijo procesov in omejevanje vpliva ranljivosti zanaša na imenske prostore, seccomp-BPF, MAC in chroot.
  • Firejail ponuja lahek in preprost način za zapiranje namiznih in strežniških aplikacij z vnaprej določenimi profili in naprednimi možnostmi.
  • Orodja, kot so Bubblewrap, Flatpak, AppArmor, SELinux in Kata Containers, širijo možnosti izolacije v bolj kompleksnih scenarijih.
  • Združevanje varnosti pomnilnika s sandboxingom, kot pri pristopu Fil-C in OpenSSH, zagotavlja globinsko obrambo za kritične aplikacije.

Peskovnik v Linuxu

Zaščitite svoje aplikacije v Linuxu Postalo je skoraj obvezno, če brskate po spletnih mestih, polnih agresivnega oglaševanja, uporabljate nezanesljive binarne datoteke ali upravljate storitve, izpostavljene internetu. Čeprav je Linux že precej robusten sistem, je realnost taka, da so lahko vaš brskalnik, predvajalniki medijev ali kateri koli omrežni odjemalec odlična vstopna točka za zlonamerno programsko opremo, kriptojacking ali krajo podatkov, če jih ne izolirate pravilno.

V tem celotnem priročniku o Sandboxing v Linuxu z orodji, kot so Firejail, Bubblewrap, AppArmor in tehnologije jedra Videli boste, kako izolacija procesov v resnici deluje, katere varnostne mehanizme sistem uporablja (imenske prostore, seccomp-BPF, chroot, omejitve virov itd.) in kako jih lahko praktično kombinirate, da zmanjšate vpliv morebitne izkoriščanja. Cilj je, da od tod odidete z jasnim razumevanjem, primeri, ki so pripravljeni za uporabo, in trdnimi temelji za izboljšanje varnosti vaših namiznih in strežniških aplikacij.

Kako uporabljati Firejail
Povezani članek:
Kako uporabljati Firejail v Linuxu za izolacijo in zaščito aplikacij

Kaj je peskovnik v Linuxu in zakaj bi ga morali uporabljati?

Ko govorimo o sandboxingu v Linuxu, imamo v mislih izvajati programe v omejenem okolju, ločen od preostalega sistema, tako da če gre kaj narobe (izkoriščanje, zlonamerna programska oprema, zlonamerni skript na spletnem mestu itd.), je škoda omejena na ta »peskovnik« in ne more zlahka vplivati ​​na preostali del operacijskega sistema, vaše dokumente ali druge storitve.

Ta pristop je še posebej uporaben za zelo izpostavljene aplikacijekot so spletni brskalniki, e-poštni odjemalci, aplikacije za sporočanje, torrent programi, predvajalniki medijev ali omrežne storitve, dostopne prek interneta. V vseh teh primerih je tveganje, da obdelujejo nezanesljivo vsebino, izjemno veliko, zato jih je smiselno obdati z več plastmi zaščite.

V Linuxu sodobno delovanje sandboxa temelji predvsem na izvorni mehanizmi jedra: Imenski prostori LinuxaPolitike nadzora dostopa (MAC), kot sta AppArmor ali SELinux, filtri seccomp-BPF, omejitve s setrlimit, chroot in izvajanje pod neprivilegiranimi uporabniki. Orodja, kot so Firejail, Bubblewrap, Flatpak ali celo sistemi vsebnikov, kot je Docker, se zanašajo na te osnovne gradnike.

Pomembno je tudi razumeti, da Varnost pomnilnika in peskovnik sta različna, a dopolnjujoča se koncepta.Program je lahko napisan v jeziku, varnem za pomnilnik (ali zaščiten z izvajalnim okoljem, ki preprečuje tipične napake C/C++), če pa ima poln dostop do datotečnega sistema in vseh sistemskih klicev, ostane nevaren, če je ogrožen. Nasprotno pa lahko program, izoliran v peskovniku, vsebuje ranljivosti pomnilnika, ki jih je mogoče izkoristiti od znotraj. Prava varnost izhaja iz kombinacije obeh pristopov.

Firejail: najbolj priljubljen peskovnik za namizne aplikacije

Firejail je verjetno najbolj znano orodje za peskovnik na namizju LinuxaProgramiran je v jeziku C in deluje kot izvršljiva datoteka s SUID-bitom, ki se zanaša na imenske prostore, seccomp-BPF in druge funkcije jedra, da ustvari izolirano okolje okoli programa, ki ga želite zagnati.

Njegova velika prednost je v tem Je zelo lahek in enostaven za uporaboHitrost aplikacij znotraj peskovnika je skoraj enaka običajnemu izvajanju; ob zagonu sistema ne dodaja rezidenčnih procesov in ima zelo malo odvisnosti. V praksi porablja vire le, ko prek njega zaženete aplikacijo, zaradi česar je primeren tudi za skromne stroje.

Poleg tega Firejail prihaja z Preddefinirani konfiguracijski profili za več kot 300–1000 pogostih aplikacij (odvisno od različice, ki si jo ogledujete): brskalniki, kot sta Firefox in Chromium, VLC, Transmission, bralniki PDF-jev, urejevalniki besedil in mnogi drugi. Ti profili določajo, katere dele datotečnega sistema vidi vsak program, kakšna dovoljenja ima, ali lahko uporablja zvok, kakšen dostop do omrežja ima itd.

Firejail lahko uporabite tudi za strežniški programi in terminalska orodjaNa primer, za zaporo spletnega strežnika Apache ali storitve po meri, ki posluša na določenih vratih. Model je vedno enak: proces se izvaja znotraj nabora imenskih prostorov in omejitev, ki omejujejo vpliv kršitve varnosti.

Kako Firejail deluje na tehnični ravni

Da bi Firejail dvignil svoje kletke, intenzivno uporablja Imenski prostori LinuxaTa funkcionalnost, ki je v jedro začela prihajati v različici 2.6.23, je bila razširjena in ponuja različne vrste izolacije: PID, omrežje, uporabnik, priklop, UTS (ime gostitelja), IPC itd. Vsak imenski prostor zajema nabor virov, tako da procesi, ki si delijo imenski prostor, vidijo drugačno realnost kot tisti zunaj njega.

Z drugimi besedami, program, ki se je zagnal s Firejailom Ne vidi istega datotečnega sistema, tabele procesov, omrežnega sklada ali imena gostitelja ne preostalega sistema, temveč filtrirano ali delno sestavljeno različico, odvisno od uporabljenega profila. To je osnova mnogih tehnologij kontejnerjev, kot je Docker, in glavni razlog za njihovo učinkovitost.

Firejail dopolnjuje imenske prostore z pravilniki za nadzor dostopa (MAC) v datotečnem sistemuS temi pravili lahko na primer programu dovolite dostop le do določenih poddirektorjev vašega domačega imenika, kot so Prenosi ali mapa s konfiguracijo aplikacije, medtem ko blokirate dostop do ostalih. Številni privzeti profili že vključujejo dobro definirana pravila, ki omogočajo delovanje programa, ne da bi mu dovolili prosto gibanje po disku.

Druga pomembna plast je seccomp-BPFTa mehanizem omogoča povezavo filtra sistemskih klicev (syscall) s procesom. Filter je opisan z uporabo BPF (Berkeley Packet Filter) in določa, kateri sistemski klici so dovoljeni in s kakšnimi parametri; vsak drug klic povzroči, da jedro prekine proces ali vrne napako. Brskalniki, kot je Chrome, in vsebniški sistemi, kot je Docker, prav tako uporabljajo to tehniko za omejevanje tega, kar lahko izvajajoča se koda naredi.

  Spremembe sudo-rs in novih pozivov za geslo v Ubuntuju

Končno lahko Firejail življenje z AppArmorjem in SELinuxomTi sistemi MAC delujejo na ravni jedra, da omejijo dostop do datotek, vtičnic, zmogljivosti itd. Firejail doda še eno plast izolacije: ne le odloča, do katerih virov lahko aplikacija dostopa, ampak jih tudi loči v imenske prostore, tako da tudi več aplikacij s podobnimi dovoljenji ni nujno, da se vidijo ali manipulirajo med seboj.

Namestite Firejail in njegov grafični vmesnik Firetools

V večini distribucij GNU/Linuxa je Firejail Ni vnaprej nameščen, je pa na voljo v uradnih repozitorijih.V Debianu, Ubuntuju in izvedenih programih preprosto uporabite APT za vključitev v sistem brez dodatnih odvisnosti ali dodatnih storitev v ozadju.

Za namestitev osnovnega paketa Firejail lahko zaženete:

sudo apt-get install firejail

S tem enim samim ukazom boste imeli Vse, kar potrebujete za uporabo Firejaila iz terminalaZa začetek se ni treba dotikati konfiguracijskih datotek; s poznavanjem nekaj osnovnih ukazov lahko že zaprete svoje prve aplikacije.

Če ga želite uporabniku prijaznejši grafični vmesnik Za zagon in konfiguriranje aplikacij lahko namestite tudi Firetools, ki deluje kot zaganjalnik z ikono v sistemski vrstici in čarovnikom za namestitev.

sudo apt-get install firetools

Po namestitvi boste v meniju aplikacij videli dva nova vnosa: enega za pladenj z zaganjalniki in drugega za Čarovnik za konfiguracijo Firejaila, čarovnik po korakih, ki vam omogoča izbiro aplikacije, odločitev o uporabi privzetega profila ali profila po meri ter prilagajanje dovoljenj za imenike, zvok, omrežje in druge zaščite jedra.

Uporaba Firejaila iz terminala: osnove in še več

Najpogostejša uporaba Firejaila je za dodajte ukaz firejail v izvedljivo datoteko ki ga želite izolirati. Če ima program vnaprej določen profil, bo ta uporabljen samodejno; sicer bo uporabljena generična konfiguracija in vse, kar dodate prek ukazne vrstice.

Na primer, če želite odpreti Firefox znotraj peskovnika, bi bil ukaz:

firejail firefox

Upoštevajte, da je Firefox v distribucijah, kot je Ubuntu 22.04 in novejših, običajno na voljo kot paket Snap, zato Ta ukaz morda ne bo deloval neposrednoV tem primeru boste morali uporabiti različico, zapakirano z APT, ali prilagoditi profil pravilni poti binarne datoteke, ki se dejansko izvaja.

Zgodba je podobna tudi pri drugih namiznih aplikacijah. Nekaj ​​pogostih primerov bi bilo:

firejail gedit
firejail evince
firejail vlc
firejail transmission-gtk

Medtem ko so te aplikacije odprte, boste v nadzorniku virov videli, da Vsak proces se prikaže kot podrejeni proces firejailČe si želite ogledati celotno drevo procesov, ki se kadar koli izvajajo v peskovnikih, lahko uporabite:

firejail --tree

Če želite raziskati vse podprte možnosti (obstaja jih veliko za omrežje, X11, pasovno širino, profile po meri itd.), imate na voljo običajno možnost:

firejail --help

Konfiguracijski profili Firejaila: kje so in kako dostopati do njih

Prava moč Firejaila izvira iz njegove konfiguracijski profiliVsak profil opisuje, kako naj bo določen program izoliran: katere imenike namesti kot samo za branje ali za branje in pisanje, ali ima dostop do uporabniške mape, ali je dovoljeno 3D-pospeševanje, ali lahko dostopa do interneta, kateri DNS uporablja, ali posluša zvočni strežnik itd.

Globalni profili sistema so običajno shranjeni v /etc/firejail/Če si želite ogledati celoten seznam, ki je na voljo na vašem računalniku, lahko zaženete:

ls /etc/firejail/

Vsaka datoteka s končnico .profile določa pravila za program. Če želite spremeniti na primer privzeti profil Firefoxa, ga lahko uredite s svojim najljubšim urejevalnikom besedil tako, da ga zaženete s skrbniškimi pravicami:

sudo nano /etc/firejail/firefox.profile

V notranjosti boste našli direktive Firejail, ki nadzorujejo posebne sestave, dostop, zmogljivosti in možnostiZa razumevanje vseh razpoložljivih parametrov je zelo priporočljivo, da pregledate ustrezno stran priročnika za profile:

man 5 firejail-profile

Poleg spreminjanja obstoječih profilov lahko Ustvarite nove profile za programe, ki nimajo svojih.V teh primerih Firejail običajno uporablja bolj permisivno generično konfiguracijo. Če želite prilagoditi vedenje določene aplikacije, lahko definirate datoteko profila z njenim imenom in jo prilagodite svojim potrebam z uporabo uradne dokumentacije in primerov drugih uporabnikov.

Uporabniški profili: prepisovanje in razširitev standardnih nastavitev

Pogosto ni v našem interesu, da se dotikamo sistemski profili v /etc/firejailNe glede na to, ali želite olajšati prihodnje posodobitve ali imeti svoje različice za določenega uporabnika, Firejail podpira profile v imeniku konfiguracije uporabnika, ki lahko vključujejo globalni profil in dodajajo ali spreminjajo pravila.

Prvi korak je ustvariti mapo, v kateri bodo shranjeni ti uporabniški profili:

mkdir -p ~/.config/firejail/

Predstavljajte si, da želite VLC nikoli nimajo dostopa do interneta Ko ga odprete s programom Firejail, lahko ustvarite lokalni profil z imenom vlc.profile, ki vključuje globalni profil in doda omrežne omejitve. To storite tako, da odprete datoteko:

nano ~/.config/firejail/vlc.profile

In postavite nekaj takega:

include /etc/firejail/vlc.profile
net none

Direktive vključujejo Povlecite privzete nastavitve VLC in naslednja vrstica doda pravilo za blokiranje omrežja. Od takrat naprej zaženite Firejail VLC Uporabil bo tudi to uporabniško datoteko in zato VLC ne bo mogel dostopati do interneta, temveč bo ostal omejen na predvajanje lokalne vsebine.

Ne pozabite, da mora biti ime datoteke v vaši uporabniški mapi ujema se s standardnim imenom profila da ga lahko Firejail zazna in pravilno združi.

Napredne možnosti Firejaila: omrežje, zasebni način in viri

Poleg profilov Firejail ponuja dober arzenal parametri ukazne vrstice začasno prilagoditi delovanje peskovnika ob vsakem zagonu, ne da bi se bilo treba dotikati konfiguracijskih datotek.

  Kako korak za korakom ustvariti lokalno politiko ničelnega zaupanja z WDAC

Na primer, lahko onemogočite dostop do omrežja za določeno aplikacijo z možnostjo –net=none. Če želite zagnati VLC v izoliranem internetnem načinu, preprosto:

firejail --net=none vlc

Druga zelo močna lastnost je zasebni načinV tem načinu se program izvaja v začasnem datotečnem sistemu (tmpfs), ne vidi vaših dejanskih nastavitev ali osebnih datotek in vse, kar počne, izgine, ko se odjavite iz peskovnika. Idealen je za občutljive operacije, kot so dostop do spletnega bančništva, testiranje sumljivih spletnih mest ali zagon programske opreme, za katero ne želite, da pusti sledi.

Praktičen primer bi bil odpiranje Google Chroma z zasebni način in specifični DNS (na primer tiste iz Googla):

firejail --private --dns=8.8.8.8 --dns=8.8.4.4 google-chrome

V tem primeru se Chrome zažene s privzetimi nastavitvami, brez razširitev ali zgodovine brskanja, se izolira v okolju tmpfs in uporablja določene strežnike DNS. To je dokaj razumen način za zmanjšanje tveganj pri obisku občutljivih spletnih mest.

Firejail to omogoča tudi Aplikacije znotraj peskovnika uporabljajo svoj lasten vmesnik za virtualno omrežjez ločenim notranjim naslovom IP, tabelo ARP, ločenim požarnim zidom itd. z uporabo macvlan. Firefox lahko na primer zaženete na vmesniku eth0 z:

firejail --net=eth0 firefox

Če želite temu peskovniku dodeliti določen IP-naslov:

firejail --net=eth0 --ip=192.168.1.80 firefox

Upoštevajte to Ta funkcionalnost je trenutno običajno omejena na žična omrežja.in morda ne bo delovalo na brezžičnih vmesnikih, odvisno od konfiguracije in distribucije vašega sistema.

Nadzor pasovne širine in spremljanje peskovnika

Manj znana značilnost Firejaila je njegova sposobnost, da omeji pasovno širino aplikacij, ki jih izvajate v peskovniku. To je idealno za testiranje zmogljivosti, simulacijo počasnih povezav ali preprosto preprečevanje, da bi torrent odjemalec zasedel celotno pasovno širino.

Običajni vzorec je sestavljen iz dodelite ime peskovniku in nato z njim upravljajte iz drugega terminala. Na primer, zagon Firefoxa v peskovniku z imenom brskalnik, povezanem z eth0:

firejail --name=navegador --net=eth0 firefox

V drugem terminalu lahko nastavite omejitve nalaganja in prenosa z možnostjo –bandwidth, pri čemer določite ime peskovnika, vmesnik in vrednosti (v KB/s):

firejail --bandwidth=navegador set eth0 80 20

S temi parametri, Firefox bi bil omejen na hitrost prenosa 80 KB/s in hitrost nalaganja 20 KB/s.Če želite kasneje odstraniti te omejitve, lahko pravila pasovne širine počistite z:

firejail --bandwidth=navegador clear eth0

Da bi vedeli kadarkoli Katere aplikacije imaš nameščene v Firejailu?Ukaz `-list` prikaže seznam PID-ov, uporabnikov in povezanih programov:

firejail --list

In če te zanima ogled porabe virov (pomnilnik, CPU, število procesov) vsakega aktivnega peskovnika, imate na voljo:

firejail --top

Vnesite obstoječi peskovnik in privzeto uporabite Firejail

Obstajajo situacije, ki bi vas morda zanimale dostopanje »od znotraj« delujočega peskovnikaNa primer, za pregled konfiguracije omrežja, pregled nameščenih poti ali izvajanje skrbniških nalog. Firejail vam omogoča, da se pridružite določenemu peskovniku z uporabo možnosti `--join` in pri tem uporabite PID enega od procesov.

Če je na primer na izhodu iz seznam požarnih zapornikov Vidite, da ima Firefox PID 5394, v njegov peskovnik pa lahko vstopite z:

sudo firejail --join=5394

Firejail sam poskrbi za preklop na prvi podrejeni proces znotraj zapora in vas pusti v korenski lupini znotraj tega izoliranega okolja, od koder lahko izvajate potrebna preverjanja.

Druga zelo praktična možnost je Naj bo Firejail privzeti način za zagon katerega koli programa z razpoložljivim profilomTo lahko storite z ukazom firecfg, ki ustvari simbolne povezave v mapi /usr/local/bin, ki kažejo na /usr/bin/firejail za vsako aplikacijo s profilom.

sudo firecfg

Od te točke naprej se bo program, vsakič ko ga zaženete s seznama (iz grafičnega menija ali terminala), samodejno zagnal v peskovniku. Če želite to kdaj razveljaviti, preprosto odstranite simbolne povezave, ustvarjene v / usr / local / bin.

Če želite to vedenje uporabiti samo za enega specifična uporabaSimbolično povezavo lahko ustvarite sami. Na primer, če želite, da Firefox vedno uporablja Firejail:

sudo ln -s /usr/bin/firejail /usr/local/bin/firefox

Ko želite prenehati samodejno uporabljati Firejail za ta program, morate le izbrisati ustrezno simbolno povezavo v /usr/local/bin.

Alternativni grafični strežniki: Xpra in Xephyr s Firejailom

Ena od klasičnih kritik modela X11 je, da Ne ponuja dobre izolacije med grafičnimi aplikacijamiTo odpira vrata programom za beleženje tipk, posnetkom zaslona in drugim tehnikam vohunjenja od okna do okna. Firejail poskuša del te težave ublažiti tako, da aplikacijam omogoča delovanje na alternativnih grafičnih strežnikih.

Še posebej lahko uporabite Xpra in Xephyr kot ločene strežnike X, tako da zaprti program ne uporablja istega strežnika X kot preostali del namizja. Najprej morate v sistem namestiti ustrezne pakete:

sudo apt-get install xpra xserver-xephyr

Nato lahko zaženete aplikacijo tako, da z možnostjo –x11 določite strežnik X, ki ga želite uporabiti. Na primer, če želite zagnati VLC brez dostopa do omrežja in uporabiti Xephyr:

firejail --x11=xephyr --net=none vlc

Če želite, da se aplikacija izvaja v Xpri, bi bil ukaz podoben, le da bi spremenili parameter:

firejail --x11=xpra --net=none vlc

S to shemo, Zelo otežujete življenje uporabnikom keyloggerjev in zajemanja zaslona. da poskušajo vohuniti za tem, kaj počnete v tej specifični aplikaciji, saj ta ostane "povezana" s svojim grafičnim strežnikom, neodvisno od preostalega namizja.

Drugi pristopi k sandboxingu v Linuxu: Bubblewrap, Flatpak, AppArmor in kontejnerji

Čeprav je Firejail zelo priročen za uporabnike namiznih računalnikov, je v ekosistemu Linuxa več orodij, namenjenih izolirati procese in aplikacijeNobeden ni popoln in vsi imajo svoje prednosti in slabosti, vendar jih je vredno poznati, da bi v vsakem primeru izbrali najboljšega.

Mehurčkasta folija je alternativa, ki se osredotoča na ponujajo minimalistično izvajalno okolje sandboxBubblewrap je čistejši in ima manjšo površino za napad kot veliko orodje setuid. Težje ga je konfigurirati neposredno kot Firejail, vendar ga številne sodobne rešitve uporabljajo vmesno. Za razliko od Firejaila je filozofija Bubblewrapa izogibanje uporabi SUID-a, kadar koli je to mogoče, s čimer se zmanjša vpliv morebitnih notranjih ranljivosti.

  Ali je Windows Defender združljiv z drugimi protivirusnimi programi?

Projekti, kot je Bubblewrap, so zgrajeni na tem. Mehurčkasti zaporkaterega cilj je ponuditi nekoliko bolj uporabniku prijazno izkušnjo s poskusom odpravljanja nekaterih organizacijskih pomanjkljivosti Firejaila (bolj dosledni profili, jasnejša konfiguracija itd.). Slabost je, da gre za malo znano orodje z majhno bazo razvijalcev, zato Ni tako revidirano ali preizkušeno v bitkah kot tudi druge bolj priljubljene možnosti.

Po drugi strani pa je FlatpakŠiroko se uporablja za distribucijo izoliranih namiznih aplikacij. Čeprav se zanaša na tehnike peskovnika (imenski prostori, portali, deklarativna dovoljenja itd.), mnogi strokovnjaki poudarjajo, da Ni ga preprosto konfigurirati brez vrzeli.Poleg tega velja samo za aplikacije, pakirane kot Flatpak, zato če vaš program ne obstaja v tej obliki, ne bo deloval.

Na področju politik MAC, AppArmor in SELinux Omogočajo vam, da določite zelo natančna pravila o tem, katere datoteke, vtičnice, kapacitete in vire lahko uporablja vsak program. Teoretično so zelo zmogljivi in ​​običajno ponujajo višjo raven varnosti kot uporabniško definirane rešitve, vendar imajo isto težavo: Pravilna postavitev je zapletenaUstvarjanje robustnih profilov za vsako storitev zahteva čas, izkušnje in nenehno vzdrževanje.

V oblačnih in Kubernetes okoljih je zelo zanimiva alternativa kontejnerji, ki temeljijo na lahkih virtualnih strojih, kot so Kata Containers, ki jih Red Hat OpenShift integrira kot izbirno okolje, skladno z OCI. V tem modelu se vsaka delovna obremenitev izvaja na svojem izoliranem jedru znotraj lahkega virtualnega stroja, kar zagotavlja dodatna plast izolacije nad običajno ločitvijo po imenskih prostorih. Operater je odgovoren za namestitev, upravljanje in posodabljanje tega izvajalnega okolja znotraj gruče.

Varnost pomnilnika + peskovnik: pristop Fil-C in primer OpenSSH

Poleg namiznih računalnikov se na strežnikih izvajajo številne kritične aplikacije (kot so OpenSSH ali komponente platform SaaS) imajo koristi od kombiniranja varnost pomnilnika in globoko peskovnikovanjeTukaj pride v poštev pristop projektov, kot je Fil-C, ki predlaga varno implementacijo za C/C++, ki lahko dobro sobiva z izvornimi mehanizmi Linuxa.

OpenSSH v Linuxu že uporablja več tehnik izolacije: chroot (ustvari kletko chroot) za omejitev pogleda na datotečni sistem, izvajanje procesov kot neprivilegirani uporabniki in skupine, uporaba omejitev nastavitve za omejevanje virov (odpiranje datotek, ustvarjanje procesov itd.) in filtre seccomp-BPF ki dovoljujejo le nadzorovano podmnožico sistemskih klicev; vse ostalo povzroči, da se proces zaključi.

Izziv za izvajalne okolja, kot je Fil-C, je prilagoditi se tem omejitvam, ne da bi pri tem prekinili programNa primer, če zbiralnik smeti potrebuje niti v ozadju, morate pred aktiviranjem peskovnika zagotoviti, da so vse te niti ustvarjene in da so filtri seccomp nameščeni na vseh, ne le na glavni niti, pri čemer morate upoštevati tudi nastavitve, kot sta PR_SET_NO_NEW_PRIVS in PR_SET_SECCOMP.

Fil-C ponuja funkcije, kot so zlock_runtime_threads()Ti ukrepi vsilijo inicializacijo vseh potrebnih niti pred aktiviranjem peskovnika in blokirajo ustvarjanje novih niti po tem, s čimer zagotovijo, da se omejitve dosledno uporabljajo skozi celoten proces. Zahteva tudi manjše izjeme v filtrih seccomp, na primer omogočanje MAP_NORESERVE v mmap ali sistemskega klica sched_yield, ki sta potrebna za notranje upravljanje izvajalnega okolja.

Ta vrsta dela dokazuje, da Možno je kombinirati okolja, varna za pomnilnik, stroge peskovnike in visokoprofilne aplikacije. kot OpenSSH, ne da bi pri tem žrtvovali združljivost ali zmogljivost. Razvijalci Chroma in Mozille že leta dokumentirajo podobne prakse za svoja lastna okolja Linux, s čimer postavljajo standard za robustno obrambo v globino.

Praktični primeri uporabe: zaščita vašega brskanja in vsakdanjega življenja

Vse to se prevede v zelo vsakdanje scenarije za vsakega uporabnika Linuxa. Na primer, ko obiščete Spletna mesta za torrente, spletna mesta za prenos, polna pojavnih oken, pornografska spletna mesta ali portali s sumljivimi povezavamiVerjetnost naleta na skripte za kriptojacking, zlonamerne oglase ali poskuse prstnih odtisov je več kot razumna.

Preprost ukrep je sestavljen iz Zaprite brskalnik s Firejailom vsakič, ko se znajdete v teh težavah. Zaženite brskalnik z:

firejail chromium &

No dobro:

firejail firefox &

To vam daje dodatno plast brezskrbnosti. Znak & (&) na koncu je uporaben za ohranjanje brskalnika odprtega, tudi če pomotoma zaprete terminal. Če to združite z rešitvami, kot je Pi-hole v vašem lokalnem omrežju ali razširitvami za blokiranje skriptov in rudarjenja, Močno zmanjšate površino napada. pri brskanju po dvomljivih spletnih straneh.

Zasebni način Firejaila, profili, ki blokirajo dostop do občutljivih map, in uporaba nadzorovanega DNS-a za brskalnik, ki ga uporabljate za spletno bančništvo, so majhne odločitve, ki skupaj ... Naredijo razliko med resnim strahom in preprosto zaprto trepalnico..

Če pogledamo širšo sliko, je jasno, da sandboxing v Linuxu ni čarobna rešitev, je pa neverjetno močno orodje, če ga znate kombinirati: Firejail in njegovi profili za vsakodnevno uporabo, Bubblewrap in Flatpak za bolj nadzorovana okolja, AppArmor/SELinux in seccomp-BPF za kritične storitve ter tehnologije, kot so Kata Containers ali pomnilniško varna okolja, kot je Fil-C, pri gradnji kompleksnejših infrastruktur. Navsezadnje gre za gradnjo plasti, tako da tudi če ena odpove, Ostali bodo še naprej zagotavljali razumno varnost vašega sistema.