8000 GitHub - mihir-shah99/vxdf
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

mihir-shah99/vxdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VXDF Logo

VXDF: Validated eXploitable Data Flow

Build License Frontend Backend Evidence Types


πŸ–ΌοΈ Demo

VXDF Dashboard

VXDF Dashboard


VXDF (Validated eXploitable Data Flow) is a security validation platform that verifies and validates security findings from various scanners, providing standardized reporting with comprehensive evidence collection.


πŸ“‘ Table of Contents


πŸ›οΈ Core Architecture

VXDF follows a modular microservices architecture with clear separation between:

  1. Validation Engine - Core vulnerability verification logic
  2. API Layer - RESTful interface with evidence ingestion
  3. Data Processing - SARIF/DAST/SCA parsing pipeline
  4. Evidence Collection - Automated exploit validation system
  5. Reporting - VXDF format generation and export

✨ Key Features

πŸ” Multi-Tool Integration

  • SARIF Support - Static analysis results from tools like Semgrep, CodeQL
  • DAST Integration - Dynamic analysis from OWASP ZAP, Burp Suite
  • SCA Support - Dependency scanning from npm audit, pip-audit
  • Auto-Detection - Intelligent parser selection based on file content

πŸ›‘οΈ Security Validation

  • Docker-based Validation - Isolated exploitation testing
  • Vulnerability Types - SQL injection, XSS, path traversal, and more
  • Evidence Collection - Automated capture of exploit attempts
  • Correlation Engine - Smart grouping of related findings

πŸ“Š Evidence Management

  • 30+ Evidence Types - HTTP logs, code snippets, screenshots, tool outputs
  • Flexible Matching - Link evidence to findings via multiple strategies
  • Real-world Integration - Support for popular security tools
  • Structured Storage - Type-safe evidence validation

πŸ”— Evidence System

VXDF includes a comprehensive evidence system that allows security professionals to attach evidence from any source to vulnerability findings.

Supported Evidence Types

Network & HTTP Evidence

  • HTTP_REQUEST_LOG - Request logs with payloads
  • HTTP_RESPONSE_LOG - Server responses
  • NETWORK_TRAFFIC_CAPTURE_SUMMARY - Network analysis

Code Analysis Evidence

  • CODE_SNIPPET_SOURCE - Vulnerable source code
  • CODE_SNIPPET_SINK - Vulnerability points
  • POC_SCRIPT - Proof-of-concept scripts

Runtime Evidence

  • RUNTIME_APPLICATION_LOG_ENTRY - Application logs
  • RUNTIME_SYSTEM_LOG_ENTRY - System events
  • RUNTIME_DATABASE_LOG_ENTRY - Database logs

Security Tool Integration

  • TOOL_SPECIFIC_OUTPUT_LOG - Security tool outputs
  • VULNERABLE_COMPONENT_SCAN_OUTPUT - SCA results
  • STATIC_ANALYSIS_DATA_FLOW_PATH - SAST analysis

Visual Evidence

  • SCREENSHOT_EMBEDDED_BASE64 - Visual proof
  • MANUAL_VERIFICATION_NOTES - Manual testing results

Matching Strategies

  • Rule ID Matching - Link to specific scanner rules
  • CWE Matching - Associate with weakness IDs
  • Location Matching - File and line-based matching
  • Pattern Matching - Regex-based matching

🧩 Key Components

Backend Services

  • Validation Engine: Core vulnerability verification
  • Flask API: RESTful endpoints
  • SQLAlchemy ORM: Database management
  • Parser System: Multi-format input processing
  • Evidence Handler: Evidence processing and validation
  • Validator Plugins: Vulnerability-specific logic

Frontend Features

  • React/TypeScript: Modern web interface
  • Dynamic Dashboard: Real-time statistics
  • File Upload: Scanner report ingestion
  • Evidence Viewer: Evidence inspection
  • Report Generator: VXDF export

πŸ”„ Validation Workflow

  1. Input Ingestion

    • Upload scanner results (SARIF, DAST JSON, SCA)
    • Attach external evidence files
    • Auto-detect file formats
  2. Processing

    • Parse and normalize findings
    • Extract vulnerability details
    • Apply correlation logic
  3. Validation

    • Docker-based exploitation testing
    • Evidence collection
    • Exploitability assessment
  4. Reporting

    • Generate VXDF documents
    • Include all evidence
    • Maintain audit trail

πŸ—ƒοΈ Data Model

The data model is defined using Pydantic in api/models/vxdf.py.

Core Models

  • VXDFModel: Root document model
  • VulnerabilityDetailsModel: Individual vulnerabilities
  • EvidenceModel: Evidence items
  • ExploitFlowModel: Attack sequences

Evidence Models

Each evidence type has a corresponding Pydantic model for validation.


πŸ“ Project Structure

vxdf/
β”œβ”€β”€ api/                          # Backend API
β”‚   β”œβ”€β”€ core/                     # Validation engine
β”‚   β”œβ”€β”€ models/                   # Data models
β”‚   β”œβ”€β”€ parsers/                  # Input parsers
β”‚   β”œβ”€β”€ utils/                    # Utilities
β”‚   β”œβ”€β”€ validators/               # Vulnerability validators
β”‚   β”œβ”€β”€ api.py                   # API endpoints
β”‚   └── server.py                # Flask server
β”œβ”€β”€ frontend/                     # React frontend
β”œβ”€β”€ tests/                        # Test suites
β”œβ”€β”€ docs/                        # Documentation
β”œβ”€β”€ config/                      # Configuration
β”œβ”€β”€ data/                        # Database
β”œβ”€β”€ scripts/                     # Utility scripts
└── README.md                    # This file

πŸš€ Installation

Prerequisites

  • Python 3.9+
  • Node.js 16+ and npm
  • Git

Setup

git clone https://github.com/your-username/vxdf.git
cd vxdf
pip install -r requirements.txt
cd frontend
npm install
cd ..

▢️ Running the Application

Quick Start

# One-command startup
python3 start_vxdf.py

Manual Setup

Backend

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 -m api.server --port 5001

Frontend

cd frontend
npm install
npm run dev

Access the application:


πŸ“š API Documentation

Core Endpoints

  • POST /api/upload - Upload scanner results
  • POST /api/findings/{finding_id}/attach_evidence_file - Attach evidence
  • GET /api/vulnerabilities - List vulnerabilities
  • POST /api/validation/start - Start validation workflow
  • GET /api/stats - Dashboard statistics

Usage Examples

Upload Scanner Report

curl -X POST http://localhost:5001/api/upload \
  -F "file=@scan_results.sarif" \
  -F "parser_type=sarif"

Attach Evidence

curl -X POST http://localhost:5001/api/findings/{finding_id}/attach_evidence_file \
  -F "evidence_file=@screenshot.png" \
  -F "evidence_type_str=SCREENSHOT_EMBEDDED_BASE64"

πŸ“š Documentation


πŸ”§ Configuration

  • Backend runs on port 5001
  • Frontend runs on port 3000
  • Database: SQLite at data/vxdf_validate.db
  • Logs: logs/vxdf_validate.log

❓ Troubleshooting

Reset Database

rm data/vxdf_validate.db
python3 api/load_sarif_to_db.py

Check Status

curl http://localhost:5001/api/stats

View Logs

tail -f logs/vxdf_validate.log

πŸ“„ License

Licensed under the Apache License 2.0. See LICENSE for details.

0