Cos'è#
Definisce i tre livelli di controllo (Document Root, Configurazione, Permessi) che separano i file pubblici da quelli privati in un server web, includendo l'isolamento moderno via Container.
I 3 Pilastri della Visibilità Tradizionale#
graph TD
User[Utente Web] -->|Richiesta URL| S1[Livello 1: Document Root]
S1 -->|Mappatura Path| S2[Livello 2: Configurazione Server]
S2 -->|Regole di Accesso| S3[Livello 3: Permessi File System]
S3 -->|Lettura Fisica| Disk[(File su Disco)]
style S1 fill:#f9f,stroke:#333
style S2 fill:#bbf,stroke:#333
style S3 fill:#bfb,stroke:#333
1. Document Root (Il Recinto Logico)#
Ogni web server (Nginx, Apache) definisce una cartella radice (es. /var/www/html/).
- Funzione: Tutto cio' che sta fuori da questo percorso e' invisibile al web server per impostazione predefinita.
- Rischio SOC: Il Path Traversal serve proprio a "saltare" questo recinto logico.
2. Configurazione del Server (Le Regole di Esclusione)#
Anche dentro la Document Root, alcuni file devono restare privati (es. .env, .git, .htaccess).
- Funzione: Regole specifiche (es.
deny all) impediscono al server di servire file sensibili anche se sono tecnicamente nella cartella pubblica. - Rischio SOC: Errori di configurazione che permettono di scaricare file di ambiente o backup (
config.php.bak).
3. Permessi del File System (Il Recinto Fisico)#
Il web server e' un processo che gira come un utente specifico (es. www-data).
- Funzione: Il server puo' leggere solo i file per cui l'utente
www-dataha i permessi di lettura (r). - Rischio SOC: Se il server gira come
root, questo recinto sparisce. Se un file sensibile (es./etc/shadow) ha permessi troppo permissivi, il server puo' esporlo.
Il 4° Pilastro: Isolamento via Container (Docker)#
Quando un'applicazione gira in Docker, viene aggiunto un quarto recinto: il Container Namespace.
graph LR
subgraph Host
subgraph Container
App[Web Server]
end
Socket[docker.sock]
Secret[Host Files /etc/shadow]
end
App -.-x Secret
App -->|Se montato| Socket
Socket -->|Controllo Totale| Host
L'Attacco al Docker Socket (Evasione Totale)#
Se un developer monta il file /var/run/docker.sock dentro il container (spesso per monitoraggio o automazione), rompe l'isolamento.
- Il Meccanismo: Il socket e' l'API di comando di Docker. Un attaccante che compromette il Web Server puo' inviare comandi al socket per creare un nuovo container "privilegiato" che monta l'intero filesystem dell'Host.
- Visione SOC: In questo scenario, l'attaccante passa dall'essere un utente web limitato all'essere Root sull'Host fisico, rendendo inutili tutti i recinti precedenti.
Tabella di Sintesi: Switch Mentale#
| Strato | Visione Developer (Build) | Visione SOC Analyst (Investigate) |
|---|---|---|
| Doc Root | Dove metto il codice. | Punto di partenza per il Traversal. |
| Config | "Spero che funzioni." | Verifico se i file .env sono scaricabili. |
| Permessi | "Metto 777 se ho errori." | "777 e' una Critical Vulnerability." |
| Docker | "E' isolato per magia." | "Il socket e' esposto? Se si', il container e' un'illusione." |
Collegato a#
- path-traversal — Come saltare il Livello 1
- docker — Funzionamento del Livello 4
- linux-permissions — Dettagli sul Livello 3
- system — Categoria generale


