Skip to main content
  1. Concetti/

I Confini della Visibilità: Pubblico vs Privato

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

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-data ha 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
#

StratoVisione Developer (Build)Visione SOC Analyst (Investigate)
Doc RootDove 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

Related