University of California, Davis
Identifying Security Vulnerabilities in C/C++Programming
University of California, Davis

Identifying Security Vulnerabilities in C/C++Programming

This course is part of Secure Coding Practices Specialization

Taught in English

Some content may not be translated

Matthew Bishop, PhD

Instructor: Matthew Bishop, PhD

8,700 already enrolled

Included with Coursera Plus

Course

Gain insight into a topic and learn the fundamentals

4.6

(79 reviews)

Intermediate level
Some related experience required
22 hours (approximately)
Flexible schedule
Learn at your own pace

What you'll learn

  • Apply “what to watch out for” and “where to look” to evaluate fragility of C++ library code.

  • Given a fragile C++ library, code a robust version.

  • Identify problems w/ privilege, trusted environments, input validation, files & sub-processes, resource mngmt, asynchronicity, & randomness in C/C++.

  • Remediate examples of problems that apply to C/C++ interactions with the programming environment.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

8 quizzes

Course

Gain insight into a topic and learn the fundamentals

4.6

(79 reviews)

Intermediate level
Some related experience required
22 hours (approximately)
Flexible schedule
Learn at your own pace

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Secure Coding Practices Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 4 modules in this course

In this module, you will be able to manage users and privileges when you run programs or sub-programs. You will be able to identify and use the different types of privileges on a Linux (and UNIX-like) system. You'll be able to identify how program shells preserve environment settings. You will be able to examine how your shell (or other program that uses the PATH variable) deals with multiple versions of that variable.

What's included

17 videos4 readings2 quizzes4 discussion prompts

In this module, you will be able to breakdown how the process of checking inputs, known as validation and verification works. You will be able to avoid and buffer numeric overflows in your programs. You will be able to discover what happens when you call functions with parameters that cause overflows. And finally, you will be able to detect various input injections such as cross-site scripting and SQL injections and be able to describe the consequences of not examining input.

What's included

17 videos2 readings2 quizzes2 discussion prompts

In this module, you will be able to describe how files and subprocesses interact and be able to create subprocesses and shell scripts. You will also be able to identify and prevent race conditions in your programs and practice cleaning out environments to make them safe for untrusted subprocesses.

What's included

13 videos1 reading2 quizzes1 discussion prompt

In this module you will be able to distinguish between pseudo-randomness and actual randomness. You will be able to apply randomness in the coding environment and generate random numbers and look at their distribution. You'll be able to identify and describe how and why cryptography is used, as well as why you should use trusted cryptography code libraries instead of crafting your own solution. You will be able to analyze and consider best practices for handling sensitive information, passwords, crypto keys, how to handle errors in security sensitive programs, and how to defend against string attacks. You will be able to hash a password and then try to guess another one. You will be able to practice cleaning out environments to make them safe for untrusted subprocesses, as well as practice handling integer overflow.

What's included

19 videos4 readings2 quizzes5 discussion prompts

Instructor

Instructor ratings
4.8 (14 ratings)
Matthew Bishop, PhD
University of California, Davis
2 Courses21,634 learners

Offered by

Recommended if you're interested in Computer Security and Networks

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

Showing 3 of 79

4.6

79 reviews

  • 5 stars

    73.41%

  • 4 stars

    15.18%

  • 3 stars

    10.12%

  • 2 stars

    0%

  • 1 star

    1.26%

BD
4

Reviewed on Jun 12, 2020

VP
4

Reviewed on Nov 30, 2020

HH
5

Reviewed on May 30, 2020

New to Computer Security and Networks? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions