sentinel/TODO.md
2025-07-12 17:07:47 -05:00

255 lines
No EOL
7.5 KiB
Markdown

# Sentinel - Roadmap
This document outlines the planned features and improvements from **Sentinel**.
Items are organized by priority and development phases.
## Phase 1: Core Functionality (High Priority)
### Real-time Alerting System
- [ ] **Alert Rule Engine**
- [ ] Create `AlertRule` model in database
- [ ] Implement rule evaluation engine
- [ ] Support time-based thresholds (e.g., "5 events in 10 minutes")
- [ ] Support pattern matching
- [ ] Group events by source IP, event type, etc.
- [ ] **Notification Channels**
- [ ] Email notifications (SMTP integration)
- [ ] Slack webhook integration
- [ ] Microsoft Teams webhook integration
- [ ] SMS notifications (Twilio integration)
- [ ] Generic webhook support
- [ ] **Alert Management**
- [ ] Alert suppression (prevent spam)
- [ ] Alert escalation (different severity levels)
- [ ] Alert acknowledgment and resolution
- [ ] Alert history and audit trail
### Enhanced Syslog Parsing
- [ ] **Multi-format Support**
- [ ] RFC 3164 (traditional syslog) parser
- [ ] RFC 5424 (structured syslog) parser
- [ ] CEF (Common Event Format) parser
- [ ] JSON log format support
- [ ] **Vendor-specific Parsers**
- [ ] FortiGate log parser
- [ ] pfSense log parser
- [ ] Cisco ASA log parser
- [ ] Windows Event Log parser (if received via syslog)
- [ ] Juniper SRX log parser
- [ ] **Field Extraction**
- [ ] Automatic extraction of common fields (username, src_ip, dst_ip, port, action)
- [ ] Grok pattern support (Logstash-style)
- [ ] Custom field extraction rules
- [ ] Store parsed fields in `parsed_data` JSON column
### SNMP Polling & Monitoring
- [ ] **Device Management**
- [ ] `Device` model for storing monitored devices
- [ ] Web UI for adding/editing/deleting devices
- [ ] Device discovery (SNMP walk to find available OIDs)
- [ ] Device grouping and tagging
- [ ] **Polling Engine**
- [ ] Background polling scheduler (APScheduler)
- [ ] Configurable polling intervals per device/OID
- [ ] Polling profiles/templates for device types
- [ ] Store polled metrics in separate `Metric` table
- [ ] **Performance Monitoring**
- [ ] CPU utilization monitoring
- [ ] Memory usage monitoring
- [ ] Interface statistics (bandwidth, errors, discards)
- [ ] Disk space monitoring
- [ ] Custom OID monitoring
## Phase 2: User Experience & Visualization (Medium Priority)
### Advanced Web Dashboard
- [ ] **Real-time Features**
- [ ] WebSocket integration (Flask-SocketIO)
- [ ] Live event feed without page refresh
- [ ] Real-time event counters and statistics
- [ ] Live alert notifications in UI
- [ ] **Interactive Charts & Graphs**
- [ ] Time-series charts for event volume
- [ ] Top source IPs chart
- [ ] Event type distribution pie chart
- [ ] Severity trend analysis
- [ ] Geographic heat map (with GeoIP data)
- [ ] **Search & Filtering**
- [ ] Advanced search with multiple criteria
- [ ] Date/time range filtering
- [ ] Saved search queries
- [ ] Export search results (CSV, JSON)
- [ ] Elasticsearch-style query syntax
- [ ] **Custom Dashboards**
- [ ] Drag-and-drop dashboard builder
- [ ] Customizable widgets
- [ ] Multiple dashboard support
- [ ] Dashboard sharing and templates
### Event Correlation & Analytics
- [ ] **Time-based Correlation**
- [ ] Detect event sequences and patterns
- [ ] Sliding window analysis
- [ ] Event clustering algorithms
- [ ] Correlation rule builder
- [ ] **Cross-protocol Correlation**
- [ ] Link SNMP and Syslog events
- [ ] Network topology awareness
- [ ] Device relationship mapping
- [ ] **Baseline & Anomaly Detection**
- [ ] Learn normal traffic patterns
- [ ] Statistical anomaly detection
- [ ] Threshold-based alerting
- [ ] Trend analysis
## Phase 3: Security & Intelligence (Medium Priority)
### Threat Intelligence Integration
- [ ] **IP Reputation**
- [ ] VirusTotal API integration
- [ ] AbuseIPDB integration
- [ ] Custom threat feed support
- [ ] IP reputation caching
- [ ] **Data Enrichment**
- [ ] GeoIP location data (MaxMind GeoLite2)
- [ ] Reverse DNS lookups
- [ ] WHOIS data integration
- [ ] ASN (Autonomous System) information
- [ ] **IOC Matching**
- [ ] Indicators of Compromise database
- [ ] STIX/TAXII feed integration
- [ ] Custom IOC lists
- [ ] Automatic IOC matching against events
### Security & Compliance
- [ ] **User Authentication**
- [ ] Local user accounts with password hashing
- [ ] LDAP/Active Directory integration
- [ ] SAML SSO support
- [ ] Multi-factor authentication (TOTP)
- [ ] **Authorization & Access Control**
- [ ] Role-based access control (RBAC)
- [ ] Permission levels (admin, analyst, viewer)
- [ ] Resource-based permissions
- [ ] API key management
- [ ] **Audit & Compliance**
- [ ] User action audit logging
- [ ] Data retention policies
- [ ] Compliance reporting (SOX, PCI-DSS, HIPAA)
- [ ] Data export for external audits
## Phase 4: Performance & Scalability (Lower Priority)
### Database Optimization
- [ ] **Database Migration**
- [ ] PostgreSQL support
- [ ] TimescaleDB for time-series data
- [ ] Database connection pooling
- [ ] Query optimization
- [ ] **Data Management**
- [ ] Automatic data archival
- [ ] Data compression
- [ ] Partitioning strategies
- [ ] Event deduplication
### High Availability & Scaling
- [ ] **Clustering**
- [ ] Multiple collector nodes
- [ ] Load balancing
- [ ] Failover mechanisms
- [ ] Distributed processing
- [ ] **Performance Monitoring**
- [ ] System health monitoring
- [ ] Performance metrics collection
- [ ] Capacity planning tools
- [ ] Bottleneck identification
## Phase 5: Advanced Features (Future)
### Machine Learning & AI
- [ ] **Anomaly Detection**
- [ ] Unsupervised learning models
- [ ] Behavioral analysis (UEBA)
- [ ] Predictive alerting
- [ ] False positive reduction
### Integration & Automation
- [ ] **API Development**
- [ ] RESTful API for all operations
- [ ] GraphQL API support
- [ ] API documentation (Swagger/OpenAPI)
- [ ] Rate limiting and authentication
- [ ] **SOAR Integration**
- [ ] Phantom/Splunk SOAR connector
- [ ] IBM Resilient integration
- [ ] Custom playbook support
- [ ] Automated response actions
### Advanced Visualization
- [ ] **Network Topology**
- [ ] Visual network maps
- [ ] Device relationship visualization
- [ ] Attack flow diagrams
- [ ] Interactive network graphs
## Bug Fixes & Technical Debt
### Current Issues
- [ ] **SNMP Source IP Extraction**
- [ ] Fix source IP extraction in asyncio SNMP listener
- [ ] Consider switching to synchronous pysnmp for reliability
- [ ] Add fallback methods for IP extraction
- [ ] **Error Handling**
- [ ] Improve error handling in all listeners
- [ ] Add proper logging throughout application
- [ ] Graceful degradation for failed components
### Code Quality
- [ ] **Testing**
- [ ] Unit tests for all modules
- [ ] Integration tests for listeners
- [ ] End-to-end testing
- [ ] Performance testing
- [ ] **Documentation**
- [ ] Code documentation (docstrings)
- [ ] API documentation
- [ ] Deployment guides
- [ ] Troubleshooting guides
- [ ] **Containerization**
- [ ] Dockerfile creation
- [ ] Docker Compose setup
- [ ] Kubernetes manifests
- [ ] Container security scanning
## Completed Features
- [x] Basic SNMP trap listener
- [x] Basic syslog listener
- [x] SQLite database storage
- [x] Flask web interface
- [x] Event normalization (OID mapping)
- [x] Basic severity assignment
- [x] Event enrichment processor
- [x] Multi-threaded listeners
- [x] Basic HTML dashboard