<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE FL_Course SYSTEM "https://www.flane.de/dtd/fl_course095.dtd"><?xml-stylesheet type="text/xsl" href="https://portal.flane.ch/css/xml-course.xsl"?><course productid="30329" language="de" source="https://portal.flane.ch/swisscom/xml-course/cydrill-casec-jaws" lastchanged="2026-01-12T11:24:34+01:00" parent="https://portal.flane.ch/swisscom/xml-courses"><title>Cloud application security in Java for AWS </title><productcode>CASEC-JAWS</productcode><vendorcode>CY</vendorcode><vendorname>Cydrill</vendorname><fullproductcode>CY-CASEC-JAWS</fullproductcode><version>1</version><objective>&lt;ul&gt;
&lt;li&gt;Understand cloud security specialties&lt;/li&gt;&lt;li&gt;Getting familiar with essential cyber security concepts&lt;/li&gt;&lt;li&gt;Understanding how cryptography supports security&lt;/li&gt;&lt;li&gt;Learning how to use cryptographic APIs correctly in Java&lt;/li&gt;&lt;li&gt;Understanding Web application security issues&lt;/li&gt;&lt;li&gt;Detailed analysis of the OWASP Top Ten elements&lt;/li&gt;&lt;li&gt;Putting Web application security in the context of Java&lt;/li&gt;&lt;li&gt;Going beyond the low hanging fruits&lt;/li&gt;&lt;li&gt;Managing vulnerabilities in third party components&lt;/li&gt;&lt;li&gt;Learn to deal with cloud infrastructure security&lt;/li&gt;&lt;li&gt;Input validation approaches and principles&lt;/li&gt;&lt;li&gt;Identify vulnerabilities and their consequences&lt;/li&gt;&lt;li&gt;Learn the security best practices in Java&lt;/li&gt;&lt;/ul&gt;</objective><essentials>&lt;p&gt;General Java and Web development&lt;/p&gt;</essentials><audience>&lt;p&gt;Java developers working on Web applications and AWS&lt;/p&gt;</audience><outline>&lt;h4&gt;Day 1&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cyber security basics&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;What is security?&lt;/li&gt;&lt;li&gt;Threat and risk&lt;/li&gt;&lt;li&gt;Cyber security threat types &amp;ndash; the CIA triad&lt;/li&gt;&lt;li&gt;Cyber security threat types &amp;ndash; the STRIDE model&lt;/li&gt;&lt;li&gt;Consequences of insecure software&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Cloud security basics&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Cloud infrastructure basics&lt;/li&gt;&lt;li&gt;The Cloud Cube Model and Zero Trust Architecture&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The OWASP Top Ten 2021&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;The OWASP Top 10 2021&lt;/li&gt;&lt;li&gt;A01 - Broken Access Control&lt;ul&gt;
&lt;li&gt;Access control basics&lt;/li&gt;&lt;li&gt;Failure to restrict URL access&lt;/li&gt;&lt;li&gt;Confused deputy&lt;/li&gt;&lt;li&gt;File upload&lt;/li&gt;&lt;li&gt;Open redirects and forwards&lt;/li&gt;&lt;li&gt;Cross-site Request Forgery (CSRF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A02 - Cryptographic Failures&lt;ul&gt;
&lt;li&gt;Information exposure&lt;/li&gt;&lt;li&gt;Cryptography for developers&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Day 2&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A02 - Cryptographic Failures (continued)&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Cryptography for developers&lt;/li&gt;&lt;li&gt;Transport security&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A03 - Injection&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Injection principles&lt;/li&gt;&lt;li&gt;Injection attacks&lt;/li&gt;&lt;li&gt;SQL injection&lt;/li&gt;&lt;li&gt;NoSQL injection&lt;/li&gt;&lt;li&gt;Parameter manipulation&lt;/li&gt;&lt;li&gt;Code injection&lt;/li&gt;&lt;li&gt;HTML injection - Cross-site scripting (XSS)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Day 3&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A04 - Insecure Design&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;The STRIDE model of threats&lt;/li&gt;&lt;li&gt;Secure design principles of Saltzer and Schroeder&lt;/li&gt;&lt;li&gt;Client-side security&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A05 - Security Misconfiguration&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Configuration principles&lt;/li&gt;&lt;li&gt;Server misconfiguration&lt;/li&gt;&lt;li&gt;AWS configuration best practices&lt;/li&gt;&lt;li&gt;Cookie security&lt;/li&gt;&lt;li&gt;XML entities&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A06 - Vulnerable and Outdated Components&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Using vulnerable components&lt;/li&gt;&lt;li&gt;Assessing the environment&lt;/li&gt;&lt;li&gt;Hardening&lt;/li&gt;&lt;li&gt;Untrusted functionality import&lt;/li&gt;&lt;li&gt;Vulnerability management&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A07 - Identification and Authentication Failures&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;&lt;li&gt;Session management&lt;/li&gt;&lt;li&gt;Identity and access management (IAM)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Day 4&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A07 - Identification and Authentication Failures (continued)&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Password management&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A08 - Software and Data Integrity Failures&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Integrity protection&lt;/li&gt;&lt;li&gt;Subresource integrity&lt;/li&gt;&lt;li&gt;Insecure deserialization&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A09 - Security Logging and Monitoring Failures&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Logging and monitoring principles&lt;/li&gt;&lt;li&gt;Log forging&lt;/li&gt;&lt;li&gt;Log forging &amp;ndash; best practices&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; Log interpolation in log4j&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; The Log4Shell vulnerability (CVE-2021-44228)&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; Log4Shell follow-ups (CVE-2021-45046, CVE-2021-45105)&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Log4Shell&lt;/li&gt;&lt;li&gt;Logging best practices&lt;/li&gt;&lt;li&gt;Detection and monitoring&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A10 - Server-side Request Forgery (SSRF) &lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Server-side Request Forgery (SSRF)&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; SSRF and the Capital One breach&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Cloud security&lt;/h4&gt;
&lt;strong&gt;AWS security&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Security considerations&lt;/li&gt;&lt;li&gt;Data security in the cloud&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Day 5&lt;/h4&gt;
&lt;strong&gt;Cloud security&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container security&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Container security concerns&lt;/li&gt;&lt;li&gt;Containerization, virtualization and security&lt;/li&gt;&lt;li&gt;The attack surface&lt;/li&gt;&lt;li&gt;Docker security&lt;/li&gt;&lt;li&gt;Kubernetes security&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;The OWASP Top Ten 2021&lt;/h4&gt;&lt;p&gt;
&lt;strong&gt;Web application security beyond the Top Ten&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code quality&lt;/li&gt;&lt;li&gt;Denial of service&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Input validation&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Input validation principles&lt;/li&gt;&lt;li&gt;Denylists and allowlists&lt;/li&gt;&lt;li&gt;What to validate &amp;ndash; the attack surface&lt;/li&gt;&lt;li&gt;Where to validate &amp;ndash; defense in depth&lt;/li&gt;&lt;li&gt;When to validate &amp;ndash; validation vs transformations&lt;/li&gt;&lt;li&gt;Validation with regex&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Integer handling problems&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Representing signed numbers&lt;/li&gt;&lt;li&gt;Integer visualization&lt;/li&gt;&lt;li&gt;Integer overflow&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Integer overflow&lt;/li&gt;&lt;li&gt;Signed / unsigned confusion in Java&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; The Stockholm Stock Exchange&lt;/li&gt;&lt;li&gt;Integer truncation&lt;/li&gt;&lt;li&gt;Best practices&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Files and streams&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Path traversal&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Path traversal&lt;/li&gt;&lt;li&gt;Path traversal-related examples&lt;/li&gt;&lt;li&gt;Additional challenges in Windows&lt;/li&gt;&lt;li&gt;Virtual resources&lt;/li&gt;&lt;li&gt;Path traversal best practices&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Path canonicalization&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Unsafe reflection&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Reflection without validation&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Unsafe reflection&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Unsafe native code&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Native code dependence&lt;/li&gt;&lt;li&gt;Lab &amp;ndash; Unsafe native code&lt;/li&gt;&lt;li&gt;Best practices for dealing with native code&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Wrap up&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Secure coding principles&lt;/li&gt;&lt;li&gt;And now what?&lt;/li&gt;&lt;/ul&gt;</outline><objective_plain>- Understand cloud security specialties
- Getting familiar with essential cyber security concepts
- Understanding how cryptography supports security
- Learning how to use cryptographic APIs correctly in Java
- Understanding Web application security issues
- Detailed analysis of the OWASP Top Ten elements
- Putting Web application security in the context of Java
- Going beyond the low hanging fruits
- Managing vulnerabilities in third party components
- Learn to deal with cloud infrastructure security
- Input validation approaches and principles
- Identify vulnerabilities and their consequences
- Learn the security best practices in Java</objective_plain><essentials_plain>General Java and Web development</essentials_plain><audience_plain>Java developers working on Web applications and AWS</audience_plain><outline_plain>Day 1


- Cyber security basics
- What is security?
- Threat and risk
- Cyber security threat types – the CIA triad
- Cyber security threat types – the STRIDE model
- Consequences of insecure software
- Cloud security basics
- Cloud infrastructure basics
- The Cloud Cube Model and Zero Trust Architecture
- The OWASP Top Ten 2021
- The OWASP Top 10 2021
- A01 - Broken Access Control
- Access control basics
- Failure to restrict URL access
- Confused deputy
- File upload
- Open redirects and forwards
- Cross-site Request Forgery (CSRF)
- A02 - Cryptographic Failures
- Information exposure
- Cryptography for developers


Day 2


- A02 - Cryptographic Failures (continued)
- Cryptography for developers
- Transport security
- A03 - Injection
- Injection principles
- Injection attacks
- SQL injection
- NoSQL injection
- Parameter manipulation
- Code injection
- HTML injection - Cross-site scripting (XSS)


Day 3


- A04 - Insecure Design
- The STRIDE model of threats
- Secure design principles of Saltzer and Schroeder
- Client-side security
- A05 - Security Misconfiguration
- Configuration principles
- Server misconfiguration
- AWS configuration best practices
- Cookie security
- XML entities
- A06 - Vulnerable and Outdated Components
- Using vulnerable components
- Assessing the environment
- Hardening
- Untrusted functionality import
- Vulnerability management
- A07 - Identification and Authentication Failures
- Authentication
- Session management
- Identity and access management (IAM)


Day 4


- A07 - Identification and Authentication Failures (continued)
- Password management
- A08 - Software and Data Integrity Failures
- Integrity protection
- Subresource integrity
- Insecure deserialization
- A09 - Security Logging and Monitoring Failures
- Logging and monitoring principles
- Log forging
- Log forging – best practices
- Case study – Log interpolation in log4j
- Case study – The Log4Shell vulnerability (CVE-2021-44228)
- Case study – Log4Shell follow-ups (CVE-2021-45046, CVE-2021-45105)
- Lab – Log4Shell
- Logging best practices
- Detection and monitoring
- A10 - Server-side Request Forgery (SSRF) 
- Server-side Request Forgery (SSRF)
- Case study – SSRF and the Capital One breach


Cloud security


AWS security
- Security considerations
- Data security in the cloud


Day 5


Cloud security
- Container security
- Container security concerns
- Containerization, virtualization and security
- The attack surface
- Docker security
- Kubernetes security
The OWASP Top Ten 2021


Web application security beyond the Top Ten


- Code quality
- Denial of service
Input validation


- Input validation principles
- Denylists and allowlists
- What to validate – the attack surface
- Where to validate – defense in depth
- When to validate – validation vs transformations
- Validation with regex
- Integer handling problems
- Representing signed numbers
- Integer visualization
- Integer overflow
- Lab – Integer overflow
- Signed / unsigned confusion in Java
- Case study – The Stockholm Stock Exchange
- Integer truncation
- Best practices
- Files and streams
- Path traversal
- Lab – Path traversal
- Path traversal-related examples
- Additional challenges in Windows
- Virtual resources
- Path traversal best practices
- Lab – Path canonicalization
- Unsafe reflection
- Reflection without validation
- Lab – Unsafe reflection
- Unsafe native code
- Native code dependence
- Lab – Unsafe native code
- Best practices for dealing with native code
Wrap up


- Secure coding principles
- And now what?</outline_plain><duration unit="d" days="5">5 Tage</duration><pricelist><price country="SI" currency="EUR">3750.00</price><price country="MK" currency="EUR">3750.00</price><price country="GR" currency="EUR">3750.00</price><price country="HU" currency="EUR">3750.00</price><price country="DE" currency="EUR">3750.00</price><price country="AT" currency="EUR">3750.00</price><price country="SE" currency="EUR">3750.00</price><price country="CH" currency="CHF">3750.00</price></pricelist><miles/></course>