© Copyright 2026 Ferrantino Francesco

Ogni operazione eseguita da un processo Linux passa attraverso il kernel tramite una system call. Quando un processo vuole aprire un file, creare un processo o usare la rete, deve sempre chiedere al kernel tramite una chiamata di sistema.




Seccomp (Secure Computing Mode) è un meccanismo del kernel che permette di filtrare queste system call. In pratica definisce quali chiamate sono consentite e blocca tutte le altre. Se un processo prova a eseguire una system call non autorizzata, il kernel risponde con:
Operation not permitted

Questo significa che anche un processo root o dotato di capability può essere ulteriormente limitato a livello di system call. Seccomp aggiunge quindi un livello di protezione molto importante, soprattutto nei container.

Docker applica automaticamente un profilo seccomp di default ai container. Vediamo un esempio concreto di system call bloccata.

Avviamo un container Ubuntu:
frank@debian:~$ docker run -it ubuntu bash
root@container:/#
Installiamo il pacchetto keyutils per utilizzare il comando keyctl:
root@container:/# apt update
root@container:/# apt install -y keyutils
root@container:/# keyctl show
Operation not permitted
root@container:/# exit

Il comando keyctl utilizza la system call keyctl().Il profilo seccomp di default di Docker blocca questa chiamata di sistema, quindi il kernel la rifiuta.

Se avviamo il container disabilitando seccomp:
frank@debian:~$ docker run -it \
  --security-opt seccomp=unconfined \
  ubuntu bash
Installiamo nuovamente keyutils e riproviamo:
root@container:/# apt update
root@container:/# apt install -y keyutils
root@container:/# keyctl show

In questo caso la system call non viene più filtrata da seccomp.

Questo esempio dimostra che seccomp agisce esclusivamente a livello di system call. Anche se il processo è root all’interno del container se una chiamata non è consentita dal profilo seccomp il kernel la blocca con Operation not permitted.

Seccomp non è l’unico livello di sicurezza del kernel. Anche le capabilities e gli LSM come AppArmor su Ubuntu o Debian possono bloccare un’operazione. Tuttavia seccomp agisce esclusivamente a livello di system call indipendentemente dai privilegi del processo.

Ferrantino Francesco

Ferrantino Francesco

Cookie Policy

Leggi  informativa Cookie Policy
Il "Sito" utilizza i Cookie per rendere i propri servizi semplici e efficienti per l’utenza che visiona le pagine di franksoft.it

Disclaimer

L'autore degli articoli non si assume nessuna responsabilità per eventuali danni ai vostri dispositivi. Tutto ciò che viene spiegato è puramente a scopo dimostrativo.
Il presente sito non costituisce testata giornalistica in quanto non ha carattere periodico ed è aggiornato secondo la mia disponibilità e la reperibilità dei materiali ivi contenuti. Pertanto, non può essere considerato in alcun modo un prodotto editoriale ai sensi della Legge n. 62 del 7/03/2001.

Licenza

Tutte le immagini presenti nel sito appartengono ai rispettivi titolari e sono utilizzate senza alcuno scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale.
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale.  Licenza Creative Commons