Seccomp

seccomp
Informations
Créateur Andrea Arcangeli
Première version
État du projet sur la branche principale
Écrit en C
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Environnement Linux
Type Sandboxing
Licence GNU General Public License
Site web code.google.com/archive/p/seccompsandbox/wikis/overview.wiki

seccomp (abréviation pour secure computing mode) est une fonctionnalité de sécurité informatique du noyau Linux.

Description

Elle a été intégrée dans la branche principale du noyau Linux en version 2.6.12, qui est sorti le .

Seccomp permet à un processus d'effectuer une transition unidirectionnelle vers un état de sécurité dans lequel il ne peut plus effectuer d'appel système excepté exit(), sigreturn(), read() et write() sur des descripteurs déjà ouverts. Si le processus essaie d'effectuer un autre appel système, le noyau terminera le processus avec le signal SIGKILL ou SIGSYS,. Ce mécanisme ne virtualise pas les ressources systèmes mais isole entièrement les processus les uns par rapport aux autres.

Le mode seccomp peut être activé via l'appel système prctl en utilisant l'argument PR_SET_SECCOMP, ou (depuis le noyau Linux 3.17) via l'appel système seccomp. Le mode seccomp était auparavant activé en écrivant dans le fichier /proc/self/seccomp, mais cette méthode a été supprimée en faveur de prctl().

Dans certaines versions du noyau, seccomp désactive l'instruction x86 RDTSC, qui retourne le nombre de cycles processeur écoulé depuis la mise sous tension. Utilisée pour la mesure du temps avec une grande précision, cette instruction peut être utilisée comme outil dans des attaques par race condition ou dans des attaques par canal auxiliaire,.

seccomp-bpf est une extension de seccomp permettant le filtrage des appels système en utilisant une politique de sécurité configurable, implémenté grâce aux règles Berkeley Packet Filter. Elle est utilisée par OpenSSH et vsftpd, mais également par le navigateur web Google Chrome sur Chrome OS et GNU/Linux. (Dans ce cas, seccomp-bpf remplit le même objectif que le plus ancien systrace— qui ne semble plus être maintenu sous Linux).

Logiciels utilisant seccomp et seccomp-bpf

Notes et références

  1. ↑ « [Patch] seccomp: secure computing support » [archive du ], Linux kernel history, sur git.kernel.org via Internet Archive, Kernel.org git repositories, (consulté le )
  2. ↑ Jonathan Corbet, « A seccomp overview », lwn, (consulté le )
  3. ↑ « Documentation/prctl/seccomp_filter.txt » (consulté le )
  4. ↑ « Linux kernel 3.17, Section 11. Security », sur kernelnewbies.org, (consulté le )
  5. ↑ « seccomp: add "seccomp" syscall », kernel/git/torvalds/linux.git - Linux kernel source tree, kernel.org, (consulté le )
  6. ↑ Andrea Arcangeli, « [Patch 1 of 2] move seccomp from /proc to a prctl », (consulté le )
  7. ↑ Julien Tinnes, « Time-stamp counter disabling oddities in the Linux kernel », cr0 blog, (consulté le )
  8. ↑ « expand_stack SMP race local root exploit »
  9. ↑ « cache missing for fun and profit »
  10. ↑ « Cache attacks and Countermeasures: the Case of AES »
  11. ↑ Jonathan Corbet, « Yet another new approach to seccomp », lwn, (consulté le )
  12. ↑ Julien Tinnes, « A safer playground for your Linux and Chrome OS renderers », The Chromium Blog, (consulté le )
  13. ↑ Arjan van de Ven, « Re: [stable] [Patch 2/2] x86-64: seccomp: fix 32/64 syscall hole », Linux Kernel Mailing List, (consulté le )
  14. ↑ Linus Torvalds, « Re: [Patch 2/2] x86-64: seccomp: fix 32/64 syscall hole », Linux Kernel Mailing List, (consulté le )
  15. ↑ Markus Gutschke, « Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole », (consulté le )
  16. ↑ Markus Gutschke, « Re: [Patch 2/2] x86-64: seccomp: fix 32/64 syscall hole », Linux Kernel Mailing List, (consulté le )
  17. ↑ (en-US) « Firejail », sur Firejail (consulté le )
  18. ↑ Chris Evans, « Chrome 20 on Linux and Flash sandboxing », (consulté le )
  19. ↑ Julien Tinnes, « Introducing Chrome's next-generation Linux sandbox », cr0 blog, (consulté le )
  20. ↑ « Snap security policy » (consulté le )
  21. ↑ Chris Evans, « vsftpd-3.0.0 and seccomp filter sandboxing is here! », (consulté le )
  22. ↑ « Openssh 6.0 release notes » (consulté le )
  23. ↑ « MBOX » (consulté le )
  24. ↑ « LXD an "hypervisor" for containers (based on liblxc) » (consulté le )
  25. ↑ « Where We're Going With LXD » (consulté le )
  26. ↑ Guillaume Destuynder, « Firefox Seccomp sandbox », Mozilla Bugzilla, (consulté le )
  27. ↑ Guillaume Destuynder, « Firefox Seccomp sandbox », Mozilla Wiki, (consulté le )
  28. ↑ Caleb James DeLisle, « Added SECCOMP sandboxing and new admin API call to check if permissions are properly dropped », Github, (consulté le )
  29. ↑ « Tor ChangeLog »
  30. ↑ « Lepton image compression: saving 22% losslessly from images at 15MB/s », sur Dropbox Tech Blog (consulté le )
  31. ↑ « Kafel: A language and library for specifying syscall filtering policies »
  32. ↑ « Subgraph OS », sur Subgraph (consulté le )
  33. ↑ « LoganCIJ16: Future of OS », sur YouTube (consulté le )
  34. ↑ « The flatpak security model – part 1: The basics » (consulté le )
  35. ↑ « Minijail [LWN.net] », sur lwn.net (consulté le )
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « seccomp » (voir la liste des auteurs).

Liens externes