Files
strategic/docs/SECURITY_BEST_PRACTICES.md
2026-02-09 21:51:54 -08:00

175 lines
4.0 KiB
Markdown

# Security Best Practices
## Smart Contract Security
### Executor Contract
1. **Multi-Sig Ownership**: Always use multi-sig for executor ownership
- Minimum 3-of-5 signers
- Separate signers for different functions
- Regular key rotation
2. **Allow-List Management**: Strictly control allowed targets
- Only add verified protocol addresses
- Regularly review and update
- Remove unused addresses
- Document all additions
3. **Flash Loan Security**:
- Only allow verified Aave Pools
- Verify initiator in callback
- Test flash loan scenarios thoroughly
4. **Pausability**:
- Keep pause functionality accessible
- Test emergency pause procedures
- Document pause/unpause process
## Strategy Security
### Input Validation
1. **Blind Values**: Never hardcode sensitive values
- Use blinds for amounts, addresses
- Validate blind values before use
- Sanitize user inputs
2. **Address Validation**:
- Verify all addresses are valid
- Check addresses match target chain
- Validate protocol addresses
3. **Amount Validation**:
- Check for zero amounts
- Verify amount precision
- Validate against limits
### Guard Usage
1. **Always Use Guards**:
- Health factor checks for lending
- Slippage protection for swaps
- Gas limits for all strategies
- Oracle sanity checks
2. **Guard Thresholds**:
- Set conservative thresholds
- Review and adjust based on market conditions
- Test guard behavior
3. **Guard Failure Actions**:
- Use "revert" for critical checks
- Use "warn" for informational checks
- Document guard behavior
## Operational Security
### Key Management
1. **Never Store Private Keys**:
- Use hardware wallets
- Use key management services (KMS)
- Rotate keys regularly
- Never commit keys to git
2. **Access Control**:
- Limit access to production systems
- Use separate keys for different environments
- Implement least privilege
### Monitoring
1. **Transaction Monitoring**:
- Monitor all executions
- Alert on failures
- Track gas usage
- Review unusual patterns
2. **Guard Monitoring**:
- Log all guard evaluations
- Alert on guard failures
- Track guard effectiveness
3. **Price Monitoring**:
- Monitor oracle health
- Alert on stale prices
- Track price deviations
### Incident Response
1. **Emergency Procedures**:
- Pause executor immediately if needed
- Document incident response plan
- Test emergency procedures
- Have rollback plan ready
2. **Communication**:
- Notify stakeholders promptly
- Document incidents
- Post-mortem analysis
- Update procedures based on learnings
## Development Security
### Code Review
1. **Review All Changes**:
- Require code review
- Security-focused reviews
- Test coverage requirements
2. **Dependency Management**:
- Keep dependencies updated
- Review dependency changes
- Use dependency scanning
### Testing
1. **Comprehensive Testing**:
- Unit tests for all components
- Integration tests for flows
- Security-focused tests
- Fork testing before deployment
2. **Penetration Testing**:
- Regular security audits
- Test attack vectors
- Review access controls
## Best Practices Summary
**Do**:
- Use multi-sig for ownership
- Validate all inputs
- Use guards extensively
- Monitor all operations
- Test thoroughly
- Document everything
- Keep dependencies updated
- Use hardware wallets
**Don't**:
- Hardcode sensitive values
- Skip validation
- Ignore guard failures
- Deploy without testing
- Store private keys in code
- Skip security reviews
- Use untested strategies
- Ignore monitoring alerts
## Security Checklist
Before deployment:
- [ ] Security audit completed
- [ ] Multi-sig configured
- [ ] Allow-list verified
- [ ] Guards tested
- [ ] Monitoring configured
- [ ] Emergency procedures documented
- [ ] Incident response plan ready
- [ ] Dependencies updated
- [ ] Tests passing
- [ ] Documentation complete