Ero indeciso tra studiare e trovare qualche falla di sicurezza all’interno del sistema informatico del Politecnico di Torino. Beh, ho optato per la seconda.
A parte il titolo volutamente clickbait, cercherò di utilizzare un linguaggio più o meno tecnico: non troppo banale per evitare di utilizzare frasi simili al titolo, ma neanche troppo tecnico per permettere di capire a chiunque cosa ho fatto (e cosa avrei potuto fare).
Iniziamo dalle cose interessanti…
Cosa avrei potuto fare
Avrei potuto ottenere i dati sensibili di tutti gli studenti del Politecnico di Torino. Per dati sensibili intendo nome, cognome, data di nascita, luogo di nascita, anno di iscrizione, corso frequentato, materie sostenute e da sostenere e voti delle relative materie. Per “tutti” intendo: studenti che stanno frequentando i corsi, studenti laureati, studenti che hanno abbandonato, studenti che hanno fatto qualche mese in Erasmus… insomma, proprio tutti coloro che hanno avuto a che fare con il Poli!
In un mondo in cui i dati valgono quasi più dei soldi, i dati personali di centinaia di migliaia di persone sarebbero stati un’ottimo metodo per guadagnare un bel po’ di soldi (ma anche un ottimo metodo per essere messo in carcere): avrei potuto vendere i dati nel mercato dei dati rubati del Dark Web.
Avrei potuto pubblicare i dati online e vedere cosa sarebbe successo. Magari, trattandosi di un’università, avrebbe avuto lo stesso interesse mediatico di Cambridge Analytica (o magari no).
Ah, con una marca da bollo di €16,00 per documento avrei anche potuto stampare certificazioni ufficiali firmate digitalmente dal Politecnico di Torino (certificazioni che in teoria dovrebbero poter richiedere soltanto gli studenti stessi).
Cosa ho fatto in realtà
Dopo aver scoperto la falla di sicurezza, ho immediatamente avvisato chi gestisce il sito web del Portale della Didattica. Come dovrebbe essere fatto da chiunque trovi un problema relativo alla sicurezza, non ho detto a nessuno di questa vulnerabilità finché non mi è stata comunicata la risoluzione del problema, per evitare che qualcuno sfruttasse la situazione per fini poco etici.
Come ho scoperto la vulnerabilità
Due anni fa sono stato selezionato per seguire un corso di sicurezza informatica, Cyberchallenge.IT, che mi ha permesso di imparare moltissimo in questo campo e mi ha fornito la curiosità necessaria a cercare delle vulnerabilità dove chiunque pensa che non siano presenti.
Il Politecnico permette di ottenere in formato PDF, direttamente dal sito web (Portale della Didattica), dei documenti ufficiali con informazioni riguardo la propria carriera universitaria. In pratica io, studente del Poli, dopo aver eseguito l’accesso al mio account, posso andare in questa sezione e scaricare questo documento contenente tutte le mie informazioni personali. Ovviamente, posso farlo solo io e nessun altro. O almeno, in teoria.
Stavo controllando quali fossero le informazioni che era possibile aggiungere a questo documento per poi stamparlo. Ero in una pagina contenente un modulo dove è possibile selezionare le proprie preferenze. Dopo aver impostato le preferenze, è necessario premere “Invio” per scaricare un’anteprima del documento generato. Premendo invio, si apre una nuova pagina alla quale vengono passati diversi parametri, tra cui il numero di matricola dello studente che ha effettuato il login. Spinto dalla curiosità, ho provato a cambiare questo numero di matricola e…
Tutorial: come (si poteva) hackerare il Politecnico di Torino
Andiamo nella sezione “Segreteria online” del Portale della Didattica e clicchiamo su “Stampa autocertificazioni”. Volendo, potete generare delle certificazioni ufficiali firmate dal Politecnico ma, come dicevo prima, si devono sganciare un po’ di soldi.
In questa pagina è possibile decidere cosa inserire nel documento. Vogliamo inserire la data di immatricolazione? Clicchiamo su “Data immatricolazione” e questa verrà aggiunta al documento. Vogliamo il Piano di Studi con voti? La Durata del Corso? Lo Storico della Carriera?
Per vedere quali dati sarebbe stato possibile rubare, selezioniamo tutto.
Quindi clicchiamo “Preview” per visualizzare l’anteprima del documento. Viene effettuata una richiesta alla pagina “pdf.html”. Vengono passati diversi parametri, ma quelli che ci interessano particolarmente sono “matricola” e “username”. In realtà l’username è il numero di matricola, quindi questi due campi hanno lo stesso valore.
Fino a qui nulla di strano. Vediamo le risposte.
Ok, la seconda risposta è un file (Content-Type: application/pdf). È il nostro file. O meglio, il mio documento contenente i miei dati sensibili. Ma fin qui tutto bene.
Proviamo a ripetere la procedura richiamando quella pagina direttamente da shell? Why not? Copiamo la richiesta ed incolliamola sulla nostra amatissima PowerShell, impostando un file come output.
Inviamo e… funziona! Siamo riusciti a scaricare il nostro documento. Ok, fino a qui ancora nulla di strano: avevamo incluso i nostri cookies contenenti un token che (in teoria) permette di non consentire ad altri di accedere a risorse personali.
Bene. Ma… giusto per curiosità… cosa succederebbe se cambiassimo il numero di matricola? Sicuramente otterremmo un messaggio di errore. O magari un PDF vuoto. Ma certo!
Ok, siamo riusciti a scaricare il file.
Dai, magari è vuoto…
Ok, il file pesa 126KB.
Dai, magari c’è scritto “ACCESSO NEGATO”…
E invece no! Semplicemente cambiando il numero di matricola, possiamo accedere alle informazioni che vedete in foto.
Cambiamo matricola e…
Boom! Ecco un altro studente, questa volta un Erasmus.
Bene ma non benissimo
La vulnerabilità, di tipo Insecure Direct Object Reference, appariva al quarto posto tra le vulnerabilità più critiche nella OWASP Top 10 2013. Nel 2017, la nuova classifica OWASP ha unito le due vulnerabilità Insecure Direct Object Reference e Missing Function Level Access Control in Broken Access Control, posizionando quest’ultima al quinto posto [OWASP Top 10 2017].
Fortunatamente, la risoluzione della vulnerabilità non si è fatta attendere. Il 23 gennaio mattina ho segnalato la grave vulnerabilità e ho ricevuto la seguente risposta il 24 gennaio pomeriggio:
Gentile studente,
la ringraziamo della segnalazione, abbiamo implementato gli opportuni controlli.
Cordiali saluti
Purtroppo, i data breach succedono a chiunque. Anche a grandi aziende come Facebook, Google, Apple o Microsoft, che dovrebbero avere la possibilità di investire maggiori somme per la sicurezza informatica. E con il continuo aumentare dei dati che le singole aziende (o enti pubblici) hanno a disposizione, diventa sempre più difficile gestirli in modo sicuro. Ciò che spero io (come chiunque tenga un minimo alla privacy) è che la scoperta di questa vulnerabilità abbia fatto capire che quello che sarebbe stato possibile ottenere non sia assolutamente da sottovalutare. Rendere pubbliche scoperte del genere ritengo sia essenziale per spingere gli enti a prestare maggiore attenzione alla sicurezza, ma anche per spingere noi stessi a stare più attenti a chi stiamo fornendo i nostri dati personali, le nostre foto o i nostri referti medici.
Appassionato al mondo dell’informatica da quando avevo 10 anni, mi sono dedicato completamente a questo ambito laureandomi in Ingegneria Informatica nel 2019. Ho continuato gli studi, ottenendo nel 2022 una doppia laurea magistrale in Data Science and Engineering presso il Politecnico di Torino e la University of Illinois at Chicago.
Adesso lavoro come Software Engineer in Uber.