Course Objectives
After completing this course, students will be able to:
- Identify the need for security in your software projects.
- Eliminate vulnerabilities within software.
- Use a Security by Design approach to design a secure architecture for your software.
- Implement common protections to protect users and data.
- Apply various testing methods to find and correct security defects in your software.
- Maintain deployed software to ensure ongoing security.
Who Should Attend?
This course is designed for software developers, testers, and architects who design and develop software in various programming languages and platforms including desktop, web, cloud, and mobile, and who want to improve their ability to deliver software that is of high quality, particularly regarding security and privacy.
Pre-requisite
This course presents secure programming concepts that apply to many different types of software development projects. While this course uses Python, HTML, and JavaScript to demonstrate various programming concepts, you do not need to have experience in these languages to benefit from this course. However, you should have some programming.
Course Outlines
Module 01: Identifying the needs for security in your software projects
- Identify Security Requirements and Expectations
- Identify Factors That Undermine Software Security
- Find Vulnerabilities in Your Software
- Gather Intelligence on Vulnerabilities and Exploits
Module 02: Handling vulnerabilities
- Handle Vulnerabilities Due to Software Defects and Misconfiguration
- Handle Vulnerabilities Due to Human Factors
- Handle Vulnerabilities Due to Process Shortcomings
Module 03: Designing for security
- Apply General Principles for Secure Design
- Design Software to Counter Specific Threats
Module 04: Developing secure code
- Follow Best Practices for Secure Coding
- Prevent Platform Vulnerabilities
- Prevent Privacy Vulnerabilities
Module 05: Implementing common protection
- Limit Access Using Login and User Roles
- Protect Data in Transit and At Rest
- Implement Error Handling and Logging
- Protect Sensitive Data and Functions
- Protect Database Access
Module 06: Testing software security
- Perform Security Testing
- Analyze Code to find Security Problems
- Use Automated Testing Tools to Find Security Problems
Module 07: Maintaining security in deployed software
- Monitor and Log Applications to Support Security
- Maintain Security after Deployment