Secure Coding: Using Components with Known Vulnerabilities
https://www.pluralsight.com/courses/secure-coding-using-components-known-vulnerabilities
by Peter Mosmans
Course Overview
- Course Overview
Using Components with Known Vulnerabilities
- Course and Module Introduction
- Demo: Finding Exploitable Components
- nvd.nist.gov list soft vulnerability
- What Is Using Components with Known Vulnerabilities?
- OWASP Top 10 2017 and Using Components with Known Vulnerabilities
- Vulnerable and Outdated Components is part of OWASP top 10
- Software Life Cycle
- Module Summary
Managing Unsupported or Out-of-date Commercial Software
- Module Introduction
- Common Platform Enumeration (CPE)
- Open standard to uniformly describe Information technology systems, Software and Packages
- it solves product naming issues
- used to better map products against vulnerabilities
- Finding Published Vulnerabilities
- In 1999, the Common Vulnerabilities and Exposures standard was developed.
- Finding Published Vulnerabilities
- CVE entries
- National Vulnerability Database (NVD)
- Vulnerabilities without CVE entry
- Vendor-specific webpages
- Changelogs
- Source code
- Search engines
- Commercial subscriptions
- to request a CVE:
- https://cveform.mitre.org/
- Virtual Patching
- Virtual Patching is
- Blocking an attack vector
- Preventing exploitation
- Why Virtual Patching
- No access to source code
- No access to environment
- Lack of resources
- Minimize time to fix
- Costs
- Where to Apply Virtual Patches
- Not in the component itself
- Any software in front of the vulnerable component
- Web application firewall
- Web server plugin
- Application layer filter
- Web server or proxy configuration
- Issues with Virtual Patching
- Difficult
- Often only specific exploit is blocked
- Error prone
- Can block legitimate traffic
- Difficult to maintain
- Demo: Finding Vulnerabilities and Creating a Virtual Patch
- Trust When Installing or Updating Components
- use a packet manager when possible
- prefer signed packages
- Demo: Secure Installation of Node.js
- Module Summary
Managing Bespoke Software That Uses Third Party Libraries
- Module Introduction
- Versioning
- Different Types Of Versioning
- Calendar based versioning
- Sequence based versioning
- Semantic versioning (MAJOR . MINOR . PATCH)
- for more info: https://semver.org/
- Software Composition Analysis
- Automatically Mapping Software Versions against Vulnerabilities
- tooling for finding vulnerabilities
- OWASP Dependency Check
- Plugs into CI/CD environment
- Specific frameworks
- npm audit
- SafeNuGet (.net)
- Retire.js (javascript)
- Commercial offerings
- Snyk
- dependabot
- Demo: Automatically Mapping Software Versions against Vulnerabilities
- demo of using OWASP Dependency-Check
- Module Summary
Patch Management Process
- Module Introduction
- Hardening
- Component Hardening
- - Apply principle of least privilege
- - Remove unused dependencies
- - Remove documentation
- - Remove samples
- - Disable default accounts
- - Follow security announcements
- Patch Management Process
- Module and Course Summary
Comments
Post a Comment