Secure Programming

Barbara MASUCCI Secure Programming

0522500065
DIPARTIMENTO DI INFORMATICA
EQF7
COMPUTER SCIENCE
2018/2019



YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2016
SECONDO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
Objectives
KNOWLEDGE AND UNDERSTANDING
THE AIM OF THIS CLASS IS TO INTRODUCE PRINCIPLES AND PRACTICES OF SECURE PROGRAMMING.

APPLYING KNOWLEDGE AND UNDERSTANDING
THE MAIN GOALS OF THIS CLASS ARE THE FOLLOWING:
-UNDERSTANDING THE RISKS OF INSECURE SOFTWARE APPLICATIONS;
-EVALUATING THE LEVEL OF SECURITY OF AN EXISTING SOFTWARE APPLICATION;
-SECURITY, SAFETY, AND PRIVACY OF A SOFTWARE APPLICATION BY DESIGN.
Prerequisites
BASIC KNOWLEDGE AND FAMILIARITY WITH COMPUTER NETWORKS, OPERATING SYSTEMS AND PROGRAMMING LANGUAGES.
Contents
-INTRODUCTION TO SECURE PROGRAMMING.
-HISTORICAL NOTES AND TERMINOLOGY.
-SOFWARE VULNERABILIYIES AND WEAKNESSES.
-PRIVILEGES DROP AND RESTORE IN UNIX AND LINUX SYSTEMS.
-TECHNIQUES FOR LOCAL CODE INJECTION BY USING ENVIRONMENT VARIABLES AND SHARED LIBRARIES.
-TECHNIQUES FOR REMOTE CODE INJECTION: SQL INJECTION, CROSS-SITE SCRIPTING, CROSS-SITE REQUEST FORGERY.
-TECHNIQUES FOR MEMORY CORRUPTION: ARBITRARY CODE EXECUTION BU MEANS OF STACK-BASED BUFFER OVERFLOWS.
Teaching Methods
THE CLASS OFFERS THEORETICAL LECTURES IN ORDER TO TRANSFER THE NECESSARY KNOWLEDGE NEEDED TO UNDERSTAND THE TOPICS ADDRESSED.
MOREOVER, THERE WILL BE SOME PRACTICAL LECTURES BASED ON THE USE OF DIFFERENT VIRTUAL MACHINES FOR THE SOLUTION OF "CAPTURE THE FLAG" CHALLENGES RELATED TO ALL TOPICS ADDRESSED IN THE COUSE.
Verification of learning
IN ORDER TO SHOW THE ACHIEVEMENT OF THE OBJECTIVES OF THIS CLASS, STUDENTS HAVE TO PASS AN ORAL EXAMINATION, WHICH CONSISTS IN A SET OF QUESTIONS AND DISCUSSIONS ON THE THEORETICAL AND PRACTICAL TOPICS STUDIED IN THE COURSE. THE GOAL OF SUCH AN EXAMINATION IS TO ASSESS THE LEVEL OF KNOWLEDGE AND UNDERSTANDING ACQUIRED BY THE STUDENT. MORE PRECISELY, THE EXAM CONSISTS OF THREE QUESTIONS, WHERE EACH QUESTION IS WORTH AT MOST 10 POINTS. IN THE CASE ALL QUESTIONS ARE POSITIVELY ANSWERED, THE INSTRUCTOR CAN PROPOSE A FURTHER QUESTION IN ORDER TO INCREASE THE STUDENT’S SCORE. SUCH A FURTHER QUESTION WILL BE MORE COMPLEX THAN THE PREVIOUS ONES, AND IF POSITIVELY ANSWERED CAN RESULT IN A SCORE EQUAL TO 30 CUM LAUDE. ON THE OTHER HAND, IF THE QUESTION WILL NOT BE POSITIVELY ANSWERED, THE FINAL SCORE WILL BE DECREASED ON THE BASIS OF THE MISTAKES DONE BY THE STUDENT.

THE NECESSARY CONDITION FOR A STUDENT TO GET A PASS GRADE CONSISTS OF 1) DEMONSTRATING KNOWLEDGE OF THE BEST PRACTICES IN THE DESIGN AND THE ANALYSIS OF SECURE SOFTWARE; 2) SHOWING THE ABILITY TO ANALYSE AND SOLVE THE SECURITY PROBLEMS WHICH CAN ARISE IN THE DESIGN AND DEVELOPMENT OF COMPLEX SOFTWARE APPLICATIONS; 3) UNDERSTANDING THE RISKS OF INSECURE SOFTWARE APPLICATIONS.
THE CANDIDATE ACHIEVES AN OUTSTANDING GRADE IF HE/SHE IS ABLE TO PROVIDE SOLUTIONS TO COMPLEX PROBLEMS, ESPECIALLY IF NOT EXPLICITLY COVERED DURING THE CLASS.

THE EVALUATION IS BASED ON THE SKILLS ACQUIRED ON THE CONTENTS AND METHODOLOGICAL TOOLS PRESENTED DURING THE COURSE, ALSO TAKING INTO ACCOUNT THE QUALITY OF THE ORAL EXPOSURE, AS WELL AS THE SHOWN AUTONOMOUS ASSESSMENTS.
Texts
MICHAEL HOWARD, DAVID LEBLANC
WRITING SECURE CODE: PRACTICAL STRATEGIES AND PROVEN TECHNIQUES FOR BUILDING SECURE APPLICATIONS IN A NETWORKED WORLD
MICROSOFT PRESS, 2002
ISBN: 0735617228

MICHAEL HOWARD, DAVID LEBLANC, JOHN VIEGA
24 DEADLY SINS OF SOFTWARE SECURITY: PROGRAMMING FLAWS AND HOW TO FIX THEM
MCGRAW HILL, 2009 ISBN: 0071626751
More Information
SLIDES AND EXERCISES PROVIDED BY THE INSTRUCTOR.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-10-21]