(502804-3) Software Security

Homepage and Syllabus

Disclaimer

This is the best information available as of today, Sunday March 6, 2022 at 8:50 p.m. KSA time. Changes will appear in this web page as the course progresses.

Meeting time and place

  • Section 9675: Monday 6:00 p.m. - 9:00 p.m. (in classroom 7104)

Instructor: Dr. Emad Alsuwat

Course Homepage: https://emadalsuwat.github.io/SoftwareSecurity-Spring2022.html
Office: W101 CIT
Office hours: Sunday 10:00 a.m. - 12:00 p.m.
Phone: NA
Email: Alsuwat@tu.edu.sa

Course Overview

This course presents the basic principles of software security. The course considers important software vulnerabilities and attacks that exploit them such as buffer overflows, SQL injection, and session hijacking and consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques. The course takes and considers techniques at each phase of the development cycle that can be used to strengthen the security of software systems. Also, the course presents the main techniques of secure software development, automated code review, and penetration testing.

Learning Outcomes

By the end of the course, students will be able to:
  • The ability to describe and understand the Software Security vulnerabilities and the defense methods against these attacks
  • Learn best practices set of Software Security.
  • Understand how to design and develop secure software systems.
  • Ability to apply the related knowledge of code writing and automated code review tools for secure software.
  • The ability to apply software security testing such as penetration testing and fuzzing testing.

Textbooks

  • Required: Software Security - Building Security In, Author: Gary McGraw, ISBN: 0321356705

Examinations

  • Midterm Exam: March 21, 2022 during class time
  • Final Exam: TBD

Grading

  • Participation and Quizzes: 5%
  • Homework Assignments and Labs: 20%
  • Research Project: 10% Bonus: 5%
  • Midterm Exam: 25%
  • Final Exam: 40%

Topics to be covered

Below are roughly the sections of the Gary McGraw book that I will cover. I may de-emphasize some topics and add others, but this is basically the list.

Topic Text Reference
PART ONE SOFTWARE SECURITY FUNDAMENTALS
Overview
  • Computer Security Concepts
  • Security Attacks
  • Security Services
  • Security Mechanisms
Defining a Discipline Chapter 1
Risk Management Framework Chapter 2
PART TWO SEVEN TOUCHPOINTS FOR SOFTWARE SECURITY
Introduction to Software Security Touchpoints Chapter 3
Code Review with a Tool Chapter 4
Architectural Risk Analysis Chapter 5
Software Penetration Testing Chapter 6
Risk-Based Security Testing Chapter 7
Abuse Cases Chapter 8
Software Security Meets Security Operations Chapter 9
PART THREE SOFTWARE SECURITY GROWS UP
An Enterprise Software Security Program Chapter 10
Knowledge for Software Security Chapter 11
A Taxonomy of Coding Errors Chapter 12

Lecture Notes and Homework Assignments

Note that changes to the table below will appear week by week as the course progresses

Week Topic Slides Assignment Due Date
Week 1 Syllabus Week - - -
Week 2 Introduction Lecture 1 - -
Week 3 Chapter 1: Defining a Discipline Lecture 2 - -
Week 4 Chapter 2: Risk Management Framework Lecture 3 Homework 1 Feb 27, 2022
Week 5 Software Reliability (Theory and Practice) Lecture 4 - -
Week 6 Chapter 3: Software Security Touchpoints Lecture 5 Homework 2 March 9, 2022
Week 7 Chapter 4: Code Review with a Tool Lecture 6 Lab 1 March 26, 2022
Week 8 Access Control Models Lecture 7
Lecture 8
Homework 3 April 2, 2022
Week 9 Midterm Exam +
Chapter 5: Architectural Risk Analysis
Lecture 8 - -
Week 10 Chapter 6: Software Penetration Testing Lecture 9 - -
Week 11 Chapter 7: Risk-Based Security Testing Lecture 10 - -
Week 12 Chapter 8: Abuse Cases Lecture 11 - -
Week 13 Chapter 9: Software Security Meets Security Operations
Chapter 10: An Enterprise Software Security Program
Lecture 12
Lecture 13
- -
Week 14 Chapter 11: Software Security Meets Security Operations
Chapter 12: A Taxonomy of Coding Errors
Lecture 14
Lecture 15
- -