University of Colorado
Software Design Threats and Mitigations
Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier.| Length | 3 to 4 weeks |
| Price | Free |
| Subject | Design, Computer Science |
| Level | Intermediate |
| Languages | English |
| Video Transcripts | English |
About this Course
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.
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.
What you'll learn
*How to use the CVE and CWE on-line databases to assess threats and mitigations
*Specific things you can do to create a better design
*Security must be built in to a project, not added on.
*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.
*Continuing with the abstract of Nakamoto's Bitcoin paper. More details on how it works and how security is integrated into it.
*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.
Course syllabus
Week 1: Common Vulnerabilities and Weaknesses
Week 2: Specific Design Considerations
Week 3: Building Security in
Week 4: A Dramatic Failure
Week 5: Bitcoin Foundations
Week 6: The Bitcoin Project
Week 7: Simple software compromises
Week 8: Final Exam
Meet the instructors
Albert Glock
Instructor
Computer Science
