docs: added todo
This commit is contained in:
		
							parent
							
								
									87964fc26d
								
							
						
					
					
						commit
						ba2959b69d
					
				
					 1 changed files with 255 additions and 0 deletions
				
			
		
							
								
								
									
										255
									
								
								TODO.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										255
									
								
								TODO.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,255 @@ | ||||||
|  | # 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 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway