EdX

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

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

Learn the security basics that allow you 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.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Modern software is under constant attack, but many software developers have never been told how to effectively counter those attacks. This course works to solve that problem, by explaining the fundamentals of developing secure software. 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. 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.
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 discusses 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 discusses 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.
This is the first of the three courses in the Secure Software Development Fundamentals Professional Certificate program, and was developed by the Open Source Security Foundation (OpenSSF), a project of the Linux Foundation focused on securing the open source ecosystem. The training courses included in this program focus on practical steps that you (as a developer) can take to counter most common kinds of attacks.
This course is part of the Secure Software Development Fundamentals Professional Certificate.

What you'll learn

  • Security basics: risk management, the “CIA” triad, and requirements.
  • Secure design principles: what are principles such as “least privilege” and how to apply these principles.
  • Supply chain evaluation: tips on how to choose packages to reuse, and how to reuse them so that you can rapidly be alerted & update.

Syllabus

. Welcome!
. Security Basics
. Secure Design Principles
. Reusing External Software
. Final Exam (Verified track only)

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

IT Fundamentals for Business Professionals: Software development (edX) EdX
Universitat Politècnica de València,UPValenciaX

IT Fundamentals for Business Professionals: Software development (edX)

Working with Information Technology (IT) without the necessary background? Learn the fundamentals of software development. This course is one of the 5 courses of an introductory business information systems series, designed to introduce you to the amazing world of Information Technology.

Self Paced
Self-Paced
Introduction to Cloud Computing (edX) EdX
IBM

Introduction to Cloud Computing (edX)

Master the core concepts in Cloud Computing, from service and deployment models, to cloud architecture, security, new technologies, and possible careers. This course introduces you to the core concepts of cloud computing. You will gain the foundational knowledge required for understanding cloud computing from both business and practitioner perspectives.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced
Transient-Execution Attacks: Understanding Meltdown and Spectre (edX) EdX
Graz University of Technology,TUGrazX

Transient-Execution Attacks: Understanding Meltdown and Spectre (edX)

Beyond software-based side-channel attacks there is a new class of attacks called transient-execution attacks. These attacks go beyond leaking meta-data and directly retrieve secret data but they use side channels as an data exfiltration mechanism to transmit the secret data to an attacker-controlled application. We will look at the most prominent of these attacks: Meltdown, Spectre, Foreshadow, and ZombieLoad. You will implement some of these attacks yourself and learn how to mitigate them.

Self Paced
Self-Paced
How to Code: Simple Data (edX) EdX
The University of British Columbia,UBCx

How to Code: Simple Data (edX)

Learn systematic program design - how to write programs that tell a clear story about what they do, are well-tested, and easy to improve. This programming course takes a unique approach, as it focuses on learning a systematic programming method rather than a programming language. This practical approach will help you channel your creativity so that you can program well in any language.

Self Paced
Self-Paced
Beginners Guide to Cybersecurity (edX) EdX
IBM

Beginners Guide to Cybersecurity (edX)

This course is designed for beginners to build critical skills to address common security threats, and adopt best practices for reducing risks. A tech talent shortage continues as organizations adopt higher security standards to address the ongoing risk of threats and breaches. This course builds key skills to address common security threats and risks and provides best practices to guard against them.

Self Paced
Self-Paced
How to Code: Complex Data (edX) EdX
The University of British Columbia,UBCx

How to Code: Complex Data (edX)

Learn how to design more complex programs, using new data structures, abstraction, and generative recursion. As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain. By learning how to capture common data and control structures using abstraction, your programs will get shorter and better tested.

Self Paced
Self-Paced