Courses

Standard courses

- Duration: 3 days

- Audience: Developers

Short description

To put it bluntly, writing C/C++ code can be a minefield for reasons ranging from memory management or dealing with legacy code to sharp deadlines and code maintainability. Yet, beyond all that, what if we told you that attackers were trying to break into your code right now? How likely would they be to succeed?

This course will change the way you look at your C/C++ code. We'll teach you the common weaknesses and their consequences that can allow hackers to attack your system, and – more importantly – best practices you can apply to protect yourself. We give you a holistic view on C/C++ programming mistakes and their countermeasures from the machine code level to virtual functions and OS memory management. We present the entire course through live practical exercises to keep it engaging and fun.

Writing secure code will give you a distinct edge over your competitors. It is your choice to be ahead of the pack – take a step and be a game-changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • ARM machine code, memory layout and stack operations

  • Buffer overflow

  • Practical cryptography

  • XML security

  • Common coding errors and vulnerabilities

  • Denial of service

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Have a practical understanding of cryptography

  • Learn about XML security

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Learn about denial of service attacks and protections

  • Get sources and further readings on secure coding practices

- Duration: 3 days

- Audience: Developers

Short description

To put it bluntly, writing C/C++ code can be a minefield for reasons ranging from memory management or dealing with legacy code to sharp deadlines and code maintainability. Yet, beyond all that, what if we told you that attackers were trying to break into your code right now? How likely would they be to succeed?

This course will change the way you look at your C/C++ code. We'll teach you the common weaknesses and their consequences that can allow hackers to attack your system, and – more importantly – best practices you can apply to protect yourself. We give you a holistic view on C/C++ programming mistakes and their countermeasures from the machine code level to virtual functions and OS memory management. We present the entire course through live practical exercises to keep it engaging and fun.

Writing secure code will give you a distinct edge over your competitors. It is your choice to be ahead of the pack – take a step and be a game-changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • x86 machine code, memory layout and stack operations

  • Buffer overflow

  • Practical cryptography

  • XML security

  • Common coding errors and vulnerabilities

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Have a practical understanding of cryptography

  • Learn about XML security

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Get sources and further readings on secure coding practices

Master courses

- Duration: 5 days

- Audience: Developers, Testers

Short description

As a developer, your duty is to write bulletproof code. However...

What if we told you that despite all of your efforts, the code you have been writing your entire career is full of weaknesses you never knew existed? What if, as you are reading this, hackers were trying to break into your code? How likely would they be to succeed?

This advanced course will change the way you look at code. A hands-on training during which we will teach you all of the attackers’ tricks and how to mitigate them, leaving you with no other feeling than the desire to know more.

It is your choice to be ahead of the pack, and be seen as a game changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • ARM machine code, memory layout and stack operations

  • Buffer overflow

  • Common coding errors and vulnerabilities

  • Requirements of secure communication

  • Practical cryptography

  • XML security

  • Security protocols

  • Security in the software development lifecycle

  • Security testing

  • Security testing techniques and tools

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Understand the requirements of secure communication

  • Have a practical understanding of cryptography

  • Learn about XML security

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Understand security considerations in the SDLC

  • Understand security testing approaches and methodologies

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices

- Duration: 5 days

- Audience: Developers, Testers

Short description

As a developer, your duty is to write bulletproof code. However...

What if we told you that despite all of your efforts, the code you have been writing your entire career is full of weaknesses you never knew existed? What if, as you are reading this, hackers were trying to break into your code? How likely would they be to succeed?

This advanced course will change the way you look at code. A hands-on training during which we will teach you all of the attackers’ tricks and how to mitigate them, leaving you with no other feeling than the desire to know more.

It is your choice to be ahead of the pack, and be seen as a game changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • x86 machine code, memory layout and stack operations

  • Buffer overflow

  • Common coding errors and vulnerabilities

  • Requirements of secure communication

  • Practical cryptography

  • XML security

  • Security protocols

  • Security in the software development lifecycle

  • Security testing

  • Security testing techniques and tools

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Understand the requirements of secure communication

  • Have a practical understanding of cryptography

  • Learn about XML security

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Understand security considerations in the SDLC

  • Understand security testing approaches and methodologies

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices

Comprehensive courses

- Duration: 4 days

- Audience: Developers

Short description

As a developer, your duty is to write bulletproof code. However...

What if we told you that despite all of your efforts, the code you have been writing your entire career is full of weaknesses you never knew existed? What if, as you are reading this, hackers were trying to break into your code? How likely would they be to succeed?

This advanced course will change the way you look at code. A hands-on training during which we will teach you all of the attackers’ tricks and how to mitigate them, leaving you with no other feeling than the desire to know more.

It is your choice to be ahead of the pack, and be seen as a game changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • ARM machine code, memory layout and stack operations

  • Buffer overflow

  • Practical cryptography

  • Security protocols

  • Cryptographic vulnerabilities

  • XML security

  • Common coding errors and vulnerabilities

  • Security testing techniques and tools

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Have a practical understanding of cryptography

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Learn about XML security

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices

- Duration: 4 days

- Audience: Developers

Short description

As a developer, your duty is to write bulletproof code. However...

What if we told you that despite all of your efforts, the code you have been writing your entire career is full of weaknesses you never knew existed? What if, as you are reading this, hackers were trying to break into your code? How likely would they be to succeed?

This advanced course will change the way you look at code. A hands-on training during which we will teach you all of the attackers’ tricks and how to mitigate them, leaving you with no other feeling than the desire to know more.

It is your choice to be ahead of the pack, and be seen as a game changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • x86 machine code, memory layout and stack operations

  • Buffer overflow

  • Practical cryptography

  • Security protocols

  • Cryptographic vulnerabilities

  • XML security

  • Common coding errors and vulnerabilities

  • Security testing techniques and tools

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Have a practical understanding of cryptography

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Learn about XML security

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices

Vertical courses

- Duration: 5 days

- Audience: Developers, Testers, Professionals

Short description

The past few years have seen a massive increase in attacks, data breaches and medical identity theft targeting the healthcare industry; there have also been various ransomware attacks paralyzing healthcare computer networks as well as the various medical devices connected to them. The rise of mobile devices used in the industry needs to be addressed as well: there is a huge growth of medical software applications for mobiles and tablets that connect the patient with the organization – carrying and storing personally identifiable information (PII).

Healthcare is one of the business domains where security is absolutely crucial. Vulnerability is not an option when working with life-saving devices. There is also significant compliance pressure – if you want to stay a trusted and reliable vendor, your systems and applications need to comply with Health Information Portability and Accountability Act (HIPAA) requirements. To deal with these challenges, you need motivated secure coders with the right skills and the right attitude to fight security problems: a skilled team of software engineers as well as network administrators.

This training program exclusively targets engineers developing applications or maintaining networks for the healthcare sector. Our dedicated trainers share their experience and expertise through hands-on labs, and give real-life case studies from the healthcare industry – engaging participants in live hacking fun to reveal all consequences of insecure coding.

Outline
  • IT security and secure coding

  • Special threats in the healthcare sector

  • Regulations and standards

  • Web application security (OWASP Top Ten)

  • Client-side security

  • Security architecture

  • Requirements of secure communication

  • Practical cryptography

  • Crypto libraries and APIs

  • Security protocols

  • Input validation

  • Security of Web services

  • Improper use of security features

  • Object-relational mapping (ORM) security

  • Improper error and exception handling

  • Time and state problems

  • Code quality problems

  • Denial of service

  • Security testing techniques and tools

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Understand special threats in the healthcare sector

  • Understand regulations and standards

  • Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them

  • Learn about XML security

  • Learn client-side vulnerabilities and secure coding practices

  • Have a practical understanding of cryptography

  • Understand the requirements of secure communication

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Understand security concepts of Web services

  • Learn about JSON security

  • Learn about typical coding mistakes and how to avoid them

  • Get information about some recent vulnerabilities in the Java framework

  • Learn about denial of service attacks and protections

  • Get practical knowledge in using security testing techniques and tools

  • Get sources and further readings on secure coding practices

- Duration: 5 days

- Audience: Developers, Testers, Professionals

Short description

Telecommunication is the foundation on which critical infrastructures are built – all modern technologies heavily rely on its security. The continued adoption of IP-based telecommunication and the exposure of telecom equipment opens additional paths for attackers, with a massive increase in security incidents against telecom systems.

The security of customer premises equipment and the prevalence of Internet of Things (IoT) devices is especially critical, as these devices are directly exposed to attackers and potentially resulting in large-scale attacks against users and companies alike. IoT security is recognized by the industry as a critical area of telecommunications, as evidenced by the efforts of the GSM Alliance to produce a set of IoT security guidelines for network operators.

The threats against telecom systems run the gamut from simple-yet-effective DDoS attacks to large-scale exploitation of vulnerabilities in communication equipment. Ultimately, the best way to deal with these challenges, you need motivated secure coders with the right skills and the right attitude to fight security problems: a skilled team of software and network engineers.

This training program exclusively targets engineers developing software applications or network equipment for the healthcare sector. Our dedicated trainers share their experience and expertise through hands-on labs, and give real-life case studies from the telecom industry – engaging participants in hands-on labs to realize the harsh consequences of insecure coding.

Our dedicated trainers share their experience and expertise through hands-on labs, and give real-life case studies from the telecom industry – engaging participants in hands-on labs to realize the harsh consequences of insecure coding.

Outline
  • IT security and secure coding

  • Special threats in the telecom sector

  • Regulations and standards

  • Web application security

  • Client-side security

  • Practical cryptography

  • Network security

  • Common coding errors and vulnerabilities

  • Foundations of Java security

  • Secure communication in Java

  • Java security services

  • x86 machine code, memory layout and stack operations

  • Buffer overflow

  • Some additional native code-related vulnerabilities

  • Denial of service

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Understand special threats in the telecom sector

  • Understand regulations and standards

  • Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them

  • Learn about XML security

  • Learn client-side vulnerabilities and secure coding practices

  • Have a practical understanding of cryptography

  • Learn about network attacks and defenses at different OSI layers

  • Learn about typical coding mistakes and how to avoid them

  • Get information about some recent vulnerabilities in the Java framework

  • Learn to use various security features of the Java development environment

  • Understand security concepts of Web services

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Learn about denial of service attacks and protections

  • Get sources and further readings on secure coding practices

Special courses

- Duration: 3 days

- Audience: Developers

Short description

The course will start with a brief overview of cryptographic principles, symmetric, asymmetric encryption, hash-based authentication, digital signatures, the public key architectures and the use of OpenSSL basic commands as the TPM programming will heavily build on these principles.

TPM chip features form a complex toolset in order to provide root of trust protection, measurement of integrity, secure storage and secure auditing and reporting. All these features are backed with key management, organized into special hierarchies. In order to provide a robust solution for measuring the integrity of software and build a secure boot loading procedure, the TPM chips use so-called Platform Counter Registers (PCR). Several exercises will help to understand the operation of the PCR based hash calculation mechanism. The secure and protected storage is solved by the TPM with the concept of non-volatile memory blocks addressed by NV indexes, which also have special forms, like NV Counters, Bit Fields and NV Extend Indexes. Besides these TPM specific concepts, the usual crypto primitives and how TPM supports their secure execution will also be discussed and demonstrated by hands-on exercises.

The more complex application of TPM based secure solutions will be demonstrated on a sample application framework that was developed for educational purposes. This demonstration application covers the topics of device identification, firmware integrity protection, secure boot loader, chain of trust verification remote attestation and encryption-based solutions. Within this application framework on one hand, we will be able to demonstrate the typical implementation mistakes, pitfalls of past incidents that led to exploitable security weaknesses and on the other hand provide hands-on exercises for the participants to implement their secure solutions based on TPM chip features.

The course is supplemented with real world case studies connected to the explained topics.

Outline
  • IT security and secure coding

  • Practical cryptography

  • Basic TPM security features

  • TPM based Cryptographic Operations

  • Firmware Integrity Protection

  • Remote Attestation

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Have a practical understanding of cryptography

  • Learn about various TPM security features

  • Learn about TPM based Cryptographic Operations

  • Understand the concept of PKI based device identification

  • Learn about Firmware integrity protection

  • Learn about Chain of trust verification

  • Learn about Remote attestation

  • Understand the concept of TPM boot loading

- Duration: 3 days

- Audience: Developers

Short description

Today, cryptography protects the confidentiality and integrity of data in all states. Modern cryptographic functions are provided by well-established libraries, one of which is OpenSSL. It is imperative to understand how the pieces fit together, as misusing them can completely nullify the protections applied.

This course explores practical cryptography from the ground up, combining theory, practice using OpenSSL, and real-life case studies. First, we define secure-communication requirements (e.g. confidentiality, integrity) and transition into cryptographic primitives and their properties. Participants learn about symmetric encryption modes, hashing, message authentication codes (MACs), and correct usage. Next, asymmetric encryption is introduced, exploring RSA, DSA, and ECC. We then see how these building blocks construct the Public Key Infrastructure (PKI), certificates, and root of trust. At last, we build the TLS protocol and examine some of its vulnerabilities.

