https://github.com/copyleftdev/strider

🔒 STRIDER - Advanced Web Security Analysis Platform | AI-Powered Vulnerability Detection & Automated Security Scanning with Go

https://github.com/copyleftdev/strider

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • â—‹
    CITATION.cff file
  • ✓
    codemeta.json file
    Found codemeta.json file
  • ✓
    .zenodo.json file
    Found .zenodo.json file
  • â—‹
    DOI references
  • â—‹
    Academic publication links
  • â—‹
    Academic email domains
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

ai-powered automation cybersecurity golang penetration-testing security security-analysis vulnerability-scanner web-crawler web-security
Last synced: 5 months ago · JSON representation

Repository

🔒 STRIDER - Advanced Web Security Analysis Platform | AI-Powered Vulnerability Detection & Automated Security Scanning with Go

Basic Info
  • Host: GitHub
  • Owner: copyleftdev
  • Language: Go
  • Default Branch: master
  • Size: 21.8 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
ai-powered automation cybersecurity golang penetration-testing security security-analysis vulnerability-scanner web-crawler web-security
Created 6 months ago · Last pushed 6 months ago
Metadata Files
Readme

README.md

STRIDER Logo # STRIDER - Expert-Level Security Analysis Platform [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=for-the-badge&logo=go)](https://golang.org) [![License](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](LICENSE) [![Build Status](https://img.shields.io/badge/Build-Passing-brightgreen?style=for-the-badge)](https://github.com/zuub-code/strider) [![Security](https://img.shields.io/badge/Security-100%25%20Coverage-green?style=for-the-badge)](https://github.com/zuub-code/strider) [![AI Powered](https://img.shields.io/badge/AI-Ollama%20Integration-purple?style=for-the-badge)](https://ollama.ai) [![Platform](https://img.shields.io/badge/Platform-Linux%20|%20Windows%20|%20macOS-lightgrey?style=for-the-badge)](https://github.com/zuub-code/strider)

STRIDER is a sophisticated, production-ready security analysis platform that combines advanced web crawling, intelligent network capture, static security analysis, and AI-powered risk assessment using local Ollama models.

Features

  • Advanced Web Crawling: Rod-based browser automation with stealth capabilities
  • Security Analysis: Comprehensive rule-based vulnerability detection
  • AI-Powered Assessment: Local Ollama integration for intelligent risk grading
  • Multiple Output Formats: SARIF, JSON, HTML, Markdown, and CSV reports
  • SQLite Storage: Persistent storage with caching and transaction support
  • Bloom Filter Deduplication: Efficient URL deduplication for large-scale crawls
  • Rate Limiting: Configurable request rate limiting
  • Template Engine: Customizable report templates

Quick Start

Prerequisites

  • Go 1.21 or later
  • Ollama running locally (optional, for AI features)

Installation

bash git clone https://github.com/zuub-code/strider.git cd strider go mod tidy go build -o strider ./cmd/strider

Basic Usage

```bash

Scan a website

./strider scan https://example.com

Scan with custom options

./strider scan https://example.com \ --concurrency 5 \ --max-pages 200 \ --max-depth 3 \ --output ./results \ --enable-ai

Initialize default configuration

./strider config init

Validate configuration

./strider config validate ```

Configuration

STRIDER uses a YAML configuration file (.strider.yaml) for default settings:

```yaml

Server configuration

server: port: 8080 host: "localhost" timeout: 30

Crawler configuration

crawler: defaultconcurrency: 3 defaultmaxpages: 100 defaultmaxdepth: 5 defaulttimeout: 30 useragent: "STRIDER/1.0 Security Scanner" enablestealth: false

AI configuration

ai: enabled: true baseurl: "http://localhost:11434" defaultmodel: "llama3.1:8b" temperature: 0.1 max_tokens: 2048 timeout: 60 ```

Command Line Options

Scan Command

bash strider scan [URL] [flags]

