MATH2B: Ciao Raffaele, complimenti per la vittoria ad HACK@2021! Sei arrivato terzo ad Hack@Roma, ti aspettavi di vincere la Finale?

Raffaele: “No, non me l’aspettavo, ma comunque prima della finale ho cercato di preparare la mente, la mia postazione e la strumentazione al meglio, perché sapevo che se volevo vincere avevo bisogno di mettermi nelle condizioni per farlo. A differenza della finale, all’Hack@Roma non avevo fatto alcun tipo di preparazione, perché mi ero iscritto letteralmente 2 giorni prima e ho lavorato in condizioni decisamente avverse, con un portatile di fascia media. Nella finale avevo già un’idea chiara di che tipo di prova avrei dovuto affrontare, ho capito che era necessaria più potenza di calcolo e che avrei dovuto preparare tutto per ridurre al minimo ogni piccola perdita di tempo. Durante la gara comunque molte cose sono andate diversamente da come me le ero immaginate, anche questa esperienza infatti mi sarà molto utile per affrontare altre competizioni in futuro, in particolar modo nel tema Cyber Security, per le “Capture The Flag”.

 

MATH2B: Come sei venuto a conoscenza del contest HACK@2021?

Raffaele: “Ho notato un annuncio su Telegram che mi ha incuriosito, e poco dopo ho deciso di chiedere informazioni e di iscrivermi. La vera motivazione che mi ha spinto a provarci è stato il mio desiderio di volermi misurare con altri programmatori in gare di questo tipo, poiché avevo finora partecipato solo in competizioni a tema Cyber Security e non avevo mai provato una gara di ottimizzazione come questa, infatti non avevo idea di quale livello di prove avrei trovato.”

MATH2B: Raccontaci un po’ di te, del tuo percorso di studi e di cosa ti piacerebbe occuparti dopo la laurea.

Raffaele: “Fin da piccolo ho sempre avuto una grande passione per l’informatica, ho cominciato guardando video su YouTube e leggendo riviste, cercando sempre di migliorarmi. Per me è stato da sempre di ispirazione Kevin Mitnick, l’hacker più famoso al mondo e ideatore delle tecniche di spoofing e anonimato. Kevin ha sempre agito guidato dalla curiosità e la sua voglia di sapere è stata un’arma a doppio taglio, perché si è spinto oltre ed è arrivato ad avere il controllo di protocolli e sistemi di comunicazione top secret, che non avrebbe dovuto neanche conoscere, ed è questo forse il motivo più grande che lo ha portato ad avere problemi con l’FBI e a diventare un ricercato in tutto il mondo negli anni 80. Anche io ho quella curiosità che contraddistingueva Kevin, ma voglio fin da subito lavorare per la collettività in vista dell’innovazione e non essere un lupo solitario come lo è stato lui negli anni in cui era ricercato, vorrei infatti essere sempre di aiuto per il prossimo rispettando la filosofia dell’Ethical Hacker. Tornando al mio percorso, alle scuole medie ricordo che già ero in grado di lavorare con i sistemi Windows, Linux, Android ed IOS senza alcun problema, avevo anche iniziato a programmare in Visual Basic, che a tutti gli effetti è stato il mio primo linguaggio di programmazione. La prima distribuzione che provai fu “BackTrack 4”, che è stata una delle prime distribuzioni Linux a raccogliere molti strumenti di penetration testing. Superate le medie decisi di spostarmi al liceo scientifico Avogadro, in quel periodo ogni singolo giorno era buono per fare informatica e non studiare, infatti ci fu un vero e proprio calo della mia resa scolastica, al punto che fui addirittura costretto a cambiare scuola e a spostarmi al Plinio Seniore di Roma. Lì cambiò il mio atteggiamento nei confronti della scuola e fortunatamente nel tempo le mie capacità furono riconosciute, tanto che un giorno la stessa preside, su consiglio di un professore Graziano Perillo, mi venne a chiedere un consiglio tecnico. Forse erano i professori a credere di più in me, forse l’ambiente che ho trovato, comunque sia mi trovai molto bene e infatti ci fu un netto miglioramento delle mie capacità. Da qui in poi imparai veramente a programmare, a lavorare in squadra e cominciai a fare le prime Capture The Flag. In questo periodo partecipai alla Maker Faire 2019 a Roma come Maker, in collaborazione con il mio liceo, il dipartimento di ingegneria aereospaziale della sapienza e BIS Italia, qualche mese dopo iniziai un altro progetto sempre sotto la supervisione del prof. Alberto Bigazzi del Plinio e in collaborazione con l’università di Tor Vergata. Dopo la maturità iniziai la triennale di informatica all’università Sapienza, in cui ho imparato la vera programmazione imperativa, funzionale e ad oggetti, la ricorsione, a lavorare con le strutture dati, a capire come funziona l’elettronica digitale e l’architettura di un processore, i pattern di programmazione, gli algoritmi, ma in parallelo non mi sono fermato, ho studiato da solo c, react, react native, django, binary exploitation, reverse engineering e il patching di applicazioni. Un ringraziamento speciale va a Francesco Pasquali, studente della triennale di ingegneria informatica con cui ho lavorato negli ultimi 2 anni su molte cose di quelle citate. Alla fine del mio percorso di studi vorrei lavorare sul tema cyber security o per la progettazione di qualche software di protezione.”

MATH2B: Torniamo alla Finale. Come sei arrivato alla soluzione che ti ha fatto vincere il primo premio? Che linguaggio di programmazione e quali software hai usato? Raffaele: “Ciò che mi ha fatto vincere è stato probabilmente di non sapere il mio posto in classifica, infatti non ci sarei stato ad avere una posizione bassa su quella classifica, forse nascondevo una voglia di riscatto da tempo, ma non potevo posizionarmi male, almeno non dopo tutto il mio percorso, non con tutto quello che ho imparato in questi anni. Quindi è stata questa paura, unita al ritmo giusto, alle molte conoscenze acquisite e all’esperienza ottenuta negli anni, che mi hanno dato tutte le carte in regola per risolvere il problema in modo semplice ed ottimale. In particolar modo un ringraziamento speciale va all’insegnamento alternato dei professori:

  • Andrea Sterbini, per i suoi HW difficili e divertenti e per aver creato la piattaforma online di training programming migliore che esista.
  • Annalisa Massini, per avermi aperto gli occhi su cosa è effettivamente l’informatica e come nasce, e di quante cose si possano fare con delle semplici cifre binarie.
  • Iacopo Masi, per avermi fatto imparare la ricorsione, l’assembly e come funziona l’architettura di un processore.
  • Angelo Spognardi, per aver creato il laboratorio più utile e al tempo stesso divertente della facoltà.
  • Roberto Navigli, per avermi fatto imparare la programmazione ad oggetti e i pattern di programmazione.
  • Angelo Monti, per avermi insegnato gli algoritmi e il calcolo del loro costo computazionale. Sono stati loro a darmi gli strumenti che mi servivano per vincere questa gara. Il linguaggio di programmazione l’ho scelto sul momento: visto il problema mi sono adattato e ho scelto Python che comunque conosco molto bene, non mi è servito alcun altro software. Un caloroso abbraccio e ringraziamento va a tutti i miei amici che hanno creduto in me.”

MATH2B: Bene Raffaele, ti ringraziamo per l’intervista e per aver condiviso con noi e con tutti coloro che ci leggeranno il codice sorgente che ti ha permesso di arrivare all’output vincente. Ecco il link alla tua pagina github.

Sei stato gentilissimo! In bocca al lupo per il prosieguo dei tuoi studi. Ad maiora!