The course is invaluable for anyone working directly or indirectly with cryptographic functions. Following the practices and recommendations in this course ensures that cryptography applied will genuinely serve its function and protect data as intended.

Outline
  • IT security and secure coding

  • Requirements of secure communication

  • Practical cryptography

  • Asymmetric (public-key) cryptography

  • Public Key Infrastructure (PKI)

  • Improper use of cryptography

  • Security protocols

  • Cryptographic vulnerabilities

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Have a practical understanding of cryptography

  • Understand the requirements of secure communication

  • Understand essential security protocols

  • Understand some recent attacks against cryptosystems

  • Get sources and further readings on secure coding practices

- Duration: 3 days

- Audience: Developers, Testers

Short description

To put it bluntly, writing C/C++ code can be a minefield for reasons ranging from memory management or dealing with legacy code to sharp deadlines and code maintainability. Yet, beyond all that, what if we told you that attackers were trying to break into your applications right now? How likely would they be to succeed?

After getting familiar with the common weaknesses and their consequences that can allow hackers to attack your system, participants learn about the general approach and the methodology for security testing, and the techniques that can be applied to reveal specific vulnerabilities. Security testing should start with information gathering about the system (ToC, i.e. Target of Evaluation), then a thorough threat modeling should reveal and rate all threats, arriving to the most appropriate risk analysis-driven test plan.

Security evaluations can happen at various steps of the SDLC, and so we discuss design review, code review, reconnaissance and information gathering about the system, testing the implementation and the testing and hardening the environment for secure deployment. Many different security testing techniques are introduced in details, like taint analysis and heuristics-based code review, static code analysis or fuzzing. Various types of tools are introduced that can be applied in order to automate security evaluation of software products, which is also supported by a number of exercises, where we execute these tools to analyze the already discussed vulnerable code.

This course prepares testers and QA staff to adequately plan and precisely execute security tests for applications written in C or C++, select and use the most appropriate tools and techniques to find even hidden security flaws, and thus gives essential practical skills that can be applied on the next day working day.

Having secure applications will give you a distinct edge over your competitors. It is your choice to be ahead of the pack – take a step and be a game-changer in the fight against cybercrime.

Outline
  • IT security and secure coding

  • x86 machine code, memory layout and stack operations

  • Buffer overflow

  • Common coding errors and vulnerabilities

  • Denial of service

  • Security testing

  • Security testing techniques and tools

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Realize the severe consequences of unsecure buffer handling

  • Understand the architectural protection techniques and their weaknesses

  • Learn about typical coding mistakes and how to avoid them

  • Be informed about recent vulnerabilities in various platforms, frameworks and libraries

  • Learn about denial of service attacks and protections

  • Understand security testing approaches and methodologies

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices

- Duration: 3 days

- Audience: Developers, Testers

Short description

After getting familiar with the vulnerabilities and the attack methods, participants learn about the general approach and the methodology for security testing, and the techniques that can be applied to reveal specific vulnerabilities. Security testing should start with information gathering about the system (ToC, i.e. Target of Evaluation), then a thorough threat modeling should reveal and rate all threats, arriving to the most appropriate risk analysis-driven test plan.

Security evaluations can happen at various steps of the SDLC, and so we discuss design review, code review, reconnaissance and information gathering about the system, testing the implementation and the testing and hardening the environment for secure deployment. Many different security testing techniques are introduced in details, like taint analysis and heuristics-based code review, static code analysis, dynamic web vulnerability testing or fuzzing. Various types of tools are introduced that can be applied in order to automate security evaluation of software products, which is also supported by a number of exercises, where we execute these tools to analyze the already discussed vulnerable code. Many real life case studies support better understanding of various vulnerabilities.

This course prepares testers and QA staff to adequately plan and precisely execute security tests, select and use the most appropriate tools and techniques to find even hidden security flaws, and thus gives essential practical skills that can be applied on the next day working day.

Outline
  • IT security and secure coding

  • Web application security

  • Client-side security

  • Security testing

  • Security testing techniques and tools

  • Source code review

  • Input validation

  • Improper use of security features

  • Testing the implementation

  • Deployment environment

  • Principles of security and secure coding

  • Knowledge sources

participants attending this course will
  • Understand basic concepts of security, IT security and secure coding

  • Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them

  • Learn about XML security

  • Learn client-side vulnerabilities and secure coding practices

  • Understand security testing approaches and methodologies

  • Get practical knowledge in using security testing techniques and tools

  • Learn how to set up and operate the deployment environment securely

  • Get sources and further readings on secure coding practices