Course description
Secure Coding in C and C++ for Medical Devices
Your medical device written in C and C++ works as intended, so you are done, right? But did you consider feeding in incorrect values? 16Gbs of data? A null? An apostrophe? Negative numbers, or specifically -232? Because that’s what the bad guys will do – and the list is far from complete.
Handling security needs a healthy level of paranoia, and this is what this course provides: a strong emotional engagement by lots of hands on labs and stories from real life, all to substantially improve code hygiene. Mistakes, consequences and best practices are our blood, sweat and tears.
All this is put in the context of C and C++, and extended by core programming issues, discussing security pitfalls of these languages.
So that you are prepared for the forces of the dark side.
So that nothing unexpected happens.
Nothing.
This training is available for corporate teams and can be offered virtually to suit your company's needs. Get in touch to learn more!
Do you work at this organisation and want to update this page?
Is there out-of-date information about your organisation or courses published here? Fill out this form to get in touch with us.
Upcoming start dates
Suitability - Who should attend?
Audience
C/C++ developers developing medical devices
Preparedness
General C/C++ development
Objective list
- Getting familiar with essential cyber security concepts
- Learning about security specialties of the healthcare sector
- Handling security challenges in your C and C++ code
- Identify vulnerabilities and their consequences
- Learn the security best practices in C and C++
- Understanding security testing methodology and approaches
- Getting familiar with common security testing techniques and tools
Training Course Content
Day 1
- Cyber security basics
- What is security?
- Threat and risk
- Cyber security threat types
- Consequences of insecure software
- Regulations and standards
- Cyber security in the healthcare sector
- Buffer overflow
- Assembly basics and calling conventions
- Memory management vulnerabilities
- Best practices and some typical mistakes
Day 2
- Buffer overflow
- Some typical mistakes leading to BOF
- Memory management hardening
- Securing the toolchain
- Runtime protections
- Common software security weaknesses
- Security features
Day 3
- Common software security weaknesses
- Security features
- Common software security weaknesses
- Input validation
Day 4
- Common software security weaknesses
- Time and state
- Errors
- Code quality
- Using vulnerable components
- Assessing the environment
- Hardening
- Case study – Supply chain attack on Alaris Gateway Workstation
- Vulnerability management
- Security testing
- Security testing vs functional testing
- Manual and automated methods
- Security testing techniques and tools
- Wrap up
- Secure coding principles
- And now what?
See full Table of Contents in the downloadable brochure.