TT8120: Secure Web Applications | OWASP 2021 Top Ten 2021, Web Services, Rich Interfaces & More
About this Course
Security experts agree that the least effective approach to security is “penetrate and patch”. It is far more effective to “bake” security into an application throughout its lifecycle. After spending significant time examining a poorly designed (from a security perspective) web application, developers are ready to learn how to build secure web applications starting at project inception. The final portion of this course builds on the previously learned mechanics for building defenses by exploring how design and analysis can be used to build stronger applications from the beginning of the software lifecycle.
Secure Web Application Development a seminar style course designed for web developers and technical stakeholders who need to produce secure web applications. They will thoroughly examine best practices for defensively coding web applications, covering all the 2021 OWASP Top Ten as well as several additional prominent vulnerabilities (such as file uploads and handling untrusted free-form text). Our web app security expert will share how to integrate security measures into the development process. You will also explore core concepts and challenges in web application security, showcasing real world examples that illustrate the potential consequences of not following these best practices.
Audience Profile
This is an overview-level , lecture and demonstration style course, designed to provide technical application project stakeholders with a first-look or baseline understanding of how to develop well defended web applications.
At Course Completion
This course will walk you through how to recognize actual and potential software vulnerabilities and implement defenses for those vulnerabilities. You will explore most common security vulnerabilities faced by web applications today, examining each vulnerability from a coding perspective through a process of describing the threat and attack mechanisms, recognizing associated vulnerabilities, and, finally, designing and implementing effective defenses.
Guided by our application security expert, you will explore how to:
· Understand the concepts and terminology behind defensive, secure coding including the phases and goals of a typical exploit
· Establish the first axiom in security analysis of ALL web applications for this course and beyond
· Establish the first axiom in addressing ALL security concerns for this course and beyond
· Ensure that any hacking and bug hunting is performed in a safe and appropriate manner
· Identify defect/bug reporting mechanisms within their organizations
· Avoid common mistakes that are made in bug hunting and vulnerability testing
· Develop an appreciation for the need and value of a multilayered defense in depth
· Understand potential sources for untrusted data
· Understand the consequences for not properly handling untrusted data such as denial of service, cross-site scripting, and injections
· Understand the vulnerabilities of associated with authentication and authorization
· Detect, attack, and implement defenses for authentication and authorization functionality and services
· Understand the dangers and mechanisms behind Cross-Site Scripting (XSS) and Injection attacks
· Detect, attack, and implement defenses against XSS and Injection attacks
· Understand the risks associated with XML processing, software uploads, and deserialization and how to best eliminate or mitigate those risks
· Learn the strengths, limitations, and use for tools such as code scanners, dynamic scanners, and web application firewalls (WAFs)
· Understand techniques and measures that can used to harden web and application servers as well as other components in your infrastructure
· Identify resources to use for ongoing threat intelligence
· Plan next steps after completion of this training
Outline
Session: Bug Hunting Foundation
Lesson: Why Hunt Bugs?
· The Language of Cybersecurity
· The Changing Cybersecurity Landscape
· AppSec Dissection of SolarWinds
· The Human Perimeter
· Interpreting the 2021 Verizon Data Breach Investigation Report
· First Axiom in Web Application Security Analysis
· First Axiom in Addressing ALL Security Concerns
· Lab: Case Study in Failure
Lesson: Safe and Appropriate Bug Hunting/Hacking
· Working Ethically
· Respecting Privacy
· Bug/Defect Notification
· Bug Bounty Programs
· Bug Hunting Mistakes to Avoid
Session: Moving Forward From Hunting Bugs
Lesson: Removing Bugs
· Open Web Application Security Project (OWASP)
· OWASP Top Ten Overview
· Web Application Security Consortium (WASC)
· CERT Secure Coding Standards
· Microsoft Security Response Center
· Software-Specific Threat Intelligence
Session: Foundation for Securing Web Applications
Lesson: Principles of Information Security
· Security Is a Lifecycle Issue
· Minimize Attack Surface Area
· Layers of Defense: Tenacious D
· Compartmentalize
· Consider All Application States
· Do NOT Trust the Untrusted
· AppSec Dissection of the Verkada Exploit
Session: Bug Stomping 101
Lesson: Unvalidated Data
· Buffer Overflows
· Integer Arithmetic Vulnerabilities
· Defining and Defending Trust Boundaries
· Rigorous., Positive Specifications
· Whitelisting vs Blacklisting
· Challenges: Free-Form Text, Email Addresses, and Uploaded Files
Lesson: A01: Broken Access Control
· Elevation of Privileges
· Insufficient Flow Control
· Unprotected URL/Resource Access/Forceful Browsing
· Metadata Manipulation (JWTs)
· CORS Misconfiguration Issues
· Cross Site Request Forgeries (CSRF)
· CSRF Defenses
· Lab: Spotlight: Verizon
Lesson: A02: Cryptographic Failures
· Identifying Protection Needs
· Evolving Privacy Considerations
· Options for Protecting Data
· Transport/Message Level Security
· Weak Cryptographic Processing
· Keys and Key Management
· NIST Recommendations
Lesson: A03: Injection
· Injection Flaws
· SQL Injection Attacks Evolve
· Drill Down on Stored Procedures
· Other Forms of Server-Side Injection
· Minimizing Injection Flaws
· Client-side Injection: XSS
· Persistent, Reflective, and DOM-Based XSS
· Best Practices for Untrusted Data
Lesson: A04: Insecure Design
· Secure Software Development Processes
· Shifting Left
· Cost of Continually Reinventing
· Leveraging Common AppSec Practices and Control
· Paralysis by Analysis
· Actionable Application Security
· Additional Tools for the Toolbox
· Lab: Actionable AppSec
Lesson: A05: Security Misconfiguration
· System Hardening
· Risks with Internet-Connected Resources (Servers to Cloud)
· Minimalist Configurations
· Application Whitelisting
· Secure Baseline
· Segmentation with Containers and Cloud
· Lab: Configuration Guidance
· Resolution of External References
· Safe XML Processing
Session: Bug Stomping 102
Lesson: A06: Vulnerable and Outdated Components
· Vulnerable Components
· Software Inventory
· Managing Updates: Balancing Risk and Timeliness
· AppSec Dissection of Ongoing Microsoft Exchange Exploits
· Lab: Spotlight: Equifax
Lesson: A07: Identification and Authentication Failures
· Quality and Protection of Authentication Data
· Proper hashing of passwords
· Handling Passwords on Server Side
· Session Management
· HttpOnly and Security Headers
Lesson: A08: Software and Data Integrity Failures
· Serialization/Deserialization
· Issues with Consuming Vulnerable Software
· Using Trusted Repositories
· CI/CD Pipeline Issues
· Protecting Software Development Resources
Lesson: A09: Security Logging and Monitoring Failures
· Detecting Threats and Active Attacks
· Best Practices for Determining What to Log
· Safe Logging in Support of Forensics
· Lab: Auditing and Logging Guidance
Lesson: A10: Server-Side Request Forgery (SSRF)
· Understanding SSRF
· Remote Resource Access Scenarios
· Complexity of Cloud Services
· SSRF Defense in Depth
· Positive Allow Lists
Session: Moving Forward
Lesson: Applications: What Next?
· Common Vulnerabilities and Exposures
· CWE/SANS Top 25 Most Dangerous SW Errors
· Strength Training: Project Teams/Developers
· Strength Training: IT Organizations
· Lab: Spotlight: Capital One
Additional Topics: Time Permitting
Lesson: SDL Overview
· Attack Phases: Offensive Actions and Defensive Controls
· Secure Software Development Processes
· Shifting Left
· Actionable Items Moving Forward
Lesson: SDL in Action
· Risk Escalators
· Risk Escalator Mitigation
· SDL Phases
· Actions for each SDL Phase
· SDL Best Practices
Prerequisites
Real-world programming experience is highly recommended for code reviews, but not required.