Skip to main content
  1. Concetti/

Link Orfani (Broken Links)

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

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)
#

  1. 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.

  2. 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.

  3. 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/null

Scenario 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
#

Related