Cyber Secure Coder

This course presents an approach for dealing with security and privacy throughout the entire software development lifecycle. You will learn about vulnerabilities that undermine security, and how to identify and remediate them in your own projects.

Description

The stakes for software security are very high, and yet many development teams deal with software security only after the code has been developed and the software is being prepared for delivery. As with any aspect of software quality, to ensure successful implementation, security and privacy issues should be managed throughout the entire software development lifecycle. 

This course presents an approach for dealing with security and privacy throughout the entire software development lifecycle. You will learn about vulnerabilities that undermine security, and how to identify and remediate them in your own projects. You will learn general strategies for dealing with security defects and misconfiguration, how to design software to deal with the human element in security, and how to incorporate security into all phases of development. 

Course Objectives:

In this course, you will employ best practices in software development to develop secure software. You will:

  • 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.

This course includes hands-on activities for each topic area. The goal of these activities is to demonstrate concepts utilizing two universal languages Python and JavaScript. Developers who use alternate languages will be able to apply the principles from the activities to any coding languages.

Hands-on exercises are designed to keep the typing of code to a bare minimum. We provide students with all of the code they need to complete activities. The activities do not require a “deep dive” into code to understand the principles being covered.

Target Student

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.

This course is also designed for students who are seeking the CertNexus Cyber Secure Coder certification.

Prerequisites

This course presents secure programming concepts that apply to many different types of software development projects. Although 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 experience, whether it be developing desktop, mobile, web, or cloud applications. 

Course-specific Technical Requirements

Hardware

For this course, you will need one computer for each student and one for the instructor. Each computer will need the following minimum hardware configurations:

  • 1 GHz or faster 32-bit (x86) or 64-bit (x64) processor
  • 2 gigabytes (GB) RAM (32-bit or 64-bit)
  • 20 GB available hard disk space (32-bit or 64-bit)
  • Keyboard and mouse (or other pointing device)
  • 1,024 x 768 resolution monitor recommended
  • Projection system to display the instructor's computer screen
  • Local area network and Internet connection

Software

  • Windows® 10/8.1/8/7/Vista (64-bit). This course was successfully keyed on Windows 10. Some activity steps may not key exactly as written if students key on a different version of Windows.
  • Python version 3.8.1 (python-3.8.1.amd64.msi, provided with the course data files).
  • PyCharm Community Edition version 2019.3.3 (pycharm-community-2019.3.3.exe, provided with the course data files). Python is distributed under the Python Software Foundation License (PSFL). PyCharm Community Edition is distributed under the Apache® License 2.0.

Modules/Lessons

Lesson 1: Identifying the Need for Security in Your Software Projects

Topic A: Identify Security Requirements and Expectations
Topic B: Identify Factors That Undermine Software Security
Topic C: Find Vulnerabilities in Your Software
Topic D: Gather Intelligence on Vulnerabilities and Exploits

Lesson 2: Handling Vulnerabilities

Topic A: Handle Vulnerabilities Due to Software Defects and Misconfiguration
Topic B: Handle Vulnerabilities Due to Human Factors
Topic C: Handle Vulnerabilities Due to Process Shortcomings

Lesson 3: Designing for Security

Topic A: Apply General Principles for Secure Design
Topic B: Design Software to Counter Specific Threats

Lesson 4: Developing Secure Code

Topic A: Follow Best Practices for Secure Coding
Topic B: Prevent Platform Vulnerabilities
Topic C: Prevent Privacy Vulnerabilities

Lesson 5: Implementing Common Protections

Topic A: Limit Access Using Login and User Roles
Topic B: Protect Data in Transit and At Rest
Topic C: Implement Error Handling and Logging
Topic D: Protect Sensitive Data and Functions
Topic E: Protect Database Access

Lesson 6: Testing Software Security

Topic A: Perform Security Testing
Topic B: Analyze Code to find Security Problems
Topic C: Use Automated Testing Tools to Find Security Problems

Lesson 7: Maintaining Security in Deployed Software

Topic A: Monitor and Log Applications to Support Security
Topic B: Maintain Security after Deployment

Similar courses

In the past, popular thought treated artificial intelligence (AI) as if it were the domain of science fiction or some far-flung future. In the last few years, however, AI has been given new life. The business world has especially given it renewed interest. However, AI is not just another technology or process for the business to consider - it is a truly disruptive force.

More Information

Regardless of your computer experience, this class will help you become more aware of technology-related risks and what you can do to protect yourself and your organization from them.

More Information

The Internet of Things (IoT) promises a wide range of benefits for industry, energy and utility companies, municipalities, healthcare, and consumers. Data can be collected in extraordinary volume and detail regarding almost anything worth measuring, such as public health and safety, the environment, industrial and agricultural production, energy, and utilities.

More Information

The ability to identify and respond to changing trends is a hallmark of a successful business. Whether those trends are related to customers and sales, or to regulatory and industry standards, businesses are wise to keep track of the variables that can affect the bottom line. In today's business landscape, data comes from numerous sources and in diverse forms.

More Information

This course covers incident response methods and procedures are taught in alignment with industry frameworks such as US-CERT’s NCISP (National Cyber Incident Response Plan), and Presidential Policy Directive (PPD) 41 on Cyber Incident Coordination Policy.

More Information

Data Ethics for Business Professionals is designed for individuals who are seeking to demonstrate an understanding of the ethical uses of data in business settings.

More Information

This course shows you how to apply various approaches and algorithms to solve business problems through AI and ML, follow a methodical workflow to develop sound solutions, use open-source, off-the-shelf tools to develop, test, and deploy those solutions, and ensure that they protect the privacy of users. This course includes hands-on activities for each topic area.

More Information

This course will enable you to bring value to the business by putting data science concepts into practice. Data is crucial for understanding where the business is and where it's headed. Not only can data reveal insights, but it can also inform - by guiding decisions and influencing day-to-day operations.

More Information

In this course, students will learn general strategies for planning, designing, developing, implementing, and maintaining an IoT system through various case studies and by assembling and configuring an IoT device to work in a sensor network.

More Information

This course is designed for students who already have foundational knowledge and skills in Excel and who wish to perform robust and advanced data and statistical analysis with Microsoft Excel using PivotTables, use tools such as Power Pivot and the Data Analysis ToolPak to analyze data and visualize data and insights using advanced visualizations in charts and dashboards in Excel.

More Information