To use our site, you agree to the use of cookies and data processing according to our privacy statement.

Secure Coding Expert for Embedded Systems

Are you a seasoned C/C++programmer who wants to take their skills to the next level? Then this 3 part specialized security program is for you! Learn how to eliminate logical errors, harden critical code areas against fault attacks, and protect crypto algorithms against Side Channel attacks. This is a unique program with a clear objective: learn to identify vulnerabilities, implement countermeasures and evaluate their cost (e.g., performance penalty).

Request this course

Online Course content

Eliminate logical errors

The first line of defense in securing an embedded system is protecting the software from bugs. This course provides guidelines on removing the most widely encountered type of vulnerability for embedded systems: memory corruption. Compared to most other available resources for secure coding, our course is comprehensive, practise oriented and highly engaging.

Harden critical code against faults

Fault attacks influence the intended behavior of a program by changing critical values in memory or the instruction flow of a program. Fault attacks are used to bypass robust security features such as secure boot and authentication mechanisms. This is the first fault injection course created specifically for developers who want to harden embedded systems.

Protect the crypto engines

Protecting sensitive data requires utilizing theoretically secure cryptographic algorithms. Nevertheless, the physical implementation of such algorithms could be susceptible threats such as side channel analysis attacks. This is the first side channel analysis course created specifically for developers. Learn how to protect devices and applications, countermeasures and their cost

Core capabilities

  • Challenge assumptions: making assumptions is a common but dangerous programming practice, e.g. it can lead to incorrectly validated input. You will learn how software programs are executed in the memory, what happens when a device operates out of bounds and how instantaneous power consumption can be used to extract secret information.
  • Find vulnerabilities: because a device or application can be compromised when even a single vulnerability is identified by an attacker, the goal of a developer is to remove all vulnerabilities. You will learn how to eliminate the most common logical errors in software, add extra defense to the critical areas of code, and secure the crypto engines.
  • Choose and implement defenses: while there are many possible defense mechanisms, each comes at a cost: execution time, required memory, access to hardware components such as RNGs. You will learn how to analyze the cost and effect tradeoff, and thus be able to make informed strategic decisions.


Thank you! Our sales team will get in touch with you shorly.