Seccomp - Seccomp

seccomp
Původní autořiAndrea Arcangeli
První vydání8. března 2005; před 15 lety (2005-03-08)
NapsánoC
Operační systémLinux
TypSandboxing
LicenceGNU General Public License
webová stránkakód.Google.com/archiv/ str/ seccompsandbox/ wiki/ přehled.wiki

seccomp (zkratka pro zabezpečený výpočetní režim) je zabezpečení počítače zařízení v Linuxové jádro. seccomp umožňuje a proces provést jednosměrný přechod do „zabezpečeného“ stavu, kde žádný nemůže provést systémová volání až na výstup(), sigreturn (), číst() a psát si() již otevřené deskriptory souborů. Pokud se pokusí o jakékoli jiné systémové volání, jádro ukončí proces pomocí SIGKILL nebo SIGSYS.[1][2] V tomto smyslu tomu tak není virtualizovat zdroje systému, ale proces od nich úplně izoluje.

režim seccomp je povolen pomocí prctl (2) systémové volání pomocí PR_SET_SECCOMP argument, nebo (od linuxového jádra 3.17[3]) prostřednictvím seccomp (2) systémové volání.[4] režim seccomp se dříve povoloval zápisem do souboru, / proc / self / seccomp, ale tato metoda byla odstraněna ve prospěch prctl ().[5] V některých verzích jádra seccomp zakáže RDTSC x86 instrukce, která vrací počet uplynulých cyklů procesoru od zapnutí, použitá pro vysoce přesné načasování.[6]

seccomp-bpf je rozšíření seccomp[7] který umožňuje filtrování systémových volání pomocí konfigurovatelné zásady implementované pomocí Filtr paketů Berkeley pravidla. Používá se OpenSSH a vsftpd stejně jako Google Chrome / Chrom webové prohlížeče zapnuty Chrome OS a Linux.[8] (V tomto ohledu seccomp-bpf dosahuje podobné funkce, ale s větší flexibilitou a vyšším výkonem, jako starší systrace —Který se zdá, že již není podporován Linux.)

Dějiny

seccomp byl poprvé navržen Andrea Arcangeli v lednu 2005 pro použití na veřejnosti grid computing a byl původně zamýšlen jako prostředek bezpečného běhu nedůvěryhodný programy vázané na výpočet. To bylo sloučeno do Hlavní linka linuxového jádra v jádře verze 2.6.12, která byla vydána 8. března 2005.[9]

Software využívající seccomp nebo seccomp-bpf

  • Android používá v zygote filtr seccomp-bpf Android 8.0 Oreo.[10]
  • systemd je karanténa možnosti založené na seccomp.[11]
  • QEMU, Rychlý emulátor, hlavní součást moderní virtualizace společně s KVM používá seccomp na parametru - pískoviště[12]
  • Přístavní dělník - software, který umožňuje spouštět aplikace uvnitř izolovaných kontejnerů. Docker může přidružit profil seccomp ke kontejneru pomocí --security-opt parametr.
  • Arcangeli's CPUShare byl na chvíli jediným známým uživatelem seccomp.[13] Psaní v únoru 2009, Linus Torvalds vyjadřuje pochybnosti o tom, zda seccomp skutečně někdo používá.[14] Nicméně, a Google inženýr odpověděl, že Google zkoumá pomocí seccomp pro karanténa své Chrome webový prohlížeč.[15][16]
  • Firejail je open source linuxový sandbox program, který využívá Jmenné prostory Linuxu, Seccomp a další funkce zabezpečení na úrovni jádra v karanténě Linux a Víno aplikace.[17]
  • Od verze Chrome 20 se na sandbox používá seccomp-bpf Adobe Flash Player.[18]
  • Od verze Chrome 23 se seccomp-bpf používá k izolování vykreslovacích modulů.[19]
  • Přichytit určit tvar jejich karantény aplikací pomocí „rozhraní“, která se snapd překládá do seccomp, AppArmor a další bezpečnostní konstrukce[20]
  • vsftpd používá sandcoming seccomp-bpf od verze 3.0.0.[21]
  • OpenSSH podporuje seccomp-bpf od verze 6.0.[22]
  • Mbox používá ptrace spolu s seccomp-bpf vytvořit bezpečné sandbox s menší režií než samotný ptrace.[23]
  • LXD, an Ubuntu "hypervisor "pro kontejnery[24][25]
  • Firefox a Firefox OS, které používají seccomp-bpf[26][27]
  • Tor podporuje seccomp od 0.2.5.1-alfa[28]
  • Lepton, a JPEG kompresní nástroj vyvinutý společností Dropbox používá seccomp[29]
  • Kafel je konfigurační jazyk, který převádí čitelné zásady na seccompb-bpf bytecode[30]
  • Subgraph OS používá seccomp-bpf[31][32]
  • Flatpak používá seccomp pro izolace procesu[33]
  • Bubblewrap je lehká sandboxová aplikace vyvinutá z Flatpak[34]
  • minijail[35] používá seccomp pro izolaci procesu[36]

