The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.
Who is this class for: This is a graduate class and it will be best appreciated by students who have a solid foundation in basic software engineering, who can code well (although no real coding is required) and who have had at least internships if not full-time jobs in software development. This is not to say that you need to know how to design software before you learn about designing secure software. It is to say that the more experience you already have in software development, the more the examples and ideas put forth in this course will resonate with you.
Course 4 of 4 in the Secure Software Design Specialization.
Common Vulnerabilities and Weaknesses
How to use the CVE and CWE on-line databases to assess threats and mitigations
Specific Design Considerations
Specific things you can do to create a better design.
Building Security in
Security must be built in to a project, not added on.
A Dramatic Failure
The consequences of a bad design can haunt you forever.
A detailed look at the first two sentences of the abstract of Nakamoto’s 2009 paper announcing Bitcoin.
The Bitcoin Project
Continuing with the abstract of Nakamoto’s Bitcoin paper. More details on how it works and how security is integrated into it.
Simple software compromises
A look into the specifics of two common exploitation techniques–buffer overflow and SQL injections. Even though they’re “old”, these exploits are still used today!
A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.
Graded: Assessment 1
Graded: Assessment 2
Graded: Assessment 3
Graded: Assessment 4
Graded: Assessment 5
ENROLL IN COURSE