Writing Secure Code in C++ Learning Path

Learn to improve your ability to write secure code in C and C++.

10 hours, 56 minutes

Quick facts

About this learning path

  • courses

    100% online

  • Duration

    10 hours, 56 minutes

  • Assessment

    questions

About Writing Secure Code in C++

Explore the C and C++ languages. Look at the specificity of the C/C++ languages and how this impacts security, ways C/C++ can interact with the external world, error handling, the execution environment and much more.

 

Syllabus

Secure Coding - C/C++

Lab - 00:30:00

This lab covers multiple secure coding errors commonly found in C and C++, including buffer overruns, strcpy(), gets(), and the system() function.
Writing Secure Code in C++ Skill Assessment

Assessment - 35 questions

Secure C/C++

Course - 00:13:00

Begin your Secure C/C++ journey with this course introducing you to our learning path. Explore the tools and content of the courses to come and begin with a look at why and where we generally use C and C++.
C/C++ Particularities

Course - 02:44:00

Explore the particularities and challenges of C/C++. This includes integer manipulation, use of local variables, use of dynamic memory, buffer overflow protection and string manipulation.
Interacting with the World

Course - 02:15:00

In this course, you'll explore the many different ways a program can interact with the world. This includes files, file name validation and stdin/stdout/stderr. For each topic, the security aspects of the interaction are discussed and recommendations are made about how to validate exchanged data.
Error Handling

Course - 00:43:00

In this course, you'll dive deep into the details of error handling. What do you do when an error occurs? What is a structured exception, and should you use it? Find out here.
Random Number Generation

Course - 00:21:00

How useful are random numbers? The answer is "very." Explore the importance of good random number generation and how the functions the C library provides for it are flawed. Finally, look at better ways to generate random numbers.
SETUID Bit

Course - 00:29:00

In this course, you'll dig into the details of program "superpowers." Explore the SETUID and SETGIT bits, capabilities, Windows usage and more.
Driver Development

Course - 00:43:00

This course will take you through the details of driver development in C. Learn about error handling, IoCtl and more, as well as the importance of device drivers as your kernel's last line of defense. Failing to use secure coding practices when programming them puts the whole system at risk.

Meet the author

Martin Dubois

Martin Dubois obtained a degree in computer engineering from Laval University, Québec City, in 1993. He worked in many high-tech start-ups as software developer and software development leader. He mainly developed in C and C++, creating embedded software and device drivers for Windows and Linux. In 2000, he became a freelancer. He helps clients to develop safe, functional and efficient software systems. In addition to developing in C and C++, he provides expert corporate training about device driver development and other related subjects.

Martin is deeply interested in computer security. He never misses the Québec City Hackfest event and even presented subjects twice. He has been a part-time lecturer at colleges and university for over 15 years, where he did teach computer science, programming, and network security.

The details

Learning path insights

How to claim CPEs

Should you complete this learning path, you’ll be able to download a certificate of completion. Use this to claim your CPEs or CPUs.

Associated NICE Work Roles

All Infosec training maps directly to the NICE Workforce Framework for Cybersecurity to guide you from beginner to expert across 52 Work Roles.

  • Exploitation Analyst
  • Multi-Disciplined Language Analyst
  • Cyber Operator

No software. No set up. Unlimited access.

Skip the server racks and spin up a realistic environment with one click. Infosec Skills cyber ranges require no additional software, hardware or server space so your team can spend less time configuring environments and more time learning. Unlimited cyber range access is included in every Infosec Skills subscription so your team can skill up however they learn best.

Unlock 7 days of free training

  • 1,400+ hands-on courses and labs
  • Certification practice exams
  • Skill assessments

Plans & pricing

Infosec Skills Personal

$299 / year

  • 190+ role-guided learning paths (e.g., Ethical Hacking, Threat Hunting)
  • 100s of hands-on labs in cloud-hosted cyber ranges
  • Custom certification practice exams (e.g., CISSP, Security+)
  • Skill assessments
  • Infosec peer community support

Infosec Skills Teams

$799 per license / year

  • Team administration and reporting
  • Dedicated client success manager
  • Single sign-on (SSO)
    Easily authenticate and manage your learners by connecting to any identity provider that supports the SAML 2.0 standard.
  • Integrations via API
    Retrieve training performance and engagement metrics and integrate learner data into your existing LMS or HRS.
  • 190+ role-guided learning paths and assessments (e.g., Incident Response)
  • 100s of hands-on labs in cloud-hosted cyber ranges
  • Create and assign custom learning paths
  • Custom certification practice exams (e.g., CISSP, CISA)
  • Optional upgrade: Guarantee team certification with live boot camps

Learn about scholarships and financing with

Affirm logo