We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eunomia-bpf/MCPtrace'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
SECURITY.md•5.65 KiB
# Security Considerations for MCPtrace
> ⚠️ **WARNING**: This MCP server executes system-level tracing commands with elevated privileges. Proper security configuration is CRITICAL.
## Overview
MCPtrace provides AI assistants with access to powerful Linux kernel tracing capabilities through bpftrace. This requires careful security considerations to prevent unauthorized system access or malicious code execution.
## Critical Security Issues
### 1. Privileged Execution
**Risk**: bpftrace requires root privileges to access kernel tracing facilities.
**Current Implementation**:
- The server prompts for sudo password at startup
- Password is cached in memory for the session duration only
- Password is never written to disk or logs
**Configuration Options**:
1. **Default: Password Prompt** (Current implementation):
- Server prompts for password when started
- Password cached securely in memory
- Suitable for interactive use
2. **Alternative: Passwordless sudo** (Recommended for production):
```bash
# Add to /etc/sudoers using visudo
your_username ALL=(ALL) NOPASSWD: /usr/bin/bpftrace
```
3. **Container Deployment**:
- Use Docker with appropriate capabilities
- Isolate the server from the host system
- Pass credentials via environment variables
**Security Considerations**:
- Password is transmitted to sudo via stdin using -S flag
- Memory containing password is not swapped to disk
- Password cleared when server stops
### 2. Code Injection Risks
**Risk**: Arbitrary bpftrace code execution could compromise system security.
**Current State**: No input validation or sanitization.
**Mitigations**:
- Only use MCPtrace with trusted AI clients
- Review all generated bpftrace programs before execution
- Consider implementing an allowlist of safe trace patterns
- Monitor server logs for suspicious activity
### 3. Resource Exhaustion
**Risk**: Malicious or poorly written traces could consume excessive system resources.
**Current Limits**:
- 60-second execution timeout
- 10,000 line output buffer
- No CPU or memory limits
**Recommendations**:
- Implement CPU and memory quotas
- Add rate limiting per client
- Monitor system resource usage
- Set up alerts for abnormal behavior
## Security Best Practices
### 1. Principle of Least Privilege
- Run the MCP server as a dedicated user
- Grant only necessary permissions
- Use AppArmor or SELinux profiles if available
- Restrict file system access
### 2. Network Security
- Never expose the server directly to the internet
- Use secure transport (TLS) for remote connections
- Implement proper authentication mechanisms
- Consider using a reverse proxy with authentication
### 3. Audit and Monitoring
- Enable comprehensive logging
- Monitor all executed bpftrace programs
- Set up alerts for suspicious patterns
- Regularly review access logs
### 4. Input Validation
Until proper validation is implemented:
- Manually review generated traces
- Use only with trusted AI models
- Implement external validation scripts
- Consider a human-in-the-loop approval process
## Secure Configuration Example
```bash
# 1. Create dedicated user
sudo useradd -r -s /bin/false mcptrace
# 2. Configure passwordless sudo for bpftrace only
echo "mcptrace ALL=(ALL) NOPASSWD: /usr/bin/bpftrace" | sudo tee /etc/sudoers.d/mcptrace
# 3. Set restrictive permissions
sudo chmod 0440 /etc/sudoers.d/mcptrace
# 4. Run server as dedicated user
sudo -u mcptrace python /path/to/server.py
```
## Threat Model
### Potential Threats
1. **Malicious Trace Execution**: Attacker executes harmful bpftrace programs
2. **Information Disclosure**: Sensitive kernel data exposed through traces
3. **Denial of Service**: Resource exhaustion through intensive traces
4. **Privilege Escalation**: Exploiting bpftrace vulnerabilities
5. **Data Exfiltration**: Using traces to extract sensitive information
### Mitigations
1. **Access Control**: Strict authentication and authorization
2. **Input Validation**: Sanitize and validate all trace programs
3. **Resource Limits**: Enforce CPU, memory, and time constraints
4. **Audit Logging**: Log all operations with full context
5. **Network Isolation**: Restrict network access from trace context
## Incident Response
If you suspect a security incident:
1. **Immediate Actions**:
- Stop the MCP server
- Review recent trace executions
- Check system logs for anomalies
- Isolate affected systems
2. **Investigation**:
- Analyze executed bpftrace programs
- Review system call logs
- Check for unauthorized file access
- Monitor network traffic
3. **Recovery**:
- Revoke compromised credentials
- Update security configurations
- Patch identified vulnerabilities
- Implement additional controls
## Security Checklist
Before deploying MCPtrace:
- [ ] Configured passwordless sudo for bpftrace
- [ ] Created dedicated user account
- [ ] Restricted sudo access to bpftrace binary only
- [ ] Implemented logging and monitoring
- [ ] Reviewed and understood threat model
- [ ] Tested incident response procedures
- [ ] Documented security configuration
- [ ] Trained users on security best practices
## Reporting Security Issues
If you discover a security vulnerability:
1. **Do NOT** create a public GitHub issue
2. Contact the maintainers privately
3. Provide detailed reproduction steps
4. Allow time for a fix before disclosure
## Future Security Enhancements
Planned improvements:
- Bpftrace program validation and sanitization
- Sandboxed execution environment
- Formal security audit
- Integration with security frameworks
- Automated threat detection
---
Remember: Security is a shared responsibility. Always follow the principle of least privilege and defense in depth when deploying MCPtrace.