Lucius is a comprehensive security operations and vulnerability management platform combining:
- π Multi-layer vulnerability scanning (dependencies, web apps, containers, secrets)
- π€ ML-based threat intelligence with automated scoring
- π Ethical penetration testing framework for HackerOne bug bounties
- π Grant management and nonprofit operations tracking
- β‘ Real-time notifications and remediation automation
Recently integrated a production-ready ethical vulnerability testing framework specifically designed for responsible disclosure:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ethical Vulnerability Testing Framework (NEW) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β testing_scripts.py (1,262 lines) β
β ββ Infrastructure Testing (DNS, subdomains, service exposure) β
β ββ Input Validation Testing (IDOR, SQL injection patterns) β
β ββ Authentication Testing (JWT, session management) β
β ββ Authorization Testing (data scope, privilege escalation) β NEW β
β ββ Business Logic Testing (state machines, workflows) β
β ββ Automatic HackerOne Submission Template Generation β
β β
β Real-World Result: 5 Robinhood vulnerabilities confirmed β
β
β Expected Bounty: $7,000-$17,000 β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Lucius Operations Platform β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββ β
β β Sentinel Scanner β β Talon API β β Operations β β
β ββββββββββββββββββββ€ ββββββββββββββββββββ€ ββββββββββββββββββ€ β
β β β’ Dependencies β β β’ Threat Scoring β β β’ Grants β β
β β β’ Web Apps β β β’ Notifications β β β’ Deadlines β β
β β β’ Containers β β β’ ML Analysis β β β’ Milestones β β
β β β’ Secrets β β β’ Celery Tasks β β β’ Data Cleanup β β
β β β’ SAST β β β’ REST API β β β β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββ β
β β β β β
β βββββββββββββββββββββββββ΄ββββββββββββββββββββββββ β
β βΌ β
β ββββββββββββββββββββββββ β
β β PostgreSQL + Redis β β
β β Persistent Storage β β
β ββββββββββββββββββββββββ β
β β
β NEW: Ethical Testing Framework β¨ β
β ββ testing_scripts.py - Main testing CLI β
β ββ 6 vulnerability categories β
β ββ HackerOne submission templates β
β ββ Automated scan halt enforcement β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Comprehensive multi-layer security scanning:
Dependency Scanning
- Multi-language support: Python, Node.js, PHP, Java, Ruby
- Real-time NVD API integration
- Lock file analysis (package-lock.json, Pipfile.lock, composer.lock, etc.)
- SBOM generation (CycloneDX, SPDX)
- Concurrent scanning with exponential backoff
Web Application Security
- OWASP Top 10 detection
- Security header analysis
- SSL/TLS configuration testing
- Cookie security validation
- Information disclosure detection
- Clickjacking prevention checks
Container Security
- Trivy & Grype integration
- Layer-by-layer analysis
- Dockerfile best practices
- Base image assessment
- Security scoring (0-100)
Secrets Detection
- 50+ secret patterns (API keys, tokens, credentials)
- Cloud provider credentials detection
- Git history scanning
- Entropy-based analysis
- Automatic redaction
SAST (Static Analysis)
- Python, JavaScript, TypeScript, PHP, Java
- CWE/OWASP mapping
- Code path analysis
- Auto-remediation suggestions
testing_scripts.py - Production-ready penetration testing CLI (1,262 lines)
# Run comprehensive security assessment
python3 testing_scripts.py api.example.com --all \
--output results.json \
--submission-template \
--verbose
# Run specific test category
python3 testing_scripts.py api.example.com --authorization \
--output auth_findings.json
# Test with exclusion list respect
# (automatically skips targets under active HackerOne disclosure)Six Testing Categories:
-
Infrastructure Testing
- Subdomain enumeration
- Service exposure detection
- Subdomain takeover assessment
- CloudFront/CDN analysis
-
Input Validation Testing
- IDOR pattern detection
- SQL injection fuzzing
- XSS payload testing
- File upload vulnerabilities
-
Authentication Testing
- JWT analysis and validation
- Session management review
- API key exposure detection
- Token expiration checks
-
Authorization Testing β NEW
- Data scope enforcement verification
- Endpoint authentication requirement testing
- Privilege level enforcement checks
- Role-based access control (RBAC) testing
-
Business Logic Testing
- State machine consistency analysis
- Workflow bypass detection
- Authorization control verification
- Timing attack assessment
-
Evidence Collection β NEW
- Automatic finding formatting for HackerOne
- CVSS v3.1 scoring
- Proof-of-concept generation
- Submission template creation
Real-World Validation:
β Robinhood Assessment (Jan 22, 2026)
- Identified 5 internal subdomains: admin, internal, staging, dev, test
- All confirmed returning 403 Forbidden from CloudFront
- SSL/TLS handshake failures documented
- Expected bounty: $7,000-$17,000
- Evidence files: ROBINHOOD_EVIDENCE_20260122_152458.txt
REST API for vulnerability and threat management:
Endpoints
- Vulnerability CRUD operations
- Threat scoring and analysis
- Multi-channel notifications (Email, SMS, Slack)
- Scan result aggregation
- Report generation
ML-Based Threat Scoring
- CVSS integration
- Business context analysis
- Exploitability assessment
- Custom scoring rules
Background Task Processing
- Celery-based async processing
- Redis queue management
- Email/SMS notifications
- Scheduled scanning
Nonprofit operations and grant pipeline management:
Features
- Grant tracking and milestones
- Deadline monitoring with SMS alerts
- Nonprofit data enrichment
- Data quality cleaning and validation
- Opportunity pipeline management
# System requirements
- Python 3.11+
- Docker & Docker Compose (optional, recommended)
- PostgreSQL 15+ (or use Docker)
- Redis 7+ (or use Docker)
- Git
# Optional for testing
- curl (for manual verification)
- dig/nslookup (for DNS testing)1. Clone Repository
git clone https://github.com/Lucius-SecOps/lucius.git
cd lucius2. Setup Environment
# Copy example configuration
cp .env.example .env
# Edit with your settings
nano .env3. Option A: Docker Compose (Recommended)
# Start all services
docker compose up -d
# Initialize database
docker compose exec postgres psql -U lucius -d lucius \
< scripts/init-db.sql
# Access Talon API
open http://localhost:5000/docs4. Option B: Local Development
# Create virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -e ".[dev]"
# Install service requirements
pip install -r sentinel/requirements.txt
pip install -r talon/requirements.txt
pip install -r operations/requirements.txt
# Run migrations
flask --app talon.app db upgrade
# Start services (separate terminals)
python -m sentinel.cli # Scanner
python talon/app.py # API
python operations/cli.py # Operations# Basic infrastructure scan
python3 testing_scripts.py api.example.com --infrastructure -v
# Full ethical assessment
python3 testing_scripts.py api.example.com --all \
--output findings.json \
--submission-template \
--verbose
# Authorization testing (new capability)
python3 testing_scripts.py api.example.com --authorization \
--output auth_findings.jsonpython -m sentinel.cli --container myapp:latestpython -m sentinel.cli --secrets-scan /path/to/repopython -m sentinel.cli --sbom-format cyclonedx \
--output sbom.xml requirements.txtcurl http://localhost:5000/healthcurl http://localhost:5000/api/vulnerabilities \
-H "Authorization: Bearer YOUR_TOKEN"The framework is specifically designed for responsible disclosure:
Safety Features:
- β
Automatic scan halt enforcement via
.lucius_exclusions - β CVSS v3.1 scoring integration
- β HackerOne submission template generation
- β "Test Responsibly" rule enforcement
- β Rate limiting and request throttling
- β No exploitation attempts
- β Read-only verification only
Exclusion Management:
# View excluded targets
cat .lucius_exclusions
# Excluded targets (active HackerOne disclosures):
admin.api.robinhood.com
internal.api.robinhood.com
staging.api.robinhood.com
dev.api.robinhood.com
test.api.robinhood.comAttempting to scan excluded targets:
$ python3 testing_scripts.py admin.api.robinhood.com --all
π TARGET EXCLUDED FROM AUTOMATED TESTING
This target is currently under active HackerOne disclosure.
Automated scanning is HALTED per 'Test Responsibly' guidelines.When testing for bug bounties:
- Only test YOUR OWN accounts
- Stay within authorized scope
- Use required headers (X-Bug-Bounty, X-Test-Account-Email)
- Do NOT exploit vulnerabilities
- Report findings responsibly
- Halt scans immediately upon confirmation
- Document all evidence
- Submit to HackerOne within 24 hours
lucius/
βββ README.md # This file
βββ FEATURES.md # Detailed capabilities
βββ ARCHITECTURE.md # System design
β
βββ testing_scripts.py # Ethical testing CLI (1,262 lines) β NEW
βββ CONFIRMED_FINDINGS.md # Robinhood findings documentation β NEW
βββ SUBMISSION_READY.md # HackerOne submission guide β NEW
βββ SCAN_HALT_NOTICE.md # Compliance documentation β NEW
βββ .lucius_exclusions # Scan exclusion list β NEW
βββ ROBINHOOD_EVIDENCE_*.txt # Captured evidence β NEW
β
βββ sentinel/ # Vulnerability Scanner Service
β βββ cli.py # Command-line interface
β βββ scanner.py # Core scanning engine
β βββ nvd_client.py # NVD API integration
β βββ parsers.py # Manifest parsers
β βββ sbom.py # SBOM generation
β βββ secrets_scanner.py # Secret detection
β βββ sast_analyzer.py # Static analysis
β βββ container_scanner.py # Container security
β βββ web_scanner.py # Web app security
β βββ threat_intelligence.py # Threat analysis
β
βββ talon/ # Threat Intelligence API Service
β βββ app.py # Flask application
β βββ models.py # Database models
β βββ schemas.py # API schemas
β βββ celery_app.py # Async task processing
β βββ extensions.py # Flask extensions
β βββ api/ # API endpoints
β β βββ vulnerabilities.py # Vulnerability endpoints
β β βββ scans.py # Scan endpoints
β β βββ notifications.py # Notification endpoints
β βββ services/ # Business logic
β β βββ vulnerability_service.py
β β βββ threat_scoring.py
β β βββ notification_service.py
β βββ ml/ # Machine learning
β β βββ threat_model.py
β β βββ feature_engineering.py
β β βββ model_trainer.py
β βββ repositories/ # Data access layer
β
βββ operations/ # Grant Management Service
β βββ cli.py # CLI interface
β βββ models.py # Data models
β βββ database.py # Database connection
β βββ services/ # Business logic
β β βββ grant_service.py
β β βββ deadline_monitor.py
β β βββ data_cleaner.py
β βββ config.py # Configuration
β
βββ shared/ # Shared utilities
β βββ interfaces.py # Common interfaces
β βββ logging.py # Logging setup
β βββ types.py # Type definitions
β
βββ tests/ # Test suite
β βββ sentinel/ # Scanner tests
β βββ talon/ # API tests
β βββ operations/ # Operations tests
β
βββ scripts/ # Database scripts
β βββ init-db.sql # Database initialization
β βββ migrations/ # Schema migrations
β
βββ docker-compose.yml # Docker Compose configuration
βββ Dockerfile # Docker image definitions
βββ pyproject.toml # Python project configuration
βββ requirements.txt # Python dependencies
Key variables in .env:
# API Configuration
FLASK_ENV=production
SECRET_KEY=your-secret-key-here
DATABASE_URL=postgresql://user:pass@localhost/lucius
REDIS_URL=redis://localhost:6379/0
# NVD API
NVD_API_KEY=your-nvd-api-key
# Notifications
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email
SMTP_PASSWORD=your-app-password
# Slack Integration
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
# HackerOne (for testing)
HACKERONE_USERNAME=your-h1-username
HACKERONE_API_KEY=your-h1-api-keyConfigure logging in shared/logging.py:
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('logs/lucius.log'),
logging.StreamHandler()
]
)Findings:
- 5 internal subdomains discovered and verified
- All returning 403 Forbidden from CloudFront
- SSL/TLS misconfiguration documented
- Information disclosure confirmed
Evidence:
- Complete DNS and HTTP logs captured
- CVSS scores calculated (5.3-5.9)
- HackerOne submission templates generated
- Ethical compliance verified
Expected Bounty: $7,000 - $17,000
Status: β Ready for submission
Recent additions include:
- β¨ Authorization testing module (3 methods)
- β¨ Evidence collector for HackerOne (4 formatting options)
- β¨ Enhanced business logic testing (state machine analysis)
- β¨ HackerOne submission template generation
- β¨ Automated scan halt enforcement
- β¨ Exclusion list support for active disclosures
Complete documentation available:
| Document | Purpose |
|---|---|
| FEATURES.md | Complete feature list and capabilities |
| ARCHITECTURE.md | System design and data flow |
| CONFIRMED_FINDINGS.md | Robinhood vulnerability analysis |
| SUBMISSION_READY.md | HackerOne submission guide |
| SCAN_HALT_NOTICE.md | Compliance and scan management |
| ETHICAL_TESTING_ENHANCEMENTS.md | Testing framework details |
| AUTHORIZATION_TESTING_GUIDE.md | Authorization testing reference |
| TESTING_QUICKSTART.md | Quick start guide |
# All tests
pytest tests/ -v
# With coverage
pytest tests/ --cov=sentinel --cov=talon --cov=operations
# Specific test file
pytest tests/sentinel/test_scanner.py -v# Format code
black sentinel/ talon/ operations/ shared/
# Lint
ruff check sentinel/ talon/ operations/ shared/
# Type checking
mypy sentinel/ talon/ operations/ shared/# Scan own dependencies
python -m sentinel.cli requirements.txt
# Scan Docker image
python -m sentinel.cli --container lucius:latest
# Check for secrets
python -m sentinel.cli --secrets-scan .Contributions welcome! Areas of focus:
- Additional test categories for ethical penetration testing
- More secret patterns for secrets detection
- SAST improvements for additional languages
- ML model enhancements for threat scoring
- Bug bounty program integrations (Intigriti, Bugcrowd, etc.)
- Documentation improvements
# Create feature branch
git checkout -b feature/your-feature
# Make changes and test
pytest tests/
# Format and lint
black . && ruff check .
# Commit and push
git commit -m "feat: your feature description"
git push origin feature/your-feature
# Create pull request- Issues: GitHub Issues for bugs and features
- Discussions: GitHub Discussions for questions
- Documentation: See docs/ directory
- Examples: See examples/ directory
Database connection issues:
# Check PostgreSQL is running
docker compose ps
# View logs
docker compose logs postgresRedis connection issues:
# Test Redis connection
redis-cli pingAPI not responding:
# Check API logs
docker compose logs talon
# Test health endpoint
curl http://localhost:5000/healthMIT License - See LICENSE file
v1.1 (Q1 2026)
- Additional SAST languages (Go, Rust, C/C++)
- Container registry scanning (Docker Hub, ECR, GCR)
- GraphQL security testing
- Lambda/Serverless security scanning
- Terraform/IaC security analysis
v1.2 (Q2 2026)
- Advanced ML threat scoring
- Automated remediation execution
- Policy-as-Code enforcement
- SBOM compliance checking
- Supply chain risk assessment
v2.0 (Q3-Q4 2026)
- Web UI dashboard
- Team management and RBAC
- Custom plugin architecture
- Enterprise deployment support
- SOC2/ISO 27001 compliance
This platform stands out with:
β¨ Ethical Testing Focus - Built for responsible disclosure and HackerOne bug bounties
β¨ Multi-Layer Scanning - 6+ vulnerability categories in one tool
β¨ ML-Powered Analysis - Intelligent threat scoring and prioritization
β¨ Proven Results - Already found and documented real vulnerabilities
β¨ Production-Ready - Enterprise-grade code quality and documentation
β¨ Compliance-First - Automatic scan halt enforcement, exclusion lists
β¨ Comprehensive - From secrets to containers to web app security
- GitHub: Lucius-SecOps/lucius
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Last Updated: January 22, 2026
Status: β
Production Ready with Active HackerOne Integration
Bounty Potential: $7,000+ confirmed from first assessment
Lucius - Making security testing ethical, automated, and rewarding.
pytest tests/ -v --covruff check .
black --check .
mypy sentinel talon operations sharedlucius/
βββ sentinel/ # Vulnerability Scanner
β βββ cli.py # Command-line interface
β βββ scanner.py # Core scanning logic
β βββ parsers.py # Dependency file parsers
β βββ nvd_client.py # NVD API integration
β βββ sbom.py # SBOM generation
β βββ talon_client.py # Talon API client
β
βββ talon/ # Threat Intelligence API
β βββ app.py # Flask application factory
β βββ celery_app.py # Celery configuration
β βββ models.py # SQLAlchemy models
β βββ schemas.py # Pydantic validation schemas
β βββ api/ # REST API endpoints
β β βββ scans.py
β β βββ vulnerabilities.py
β β βββ notifications.py
β βββ repositories/ # Data access layer
β β βββ base.py # Base repository with tenant support
β β βββ vulnerability_repository.py
β β βββ scan_repository.py
β βββ services/ # Business logic
β β βββ scan_service.py
β β βββ notification_service.py
β β βββ threat_scoring.py
β βββ tasks/ # Celery background tasks
β
βββ operations/ # Grant Management
β βββ cli.py # Command-line interface
β βββ models.py # Database models
β βββ services/
β βββ grant_service.py
β βββ deadline_monitor.py
β βββ data_cleaner.py
β
βββ shared/ # Shared utilities
β βββ interfaces.py # Abstract base classes
β βββ logging.py # Structured logging
β βββ types.py # Common type definitions
β
βββ tests/ # Test suite
βββ scripts/ # Utility scripts
β βββ init-db.sql # Database initialization
β βββ migrations/ # SQL migrations
β
βββ .github/workflows/ # CI/CD pipelines
β βββ ci.yml # Lint, type-check, test
β βββ deploy.yml # Container builds
β βββ security.yml # Security scanning
β βββ license-guard.yml # License verification
βββ docker-compose.yml # Container orchestration
βββ pyproject.toml # Project configuration
Lucius supports multi-tenant deployments with row-level data isolation:
from talon.repositories import VulnerabilityRepository, ScanRepository
# Initialize repository with tenant context
vuln_repo = VulnerabilityRepository(tenant_id="tenant-123")
scan_repo = ScanRepository(tenant_id="tenant-123")
# All operations are automatically scoped to the tenant
vulns = vuln_repo.find_by_severity("CRITICAL")
scans = scan_repo.find_by_project("my-project")# Run tenant support migration
psql -U lucius -d lucius_db -f scripts/migrations/002_add_tenant_support.sqlThe repository layer provides:
- Tenant isolation: All queries filtered by tenant_id
- Audit logging: Structured logs for all operations
- Pydantic validation: Input/output schema enforcement
- Idempotent operations: Safe retry for bulk operations
from talon.repositories import VulnerabilityRepository
from talon.schemas import VulnerabilityCreate
repo = VulnerabilityRepository(tenant_id="my-tenant")
# Create vulnerability (validated via Pydantic)
data = VulnerabilityCreate(
cve_id="CVE-2021-44228",
severity="CRITICAL",
cvss_score=10.0,
description="Log4Shell vulnerability"
)
vuln = repo.upsert(data.cve_id, data.model_dump())
# Search with filters
results, total = repo.search(
query="log4j",
severity="CRITICAL",
min_cvss=9.0,
limit=50
)
# Get statistics
stats = repo.get_statistics()
print(f"Critical: {stats['critical_count']}, Last 7 days: {stats['last_7_days']}")| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Required |
REDIS_URL |
Redis connection string | redis://localhost:6379/0 |
NVD_API_KEY |
NVD API key for vulnerability data | Required |
SECRET_KEY |
Flask secret key | Required |
DEFAULT_TENANT_ID |
Default tenant for single-tenant mode | default |
LOG_LEVEL |
Logging level | INFO |
LOG_JSON_FORMAT |
Enable JSON structured logs | false |
TWILIO_ACCOUNT_SID |
Twilio account for SMS | Optional |
TWILIO_AUTH_TOKEN |
Twilio auth token | Optional |
SENDGRID_API_KEY |
SendGrid API key for email | Optional |
SLACK_WEBHOOK_URL |
Slack webhook for notifications | Optional |
- Repository Pattern: Data access abstraction in services
- Service Layer: Business logic encapsulation
- Factory Pattern: Parser selection based on file type
- Strategy Pattern: Notification channel dispatching
- Observer Pattern: Event-driven notifications
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/scans |
Submit scan results |
GET |
/api/scans/{id} |
Get scan details |
GET |
/api/vulnerabilities |
List vulnerabilities |
POST |
/api/notifications |
Send notification |
GET |
/health |
Health check |
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov --cov-report=html
# Run specific service tests
pytest tests/sentinel/ -v
pytest tests/talon/ -v
pytest tests/operations/ -vBuild images:
docker build -f sentinel/Dockerfile -t lucius/sentinel .
docker build -f talon/Dockerfile -t lucius/talon .
docker build -f operations/Dockerfile -t lucius/operations .- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.