Crawl Configuration: - --concurrency: Number of concurrent workers (default: 3) - --max-pages: Maximum pages to crawl (default: 100) - --max-depth: Maximum crawl depth (default: 5) - --request-timeout: Request timeout duration - --idle-timeout: Network idle timeout

Analysis Configuration: - --allow-third-party: Allow third-party domain crawling - --max-body-kb: Maximum response body size in KB (default: 256) - --enable-js: Enable JavaScript execution (default: true) - --enable-images: Enable image loading (default: false)

AI Configuration: - --ollama-model: Ollama model for AI analysis (default: "llama3.1:8b") - --enable-ai: Enable AI-powered analysis (default: true)

Output Configuration: - --output: Output directory (default: "./output") - --sarif: Generate SARIF output (default: true) - --json: Generate JSON output (default: true) - --markdown: Generate Markdown report (default: true)

Advanced Options: - --respect-robots: Respect robots.txt (default: true) - --stealth: Enable stealth mode - --fast-scan: Enable fast scan mode

Architecture

STRIDER follows a hexagonal architecture with clear separation of concerns:

├── cmd/strider/ # CLI entry point ├── internal/ │ ├── ai/ # AI service integration │ ├── analysis/ # Security analysis engine │ ├── app/ # Application orchestration │ ├── config/ # Configuration management │ ├── crawler/ # Web crawling engine │ ├── reporting/ # Report generation │ └── storage/ # Data persistence ├── pkg/ │ ├── logger/ # Logging utilities │ └── types/ # Common types └── docs/ # Documentation

Output Formats

SARIF (Static Analysis Results Interchange Format)

Industry-standard format for security analysis results, compatible with GitHub Security tab and other security platforms.

JSON

Structured JSON output with detailed findings, metadata, and statistics.

HTML

Interactive HTML reports with charts, filtering, and detailed vulnerability information.

Markdown

Human-readable Markdown reports suitable for documentation and issue tracking.

CSV

Tabular format for data analysis and integration with spreadsheet applications.

AI Integration

STRIDER integrates with Ollama for AI-powered security analysis:

  1. Install Ollama: Follow instructions at https://ollama.ai
  2. Pull a model: ollama pull llama3.1:8b
  3. Start Ollama: ollama serve
  4. Configure STRIDER: Set AI configuration in .strider.yaml

The AI service provides: - Intelligent vulnerability grading - Context-aware risk assessment - Natural language descriptions - Remediation suggestions

Development

Building from Source

bash git clone https://github.com/zuub-code/strider.git cd strider make deps make build

Using the Makefile

STRIDER includes a comprehensive Makefile for development automation:

```bash

Show all available targets

make help

Quick development cycle

make dev # Clean, deps, format, vet, test, build

Building

make build # Build STRIDER binary make build-all # Build STRIDER and mock server make build-cross # Cross-compile for Linux, Windows, macOS

Testing

make test # Run unit tests (fast, excludes integration tests) make test-all # Run all tests including integration tests make test-integration # Run integration tests with mock server make test-comprehensive # Run full security rule validation make test-coverage # Generate test coverage reports make benchmark # Run performance benchmarks

Code quality

make fmt # Format code make vet # Run go vet make lint # Run golangci-lint make security-scan # Run gosec security scanner make vuln-check # Check for known vulnerabilities

Development helpers

make dev-scan # Quick scan against mock server make run-mockserver # Start vulnerable mock server

CI/CD simulation

make ci # Full CI pipeline (format, test, build, security)

Cleaning

make clean # Clean build artifacts, reports, and temporary files make clean-cache # Clean Go module cache ```

Running Tests

```bash

Fast unit tests only

make test

All tests including integration tests

make test-all

Integration tests with mock server

make test-integration

Performance benchmarks

make benchmark ```

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support and questions: - Create an issue on GitHub - Check the documentation in the docs/ directory - Review the configuration examples

Performance Benchmarking

STRIDER includes comprehensive performance benchmarking tools to measure and optimize scan performance.

