Pasquale FOGGIA | SECURE PROGRAMMING
Pasquale FOGGIA SECURE PROGRAMMING
cod. 0622700096
SECURE PROGRAMMING
0622700096 | |
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA | |
CORSO DI LAUREA MAGISTRALE | |
INGEGNERIA INFORMATICA | |
2024/2025 |
ANNO CORSO 2 | |
ANNO ORDINAMENTO 2022 | |
PRIMO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
ING-INF/05 | 6 | 48 | LEZIONE | |
ING-INF/05 | 2 | 16 | LABORATORIO | |
ING-INF/05 | 1 | 8 | ESERCITAZIONE |
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 | |
---|---|
INTRODUZIONE ALLA PROGRAMMAZIONE SICURA. WEAKNESS, VULNERABILITY, EXPLOIT. REPOSITORY DI VULNERABILITY. SISTEMI DI SCORING. (LEZ:2/ESE:0/LAB:0) BUFFER OVERRUN. (LEZ:2/ESE:0/LAB:0) INTEGER OVERFLOW. (LEZ:2/ESE:0/LAB:0) COMMAND INJECTION. (LEZ:2/ESE:0/LAB:0) INFORMATION LEAKAGE. (LEZ:2/ESE:0/LAB:0) FUZZY TESTING CON AFL. (LEZ:0/ESE:0/LAB:2) RACE CONDITIONS. (LEZ:2/ESE:0/LAB:0) SQL INJECTION. (LEZ:2/ESE:0/LAB:0) MEMORY MANAGEMENT ERRORS. (LEZ:2/ESE:0/LAB:0) DESERIALIZATION OF UNTRUSTED DATA. (LEZ:2/ESE:0/LAB:0) FAILURE TO HANDLE ERRORS CORRECTLY. (LEZ:2/ESE:0/LAB:0) FORMAT STRING PROBLEMS. (LEZ:2/ESE:0/LAB:0) CONCETTI FONDAMENTALI DELLE WEB APPLICATIONS. (LEZ:4/ESE:0/LAB:0) STATIC FILES PROBLEMS. (LEZ:2/ESE:0/LAB:0) SERVER-SIDE XSS. (LEZ:2/ESE:0/LAB:0) CLIENT-SIDE XSS. (LEZ:2/ESE:0/LAB:0) CSRF. (LEZ:2/ESE:0/LAB:0) MAGIC URLS PREDICTABLE COOKIES AND HIDDEN FORM FIELDS. (LEZ:2/ESE:0/LAB:0) SECURITY TESTING WITH ZAP. (LEZ:0/ESE:2/LAB:2) CLICKJACKING AND CONTENT SNIFFING. (LEZ:2/ESE:0/LAB:0) SECURITY TESTING WITH SONARQUBE. (LEZ:0/ESE:0/LAB:2) POOR USABILITY PROBLEMS. (LEZ:2/ESE:0/LAB:0) UNCONTROLLED RESOURCE CONSUMPTION. (LEZ:2/ESE:0/LAB:0) SECURITY TESTING WITH FLAWFINDER. (LEZ:0/ESE:0/LAB:2) PROBLEMS WITH SOFTWARE UPDATES. (LEZ:2/ESE:0/LAB:0) SECURITY TESTING WITH BANDIT. (LEZ:0/ESE:0/LAB:2) THREAT MODELING AND THE STRIDE METHODOLOGY. (LEZ:2/ESE:0/LAB:0) THREAT MODELING WITH OWASP THREAT DRAGON. (LEZ:0/ESE:4/LAB:2) WEAK RANDOM NUMBERS. (LEZ:2/ESE:0/LAB:0) USING THE WRONG CRYPTOGRAPHY. (LEZ:2/ESE:0/LAB:0) SECURITY TESTING WITH SPOTBUGS AND FINDSECBUGS. (LEZ:0/ESE:0/LAB:2) TOTALE: LEZ:52/ESE:6/LAB:14 |
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 |
Altre Informazioni | |
---|---|
L'INSEGNAMENTO E' EROGATO IN INGLESE |
BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]