A Prova di Hacker Challenge - Analisi vulnerabilità siti
Nel mondo del business, quando si vuole fare affari con qualcuno, è importante capire se l’interlocutore con cui si sta trattando sia affidabile o meno. Per esempio, se la potenziale azienda partner dichiara di poterci fornire prodotti per centinaia di milioni di euro ma risulta avere pochissimi dipendenti e scarso fatturato, potrebbe venirci qualche dubbio sull’effettiva capacità di realizzare quanto promesso.
Per permettere di farsi rapidamente un’idea riguardo l’azienda SpazioDati ha realizzato Atoka.io , un motore di ricerca di aziende italiane, che mostra in quale settore di mercato opera un’impresa, il fatturato, il numero di dipendenti, la presenza sul web, e altri fattori. SpazioDati raccoglie queste informazioni sfruttando numerose fonti dati, fra cui dati ufficiali dalla Camera di Commercio, OpenData, dati estratti dalle news e dai siti web.
Tra i fattori analizzati vi sono i siti aziendali, sempre più importanti nell’era di Internet. Purtroppo, spesso sono mantenuti senza la dovuta attenzione e quindi vulnerabili agli attacchi di hacker malintenzionati, che possono portare a sostituzione di pagine del sito con pubblicità indesiderata, rivelazione dei dati privati dei clienti, fuoriuscita di segreti industriali, e in generale gravi danni d’immagine all’azienda.
Per migliorare la determinazione dell’affidabilità di un impresa, SpazioDati vuole quindi assegnare un punteggio ai siti aziendali sviluppando un indice (score) che misuri quanto sono vulnerabili. Dovrà anche essere realizzata una visualizzazione semplice da comprendere anche a personale non-tecnico, come dirigenti e figure nel ramo commerciale.
Per raccogliere dati, SpazioDati ha eseguito Wappalyzer su milioni di siti web, estraendo le tecnologie utilizzate e le loro versioni. Vi chiediamo di incrociare i dati estratti dai siti web con le vulnerabilità esposte in cataloghi specializzati (ad esempio da itsecdb oval), e sviluppare uno score riassuntivo basato sulle versioni dei software (es: il software è vulnerabile o poco aggiornato) e sul contenuto testuale del sito.
Sponsor: Questa sfida è un riadattamento della challenge ‘A prova di hacker’ che è stata proposta da SpazioDati all’interno dell’ICTDays Summercamp 2019 per studenti di istituti superiori in Alternanza Scuola-Lavoro presso il Dipartimento di Ingegneria e Scienze dell’Informazione (DISI) dell’Università di Trento.
a. Analisi
Analizzare il mercato potenziale e la distribuzione delle tecnologie impiegate (non guardare solo il dataset fornito ! Cercate anche statistiche altrove ). Su quali tecnologie conviene concentrarsi? Quanto spesso vengono usate?
Trovare dataset di vulnerabilità adatti allo scopo, ponendo particolare attenzione alla licenza dei dati (sono usabili commercialmente? Bisogna pagarli?). Sono aggiornati frequentemente? Ci sono versioni a pagamento più ricche di informazioni / aggiornate ?
studio delle possibilità business (a chi si può vendere il servizio che andrete a creare? Come si può presentare in modo efficace?)
b. Integrazione
Incrociare i dati web di spaziodati con il / i dataset di vulnerabilità trovati, producendo un’unica tabella csv (o json).
c. Sviluppo di uno indice
Determinare un indice (score) che tenga in considerazione le vulnerabilità riscontrate assegnando un peso a ciascuna. IMPORTANTE: nel report tecnico deve essere chiaramente riportata e motivata la formula usata per determinare l’indice: presentare un software anche apparentemente funzionante non è sufficiente. Implementare il calcolo dell’indice e aggiungere una o più colonne per lo score (ed eventualmente sue componenti) ai dati integrati
d. Visualizzazione
Dato un sito, visualizzare il singolo score e presentare un riassunto
Quale può essere la visualizzazione più efficace che trasmette la maggior quantità di informazione senza confondere con tecnicismi da hacker? Tenete presente che i potenziali utilizzatori di tali grafici saranno personale non tecnico, come dirigenti e figure nel ramo commerciale.
Dataset
dataset oval
Dataset vulnerabilità, scaricabile da itsecdb.com/oval
Non ne forniamo dettagli, dovrete capire voi cosa (e in che formato) prendere la sito, capirne la licenza d’uso, se li possiamo usare, se è il caso di valutare alternative, etc.
rilevamento.jsonl
File fornito da SpazioDati contenente le tecnologie rilevate per ogni sito web.
Formato: JSONL
, cioè una sequenza di JSON. Ogni riga è un json con un sito per riga. Per sapere come leggerli in Python, guardare guida Formati dati
Righe: 3000
Dimensione: 44 Mb
Campi:
domain
text
technologies
: dizionario che contiene, per ogni categoria possibile, la lista di technologies estratte.
Esempio:
{
"domain": "danzainfascia.it",
"text": "Primary AGENDA",
"technologies": {
"font-scripts": [
{
"name": "Font Awesome",
"categories": [
"font-scripts"
],
"confidence": 100
}
],
"web-servers": [
{
"name": "Apache",
"categories": [
"web-servers"
],
"confidence": 100
}
],
"javascript-frameworks": [
{
"name": "jQuery",
"categories": [
"javascript-frameworks"
],
"confidence": 100
}
],
"programming-languages": [
{
"name": "PHP",
"version": "5.6.40",
"categories": [
"programming-languages"
],
"confidence": 100
}
],
"blogs": [
{
"name": "WordPress",
"version": "5.2.2",
"categories": [
"cms",
"blogs"
],
"confidence": 100
}
],
"cms": [
{
"name": "WordPress",
"version": "5.2.2",
"categories": [
"cms",
"blogs"
],
"confidence": 100
}
]
}
}