Skip to main content

A command-line tool for tracking remediated vulnerabilities in Contrast Security applications

Project description

contrast-vuln-remediations

A command-line tool for tracking remediated vulnerabilities across Contrast Security applications. This tool helps identify vulnerabilities that have been fixed by comparing open vulnerabilities against those found in the latest application session.

Features

  • Fast, asynchronous API querying with concurrent requests
  • Progress tracking for large datasets
  • CSV export for detailed analysis
  • Summary statistics including remediation counts and percentages
  • Configurable batch size and concurrency
  • Flexible session filtering using metadata key/value pairs
  • Environment-based configuration
  • Rich terminal output with color-coded results
  • Resilient API handling with automatic retries and rate limiting

Installation

  1. Install:
pip install contrast-vuln-remediations
  1. Create a .env file with your Contrast Security credentials:
CONTRAST_BASE_URL=https://app.contrastsecurity.com/Contrast
CONTRAST_ORG_UUID=your-org-uuid
CONTRAST_API_KEY=your-api-key
CONTRAST_AUTH=your-auth-header

Usage

Basic usage:

contrast-vuln-remediations

With all options:

contrast-vuln-remediations \
    --csv output.csv \
    --concurrent-requests 20 \
    --metadata "Branch Name=main" \
    --metadata "Environment=production" \
    --verbose

Options

  • --csv: Output file path for detailed CSV results
  • --concurrent-requests: Maximum number of concurrent API requests (default: 10)
  • --metadata: Metadata key=value pairs to filter sessions (can be specified multiple times)
  • --verbose: Enable verbose logging

Metadata Filtering Examples

Filter by branch:

contrast-vuln-remediations --metadata "Branch Name=main"

Filter by multiple criteria:

contrast-vuln-remediations --metadata "Branch Name=main" --metadata "Environment=prod"

Multiple values for the same key:

contrast-vuln-remediations --metadata "Branch Name=main" --metadata "Branch Name=develop"

Note: If no metadata filters are specified, the tool defaults to analyzing sessions from 'main' and 'master' branches.

Output

Output

The tool provides a summary of remediated vulnerabilities including:

  • Total number of applications analyzed
  • Number of vulnerabilities currently open
  • Number of remediated vulnerabilities
  • Percentage of vulnerabilities remediated
  • Detailed breakdown by application

Example output:

Starting analysis... Using metadata filters: {'Branch Name': ['main'], 'Environment': ['production']}
Analyzing applications: 100% ██████████ 15/15

Vulnerability Analysis Summary
┌──────────────────────────┬────────────┐
│ Total applications      │         15 │
│ Open vulnerabilities    │        428 │
│ Remediated vulns       │        132 │
│ Remediation percentage │      30.8% │
└──────────────────────────┴────────────┘

Detailed results have been written to: output.csv

CSV Output Format

The CSV output includes three columns:

  • Application: The application name
  • AppID: The application ID
  • OpenVulns: Number of open vulnerabilities
  • RemediatedVulns: Number of remediated vulnerabilities

Example:

Application,AppID,RemediatedVulns
My App 1,12345,25,10
My App 2,67890,18,5

Environment Variables

Variable Description Example
CONTRAST_BASE_URL Contrast Security API URL https://app.contrastsecurity.com/Contrast
CONTRAST_ORG_UUID Organization UUID 12345678-90ab-cdef-1234-567890abcdef
CONTRAST_API_KEY API Key your-api-key
CONTRAST_AUTH Authorization header base64-encoded-credentials

Development

Requirements:

  • Python 3.8+
  • httpx
  • typer
  • rich
  • python-dotenv
  • tqdm

License

Apache License

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run the tests
  5. Submit a pull request

Support

For issues, questions, or contributions, please open an issue in the GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contrast_vuln_remediations-0.2.1.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contrast_vuln_remediations-0.2.1-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file contrast_vuln_remediations-0.2.1.tar.gz.

File metadata

File hashes

Hashes for contrast_vuln_remediations-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8315a4d3835ed3362f9ceeab2520f166d17d0e4d338ba12996b96cddcd861216
MD5 fae9aa939da83914541b447e88be8207
BLAKE2b-256 cbc408145a2586472554ce1a6d299840506ceaed4c5ba2ca0158e334102149c5

See more details on using hashes here.

File details

Details for the file contrast_vuln_remediations-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for contrast_vuln_remediations-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a584a06e742c59cc653fbafdeabd1845aa4745a581cf12651828d5a317135a0c
MD5 6e5322396e3fce6f7ee4e6ce30dd9632
BLAKE2b-256 f72016b694fcd3b88a97b1c6dcae58403fb23a6f95ebab1a595323f506d23884

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page