Salta al contenuto principale
CODICE 101811
ANNO ACCADEMICO 2022/2023
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

Il corso mira a sensibilizzare gli sviluppatori sul fatto che i programmi (scritti male) possono essere sfruttati da un attaccante per scopi potenzialmente dannosi, facendo agire i programmi in modi non voluti dagli autori. Questo obiettivo viene raggiunto mostrando come i programmi binari possono essere analizzati e come eventuali vulnerabilità trovate possano essere sfruttate.
Inoltre, il corso descrive come progettare e scrivere software sicuro, cioè privo di tali vulnerabilità.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Being able to write secure code, analyze the behavior and assess security properties of source and binary programs, pinpointing and fix their vulnerabilities or apply corrective counter-measures.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Essere in grado di analizzare il comportamento e valutare le proprietà di sicurezza dei programmi (sia avendo a disposizione il codice sorgente, sia, soprattutto, avendo a disposizione i soli binari), individuando le loro vulnerabilità. Inoltre, saper scrivere codice sicuro, eliminando eventuali vulnerabilità o applicando contromisure correttive.

PREREQUISITI

Familiarità con la programmazione in C (sopratutto, gestione diretta della memoria, uso di puntatori) e coi concetti di sistemi operativi

MODALITA' DIDATTICHE

Lezioni ed esercizi pratici ("compiti a casa").

Alcuni argomenti ed esercizi, esplicitamente marcati nel materiale di supporto, sono opzionali per chi ha la versione da 6 CFU in piano di studi.

PROGRAMMA/CONTENUTO

  • Introduzione
  • Cosa sono i (programmi) binari e come vengono eseguiti
  • Il processo di linking
  • Analisi dinamica, tracing e instrumentation
  • Analisi statica, reverse-engineering
  • Scrivere codice sicuro, vulnerabilità comuni e valutazione della sicurezza
  • Exploitation

Alcuni argomenti ed esercizi, esplicitamente marcati nel materiale di supporto, sono opzionali per chi ha la versione da 6 CFU in piano di studi.

TESTI/BIBLIOGRAFIA

Il materiale di supporto e la bibliografia suggerita saranno disponibili su AulaWeb.

DOCENTI E COMMISSIONI

Commissione d'esame

GIOVANNI LAGORIO (Presidente)

ALESSANDRO ARMANDO

DAVIDE ANCONA (Supplente)

MAURA CERIOLI (Supplente)

LEZIONI

Orari delle lezioni

L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy.

ESAMI

MODALITA' D'ESAME

Sessione pratica e discussione orale.

MODALITA' DI ACCERTAMENTO

L'esame valuterà la capacità di analizzare i programmi per scovare eventuali vulnerabilità, di scrivere semplici "exploit" e applicare misure correttive.

Calendario appelli

Dati Ora Luogo Tipologia Note
30/01/2023 09:00 GENOVA Esame su appuntamento
16/02/2023 09:00 GENOVA Esame su appuntamento
16/02/2023 09:00 GENOVA Esame su appuntamento
01/06/2023 09:00 GENOVA Esame su appuntamento
30/06/2023 09:00 GENOVA Esame su appuntamento
01/09/2023 09:00 GENOVA Esame su appuntamento
11/09/2023 09:00 GENOVA Esame su appuntamento
15/09/2023 09:00 GENOVA Esame su appuntamento