Training > Cybersecurity > Secure Software Development: Requirements, Design, and Reuse (LFD104x)
Training Course

Secure Software Development: Requirements, Design, and Reuse (LFD104x)

Learn the security basics to develop software that is hardened against attacks, and understand how you can reduce the damage and speed the response when a vulnerability is exploited. This course is designed to give you an overview of security basics, including system security requirements, secure design principles and best practices, and how to securely select and reuse software for your systems.

Who Is It For

Geared towards software developers, DevOps professionals, software engineers, web application developers, and others interested in learning how to develop secure software, this course focuses on practical steps that can be taken, even with limited resources, to improve information security.
read less read more
What You’ll Learn

This course discusses the basics of security, such as what risk management really means. It discusses how to consider security as part of the requirements of a system, and what potential security requirements you might consider. This part then focuses on how to design software to be secure, including various secure design principles that will help you avoid bad designs and embrace good ones. It also considers how to secure your software supply chain, that is, how to more securely select and acquire reused software (including open source software) to enhance security.
read less read more
What It Prepares You For

This course will enable software developers to create and maintain systems that are much harder to successfully attack, reduce the damage when attacks are successful, and speed the response so that any latent vulnerabilities can be rapidly repaired.
read less read more
Course Outline
Welcome!
Chapter 1. Security Basics
Chapter 2. Security Design Principles
Chapter 3. Reusing External Software
Final Exam (Verified Certificate track only)

Prerequisites
We presume that the student already knows how to develop software to some degree.
Reviews
Aug 2024
The amount of detail was perfect - enough to be clear, but not so much that it was overwhelming. I also appreciated the external links.
Aug 2024
The course was very detailed, but not overwhelmingly so. It stayed finite, and did not stray to only loop back around as a final point. Another thing I greatly appreciated was that every abbreviation was met with the full context every time, instead of just once. It made memory retention simple.
Jul 2024
All the content is useful, and I like the examples. I especially like the use cases in real life, for example the history of Equifax.
Jun 2024
The course covered a wide range of content that felt sufficient for a beginner.
May 2024
I enjoyed the breadth of examples and their relation to software development.
May 2024
The course content is provided in a structured and systematic way.
Apr 2024
I appreciated that the course is self-paced. This flexibility is convenient whether you complete the material in a day or over two months.
Feb 2024
The realism of the approach. For example, "risk management, not total risk avoidance".
Feb 2024
The content was clear and concise. The examples were relevant and understandable.
Jan 2024
Great overview for learners new to the topic with real-life examples that help relate to the topic.
Jan 2024
This course gives a detailed explanation of how to test the vulnerability of a reuse package.
Aug 2023
It was a good introduction to software security. I especially liked the up-to-date references and anecdotes.
May 2023
Timely and relevant content - learned about things I hadn't really considered in depth. Will definitely help me in my work.
May 2023
It flowed well, and covered a lot of material.
Feb 2023
It gives a good overview of secure development fundamentals, in neither a hard to understand, nor trivial way. The level seems just right for an introductory course.
Jan 2023
This course brought together various sources of information about security and software, and presented it in an easy-to-understand manner.