Files
roa2web-service-auto/security/SECURITY_PROCEDURES.md
Marius Mutu 9008876b16 chore: Remove obsolete microservices directories and update all references
- Delete data-entry-app/ (1.6GB), reports-app/ (447MB), .auto-build-data/
- Saved ~1.4GB disk space (64% reduction: 2.2GB → 845MB)

Updated references across 38 files:
- .claude/rules/ paths: backend/modules/, src/modules/
- .claude/commands/validate.md: all validation paths
- docs/ (13 files): data-entry, telegram, README, CLAUDE.md
- scripts/ (3 files): backup-secrets, restore-secrets, test-docker
- security/ (2 files): git_cleanup, SECURITY_PROCEDURES
- deployment/ & shared/: updated all stale comments

All paths now reflect ultrathin monolith architecture:
- Backend: backend/modules/{reports,data_entry,telegram}/
- Frontend: src/modules/{reports,data-entry}/
- Shared: shared/{auth,database,routes}/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 12:08:20 +02:00

271 lines
7.2 KiB
Markdown

# 🔒 ROA2WEB Security Procedures
## 📋 Security Incident Response Plan
### 🚨 CRITICAL: Credentials Compromise Response
**IMMEDIATE ACTIONS** (within 1 hour):
1. **Assess Scope of Compromise**:
```bash
# Run emergency security scan
python security/secrets_scanner.py --scan-git-history --save-report emergency_scan.json
```
2. **Isolate Systems**:
- Change Oracle database password immediately
- Rotate SSH keys for server access
- Update application authentication credentials
- Notify infrastructure team
3. **Document Incident**:
- Record time of discovery
- List all potentially compromised credentials
- Identify affected systems and users
- Track remediation actions
### 🔧 REMEDIATION STEPS
#### Step 1: Credential Regeneration
```bash
# Oracle Database
# 1. Connect to Oracle as admin
# 2. Change CONTAFIN_ORACLE password
ALTER USER CONTAFIN_ORACLE IDENTIFIED BY "NEW_SECURE_PASSWORD";
# SSH Keys
# 1. Generate new SSH key pair
ssh-keygen -t rsa -b 4096 -C "roa2web-$(date +%Y%m%d)" -f roa_oracle_server_new
# 2. Update server authorized_keys
# 3. Test connectivity with new key
# 4. Remove old key from server
```
#### Step 2: Git History Cleanup
```bash
# COORDINATE WITH TEAM FIRST!
# 1. Backup repository
python security/git_cleanup.py --backup
# 2. Clean git history
python security/git_cleanup.py --cleanup
# 3. Force push to all remotes
git push --force-with-lease --all origin
git push --force-with-lease --tags origin
# 4. Notify team to re-clone
```
#### Step 3: System Updates
```bash
# Update all environment files
# 1. roa2web/.env
# 2. roa2web/backend/.env
# 3. Production environment variables
# Restart all services
# 1. Backend FastAPI application
# 2. Frontend Vue.js application
# 3. Database connections
# 4. SSH tunnel services
```
## 🛡️ Preventive Security Measures
### Daily Security Checklist
- [ ] Run security scanner on active branches
- [ ] Review new commits for potential secrets
- [ ] Monitor system access logs
- [ ] Check environment file changes
- [ ] Verify git hooks are active
### Weekly Security Tasks
- [ ] Review security scan reports
- [ ] Update security patterns if needed
- [ ] Audit user access permissions
- [ ] Check for new security vulnerabilities
- [ ] Review backup and recovery procedures
### Monthly Security Review
- [ ] Comprehensive repository security audit
- [ ] Team security training refresh
- [ ] Update security documentation
- [ ] Review and test incident response plan
- [ ] Credential rotation assessment
## 🔍 Security Monitoring
### Automated Monitoring
```bash
# Set up cron job for daily scans
# Add to crontab: crontab -e
0 9 * * * cd /path/to/roa-flask && python security/secrets_scanner.py --save-report daily_scan_$(date +\%Y\%m\%d).json
# Weekly comprehensive scan
0 9 * * 1 cd /path/to/roa-flask && python security/secrets_scanner.py --scan-git-history --save-report weekly_scan_$(date +\%Y\%m\%d).json
```
### Alert Triggers
- New secrets detected in commits
- Suspicious file patterns added
- Failed security scans
- Unauthorized access attempts
- Environment file modifications
## 📊 Security Metrics and KPIs
### Track These Metrics:
- Number of security violations per month
- Time to detect security issues
- Time to remediate security issues
- Git hook effectiveness rate
- Team security training completion
### Monthly Security Report Template:
```
ROA2WEB Security Report - [Month/Year]
📈 Metrics:
- Security scans performed: X
- Violations detected: X
- Violations remediated: X
- Average detection time: X hours
- Average remediation time: X hours
🔍 Key Findings:
- [List significant security events]
- [Pattern analysis]
- [Trend identification]
🎯 Action Items:
- [Specific security improvements needed]
- [Training requirements]
- [Process improvements]
📋 Recommendations:
- [Strategic security initiatives]
- [Tool improvements]
- [Policy updates]
```
## 🎓 Team Security Training
### Required Training Topics:
1. **Secrets Management**:
- What constitutes a secret
- Proper handling of credentials
- Environment variable usage
- Secrets management systems
2. **Git Security**:
- Pre-commit security checks
- Proper commit message practices
- History rewriting consequences
- Credential exposure prevention
3. **Incident Response**:
- Recognizing security incidents
- Immediate response procedures
- Escalation protocols
- Post-incident analysis
### Training Schedule:
- **New team members**: Security orientation (first week)
- **All team members**: Quarterly security refresh
- **Security incidents**: Immediate post-incident training
- **Tool updates**: Training when new security tools introduced
## 🔧 Tool Maintenance
### Monthly Tool Updates:
```bash
# Update security patterns
# 1. Review new threat intelligence
# 2. Update pattern definitions in secrets_scanner.py
# 3. Test pattern effectiveness
# 4. Deploy updated patterns
# Verify tool functionality
python security/secrets_scanner.py --verbose
./security/install_hooks.sh
```
### Tool Health Checks:
- Verify git hooks are functioning
- Test scanner pattern effectiveness
- Check cleanup tool safety measures
- Validate backup procedures
## 📞 Emergency Contacts
### Security Incident Response Team:
- **Primary**: [Security Lead Name] - [Contact Info]
- **Secondary**: [DevOps Lead Name] - [Contact Info]
- **Escalation**: [CTO/Technical Director] - [Contact Info]
### External Resources:
- **Oracle Support**: [Oracle Support Details]
- **Infrastructure Provider**: [Cloud Provider Support]
- **Security Consultant**: [External Security Expert]
## 📋 Compliance and Auditing
### Regular Audit Requirements:
- **Monthly**: Internal security review
- **Quarterly**: Comprehensive security audit
- **Annually**: External security assessment
- **Ad-hoc**: Post-incident security review
### Audit Checklist:
- [ ] All secrets properly managed
- [ ] Git history clean of credentials
- [ ] Security tools functioning correctly
- [ ] Team training up to date
- [ ] Incident response plan current
- [ ] Backup and recovery tested
- [ ] Access controls properly configured
- [ ] Documentation updated
### Compliance Standards:
- Follow OWASP security guidelines
- Implement ISO 27001 practices where applicable
- Ensure GDPR compliance for user data
- Meet industry-specific security requirements
## 🚀 Future Security Improvements
### Short-term (1-3 months):
- [ ] Implement automated secrets management system
- [ ] Add security scanning to CI/CD pipeline
- [ ] Enhance monitoring and alerting
- [ ] Improve team security training program
### Medium-term (3-6 months):
- [ ] Deploy centralized secrets management (Vault/AWS Secrets Manager)
- [ ] Implement security scanning in IDE
- [ ] Add security metrics dashboard
- [ ] Establish security champion program
### Long-term (6-12 months):
- [ ] Full security automation pipeline
- [ ] Advanced threat detection
- [ ] Security compliance automation
- [ ] Comprehensive security culture program
---
## ⚠️ CRITICAL REMINDER
**This document must be reviewed and updated after any security incident. All team members must be familiar with these procedures and know how to execute them under pressure.**
---
*Document Version: 1.0*
*Last Updated: 2025-08-03*
*Next Review: 2025-09-03*