← Torna al Blog

Impara la Sicurezza Informatica con il Cyber Range di Esadecimale

Il progetto Esadecimale nasce con l'obiettivo di costruire e proteggere nel tempo un luogo di studio, di approfondimento e di condivisione della conoscenza informatica. Un luogo in cui poter esplorare le idee e le tecniche più belle dell'informatica. In questo grande contesto, trovo la sicurezza informatica particolarmente interessante e bella.

Per onorare questa missione è stata implementata una piattaforma per imparare la sicurezza informatica attraverso la pratica. La piattaforma infatti mette a disposizioni svariati ambienti da analizzare e attaccare. Gli ambienti sono realistici ed implementano i tipici pattern vulnerabili che si possono trovare durante le attività di penetration testing e/o di bug bounty. La piattaforma è disponibile a tutti gli abbonati del progetto all'URL: https://cyber.esadecimale.it.

https://cyber.esadecimale.it

Per capire le motivazioni che mi hanno portato ad implementare questa piattaforma poniamoci un'altra domanda: perché la sicurezza informatica è interessante?

Perché capire in profondità la natura delle vulnerabilità dei sistemi digitali, e capire come queste vengono sfruttate per attaccare i sistemi, forza la mente a capire cosa il software sta facendo veramente. Ci si ritrova davanti ad una montagna. Le nostre iniziali aspettative si devono scontrare sulla dura superficie della pietra. Si finisce stremati, ma con una consapevolezza più approfondita. È un continuo esercizio di approfondimento. Un esercizio di umilità, che ci espone alla terribile complessità del software moderno. Il software è una montagna da scalare.

Come possiamo creare i luoghi e i contesti necessari per comunicare la conoscenza nel campo della sicurezza informatica? Come facciamo a comunicare che cos'è una vulnerabilità, che effetti può avere su un software, come possiamo sfruttarla, e come possiamo sistemarla? Queste sono domandi importanti. E la risposta a tutte queste domande è una ed una sola: attraverso la pratica. Perché il software è un sistema troppo complesso per essere studiato solo tramite le idee. Per capire veramente come attaccare un sistema bisogna avere quel sistema tra le mani. Dobbiamo poter interagire con quel sistema. Dobbiamo poter giocare con quel sistema, per vedere come si comporta, come utilizza il nostro input per calcolare il suo output e cosa accade al suo interno durante questo calcolo. La sicurezza informatica non è una materia accademica nel senso classico. Non la possiamo solo studiare dai libri. Le parole ingannano la mente. La dobbiamo studiare nella pratica. Nell'interazione con la complessità del software.

Proprio per queste ragioni, nel corso del tempo, con la crescente popolarità della sicurezza informatica, varie piattaforme sono state sviluppate proprio per offrire degli ambienti in cui poter imparare la sicurezza informatica in modo pratico, attraverso l'interazione con ambienti vulnerabili. Questi luoghi sono chiamati in diversi modi:

  • Hacking labs
  • CTF platform
  • Cyber range
  • ...

Da notare in particolare il termine CTF, che sta per "Capture The Flag" e rappresentano una popolare categoria di sfide informatica. In queste sfide abbiamo un sistema vulnerabile e una flag da catturare. La flag è una sequenza di caratteri, come ad esempio

CTF{d0nt_trust_us3r_1nput_4e2f9a}

In una CTF dobbiamo capire come interagire con il sistema, capire in quale modo specifico il sistema è vulnerabile, e mettere tutte queste informazioni assieme per sfruttare la vulnerabilità ed ottenere la flag. Alcune volte le vulnerabilità possono essere più di una e devono essere collegate in un modo specifico. Si dimostra la propria capacità di attaccare il sistema andando a leggere il valore della flag. Personalmente ho imparato tanto giocando alle CTF e interagendo con questo tipo di piattaforme. Ed è proprio questo che mi ha portato a svilupparne una per supportare l'obiettivo principale del progetto Esadecimale.

Al momento del lancio la piattaforma offre 22 sfide divise in 4 categorie:

  • Web

Sfide in cui abbiamo una o più applicazioni web vulnerabili. Certe volte abbiamo il codice delle applicazioni, altre volte ci possiamo solo interagire dall'esterno.

  • Linux

Nelle sfide linux abbiamo un accesso diretto ad un server linux come utenti non privilegiati e dobbiamo sfruttare delle tecniche di Privilege Escalation per diventare amministratori di sistema.

  • CVE

Le sfide CVE portano del software open-source reale su cui sono state trovate delle vulnerabilità interessanti e significative. L'obiettivo è capire la natura della vulnerabilità e sfruttarla.

  • Machine

La categoria machine invece offre delle macchine complete da attaccare. Queste sfide sono anche dette boot2root, perché l'obiettivo è muoversi dall'esterno fino a diventare root della macchina. Sono le sfide più complesse ma anche le più divertenti.

La piattaforma è disponibile con l'abbonamento base. Per accedere alla piattaforma possiamo effettuare il login dal portale https://auth.esadecimale.it. Al primo login la piattaforma ci chiede di confermare il nickname.

