Overview
Esprit is a powerful security testing tool that executes potentially dangerous operations. Follow these best practices to ensure secure deployment and operation.Isolation and Sandboxing
Docker Container Isolation
Esprit runs all security scans inside isolated Docker containers to prevent damage to the host system. Default isolation features:- Non-root user execution (
pentesteruser) - Limited filesystem access (
/workspaceworking directory) - Network namespace isolation
- Resource limits (configurable)
esprit/runtime/docker_runtime.py:161-180):
Network Capabilities
The sandbox requires elevated network capabilities for security testing:- Capabilities are scoped to the container only
- No access to host network interfaces
- Automatic cleanup on scan completion
Resource Limits
Set Docker resource limits to prevent resource exhaustion:Authentication and Secrets Management
LLM API Keys
Never commit API keys to version control:Esprit Cloud Authentication
Esprit Cloud uses OAuth tokens with automatic refresh:esprit/config/config.py:92-99):
CI/CD Secrets
Store sensitive credentials in CI/CD secrets, never in code: GitHub Actions:Network Security
Proxy Configuration
The sandbox runs Caido proxy for HTTP/HTTPS interception (fromcontainers/docker-entrypoint.sh:12-46):
- Proxy listens on
127.0.0.1only (not exposed to host) - Auto-generated CA certificate per container
- Automatic cleanup on container destruction
TLS/SSL Certificate Handling
Sandbox CA generation (fromcontainers/Dockerfile:52-67):
Firewall Rules
Isolate scan containers from internal networks:Data Protection
Scan Results Storage
Scan results are stored locally by default:- Results directory:
0700(user only) - Report files:
0600(user read/write only)
Sensitive Data Exclusion
Exclude sensitive directories from scans (fromesprit/runtime/docker_runtime.py:246-266):
Log Sanitization
Esprit automatically sanitizes sensitive data from logs:Cloud Runtime Security
Esprit Cloud Isolation
Esprit Cloud sandboxes run in isolated environments:- Dedicated container per scan
- Automatic cleanup after scan completion
- Network isolation from other tenants
- Encrypted communication (TLS 1.3)
esprit/runtime/cloud_runtime.py:85-95):
Cleanup on Termination
Esprit Cloud automatically cleans up stale sandboxes:Vulnerability Disclosure
Responsible Disclosure
Esprit is designed for authorized security testing only:- Written Permission - Always obtain explicit written authorization
- Scope Definition - Define clear testing boundaries
- Legal Compliance - Comply with local laws and regulations
- Responsible Disclosure - Follow responsible vulnerability disclosure practices
Automated Scanning Disclaimer
Include disclaimers in scan reports:Operational Security
Rate Limiting
Implement rate limiting for API-based scans:Telemetry and Monitoring
Esprit includes telemetry for usage tracking (frompyproject.toml:48):
- Anonymized usage statistics
- Error reports (no sensitive data)
- Performance metrics
- Scan targets or URLs
- API keys or credentials
- Vulnerability details
- Source code or file contents
Audit Logging
Enable comprehensive logging for compliance:Container Security
Image Verification
Verify Docker image signatures before use:Base Image Security
The Esprit sandbox is based on Kali Linux with security updates:- Base image rebuilt weekly
- Security patches applied immediately
- Dependency updates via Dependabot
Vulnerability Scanning
Scan custom images for vulnerabilities:Access Control
File System Permissions
Esprit configuration directory:Multi-User Environments
In shared environments, use user-scoped installations:Role-Based Access Control
For team environments, implement RBAC:Compliance and Certifications
Data Residency
Esprit Cloud supports data residency requirements:Compliance Standards
- SOC 2 Type II - Annual audits for Esprit Cloud
- GDPR - EU data protection compliance
- ISO 27001 - Information security management
Audit Reports
Request compliance reports:Incident Response
Security Incident Reporting
Report security issues to: [email protected] Include:- Detailed description
- Steps to reproduce
- Potential impact
- Suggested mitigation
Emergency Procedures
If you suspect a breach:- Immediately stop all scans:
docker stop $(docker ps -q --filter label=esprit-scan-id) - Rotate credentials: Update all API keys and tokens
- Review logs: Check
~/.esprit/logs/for suspicious activity - Contact support: Email [email protected] with incident details
Hardening Checklist
- Use latest Esprit version
- Keep Docker and dependencies updated
- Store API keys in secrets management system
- Enable Docker Content Trust
- Set resource limits on containers
- Implement network isolation
- Use encrypted storage for scan results
- Enable audit logging
- Regular security scans of custom images
- Obtain written authorization before testing
- Configure rate limits and timeouts
- Review and sanitize logs before sharing
- Implement RBAC for team environments
- Use dedicated service accounts for CI/CD
- Regular compliance audits
Security Tools Included
The Esprit sandbox includes security-hardened tools (fromcontainers/Dockerfile:25-46):
- Static Analysis: Semgrep, Bandit, TruffleHog, Trivy
- Network Scanning: nmap, masscan, naabu
- Web Testing: Nuclei, FFUF, SQLMap, Wapiti
- API Testing: httpx, katana
- Code Analysis: ESLint, JSHint, Retire.js
- Installed from official sources
- Verified with checksums where available
- Updated regularly
- Configured with security best practices
Best Practices Summary
- Isolation - Always run scans in isolated Docker containers
- Authentication - Use OAuth and secrets management for credentials
- Authorization - Obtain written permission before testing
- Encryption - Use TLS for all network communication
- Least Privilege - Run with minimum required permissions
- Monitoring - Enable audit logging and telemetry
- Updates - Keep Esprit and dependencies current
- Compliance - Follow industry standards and regulations
- Incident Response - Have a plan for security incidents
- Documentation - Document all customizations and configurations