Your application written in any programming language 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 -1 or -2^31? Because that’s what the bad guys will do – and the list is far from complete.
PCI DSS is a mandatory security standard for all companies developing or working with systems that handle credit cards. It does not only require following the secure coding guidelines out there, but also requires developers to train themselves on the latest best practices. But ticking the box annually is not enough.
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.
The curriculum goes through the common Web application security issues following the OWASP Top Ten but goes far beyond it both in coverage and the details.All this is put in the context of Java, and extended by core programming issues, discussing security pitfalls of the Java language.
So that you are prepared for the forces of the dark side.
So that nothing unexpected happens.
Note: This course is customized for PCI DSS requirement 6.3 compliance, concerning both the content and the delivery structure.
The course covers essential secure coding skills that are a must for all developers working with cardholder data and brings in a number of case studies from the financial sector.
Aligned to the compliance requirements, the delivery of the training days can be done separately, breaking the course into two separate events that can span across year boundaries, aligned to your long-term compliance plans.
Important: delivery of the 1-day initial plenary session can only be organized bundled (having at least two sessions batched).
Who should attend
Managers and developers working on Web applications in finance
None for plenary
- Getting familiar with essential cyber security concepts
- Learning about security specialties of the finance sector
- Having essential understanding of PCI DSS requirements
- Managing vulnerabilities in third party components
- Understanding Web application security issues
- Detailed analysis of the OWASP Top Ten elements
- Putting Web application security in the context of any programming language
- Going beyond the low hanging fruits
- Understanding how cryptography supports security
- Getting familiar with security testing techniques and tools
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
- Constraints and the market
- The dark side
- Categorization of bugs
- The Seven Pernicious Kingdoms
- Common Weakness Enumeration (CWE)
- CWE Top 25 Most Dangerous Software Weaknesses
- Cyber security in the finance sector
- Threats and trends in fintech
- PCI DSS
- Requirements and secure coding (Requirements 1-5)
- Req. 6 – Develop and maintain secure systems and applications
- Requirement 6.5 – Address common coding vulnerabilities
- Requirements and secure coding (Requirements 7-12)
The OWASP Top Ten 2021
- A04 – Insecure Design
- The STRIDE model of threats
- Secure design principles of Saltzer and Schroeder
- Client-side security
- Frame sandboxing
- Cross-Frame Scripting (XFS) attacks
- Lab – Clickjacking
- Clickjacking beyond hijacking a click
- Clickjacking protection best practices
- Lab – Using CSP to prevent clickjacking
- Frame sandboxing
- A05 – Security Misconfiguration
- Configuration principles
- Server misconfiguration
- Cookie security
- Cookie security best practices
- Cookie attributes
- XML entities
- DTD and the entities
- Attribute blowup
- Entity expansion
- External Entity Attack (XXE)
- File inclusion with external entities
- Server-Side Request Forgery with external entities
- Lab – External entity attack
- Case study – XXE vulnerability in SAP Store
- Lab – Prohibiting DTD expansion
- A06 – Vulnerable and Outdated Components
- Using vulnerable components
- Case study – The Equifax data breach
- Assessing the environment
- Untrusted functionality import
- Vulnerability management
- Patch management
- Vulnerability databases
- Vulnerability rating – CVSS
- Bug bounty programs
- DevOps, the build process and CI / CD
- A09 – Security Logging and Monitoring Failures
- Logging and monitoring principles
- Insufficient logging
- Case study – Plaintext passwords at Facebook
- Logging best practices
- Monitoring best practices
- Firewalls and Web Application Firewalls (WAF)
- Intrusion detection and prevention
- Case study – The Marriott Starwood data breach