Cos'è#
Un collegamento simbolico (Symlink) il cui percorso di destinazione non esiste più sul filesystem. Il link punta al "nulla".
Come funziona#
A differenza degli Hard Link, il Soft Link è solo un file di testo che contiene un indirizzo. Se la "casa" all'indirizzo viene demolita, il link rimane ma è inutile.
STATO FUNZIONANTE STATO "BROKEN" (ORFANO)
[ Symlink ] [ Symlink ]
│ │
│ (punta a...) │ (punta a...)
▼ ▼
[/tmp/pass.txt] ──► [DATI] [/tmp/pass.txt] ──► [ VUOTO / ERROR ]
(File rimosso con rm)Il Problema del "Puntatore Cieco"#
Il link simbolico non sa se i dati esistono ancora sotto altri nomi (Hard Links). Lui cerca solo il nome specifico che gli è stato dato. in sostanza non si autoaggiorna con uno stesso inode, ad esempio un altro link simbolico hard che ha lo stesso inode del file cancellato
[ LINK.txt ] ----> cerca "foto.jpg" ----> [ NON TROVATO ]
|
(Ma i dati della foto esistono ancora |
sotto il nome "backup.jpg"!) <-------------------/La trappola del Percorso (Path)#
Il link simbolico fallisce se il "percorso padre" cambia, perché esso è solo una stringa di testo memorizzata in un Inode.
Esempio Assoluto vs Relativo#
SCENARIO: File in /A/B/file.txt
1. LINK ASSOLUTO: "punta a /A/B/file.txt"
-> Rinomino A in Z
-> RISULTATO: ROTTO (Cerca ancora /A/...)
2. LINK RELATIVO: "punta a ../B/file.txt"
-> Sposto l'intera struttura in /NuovaCartella/
-> RISULTATO: FUNZIONA (La relazione tra cartelle è preservata)Perché sono critici per la Security (Blue Team)#
Indicatori di Compromissione (IoC): Un attaccante potrebbe aver rimosso un toolkit malevolo ma aver dimenticato i link simbolici che lo richiamavano. Trovarli aiuta a ricostruire i percorsi usati dall'intruso.
Symlink Race Condition: Un attaccante può creare un link orfano che punta a un file che non esiste ancora (es.
/etc/shadow.bak). Se un processo privilegiato (root) crea quel file in seguito, l'attaccante avrà già un link pronto per accedervi.Dirottamento (Hijacking): Se un software si fida di un link orfano, un utente malintenzionato può creare un file malevolo con lo stesso nome della destinazione mancante per "riempire il vuoto" e far eseguire codice al software.
Come identificarli nel terminale#
ls: Spesso appaiono in rosso lampeggiante (se il terminale è configurato).
find: Il metodo più potente è usare il test sul tipo esteso.
Bash
# Cerca link orfani partendo dalla radice
find / -xtype l 2>/dev/nullScenario Reale#
Un server web smette di funzionare dopo un aggiornamento. L'analista scopre che il file di configurazione cercava il certificato SSL tramite un link simbolico current_cert.pem. Il file reale era stato rinominato, rendendo il link orfano e bloccando l'avvio del servizio.
Dove l'ho incontrato#
- bandit-11 — Studio dei sistemi di puntamento.
Collegato a#
file — categoria
link-hard-vs-symbolic — base teorica
find — strumento di rilevamento


