EdX

Secure Software Development: Verification and More Specialized Topics (edX)

Secure Software Development: Verification and More Specialized Topics (edX)

Learn how to verify software for security, and take a deeper dive into the basics of applying threat models and cryptography. 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.

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

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 how to verify software for security. In particular, it discusses the various static and dynamic analyses approaches, as well as how to apply them (e.g., in a continuous integration pipeline). It also discusses more specialized topics, such as the basics of how to develop a threat model and how to apply various cryptographic capabilities.
This is the third 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 Verification: How to examine software, include some key tool types, and how to apply them in continuous integration (CI). This includes learning about security code scanners/static application security testing (SAST) tools, software component analysis (SCA)/dependency analysis tools, fuzzers, and web application scanners.
  • Threat modeling/Attack modeling: How to consider your system from an attacker’s point of view and how to apply a simple design analysis approach called STRIDE.
  • Fielding: How to deploy and operate secure software, handle vulnerability reports, and how to rapidly update when reused components have publicly-known vulnerabilities.
  • Assurance cases & formal methods: The basics of approaches to more strongly analyze and justify that your software is secure.

Syllabus

Welcome!
Chapter 1. Verification (basics of verification; static analysis; software component analysis - SCA/dependency analysis; dynamic analysis; other verification topics - combining verification approaches)
Chapter 2. Threat Modeling
Chapter 3. Cryptography (symmetric/shared key encryption; cryptographic hashes (digital fingerprints); public-key (asymmetric) cryptography; cryptographic pseudo-random number generator (PRNG); storing passwords; transport layer security (TLS); other topics in cryptography)
Chapter 4. Other Topics (vulnerability disclosures; assurance cases; distributing, fielding/deploying, operations and disposal; formal methods; top vulnerability lists)
Final Exam (Verified Certificate 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

Network Defense Essentials (NDE) (edX) EdX
EC-Council

Network Defense Essentials (NDE) (edX)

Network Defense Essentials (NDE) is a first-of-its-kind MOOC certification that provides foundational knowledge and skills in network security with add-on labs for hands-on experience. Network security plays a vital role in most organizations. It is the process of preventing and detecting unauthorized use of an organization’s networking infrastructure.

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
Wiretaps to Big Data: Privacy and Surveillance in the Age of Interconnection (edX) EdX
Cornell University

Wiretaps to Big Data: Privacy and Surveillance in the Age of Interconnection (edX)

Explore the privacy issues of an interconnected world. How does cellular technology enable massive surveillance? Do users have rights against surveillance? How does surveillance affect how we use cellular and other technologies? How does it affect our democratic institutions? Do you know that the metadata collected by a cellular network speaks volumes about its users? In this course you will explore all of these questions while investigating related issues in WiFi and Internet surveillance.

No sessions available
5-12 Weeks
Introduction to Software Side Channels and Mitigations (edX) EdX
Graz University of Technology,TUGrazX

Introduction to Software Side Channels and Mitigations (edX)

Side channels exist in the real world, but they also exist in computers and can be exploited directly from software. This is a substantial computer security problem today, that we need to learn about to be able to stop attacks. In this course, you will learn and practice basic software-based side channels and understand the thought process to utilize a side channel. You will then learn how to mitigate or avoid side channels in software.

Self Paced
5-12 Weeks
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
Unlocking Information Security II: An Internet Perspective (edX) EdX
Tel Aviv University,IsraelX,TAUx

Unlocking Information Security II: An Internet Perspective (edX)

Continue learning how systems are hacked and defended. Information Security is everywhere: as the world becomes more and more digitized, so it becomes more and more hackable. Cyber attacks, data breaches, and even cyber warfare are all very real - so it's infinitely important to understand how hackers think and act, and how you can fight back.

Self Paced
Self-Paced
Ciberseguridad. Bases y estructuras para la protección de la información (edX) EdX
Universidad Anáhuac,AnahuacX

Ciberseguridad. Bases y estructuras para la protección de la información (edX)

Sé capaz de blindar tu información y la de tu empresa contra las amenazas informáticas y conoce los fundamentos del fascinante mundo de la ciberseguridad. En la actualidad el acceso a las bases de datos, a las redes de computadoras y la información en la nube es esencial para desempeñar gran parte de nuestras actividades cotidianas.

Self Paced
Self-Paced
Terrorism and Counterterrorism (edX) EdX
Georgetown University,GeorgetownX

Terrorism and Counterterrorism (edX)

What is the danger of terrorism, and how can the world respond effectively? Terrorism has gone from a persistent yet marginal security concern to one of the most important security problems of our day. There are few countries that do not suffer from some form of terrorism. Though many attempts at terrorism fail, some groups wage lengthy and bloody campaigns and, in exceptional cases, kill hundreds or even thousands in pursuit of their ends.

Self Paced
Self-Paced