Secure Coding: Using Components with Known Vulnerabilities

https://www.pluralsight.com/courses/secure-coding-using-components-known-vulnerabilities

by Peter Mosmans

Course Overview
  1. Course Overview
Using Components with Known Vulnerabilities
  1. Course and Module Introduction
  2. Demo: Finding Exploitable Components
    • nvd.nist.gov list soft vulnerability
  3. What Is Using Components with Known Vulnerabilities?
  4. OWASP Top 10 2017 and Using Components with Known Vulnerabilities
    • Vulnerable and Outdated Components is part of OWASP top 10
  5. Software Life Cycle
  6. Module Summary
Managing Unsupported or Out-of-date Commercial Software
  1. Module Introduction
  2. 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
  3. 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/
  4. 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
  5. Demo: Finding Vulnerabilities and Creating a Virtual Patch
  6. Trust When Installing or Updating Components
    • use a packet manager when possible
    • prefer signed packages 
  7. Demo: Secure Installation of Node.js
  8. Module Summary
Managing Bespoke Software That Uses Third Party Libraries
  1. Module Introduction
  2. Versioning
    • Different Types Of Versioning
      • Calendar based versioning
      • Sequence based versioning
      • Semantic versioning (MAJOR . MINOR . PATCH)
        • for more info: https://semver.org/
  3. Software Composition Analysis
  4. 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
  5. Demo: Automatically Mapping Software Versions against Vulnerabilities
    • demo of using OWASP Dependency-Check
  6. Module Summary
Patch Management Process
  1. Module Introduction
  2. Hardening
    • Component Hardening
      • - Apply principle of least privilege
      • - Remove unused dependencies
      • - Remove documentation
      • - Remove samples
      • - Disable default accounts
      • - Follow security announcements
  3. Patch Management Process
  4. Module and Course Summary

Comments

Popular posts from this blog

Angular Routing and Navigation Playbook

Working with Files in C# 10

Mastering Git