Running Benchmarks

```bash

Run comprehensive performance benchmark suite

./benchmark_test.sh

The script will automatically:

- Build STRIDER and mock server

- Run various scan scenarios

- Measure timing, memory, and throughput metrics

- Generate detailed performance reports

```

Benchmark Scenarios

The benchmark suite tests multiple scenarios:

  1. Single Page Scans

    • Without AI: Fast baseline performance
    • With AI: AI-enhanced analysis performance
  2. Multi-Page Scans

    • Low concurrency (1 worker): Sequential processing
    • High concurrency (5 workers): Parallel processing
    • With/without AI: Performance comparison
  3. Stress Testing

    • Large page counts (25+ pages)
    • High concurrency scenarios
    • Memory usage under load
  4. Individual Vulnerability Tests

    • Per-endpoint performance metrics
    • Rule-specific analysis timing
    • AI grading performance per vulnerability type

Performance Metrics

The benchmarking system tracks:

  • Timing Metrics: Duration for each scan phase
  • Throughput Metrics: Pages/second, findings/second
  • Memory Metrics: Peak memory usage, GC cycles
  • Resource Utilization: CPU and memory efficiency

Sample Performance Results

Typical performance on modern hardware:

``` Single Page (no AI): ~2-3 seconds, 20+ findings Single Page (with AI): ~20-25 seconds, enhanced analysis Multi-Page (10 pages): ~15-30 seconds, 200+ findings Stress Test (25 pages): ~45-60 seconds, 500+ findings

Throughput: - Pages/second: 0.5-2.0 (depending on AI usage) - Findings/second: 8-15 (static analysis) - Memory usage: 50-200MB peak ```

Performance Optimization

For optimal performance:

  1. Disable AI for fast scans: Use --enable-ai=false for speed
  2. Adjust concurrency: Higher values for I/O-bound workloads
  3. Limit page depth: Use --max-depth to control scope
  4. Configure timeouts: Adjust --request-timeout for slow sites

Continuous Performance Monitoring

Set up regular benchmarking:

```bash

Daily performance regression testing

crontab -e 0 2 * * * cd /path/to/strider && ./benchmark_test.sh >> performance.log 2>&1 ```

Testing

Comprehensive Test Suite

```bash

Run all security rule validation tests

./comprehensive_test.sh

Run integration tests

go test ./test/...

Run performance benchmarks

./benchmark_test.sh ```

Test Coverage

STRIDER maintains 100% security rule coverage with comprehensive testing:

  • ✅ 16/16 Security Rules detected and validated
  • ✅ 397+ Test Findings across all vulnerability types
  • ✅ Multi-page Crawling with link discovery
  • ✅ AI Analysis Integration with risk grading
  • ✅ Performance Benchmarking across multiple scenarios

Mock Server Testing

The included vulnerable mock server (cmd/mockserver/) provides:

  • 20+ vulnerable endpoints covering all security rules
  • Realistic vulnerability scenarios for testing
  • Performance benchmarking target
  • Integration test validation

Expert Report Generator

STRIDER includes a comprehensive report generator that creates professional security assessments with expert-level analysis and POC sections.

Report Generation

```bash

Generate all report formats

./report-generator --format all

Generate specific format

./report-generator --format html --session [SESSION_ID]

Custom output directory

./report-generator --output ./custom-reports --format all ```

Report Formats

  • HTML: Interactive reports with tabbed interface, executive summary, and POC sections
  • JSON: Structured data with comprehensive metadata and security metrics
  • SARIF: Industry-standard format compatible with GitHub Security tab
  • Markdown: Documentation-ready format for technical teams

Expert Features

  • Executive Overview: Risk assessment, compliance status, immediate actions
  • Security Metrics: Vulnerability density, attack surface analysis, risk scoring
  • POC Sections: Detailed proof-of-concept exploits for critical/high findings
  • Technical Analysis: Rule-by-rule breakdown with instance counts
  • AI Integration: Ready for AI-powered expert analysis and remediation guidance

