In questa lezione impari a
- conoscere gli obblighi principali di GDPR e ISO 27001
- riconoscere le minacce più comuni alle applicazioni web
- distinguere i tipi di malware
- analizzare un caso reale di attacco
In laboratorio state imparando a proteggere le vostre applicazioni (password, SQL Injection, firewall). Qui vediamo il quadro più ampio: le regole che le aziende devono rispettare, e le minacce più comuni da conoscere.
2.1 Le regole: GDPR e ISO 27001
GDPR (General Data Protection Regulation) è una legge europea che dice come le aziende devono trattare i dati personali delle persone (nome, email, dati di salute, ecc.). Le idee principali, in parole semplici:
- Un'azienda può raccogliere solo i dati che le servono davvero, non "tutto quello che può"
- Le persone hanno il diritto di sapere quali dati un'azienda ha su di loro, e di chiederne la cancellazione
- In caso di furto di dati (data breach), l'azienda deve avvisare le autorità entro un tempo preciso
ISO 27001 non è una legge, ma uno standard: una specie di "certificato di qualità" che un'azienda può ottenere se dimostra di gestire la sicurezza informatica in modo serio e organizzato (policy scritte, controlli regolari, formazione del personale).
Se il vostro progetto Flask del laboratorio raccogliesse dati reali di persone (nome, email), sareste già soggetti al GDPR: dovreste dire chiaramente a cosa servono quei dati e permettere di cancellarli.
2.2 Le minacce più comuni (OWASP Top 10, in breve)
OWASP è un'organizzazione che ogni anno pubblica una lista delle vulnerabilità più diffuse nelle applicazioni web. Non serve impararle a memoria: bastano le idee di fondo, che riconoscerete perché toccano proprio gli argomenti del laboratorio.
- Injection (es. SQL Injection) — inserire comandi "nascosti" dentro un campo di input normale, per far fare al sistema qualcosa che non dovrebbe (l'avete già visto/vedrete in laboratorio)
- Autenticazione debole — password troppo semplici, o salvate senza hashing
- Esposizione di dati sensibili — dati importanti (password, carte di credito) trasmessi o salvati senza protezione
- Configurazioni sbagliate — un server lasciato con le impostazioni "di fabbrica", magari con un pannello di amministrazione accessibile a tutti
Il filo comune: quasi tutte le vulnerabilità nascono da una fiducia eccessiva verso ciò che arriva dall'esterno (un input, un file, una richiesta) senza controllarlo.
2.3 Tipi di malware
Malware è un termine generico per "software creato per fare danni". Ne esistono di diversi tipi, distinti da come si comportano:
- Virus — si attacca a un programma "sano" e si diffonde quando quel programma viene eseguito
- Worm — si diffonde da solo attraverso una rete, senza bisogno che qualcuno esegua nulla
- Trojan — si presenta come un programma utile o innocuo, ma nasconde funzioni dannose
- Ransomware — blocca o cifra i vostri file e chiede un riscatto per sbloccarli
- Spyware — raccoglie informazioni su di voi (es. quello che digitate) senza che ve ne accorgiate
Domanda di verifica. Qual è la differenza principale tra un virus e un worm?
Mostra la risposta
Il virus ha bisogno che un programma "ospite" venga eseguito da qualcuno per diffondersi; il worm si muove da solo attraverso la rete, senza bisogno di intervento umano.
2.4 Casi reali (per capire che non è teoria astratta)
Negli ultimi anni sono avvenuti diversi attacchi informatici su larga scala che hanno colpito ospedali, aziende ed enti pubblici, spesso tramite ransomware o sfruttando password deboli e sistemi non aggiornati. Il docente può portare in classe un caso di cronaca recente e discuterlo insieme: quale vulnerabilità è stata sfruttata? Cosa si sarebbe potuto fare per prevenirla?
Attività in classe: dividere gli studenti in gruppi, assegnare a ciascuno un caso diverso trovato sui giornali, e far presentare in 5 minuti "cosa è successo e come si poteva evitare".
Esercizi
⭐ Facile
Esercizio 1 – Che malware è?. Riconosci il tipo: cifra i file e chiede un riscatto; registra tutto quello che scrivi sulla tastiera; si diffonde da solo da un computer all'altro; si presenta come un programma utile ma apre una porta all'attaccante.
Suggerimento
Ransomware · keylogger · worm · trojan
⭐⭐ Medio
Esercizio 2 – La query pericolosa. Un login costruisce la query unendo le stringhe: "SELECT * FROM utenti WHERE user='" + u + "'". Spiega cosa succede se qualcuno scrive come utente ' OR '1'='1 e come si corregge.
Suggerimento
È una SQL injection: la condizione diventa sempre vera. Si risolve con le query preparate (parametri), come nel corso PHP e MySQL.
⭐⭐ Medio
Esercizio 3 – La tua app e il GDPR. La vostra app Flask salva nome, email e voti degli studenti. Indica tre obblighi del GDPR che vi riguardano e come li rispettereste.
⭐⭐⭐ Sfida
Esercizio 4 – Un caso vero. Scegli un attacco informatico recente riportato dai giornali e prepara una scheda: cosa è successo, quale vulnerabilità è stata sfruttata, come si poteva evitare.