vulnerability-scanning
Original:🇺🇸 English
Translated
Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), Software Composition Analysis (SCA), container security scanning, dependency vulnerability management, and common vulnerability tools (Snyk, Trivy, OWASP ZAP, SonarQube)
1installs
Added on
NPX Install
npx skill4agent add davincidreams/agent-team-plugins vulnerability-scanningTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Vulnerability Scanning
Static Application Security Testing (SAST)
SAST Overview
SAST analyzes source code, bytecode, or binaries without executing the application to identify security vulnerabilities.
SAST Techniques
- Pattern Matching: Match code against known vulnerability patterns
- Data Flow Analysis: Track data flow through the application to identify tainted data
- Control Flow Analysis: Analyze execution paths to identify potential issues
- Taint Analysis: Track user input through the application to identify injection points
- Semantic Analysis: Understand code semantics to identify complex vulnerabilities
Common SAST Vulnerabilities
- Injection Flaws: SQL injection, command injection, LDAP injection
- Cross-Site Scripting (XSS): Reflected, stored, and DOM-based XSS
- Authentication Issues: Weak authentication, session management flaws
- Authorization Issues: Broken access controls, privilege escalation
- Cryptographic Issues: Weak algorithms, improper key management
- Input Validation: Missing or insufficient input validation
- Error Handling: Information leakage through error messages
SAST Tools
- SonarQube: Code quality and security analysis with extensive rule sets
- Checkmarx: Enterprise SAST solution with deep code analysis
- Fortify Static Code Analyzer: Comprehensive SAST from Micro Focus
- Semgrep: Fast, open-source static analysis with custom rules
- CodeQL: Semantic code analysis from GitHub
- Bandit: Python security linter
- ESLint: JavaScript security plugins (eslint-plugin-security)
- SpotBugs: Java static analysis with security rules
Dynamic Application Security Testing (DAST)
DAST Overview
DAST analyzes running applications to identify security vulnerabilities through external testing.
DAST Techniques
- Crawling and Spidering: Discover application endpoints and functionality
- Fuzzing: Send malformed or unexpected input to identify vulnerabilities
- Authentication Testing: Test authentication mechanisms for weaknesses
- Session Management: Analyze session handling for security issues
- Input Validation: Test input fields for injection vulnerabilities
- Business Logic: Test business logic flaws and authorization bypasses
Common DAST Vulnerabilities
- Injection Attacks: SQL injection, command injection, XSS
- Authentication Flaws: Weak passwords, session fixation
- Authorization Issues: IDOR, privilege escalation
- Session Management: Session hijacking, fixation
- Cryptographic Issues: Weak SSL/TLS, insecure cookies
- Information Disclosure: Sensitive data in responses, error messages
DAST Tools
- OWASP ZAP: Free, open-source web application security scanner
- Burp Suite: Comprehensive web security testing platform
- AppScan: Enterprise DAST solution from IBM
- Nessus: Vulnerability scanner with web application testing
- Arachni: Open-source web application security scanner
- SQLMap: Automated SQL injection tool
- Nikto: Web server scanner
Software Composition Analysis (SCA)
SCA Overview
SCA identifies and analyzes third-party components and dependencies for known vulnerabilities.
SCA Techniques
- Dependency Analysis: Identify all direct and transitive dependencies
- Vulnerability Matching: Match dependencies against vulnerability databases
- License Compliance: Check for license compliance issues
- Version Analysis: Track dependency versions and updates
- Risk Scoring: Assess risk based on vulnerability severity and usage
SCA Vulnerability Databases
- NVD (National Vulnerability Database): US government vulnerability database
- CVE (Common Vulnerabilities and Exposures): Standardized vulnerability identifiers
- GitHub Advisory Database: GitHub's vulnerability database
- Snyk Vulnerability Database: Snyk's curated vulnerability database
- OSS Index: Sonatype's open-source vulnerability database
SCA Tools
- Snyk: Developer-first security platform with SCA, SAST, and container scanning
- Trivy: Comprehensive vulnerability scanner for containers, files, and dependencies
- Dependabot: GitHub's automated dependency updates and vulnerability alerts
- WhiteSource: Enterprise SCA with comprehensive vulnerability database
- Black Duck: Enterprise SCA with license compliance
- OWASP Dependency-Check: Open-source SCA tool
- npm audit: Node.js package manager's built-in SCA
- pip-audit: Python package manager's security audit tool
Container Security Scanning
Container Vulnerabilities
- Base Image Vulnerabilities: Vulnerabilities in the base OS image
- Application Dependencies: Vulnerabilities in application dependencies
- Configuration Issues: Insecure container configurations
- Secrets in Images: Hardcoded secrets or credentials
- Outdated Packages: Outdated packages with known vulnerabilities
Container Scanning Tools
- Trivy: Comprehensive vulnerability scanner for containers
- Clair: Open-source vulnerability static analysis for containers
- Anchore: Container inspection and vulnerability analysis
- Aqua Security: Enterprise container security platform
- Twistlock: Container security from Prisma Cloud
- Docker Scout: Docker's built-in vulnerability scanner
- Grype: Vulnerability scanner for container images
Container Security Best Practices
- Use Minimal Base Images: Use minimal base images like Alpine or distroless
- Scan Images: Scan images at build time and runtime
- Patch Regularly: Keep base images and dependencies updated
- Scan Dependencies: Include SCA for application dependencies
- Run as Non-Root: Run containers as non-root users
- Read-Only Filesystems: Use read-only filesystems where possible
- Resource Limits: Set resource limits to prevent DoS
Dependency Vulnerability Management
Dependency Management Strategies
- Regular Updates: Regularly update dependencies to latest secure versions
- Automated Scanning: Integrate SCA into CI/CD pipelines
- Vulnerability Alerts: Set up alerts for new vulnerabilities
- Version Pinning: Pin specific versions to prevent unexpected updates
- Lock Files: Use lock files to ensure reproducible builds
- Supply Chain Security: Verify package integrity and provenance
SBOM (Software Bill of Materials)
- What is SBOM: Formal inventory of software components and dependencies
- SBOM Formats: SPDX, CycloneDX, SWID tags
- SBOM Benefits: Vulnerability tracking, license compliance, supply chain security
- SBOM Tools: Syft, Trivy, Microsoft SBOM Tool, CycloneDX tools
Supply Chain Security
- Package Integrity: Verify package signatures and checksums
- Provenance: Track package origin and build process
- Signed Artifacts: Use signed packages and container images
- Dependency Pinning: Pin to specific verified versions
- Private Registries: Use private registries for sensitive packages
- Reproducible Builds: Ensure builds are reproducible and verifiable
Common Vulnerability Tools
Snyk
- Features: SCA, SAST, container scanning, IaC scanning
- Integration: CI/CD, IDEs, package managers, registries
- Languages: JavaScript, Python, Java, Go, Ruby, PHP, .NET
- Use Cases: Developer-first security, automated scanning, remediation
Trivy
- Features: Container scanning, file scanning, dependency scanning
- Integration: CI/CD, container registries, Kubernetes
- Languages: Supports multiple languages and package managers
- Use Cases: DevSecOps, container security, infrastructure scanning
OWASP ZAP
- Features: Automated and manual web application security testing
- Integration: CI/CD, browsers, proxies
- Capabilities: Spidering, scanning, fuzzing, authentication testing
- Use Cases: DAST, web application security, penetration testing
SonarQube
- Features: Code quality, security analysis, technical debt tracking
- Integration: CI/CD, IDEs, build tools
- Languages: 25+ programming languages
- Use Cases: Code quality, security, technical debt management
Grype
- Features: Container image and filesystem vulnerability scanning
- Integration: CI/CD, container registries
- Vulnerability Database: Uses Grype vulnerability database
- Use Cases: Container security, DevSecOps pipelines
Vulnerability Scanning Best Practices
Scanning Strategy
- Shift Left: Scan early and often in the development lifecycle
- Automate: Integrate scanning into CI/CD pipelines
- Multiple Tools: Use multiple tools for comprehensive coverage
- Regular Scans: Schedule regular scans for production systems
- False Positive Management: Establish process for managing false positives
- Prioritization: Prioritize vulnerabilities based on risk and exploitability
Remediation Process
- Triage: Categorize vulnerabilities by severity and risk
- Prioritize: Prioritize based on CVSS score, exploitability, and business impact
- Remediate: Fix vulnerabilities or apply mitigations
- Verify: Verify that remediation was successful
- Monitor: Monitor for new vulnerabilities
- Report: Report on vulnerability status and trends