Scelta del nickname

Una volta dentro vediamo la pagina con la lista delle sfide disponibili. Notiamo il menu in alto a destra, utilizzato per navigare tra le varie pagine, e il menu a sinistra, che permette di navigare la pagina delle sfide.

Lista delle sfide

Cliccando su ciascuna sfida è disponibile una breve descrizione della sfida. Nella stessa pagina è anche possibile attivare una istanza della sfida.

pagina dettaglio di una sfida

Una volta attivata l'istanza in cima ad ogni pagina della piattaforma vediamo i dettagli della istanza attivata, tra cui indirizzo IP assegnato all'ambiente vulnerabile e durata temporale.

Informazioni sull'istanza creata

L'indirizzo IP mostrato non è un indirizzo IP pubblico accessibile utilizzando internet normale. Ci possiamo accedere solamente dopo esserci connessi ad una rete VPN tramite wireguard. Tutte le informazioni sulla connessione VPN sono riportate nella pagina Account -> Connection.

Pagina connessione VPN

Per connetterci alla VPN è possibile scaricare il file di configurazione e utilizzare wireguard. I comandi di interesse sono riportati in basso nella stessa pagina.

Comandi wireguard

Una volta connessi ci viene assegnato un indirizzo IP. Questo viene mostrato sempre in alto in ogni pagina della piattaforma.

Connessione alla VPN

A questo punto entra in gioco lo specifico laboratorio. Dobbiamo capire come funziona, rispetto a cosa è vulnerabile e come sfruttare la vulnerabilità per ottenere la flag.

Il laboratorio gambling-1

Ogni laboratorio è diverso. Alcuni sono più facili di altri. Alcuni sono più realistici di altri. L'idea è la stessa: imparare attraverso l'atto pratico. Voglio imparare come attaccare un sistema? Devo attaccare quel sistema. Voglio imparare come difendere un sistema? Devo difendere quel sistema. Voglio imparare come scrivere codice sicuro? Devo prendere del codice vulnerabile e sistemare le vulnerabilità.

Ciascuno scenario vulnerabile per essere completato richiede l'applicazione di una serie di tecniche. Inizialmente le tecniche richieste per i vari laboratori non sono mostrate.

Le tecniche richieste sono i quadratini con ?

Risolvendo i laboratori, queste tecniche vengono mostrate in modo esplicito. Questo è utile per ripassare e ritornare sui propri passi. Il primo passo è quello verso l'ignoto. Il secondo torna indietro, per capire cosa è successo. Il terzo va avanti, ma questa volta con una nuova consapevolezza.

Risolvendo gli scenari sblocchiamo le skill

È possibile visualizzare la lista completa delle tecniche nella pagina dedicata. Sono raggruppate per categorie di riferimento.

Pagina delle tecniche

Per ogni tecnica abbiamo una specifica pagina che contiene una descrizione della tecnica con degli esempi pratici e con la lista di laboratori in cui quella tecnica è richiesta.

Dettaglio sul path traversal

È infine presente una pagina che tiene traccia del progresso nella piattaforma.

Progressione in piattaforma

Proprio in questi giorni ad esempio è stata pubblicata la vulnerabilità Copy Fail (CVE-2026-31431). L'attacco sfrutta un socket del kernel AF_ALG, utilizzato per accedere al sottosistema crittografico. Nello specifico si utilizza l'algoritmo AEAD authencesn, utilizzato per implementare gli extended sequence numbers di IPsec, assieme alla primitiva splice. Il side effect è molto potente: corruzione deterministica di 4 byte della page cache di qualsiasi file leggibile da un utente non privilegiato. L'utente può scegliere il contenuto con cui corrompere la page cache e anche l'offset da cui partire. Tutto questo permette ad un utente non privilegiato di corrompere un programma SUID caricato in memoria, come ad esempio il classico /usr/bin/su, per ottenere una shell da root.

In piattaforma ho inserito la sfida "Copy Fail" in onore a questo attacco. Nella sfida però il programma /usr/bin/su non è configurato con il bit SUID, e dunque non può essere utilizzato come nel PoC originale. Bisogna analizzare l'exploit originale e modificarlo per diventare root in un altro modo.

Riesci a diventare root?

Questo, per adesso, è tutto. In futuro espanderò le sfide disponibili, e voglio anche introdurre delle roadmaps per aiutare lo studente nell'ottenere le più classiche certificazioni (come la OSCP).

Viviamo nell'era delle parole. Le parole sono belle, semplici, suscistano in noi grandi emozioni. Ma imparare è anche altro. Imparare significa andare oltre la parola. E cosa c'é oltre la parola? C'è la montagna. O meglio, ci sono le montange. Alcune più alte di altre, ma tutte, anche la più piccola, a loro modo significative. Nel contesto dell'apprendimento ogni atto pratico è prezioso.

Ti ringrazio per la lettura e buona fortuna nel tuo percorso di apprendimento!

Leonardo Tamiano.