Professional HTML Reports

The HTML reports feature: - Modern responsive design with tabbed navigation - Executive summary with security metrics dashboard - Interactive findings browser with severity-based filtering - Automated POC generation for high-risk vulnerabilities - Comprehensive scan metadata and coverage analysis

Network Traffic Analysis

STRIDER captures comprehensive network traffic during scans:

  • HTTP Requests: URLs, methods, headers, POST data, timestamps
  • HTTP Responses: Status codes, headers, body samples, response times
  • WebSocket Communications: Real-time bidirectional data capture
  • Security Analysis: Headers analysis, parameter inspection, traffic patterns

Network data is stored in SQLite database and integrated into security findings for complete visibility into application behavior.

Roadmap

  • [x] Performance Benchmarking & Metrics - Comprehensive performance testing suite
  • [x] Expert Report Generator - Professional security assessment reports with POC sections
  • [x] Network Traffic Capture - Complete HTTP/WebSocket traffic analysis
  • [ ] CI/CD Pipeline Configuration - Automated builds and testing
  • [ ] Docker Containerization - Container deployment support
  • [ ] Enhanced Documentation - Usage examples and tutorials
  • [ ] External Scanner Integration - OWASP ZAP, Nuclei support
  • [ ] Distributed Scanning - Multi-node coordination
  • [ ] REST API Interface - HTTP API for integration
  • [ ] Web Dashboard - Interactive web interface
  • [ ] Plugin System - Custom rule development

Owner

  • Name: Donald Johnson
  • Login: copyleftdev
  • Kind: user
  • Location: Los Angeles

GitHub Events

Total
  • Push event: 2
  • Create event: 1
Last Year
  • Push event: 2
  • Create event: 1

Dependencies

go.mod go
  • github.com/bits-and-blooms/bitset v1.10.0
  • github.com/bits-and-blooms/bloom/v3 v3.6.0
  • github.com/dustin/go-humanize v1.0.1
  • github.com/fsnotify/fsnotify v1.7.0
  • github.com/go-rod/rod v0.114.5
  • github.com/google/uuid v1.5.0
  • github.com/hashicorp/hcl v1.0.0
  • github.com/inconshreveable/mousetrap v1.1.0
  • github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
  • github.com/magiconair/properties v1.8.7
  • github.com/mattn/go-isatty v0.0.17
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/pelletier/go-toml/v2 v2.1.0
  • github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
  • github.com/sagikazarmark/locafero v0.4.0
  • github.com/sagikazarmark/slog-shim v0.1.0
  • github.com/sirupsen/logrus v1.9.3
  • github.com/sourcegraph/conc v0.3.0
  • github.com/spf13/afero v1.11.0
  • github.com/spf13/cast v1.6.0
  • github.com/spf13/cobra v1.8.0
  • github.com/spf13/pflag v1.0.5
  • github.com/spf13/viper v1.18.2
  • github.com/subosito/gotenv v1.6.0
  • github.com/ysmood/fetchup v0.2.3
  • github.com/ysmood/goob v0.4.0
  • github.com/ysmood/got v0.34.1
  • github.com/ysmood/gson v0.7.3
  • github.com/ysmood/leakless v0.8.0
  • go.uber.org/atomic v1.9.0
  • go.uber.org/multierr v1.9.0
  • golang.org/x/exp v0.0.0-20230905200255-921286631fa9
  • golang.org/x/mod v0.12.0
  • golang.org/x/sys v0.15.0
  • golang.org/x/text v0.14.0
  • golang.org/x/time v0.5.0
  • golang.org/x/tools v0.13.0
  • gopkg.in/ini.v1 v1.67.0
  • gopkg.in/yaml.v3 v3.0.1
  • lukechampine.com/uint128 v1.2.0
  • modernc.org/cc/v3 v3.40.0
  • modernc.org/ccgo/v3 v3.16.13
  • modernc.org/libc v1.29.0
  • modernc.org/mathutil v1.6.0
  • modernc.org/memory v1.7.2
  • modernc.org/opt v0.1.3
  • modernc.org/sqlite v1.28.0
  • modernc.org/strutil v1.1.3
  • modernc.org/token v1.0.1