Reference

  1. ^ Corbet, Jonathan (02.09.2015). "Přehled seccomp". lwn. Citováno 2017-10-05.
  2. ^ „Dokumentace / prctl / seccomp_filter.txt“. Citováno 2017-10-05.
  3. ^ „Linux kernel 3.17, Oddíl 11. Zabezpečení“. kernelnewbies.org. 2013-10-05. Citováno 2015-03-31.
  4. ^ "seccomp: přidat" seccomp "syscall". kernel / git / torvalds / linux.git - zdrojový strom jádra Linuxu. kernel.org. 2014-06-25. Citováno 2014-08-22.
  5. ^ Arcangeli, Andrea (14.06.2007). „[PATCH 1 of 2] move seccomp from / proc to a prctl“. Citováno 2013-08-02.
  6. ^ Tinnes, Julien (2009-05-28). "Počítadlo časových razítek zakazující zvláštnosti v linuxovém jádře". cr0 blog. Citováno 2013-08-02.
  7. ^ Corbet, Jonathan (11.01.2012). „Ještě další nový přístup k seccomp“. lwn. Citováno 2013-08-02.
  8. ^ Tinnes, Julien (19. 11. 2012). „Bezpečnější hřiště pro vaše vykreslovací systémy Linux a Chrome OS“. The Chrom Blog. Citováno 2013-08-02.
  9. ^ „[PATCH] seccomp: podpora bezpečných výpočtů“. Historie jádra Linuxu. Úložiště git serveru Kernel.org. 8. 3. 2005. Archivovány od originál dne 15. 4. 2013. Citováno 2013-08-02.
  10. ^ „Filtr Seccomp v systému Android O“. Blog vývojářů pro Android.
  11. ^ "systemd.exec - konfigurace prostředí spuštění". freedesktop.org. Citováno 2017-10-14.
  12. ^ Otubo, Eduardo (2017-09-15). „Žádost o stažení nového modelu QEMU Sandboxing“. archiv adresáře qemu-devel.
  13. ^ van de Ven, Arjan (2009-02-28). „Re: [stable] [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole“. Linux Kernel Mailing List. Citováno 2013-08-02.
  14. ^ Torvalds, Linus (2009-02-28). „Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole“. Linux Kernel Mailing List. Citováno 2013-08-02.
  15. ^ Gutschke, Markus (06.05.2009). „Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole“. Citováno 2013-08-02.
  16. ^ Gutschke, Markus (06.05.2009). „Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole“. Linux Kernel Mailing List. Citováno 2013-08-02.
  17. ^ „Firejail“. Firejail. Citováno 2016-11-26.
  18. ^ Evans, Chris (04.07.2012). „Chrome 20 v systému Linux a Flash Sandboxing“. Citováno 2013-08-02.
  19. ^ Tinnes, Julien (06.09.2012). „Představujeme sandbox Linuxu nové generace pro Linux“. cr0 blog. Citováno 2013-08-02.
  20. ^ „Snap security policy“. Archivovány od originál dne 2017-02-04. Citováno 2017-02-03.
  21. ^ Evans, Chris (04.04.2012). „vsftpd-3.0.0 a filtrování izolovaného prostoru seccomp je tady!“. Citováno 2013-08-02.
  22. ^ „Poznámky k verzi openssh 6.0“. Citováno 2013-10-14.
  23. ^ „MBOX“. Citováno 2014-05-20.
  24. ^ „LXD„ hypervisor “pro kontejnery (na základě liblxc)“. Citováno 2014-11-08.
  25. ^ „Kam jdeme s LXD“. Citováno 2014-11-08.
  26. ^ Destuynder, Guillaume (2012-09-13). „Sandbox Firefoxu Seccomp“. Mozilla Bugzilla. Citováno 2015-01-13.
  27. ^ Destuynder, Guillaume (2012-09-13). „Sandbox Firefoxu Seccomp“. Mozilla Wiki. Citováno 2015-01-13.
  28. ^ "Tor ChangeLog".
  29. ^ „Leptonova komprese obrazu: bezztrátová úspora 22% z obrázků rychlostí 15 MB / s“. Dropbox Tech Blog. Citováno 2016-07-15.
  30. ^ „Kafel: Jazyk a knihovna pro určení zásad filtrování syscall“.
  31. ^ „Subgraph OS“. Podgraf. Citováno 2016-12-18.
  32. ^ „LoganCIJ16: Budoucnost OS“. Youtube. Citováno 2016-12-18.
  33. ^ „Model zabezpečení flatpak - část 1: Základy“. Citováno 2017-01-21.
  34. ^ "bublinková folie". Citováno 2018-04-14.
  35. ^ https://www.chromium.org/chromium-os/developer-guide/chromium-os-sandboxing
  36. ^ „Minijail [LWN.net]“. lwn.net. Citováno 2017-04-11.

externí odkazy