Internazionalizzazione della Didattica | SECURE PROGRAMMING
Internazionalizzazione della Didattica SECURE PROGRAMMING
Indietro
Orari Lezioni
cod. 0622700096
SECURE PROGRAMMING
0622700096 | |
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA | |
CORSO DI LAUREA MAGISTRALE | |
INGEGNERIA INFORMATICA | |
2025/2026 |
OBBLIGATORIO | |
ANNO CORSO 2 | |
ANNO ORDINAMENTO 2022 | |
PRIMO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
ING-INF/05 | 4 | 32 | LEZIONE | |
ING-INF/05 | 2 | 16 | LABORATORIO |
Obiettivi | |
---|---|
L’INSEGNAMENTO ILLUSTRA LE PRINCIPALI FONTI DI VULNERABILITÀ CHE SI PRESENTANO A LIVELLO DI PROGRAMMAZIONE E L’IMPIEGO DEGLI STRUMENTI NECESSARI PER MITIGARE ED ELIMINARE TALI VULNERABILITÀ. CONOSCENZA E CAPACITÀ DI COMPRENSIONE PRINCIPI E PRATICHE DELLA PROGRAMMAZIONE SICURA. PRINCIPALI FONTI DI VULNERABILITÀ CHE SI PRESENTANO A LIVELLO DI PROGRAMMAZIONE E METODOLOGIE DI SVILUPPO PER MITIGARE ED ELIMINARE LE PRINCIPALI VULNERABILITÀ. MECCANISMI DI SICUREZZA NUOVI ED EMERGENTI BASATI SUL LINGUAGGIO, COMPRESE LE MODALITÀ PER SPECIFICARE E APPLICARE LE POLITICHE DI SICUREZZA IN MODO STATICO E DINAMICO (AD ESEMPIO, PER APPLICARE I CONTROLLI DI ACCESSO O LE POLITICHE DEL FLUSSO DI INFORMAZIONI). CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE PROGETTARE ED IMPLEMENTARE APPLICAZIONI ADOTTANDO LE PRINCIPALI TECNICHE DI SECURE PROGRAMMING. UTILIZZARE IN MODO APPROPRIATO ED EFFICACE LE FUNZIONALITÀ DI SICUREZZA, COME L'AUTENTICAZIONE E LA CRITTOGRAFIA, FORNITE DALLE LIBRERIE DEI PIÙ COMUNI LINGUAGGI DI PROGRAMMAZIONE (ES., JAVA, C, PYTHON). IDENTIFICARE POSSIBILI ERRORI DI PROGRAMMAZIONE RISPETTO ALLA SICUREZZA DURANTE LA REVISIONE DEL CODICE NEI PIÙ COMUNI LINGUAGGI DI PROGRAMMAZIONE. DEFINIRE UNA METODOLOGIA PER I TEST DI SICUREZZA E UTILIZZARE STRUMENTI APPROPRIATI NELLA SUA IMPLEMENTAZIONE. APPLICARE NUOVI MODELLI E STRUMENTI DI PROGRAMMAZIONE SECURITY-ENHANCED CHE AIUTANO A GARANTIRE GLI OBIETTIVI DI SICUREZZA |
Prerequisiti | |
---|---|
È ALTAMENTE CONSIGLIATA LA CONOSCENZA DELLA PROGRAMMAZIONE NEI LINGUAGGI C E JAVA E LA CONOSCENZA DEI DBMS RELAZIONALI E DEL LINGUAGGIO SQL. È CONSIGLIATA LA CONOSCENZA DELLE PRINCIPALI FUNZIONALITÀ DI UN SISTEMA OPERATIVO, CON PARTICOLARE RIFERIMENTO AI SISTEMI DELLA FAMIGLIA UNIX. È INOLTRE CONSIGLIATA LA CONOSCENZA DELLE ARCHITETTURE E DEI PROTOCOLLI UTILIZZATI PER LE RETI DI CALCOLATORI. È INFINE CONSIGLIATA LA CONOSCENZA DELLE PRINCIPALI TECNOLOGIE DI CRITTOGRAFIA A CHIAVE PUBBLICA E A CHIAVE PRIVATA. |
Contenuti | |
---|---|
UNITÀ DIDATTICA 1: VULNERABILITÀ LEGATE A ERRORI DI PROGRAMMAZIONE (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 18/0/0) - 1 (2 ORE LEZIONE) INTRODUZIONE ALLA PROGRAMMAZIONE SICURA. WEAKNESS, VULNERABILITY, EXPLOIT. REPOSITORY DI VULNERABILITY. SISTEMI DI SCORING. - 2 (2 ORE LEZIONE) BUFFER OVERRUN. - 3 (2 ORE LEZIONE) INTEGER OVERFLOW. - 4 (2 ORE LEZIONE) COMMAND INJECTION AND SQL INJECTION. - 5 (2 ORE LEZIONE) INFORMATION LEAKAGE. FAILURE TO HANDLE ERRORS CORRECTLY. - 6 (2 ORE LEZIONE) RACE CONDITIONS. - 7 (2 ORE LEZIONE) MEMORY MANAGEMENT ERRORS. - 8 (2 ORE LEZIONE) DESERIALIZATION OF UNTRUSTED DATA. - 9 (2 ORE LEZIONE) FORMAT STRING PROBLEMS. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONCETTI FONDAMENTALI SULLA PROGRAMMAZIONE SICURA. PRINCIPALI VULNERABILITÀ LEGATE A ERRORI DI PROGRAMMAZIONE. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: RICONOSCERE E MITIGARE LE PRINCIPALI VULNERABILITÀ LEGATE A ERRORI DI PROGRAMMAZIONE. UNITÀ DIDATTICA 2: VULNERABILITÀ DI WEB APPLICATIONS (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 10/0/0) - 10 (2 ORE LEZIONE) CONCETTI FONDAMENTALI DELLE WEB APPLICATIONS. - 11 (2 ORE LEZIONE) STATIC FILES PROBLEMS, MAGIC URLS AND HIDDEN FORM FIELDS. - 12 (2 ORE LEZIONE) CROSS-SITE SCRIPTING (XSS) - 13 (2 ORE LEZIONE) CROSS-SITE REQUEST FORGERY (CSRF). - 14 (2 ORE LEZIONE) CLICKJACKING AND CONTENT SNIFFING. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: PRINCIPALI VULNERABILITÀ SPECIFICHE DELLE APPLICAZIONI WEB. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: RICONOSCERE E MITIGARE LE PRINCIPALI VULNERABILITÀ DELLE APPLICAZIONI WEB. UNITÀ DIDATTICA 3: VULNERABILITÀ LEGATE A ERRORI DI PROGETTAZIONE (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/0/0) - 15 (2 ORE LEZIONE) POOR USABILITY PROBLEMS. - 16 (2 ORE LEZIONE) UNCONTROLLED RESOURCE CONSUMPTION. - 17 (2 ORE LEZIONE) PROBLEMS WITH SOFTWARE UPDATES. - 18 (2 ORE LEZIONE) WEAK RANDOM NUMBERS AND WRONG CRYPTOGRAPHY. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: PRINCIPALI VULNERABILITÀ LEGATE A ERRORI DI PROGETTAZIONE, INCLUSO L’USO ERRATO DI TECNOLOGIE CRITTOGRAFICHE. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: RICONOSCERE E MITIGARE LE PRINCIPALI VULNERABILITÀ LEGATE A ERRORI DI PROGETTAZIONE. UNITÀ DIDATTICA 4: METODOLOGIE E STRUMENTI PER L’ANALISI DELLE VULNERABILITÀ (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 2/0/10) - 19 (2 ORE LEZIONE) THREAT MODELING AND THE STRIDE METHODOLOGY. - 20 (2 ORE LABORATORIO) THREAT MODELING WITH OWASP THREAT DRAGON. - 21 (2 ORE LABORATORIO) FUZZY TESTING CON AFL. - 22 (2 ORE LABORATORIO) SECURITY TESTING WITH ZAP. - 23 (2 ORE LABORATORIO) STATIC ANALYSIS WITH SONARQUBE, FLAWFINDER, CODEQL - 24 (2 ORE LABORATORIO) STATIC ANALYSIS WITH BANDIT, FINDSECBUGS, OWASP DEPENDENCY CHECK CONOSCENZE E CAPACITÀ DI COMPRENSIONE: IL THREAT MODELING E LA METODOLOGIA STRIDE PER L’ANALISI DELLE VULNERABILITÀ. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: USARE ALCUNI STRUMENTI SOFTWARE PER L’ANALISI STATICA E DINAMICA DEL CODICE AL FINE DI RICONOSCERE PROBLEMI DI SICUREZZA. TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO: 38/0/10 |
Metodi Didattici | |
---|---|
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO. |
Verifica dell'apprendimento | |
---|---|
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO E CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE UN COLLOQUIO ORALE INDIVIDUALE. IL COLLOQUIO ORALE MIRA A VERIFICARE IL LIVELLO DELLE CONOSCENZE E DELLA CAPACITÀ DI COMPRENSIONE DEGLI ARGOMENTI AFFRONTATI NEL CORSO, NONCHÉ LA CAPACITÀ DI ESPOSIZIONE DELLO STUDENTE. |
Testi | |
---|---|
MICHAEL HOWARD, DAVID LEBLANC, JOHN VIEGA. "24 DEADLY SINS OF SOFTWARE SECURITY: PROGRAMMING FLAWS AND HOW TO FIX THEM" MCGRAW HILL MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO. |
Altre Informazioni | |
---|---|
L'INSEGNAMENTO E' EROGATO IN INGLESE |
BETA VERSION Fonte dati ESSE3