L'esperienza del TeamItaly al Campionato europeo di Cyber Security
Cosa sono le Capture The Flag
Per quanto possa forse sembrare strano, nel mondo dell'informatica esistono diverse competizioni, sia a squadre, sia per singoli. In particolare, in ambito di cyber security esistono le cosiddette "CTF" (ovvero Capture The Flag), giocate da moltissimi team di tutto il mondo, accademico e non. In queste gare, ogni squadra si sfida nell'attaccare un certo numero di servizi informatici - può trattarsi di siti web, programmi, applicazioni per telefono, sistemi crittografici e molto altro - con l'idea che ognuno di questi simuli un sistema reale, con conseguenti vulnerabilità reali. Una volta individuata una di queste vulnerabilità, l'obiettivo consiste nell'estrarre da questo sistema dei dati sensibili, in particolare la cosiddetta "flag", una stringa di caratteri ben definita (da cui il nome "Capture The Flag"). Solo con la flag infatti si può dimostrare di essere riusciti nell'attacco e di aver risolto il problema ("challenge") presentato.
Per gli appassionati di serie tv, nell'episodio 3x1 di Mr Robot, Elliot prende parte proprio a una di queste competizioni, in particolare risolvendo (in maniera un po' romanzata, ma tecnicamente corretta) una challenge realmente presentata a un evento del 2012.
Scopo di queste gare non è solo dimostrare il proprio valore e cercare di far meglio degli altri, ma soprattutto quello di condivisione - di esperienza e conoscenze - al fine di imparare sempre qualcosa di nuovo e migliorare le proprie competenze. Una volta terminata la competizione, infatti, chi ha risolto una sfida è solito pubblicare una "writeup", ovvero una soluzione che spiega la vulnerabilità e come si è arrivati a sfruttarla. In questo modo anche chi non è riuscito a risolvere nulla è in grado di imparare dai più bravi per potersi migliorare.
Il progetto CyberChallenge.IT
In questo ambito nasce Cyberchallenge.IT, un programma di addestramento nazionale di Cyber Security, a cui possono iscriversi giovani dai 16 a 24 anni. Il programma comprende 3 mesi di training, ogni settimana diverse ore di lezione e di esercitazioni in cui si mette in pratica la teoria cercando di risolvere le challenge che sono a disposizione sul portale web.
L'addestramento è suddiviso in moduli, la cui difficoltà cresce con il passare del tempo, e in categorie: web security, cryptography, software security, network security e hardware security.
Il programma CyberChallenge è qualcosa che ogni appassionato di informatica dovrebbe provare. Non serve essere già esperti di cyber security, il percorso di formazione parte dall'inizio; servono solo un po' di basi di logica, programmazione in generale e tanta passione. Non è una passeggiata, le ore di lezione non sono poche (considerato il fatto che generalmente chi partecipa segue anche altre lezioni all'università o a scuola) e le challenge a disposizione sono tante quindi riuscire a stare al passo richiede un po' di tempo.
Nonostante questo però, il format CTF è molto accattivante, perché quando ci si mette davanti a una nuova challenge si parte già dal presupposto che si imparerà qualcosa. Si comincia ad esplorare una challenge, si guarda quello che si ha a disposizione, come per esempio un sito web, il codice sorgente di un programma o un file eseguibile, e si inizia a cercare una vulnerabilità. Bisogna avere pazienza, alcune challenge possono richiedere ore per essere risolte, ma il fatto di sapere che una vulnerabilità c'è, e che devi solo trovarla, motiva a rimanere piantati davanti allo schermo con tanto piacere. Una volta sfruttata la vulnerabilità trovata e ottenuta la flag, si ottengono in cambio dei punti attraverso i quali viene stilata una classifica: risolvere le challenge stimola quindi anche lo spirito di competizione.
Dopo la fine dei 3 mesi di training, ogni sede che ha preso parte al programma organizza una CTF locale, in modo tale da selezionare 6 persone per creare la squadra della sede. Ognuna di queste squadre partecipa infine alla competizione finale nazionale. Quest'anno la sede di Genova si è classificata al terzo posto e due di noi sono stati selezionati per entrare a fare parte di TeamItaly, la squadra nazionale di cyber security, che viene creata a partire da tutti i giovani che hanno partecipato a CyberChallenge nell'edizione corrente e in quelle precedenti.
Il ritiro a Torino
La squadra, 20 ragazzi da tutta Italia, è stata invitata a Torino per un ritiro in vista del campionato europeo di cyber security (ECSC). Durante questa settimana ci sono state per prima cosa diverse attività di team building, volte a farci prendere confidenza con gli altri membri della squadra; le CTF possono anche essere gare individuali, ma molto spesso si giocano a squadre ed è davvero importante in questo ambito imparare a collaborare con i propri compagni; quindi, è necessario riuscire a creare dei legami con gli altri, capire come comunicare al meglio e come ottimizzare il lavoro sulla base delle capacità di tutti.
Oltre al team building, abbiamo avuto la possibilità di giocare una CTF internazionale tutti insieme, per due giorni consecutivi, come una vera squadra.
Il ritiro TeamItaly è stato davvero molto apprezzato da tutti. In una settimana non è certamente possibile imparare chissà cosa dal punto di vista tecnico, il tempo è poco e ognuno parte da un livello diverso; quindi, non è facile conciliare le necessità di tutti. Questo tipo di esperienze, però, danno a molte persone l'opportunità di arricchirsi tantissimo conoscendosi a vicenda, scambiando idee, opinioni e passioni. La cosa migliore è che ci si confronta con persone totalmente diverse, probabilmente persone con cui, nella vita di tutti i giorni, sarebbe poco probabile stringere un legame; in questo contesto, però, a nessuno importa perché tutti hanno la stessa passione comune, e questo è tutto quello che conta!
L'European Cyber Security Challenge
Come accennato, scopo primario del ritiro è stato quello di selezionare e preparare le persone (in particolare 10) che avrebbero rappresentato l'Italia alle gare europee. Infatti, data l'importanza sempre più fondamentale della sicurezza informatica, ormai pervasiva nella vita di tutti i giorni, e la grave mancanza di persone formate in questo campo, l'ENISA, l'agenzia dell'Unione Europea per la cybersecurity, ha creato nel 2015 l'European Cyber Security Challenge (ECSC), una competizione annuale in cui partecipano diverse nazioni europee, con team di 10 persone l'uno. Ogni anno l'evento viene organizzato da un Paese diverso, per esempio nel 2018 si è svolto a Londra, quest'anno (2021) a Praga, e nel 2024 si svolgerà in Italia.
La competizione di quest'anno si è svolta nell'ultima settimana di settembre e, come in ogni edizione, si è distribuita in due giornate di gara, dalla durata di 8 ore ciascuna. A queste giornate si aggiungono alcuni altri eventi:
- la cerimonia di apertura, in cui ogni squadra porta un video di presentazione;
- la cerimonia di premiazione;
- alcune altre occasioni sociali, purtroppo quest'anno un po' carenti (presumibilmente a causa delle restrizioni sanitarie), in cui si possono conoscere persone di altri team.
Siamo arrivati a Praga il 27 con un po' di pressione addosso: nell'ultima edizione, infatti, (Bucarest 2019, quella del 2020 era saltata causa pandemia) avevamo raggiunto il secondo posto e volevamo a tutti i costi mantenere la nostra presenza sul podio, chiaramente sperando di poterla anche migliorare.
Una volta iniziata la gara, però, ci siamo trovati un po' in difficoltà: le categorie delle challenge non rispecchiavano completamente le nostre specializzazioni, e alcuni di noi si sono ritrovati a dover affrontare sfide in ambiti in cui non siamo molto esperti. Data l'incredibile vastità del mondo dell'informatica e della cybersecurity, infatti, ogni persona tende a specializzarsi in una determinata categoria, quali possono essere web, crittografia, software eccetera. La suddivisione delle challenge nelle due giornate, però, non era stata studiata in modo da distribuire equamente le sfide per tipologia, e alcuni di noi non hanno potuto concentrarsi completamente su ciò in cui sono più forti. Nonostante tutto, con un po' di lavoro di squadra, siamo riusciti a mantenere una buona posizione e abbiamo chiuso la prima giornata terzi, a poco distacco dai team sopra di noi.
Il secondo giorno è stato invece segnato da un po' di problemi tecnici, alcune sfide sembravano non funzionare o non funzionare correttamente, ma nonostante tutto siamo riusciti in una notevole rimonta, arrivando ad essere, a due ore dalla fine, al primo posto. In quelle ultime due ore, però, sono arrivati i problemi. Si tratta del momento di massima tensione, in cui la classifica viene bloccata, in modo da mantenere la segretezza del vincitore fino alla premiazione. Attorno a te non sai cosa sta succedendo, e mentre il tuo cervello fa di tutto per farti pensare a quanti punti stanno facendo gli altri team, tu devi rimanere concentrato sul tuo schermo per mantenere il distacco. Purtroppo però, in quelle fatidiche due ore, siamo riusciti a risolvere poco e niente, e ci siamo fatti superare. La gara si è quindi conclusa con Germania al primo posto, Polonia al secondo, e Italia al terzo. La classifica del primo giorno era stata confermata.
Nonostante la chiara delusione sul momento, tutta la squadra è rimasta pienamente soddisfatta del risultato, maledicendo magari qualche piccola svista che ci ha portato a non risolvere alcune challenge, ma consapevoli che queste fanno parte del gioco e sono ciò che ci spinge a migliorare.