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.

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