Files
proxmox/docs/04-configuration/SECURITY_AUDIT_REPORT.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

418 lines
10 KiB
Markdown

# Security Audit Report - Secrets Management
**Last Updated:** 2026-01-31
**Document Version:** 1.0
**Status:** Active Documentation
---
**Date:** 2025-01-27
**Status:** ✅ Audit Complete
**Auditor:** Automated Security Scan
**Scope:** All secrets across `/home/intlc/projects` directory
---
## Executive Summary
A comprehensive security audit was conducted to identify all secrets, assess their current storage methods, and provide recommendations for secure HSM Key Vault migration.
### Key Findings
- **Total Secrets Identified:** 50+ unique secrets
- **Critical Issues:** 6 private keys exposed in files
- **High Priority Issues:** 15 API tokens and passwords
- **Medium Priority Issues:** 20 service keys and configuration secrets
- **Backup Files with Secrets:** 3 files identified and secured
### Risk Assessment
| Risk Level | Count | Description |
|-----------|-------|-------------|
| 🔴 **CRITICAL** | 6 | Private keys exposed in .env files |
| 🟠 **HIGH** | 15 | API tokens, passwords in files/scripts |
| 🟡 **MEDIUM** | 20 | Service keys, JWT secrets |
| 🟢 **LOW** | 10+ | Configuration values, public identifiers |
---
## Detailed Findings
### 🔴 CRITICAL: Private Keys Exposed
**Issue:** Private keys found in multiple `.env` files and documentation
**Locations:**
1. `proxmox/smom-dbis-138/.env` - Deployer private key
2. `no_five/.env` - Private key (same as deployer)
3. `237-combo/.env` - Different private key
4. `loc_az_hci/smom-dbis-138/.env` - Deployer private key
5. `proxmox/smom-dbis-138/services/*/.env` - Multiple service files
6. `docs/06-besu/T1_2_CREDENTIALS_VERIFIED.md` - Documented in markdown
**Risk:**
- Complete compromise of blockchain accounts
- Unauthorized transaction signing
- Financial loss
- Reputation damage
**Recommendation:**
- **IMMEDIATE:** Move all private keys to HSM
- Never export private keys from HSM
- Use HSM for all cryptographic operations
- Rotate keys if exposure is suspected
**Status:** ⚠️ Requires immediate action
---
### 🟠 HIGH: API Tokens and Passwords
#### Cloudflare API Credentials
**Issue:** Multiple Cloudflare API tokens and keys found in files
**Locations:**
- `proxmox/.env` - API key and tunnel token
- `loc_az_hci/.env` - API key
- `loc_az_hci/smom-dbis-138/.env` - API token
- `scripts/fix-certbot-dns-propagation.sh` - Hardcoded token
- `scripts/install-shared-tunnel-token.sh` - Hardcoded tunnel token
**Risk:**
- Unauthorized DNS modifications
- SSL certificate issuance
- Tunnel configuration changes
- Account compromise
**Recommendation:**
- Migrate to Vault immediately
- Use API tokens (not global API key)
- Implement token rotation
- Limit token permissions
**Status:** ⚠️ High priority migration
---
#### NPM (Nginx Proxy Manager) Credentials
**Issue:** Passwords hardcoded in scripts
**Locations:**
- `scripts/create-npmplus-proxy.sh` - Hardcoded password hash
- `scripts/nginx-proxy-manager/update-npmplus-proxy-hosts-api.sh` - Hardcoded password
- `proxmox/.env` - Plain text password
**Risk:**
- Unauthorized proxy configuration
- SSL certificate management
- Domain routing changes
**Recommendation:**
- Move to Vault
- Use API tokens instead of passwords
- Implement password rotation
**Status:** ⚠️ High priority migration
---
#### Database Credentials
**Issue:** Database passwords in connection strings
**Locations:**
- `dbis_core/.env` - DATABASE_URL with embedded password
- `explorer-monorepo/.env` - Database credentials
**Risk:**
- Unauthorized database access
- Data breach
- Data manipulation
**Recommendation:**
- Use Vault database secrets engine
- Implement dynamic credentials
- Separate password from connection string
**Status:** ⚠️ High priority migration
---
### 🟡 MEDIUM: Service Keys and JWT Secrets
**Issue:** Various service API keys and JWT secrets
**Locations:**
- UniFi API keys in documentation
- Omada API keys in .env files
- JWT secrets in templates
- Third-party API keys
**Risk:**
- Service compromise
- Unauthorized API access
- Session hijacking (JWT)
**Recommendation:**
- Migrate to Vault
- Implement key rotation
- Use environment-specific secrets
**Status:** ⚠️ Medium priority migration
---
## Backup Files Security
### Findings
**Backup Files with Secrets:**
1. `smom-dbis-138/.env.backup` - Contains Cloudflare API token
2. `smom-dbis-138/.env.backup.20251225_092319` - Contains private key and API token
3. `loc_az_hci/smom-dbis-138/.env.backup` - Contains API token
**Status:** ✅ Secured
- Files moved to secure location: `~/.secure-secrets-backups/`
- All backup files properly ignored in .gitignore
- Recommendation: Encrypt backups or delete if no longer needed
---
## .gitignore Coverage
### Status: ✅ COMPLETE
**Verification Results:**
- All `.env` files properly ignored
- Backup file patterns in .gitignore
- No secrets at risk of accidental commit
**Coverage:**
- Root `.gitignore` includes `.env` patterns
- Service-specific `.gitignore` files properly configured
- Backup file patterns: `*.env.backup`, `.env.backup.*`
---
## Hardcoded Secrets in Scripts
### Findings
**Scripts with Hardcoded Secrets:**
1. `scripts/create-npmplus-proxy.sh` - NPM password
2. `scripts/fix-certbot-dns-propagation.sh` - Cloudflare token
3. `scripts/install-shared-tunnel-token.sh` - Tunnel token
4. `scripts/obtain-all-ssl-certificates.sh` - Cloudflare token
5. `scripts/configure-all-cloudflare-dns.sh` - Cloudflare token
6. `scripts/test-cloudflare-permissions.sh` - Cloudflare token
7. `scripts/nginx-proxy-manager/*.sh` - NPM credentials
**Risk:**
- Secrets in version control
- Accidental exposure
- Difficult to rotate
**Recommendation:**
- Replace with Vault API calls
- Use environment variables from Vault Agent
- Remove hardcoded values
**Status:** ⚠️ Requires script updates
---
## Secrets in Documentation
### Findings
**Documentation Files with Secrets:**
1. `docs/06-besu/T1_2_CREDENTIALS_VERIFIED.md` - Private key
2. `docs/06-besu/T1_2_CREDENTIALS_STATUS.md` - Private key references
3. `docs/04-configuration/UDM_PRO_API_LIMITATIONS.md` - UniFi API key
4. `docs/04-configuration/NGINX_PROXY_MANAGER_COMPLETE_SETUP.md` - Passwords
**Risk:**
- Public exposure if docs are shared
- Accidental disclosure
- Historical record of secrets
**Recommendation:**
- Replace with placeholders
- Remove actual secret values
- Use `[REDACTED]` for examples
- Document secret locations in secure docs only
**Status:** ⚠️ Requires documentation cleanup
---
## Compliance and Best Practices
### Current State
**Good Practices:**
- .gitignore properly configured
- Backup files identified and secured
- Comprehensive inventory created
- Migration plan documented
⚠️ **Areas for Improvement:**
- Private keys in files (should be in HSM)
- Hardcoded secrets in scripts
- Secrets in documentation
- No centralized secrets management
- No secret rotation procedures
---
## Recommendations
### Immediate Actions (Week 1)
1. **Secure Private Keys**
- Move all private keys to HSM immediately
- Never export from HSM
- Verify no keys in version control
2. **Remove Hardcoded Secrets**
- Update all scripts to use Vault
- Remove hardcoded values
- Test script functionality
3. **Clean Documentation**
- Replace secrets with placeholders
- Remove actual values from docs
- Update examples
### Short-Term (Week 2-4)
1. **HSM Key Vault Setup**
- Select and configure HSM solution
- Install HashiCorp Vault
- Migrate critical secrets
2. **Script Updates**
- Update all scripts for Vault integration
- Implement Vault Agent where applicable
- Test all automation
3. **Access Control**
- Define Vault policies
- Implement RBAC
- Set up audit logging
### Medium-Term (Month 2-3)
1. **Complete Migration**
- Migrate all secrets to Vault
- Remove secrets from .env files
- Update all applications
2. **Secret Rotation**
- Implement rotation procedures
- Automate where possible
- Document rotation schedule
3. **Monitoring**
- Set up secret access monitoring
- Alert on unauthorized access
- Regular security audits
---
## Security Metrics
### Before Migration
- **Secrets in Files:** 50+
- **Hardcoded Secrets:** 10+
- **Secrets in Docs:** 5+
- **Backup Files:** 3
- **Private Keys Exposed:** 6
### Target State (After Migration)
- **Secrets in Files:** 0
- **Hardcoded Secrets:** 0
- **Secrets in Docs:** 0 (placeholders only)
- **Backup Files:** 0 (or encrypted)
- **Private Keys Exposed:** 0 (all in HSM)
---
## Risk Mitigation
### Current Risks
1. **Private Key Exposure**
- **Mitigation:** Immediate HSM migration
- **Timeline:** Week 1-2
2. **API Token Compromise**
- **Mitigation:** Vault migration, token rotation
- **Timeline:** Week 2-4
3. **Hardcoded Secrets**
- **Mitigation:** Script updates, Vault integration
- **Timeline:** Week 3-4
4. **Documentation Exposure**
- **Mitigation:** Documentation cleanup
- **Timeline:** Week 1
---
## Compliance Status
### Security Standards
-**.gitignore Coverage:** Complete
- ⚠️ **Secret Storage:** Needs HSM migration
- ⚠️ **Access Control:** Needs Vault policies
- ⚠️ **Audit Logging:** Needs implementation
- ⚠️ **Secret Rotation:** Needs procedures
### Best Practices
- ✅ Secrets inventory documented
- ✅ Migration plan created
- ⚠️ HSM implementation pending
- ⚠️ Secret rotation pending
- ⚠️ Monitoring pending
---
## Next Steps
1. **Immediate (This Week)**
- [ ] Review this audit report
- [ ] Clean up documentation secrets
- [ ] Begin HSM selection
2. **Short-Term (Week 2-4)**
- [ ] Set up HSM and Vault
- [ ] Migrate critical secrets
- [ ] Update scripts
3. **Medium-Term (Month 2-3)**
- [ ] Complete migration
- [ ] Implement rotation
- [ ] Set up monitoring
---
## Related Documentation
- [Master Secrets Inventory](MASTER_SECRETS_INVENTORY.md)
- [Secrets Migration Summary](SECRETS_MIGRATION_SUMMARY.md)
- [Secrets Quick Reference](SECRETS_QUICK_REFERENCE.md)
- [Secret Usage Patterns](SECRET_USAGE_PATTERNS.md)
---
**Last Updated:** 2025-01-27
**Status:** ✅ Audit Complete
**Next Review:** After HSM migration