Java and Web Application Security
Java and Web Application Security
Overview
Accelebrate's Java and Web Application Security course teaches developers common security
vulnerabilities in Java applications and how to write hardened, more secure code. Attendees
learn the OWASP Top Ten and typical Web vulnerabilities, focusing on how these issues
affect Java development. Participants also learn the security pitfalls of the Java language
and the runtime environment.
Note: To ensure ample one-on-one engagement with the instructor, this class is capped at
12 people, overriding Accelebrate’s default cap of 15.
Prerequisites
Materials
Attendees will not need to install any software on their computer for this class. The class will
be conducted in a remote environment that Accelebrate will provide; students will only need
a local computer with a web browser and a stable Internet connection. Any recent version of
Microsoft Edge, Mozilla Firefox, or Google Chrome will be fine.
Objectives
Outline
Introduction
Cybersecurity Basics
o What is security?
o Threat and risk
Copyright ©2003-2024 Accelebrate, LLC. Some outlines may contain content from our courseware partners; such
content is protected by these partners' copyrights. All trademarks are owned by their respective owners.
o Cyber security threat types, the CIA triad
o Consequences of insecure software
The OWASP Top 10 2021
A01: Broken Access Control
o Access control basics
o Confused deputy
Insecure direct object reference (IDOR)
Path traversal
Path traversal best practices
Authorization bypass through user-controlled keys
o File upload
Unrestricted file upload
Good practices
o Open redirects and forwards
Unvalidated redirect at Epic Games
Best practices
A02: Cryptographic Failures
o Information exposure
Exposure through extracted data and aggregation
Strava data exposure
o Cryptography for developers
Cryptography basics
Java Cryptographic Architecture (JCA) in brief
Elementary algorithms
Confidentiality protection
A03: Injection
o Injection principles
o Injection attacks
o SQL injection
SQL injection basics
Lab – SQL injection
Attack techniques
Content-based blind SQL injection
Time-based blind SQL injection
o SQL injection best practices
Input validation
Parameterized queries
Using prepared statements
Additional considerations
Hacking Fortnite accounts
o Code injection
OS command injection
o HTML injection – Cross-site scripting (XSS)
Cross-site scripting basics
Cross-site scripting types
Stored XSS
Reflected XSS
XSS in Fortnite accounts
XSS protection best practices
A04: Insecure Design
o The STRIDE model of threats
o Secure design principles of Saltzer and Schroeder
Copyright ©2003-2024 Accelebrate, LLC. Some outlines may contain content from our courseware partners; such
content is protected by these partners' copyrights. All trademarks are owned by their respective owners.
Economy of mechanism
Fail-safe defaults
Complete mediation
Open design
Separation of privilege
Least privilege
Least common mechanism
Psychological acceptability
o Client-side security
Frame sandboxing
A05: Security Misconfiguration
o Configuration principles
o XML entities
DTD and the entities
Entity expansion
External Entity Attack (XXE)
A06: Vulnerable and Outdated Components
o Using vulnerable components
o Assessing the environment
o Hardening
o Untrusted functionality import
o Vulnerability management
Patch management
Vulnerability databases
Finding vulnerabilities in third-party components
DevOps, the build process and CI / CD
Dependency checking in Java
Detecting vulnerable components
A07: Identification and Authentication Failures
o Authentication
Authentication basics
Multi-factor authentication
Authentication weaknesses
PayPal 2FA bypass
o Password management
Inbound password management
A08: Software and Data Integrity Failures
o Integrity protection
Message Authentication Code (MAC)
Digital signature
o Subresource integrity
Importing JavaScript
Importing JavaScript
The British Airways data breach
o Insecure deserialization
Serialization and deserialization challenges
Integrity – deserializing untrusted streams
Using readObject
Integrity – deserialization best practices
Look ahead deserialization
Property Oriented Programming (POP)
A09: Security Logging and Monitoring Failures
Copyright ©2003-2024 Accelebrate, LLC. Some outlines may contain content from our courseware partners; such
content is protected by these partners' copyrights. All trademarks are owned by their respective owners.
o Logging and monitoring principles
o Insufficient logging
o Plaintext passwords at Facebook
o Logging best practices
A10: Server-Side Request Forgery (SSRF)
o Server-side Request Forgery (SSRF)
o SSRF and the Capital One breach
Conclusion
o Secure coding principles
Principles of robust programming by Matt Bishop
o And now what?
Software security sources and further reading
Java resources
Copyright ©2003-2024 Accelebrate, LLC. Some outlines may contain content from our courseware partners; such
content is protected by these partners' copyrights. All trademarks are owned by their respective owners.