Why Hunt Bugs- Security and Insecurity
- Dangerous Assumptions
- Attack Vectors
Safe and Appropriate Bug Hunting/Hacking- Working Ethically
- Respecting Privacy
- Bug/Defect Notification
- Bug Bounty Programs
Removing Bugs- Open Web Application Security Project (OWASP)
- OWASP Top Ten Overview
- Web Application Security Consortium
- CERT Secure Coding Standards
- Bug Hunting Mistakes to Avoid
- Tools and Resources
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
- Tutorial: Working with Eclipse (JEE Version) and Apache TomEE 7x
- Tutorial: Working with the HSQL Database
Unvalidated Data- Buffer Overflows
- Integer Arithmetic Vulnerabilities
- Unvalidated Data: Crossing Trust Boundaries
- Defending Trust Boundaries
- Whitelisting vs Blacklisting
A1: Injection- Injection Flaws
- SQL Injection Attacks Evolve
- Drill Down on Stored Procedures
- Other Forms of Injection
- Minimizing Injection Flaws
A2: Broken Authentication- Quality and Protection of Authentication Data
- Handling Passwords on Server Side
- SessionID Risk Reduction
- HttpOnly and Security Headers
A3: Sensitive Data Exposure- Protecting Data Can Mitigate Impact
- In-Memory Data Handling
- Secure Pipes
- Failures in TLS/SSL Framework
A4: XML External Entities (XXE)- XML Parser Coercion
- XML Attacks: Structure
- XML Attacks: Injection
- Safe XML Processing
A5: Broken Access Control- Access Control Issues
- Excessive Privileges
- Insufficient Flow Control
- Unprotected URL/Resource Access
- Examples of Shabby Access Control
- Sessions and Session Management
A6: Security Misconfiguration- System Hardening: IA Mitigation
- Application Whitelisting
- Least Privileges
- Anti-Exploitation
- Secure Baseline
A7: Cross Site Scripting (XSS)- XSS Patterns
- Persistent XSS
- Reflective XSS
- DOM-Based XSS
- Best Practices for Untrusted Data
A8/9: Deserialization/Vulnerable Components- Deserialization Issues
- Identifying Serialization and Deserializations
- Vulnerable Components
- Software Inventory
- Managing Updates
A10: Insufficient Logging and Monitoring- Fingerprinting a Web Site
- Error-Handling Issues
- Logging In Support of Forensics
- Solving DLP Challenges
Spoofing, CSRF, and Redirects- Name Resolution Vulnerabilities
- Fake Certs and Mobile Apps
- Targeted Spoofing Attacks
- Cross Site Request Forgeries (CSRF)
- CSRF Defenses
SDL Overview- Attack/Defense Basics
- Types of Security Controls
- Attack Phases: Offensive Actions and Defensive Controls
- Secure Software Development Processes
- Shifting Left
- Actionable Items Moving Forward
Applications: What Next- Common Vulnerabilities and Exposures
- CWE/SANS Top 25 Most Dangerous SW Errors
- Strength Training: Project Teams/Developers
- Strength Training: IT Organizations
- Leveraging Common AppSec Practices and Control
Making Application Security Real- Cost of Continually Reinventing
- Paralysis by Analysis
- Actional Application Security
- Additional Tools for the Toolbox
, 1. Why Hunt Bugs
The Language of Cybersecurity
The Changing Cybersecurity Landscape
AppSec Dissection of SolarWinds
The Human Perimeter
First Axiom in Web Application Security Analysis
First Axiom in Addressing ALL Security Concerns
2. Safe and Appropriate Bug Hunting/Hacking
Warning to All Bug Hunters
Working Ethically
Respecting Privacy
Bug/Defect Notification
Bug Hunting Pitfalls
Moving Forward From Hunting Bugs
3. Removing Bugs
Open Web Application Security Project (OWASP)
OWASP Top Ten Overview
Web Application Security Consortium (WASC)
Common Weaknesses Enumeration (CWE)
CERT Secure Coding Standard
Microsoft Security Response Center
Software-Specific Threat Intelligence
Bug Stomping 101
4. Unvalidated Data
CWE-787, 125, 20, 416, 434, 190, 476 and 119
Potential Consequences
Defining and Defending Trust Boundaries
Rigorous, Positive Specifications
Allow Listing vs Deny Listing
Challenges: Free-Form Text, Email Addresses, and Uploaded Files
5. A01: Broken Access Control
CWE-22, 352, 862, 276, and 732
Elevation of Privileges
Insufficient Flow Control
Unprotected URL/Resource Access/Forceful Browsing
Metadata Manipulation (Session Cookies and JWTs)
Understanding and Defending Against CSRF
CORS Misconfiguration Issues
6. A02: Cryptographic Failures
CWE-200
Identifying Protection Needs
Evolving Privacy Considerations
Options for Protecting Data
Transport/Message Level Security
Weak Cryptographic Processing
Keys and Key Management
NIST Recommendations
7. A03: Injection
CWE-79, 78, 89, and 77
Pattern for All Injection Flaws
Misconceptions With SQL Injection Defenses
Drill Down on Stored Procedures
Other Forms of Server-Side Injection
Minimizing Server-Side Injection Flaws
Client-side Injection: XSS
Persistent, Reflective, and DOM-Based XSS
Best Practices for Untrusted Data
8. A04: Insecure Design
Secure Software Development Processes
Shifting Left
Principles for Securing All Designs
Leveraging Common AppSec Practices and Control
Paralysis by Analysis
Actionable Application Security
Additional Tools for the Toolbox
9. A05: Security Misconfiguration
System Hardening: IA Mitigation
Risks with Internet-Connected Resources
Minimalist Configurations
Application Allow Listing
Secure Baseline
Segmentation with Containers and Cloud
CWE-611
Safe XML Processing
Bug Stomping 102
10. A06: Vulnerable and Outdated Components
Problems with Vulnerable Components
Software Inventory
Managing Updates: Balancing Risk and Timeliness
Virtual Patching
Dissection of Ongoing Exploits
11. A07: Identification and Authentication Failures
CWE-306, 287, 798 and 522
Quality and Protection of Authentication Data
Anti-Automation Defenses
Multifactor Authentication
Proper Hashing of Passwords
Handling Passwords on Server Side
12. A08: Software and Data Integrity Failures
CWE-502
Software Integrity Issues and Defenses
Using Trusted Repositories
CI/CD Pipeline Issues
Protecting Software Development Resources
Serialization/Deserialization
13. A09: Security Logging and Monitoring Failures
Detecting Threats and Active Attacks
Best Practices for Logging and Logs
Safe Logging in Support of Forensics
14. A10: Server Side Request Forgeries (SSRF)
CWE-918
Understanding SSRF
Remote Resource Access Scenarios
Complexity of Cloud Services
SSRF Defense in Depth
Positive Allow Lists
Moving Forward with Application Security
15. Applications: What Next
Common Vulnerabilities and Exposures
CWE Top 25 Most Dangerous SW Errors
Strength Training: Project Teams/Developers
Strength Training: IT Organizations
16. Secure Development Lifecycle (SDL)
17. SDL Overview
Attack Phases: Offensive Actions and Defensive Controls
Secure Software Development Processes
Shifting Left
Actionable Items Moving Forward
18. SDL In Action
Risk Escalators
Risk Escalator Mitigation
SDL Phases
Actions for each SDL Phase
SDL Best Practices