go.sum go
  • github.com/bits-and-blooms/bitset v1.10.0
  • github.com/bits-and-blooms/bloom/v3 v3.6.0
  • github.com/cpuguy83/go-md2man/v2 v2.0.3
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
  • github.com/dustin/go-humanize v1.0.1
  • github.com/frankban/quicktest v1.14.6
  • github.com/fsnotify/fsnotify v1.7.0
  • github.com/go-rod/rod v0.114.5
  • github.com/google/go-cmp v0.5.9
  • github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26
  • github.com/google/uuid v1.5.0
  • github.com/hashicorp/hcl v1.0.0
  • github.com/inconshreveable/mousetrap v1.1.0
  • github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
  • github.com/kr/pretty v0.3.1
  • github.com/kr/text v0.2.0
  • github.com/magiconair/properties v1.8.7
  • github.com/mattn/go-isatty v0.0.17
  • github.com/mattn/go-sqlite3 v1.14.16
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/pelletier/go-toml/v2 v2.1.0
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
  • github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
  • github.com/rogpeppe/go-internal v1.9.0
  • github.com/russross/blackfriday/v2 v2.1.0
  • github.com/sagikazarmark/locafero v0.4.0
  • github.com/sagikazarmark/slog-shim v0.1.0
  • github.com/sirupsen/logrus v1.9.3
  • github.com/sourcegraph/conc v0.3.0
  • github.com/spf13/afero v1.11.0
  • github.com/spf13/cast v1.6.0
  • github.com/spf13/cobra v1.8.0
  • github.com/spf13/pflag v1.0.5
  • github.com/spf13/viper v1.18.2
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/objx v0.4.0
  • github.com/stretchr/objx v0.5.0
  • github.com/stretchr/testify v1.3.0
  • github.com/stretchr/testify v1.7.0
  • github.com/stretchr/testify v1.7.1
  • github.com/stretchr/testify v1.8.0
  • github.com/stretchr/testify v1.8.4
  • github.com/subosito/gotenv v1.6.0
  • github.com/twmb/murmur3 v1.1.6
  • github.com/ysmood/fetchup v0.2.3
  • github.com/ysmood/goob v0.4.0
  • github.com/ysmood/gop v0.0.2
  • github.com/ysmood/got v0.34.1
  • github.com/ysmood/gotrace v0.6.0
  • github.com/ysmood/gson v0.7.3
  • github.com/ysmood/leakless v0.8.0
  • go.uber.org/atomic v1.9.0
  • go.uber.org/multierr v1.9.0
  • golang.org/x/exp v0.0.0-20230905200255-921286631fa9
  • golang.org/x/mod v0.12.0
  • golang.org/x/sync v0.5.0
  • golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
  • golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
  • golang.org/x/sys v0.15.0
  • golang.org/x/text v0.14.0
  • golang.org/x/time v0.5.0
  • golang.org/x/tools v0.13.0
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
  • gopkg.in/ini.v1 v1.67.0
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
  • gopkg.in/yaml.v3 v3.0.1
  • lukechampine.com/uint128 v1.2.0
  • modernc.org/cc/v3 v3.40.0
  • modernc.org/ccgo/v3 v3.16.13
  • modernc.org/ccorpus v1.11.6
  • modernc.org/httpfs v1.0.6
  • modernc.org/libc v1.29.0
  • modernc.org/mathutil v1.6.0
  • modernc.org/memory v1.7.2
  • modernc.org/opt v0.1.3
  • modernc.org/sqlite v1.28.0
  • modernc.org/strutil v1.1.3
  • modernc.org/tcl v1.15.2
  • modernc.org/token v1.0.1
  • modernc.org/z v1.7.3