Skip to content

Commit a1561d7

Browse files
Integrate Automated Incident Response module into the dashboard
* **src/dashboard.py** - Add `AutomatedIncidentResponse` widget to the `display_dashboard` method * **src/dashboard_update_manager.py** - Add method to handle updates for `AutomatedIncidentResponse` - Trigger dashboard update for `AutomatedIncidentResponse` * **app.py** - Add `incident_response_tab` to the `C2Dashboard` class - Add menu option for `Incident Response` - Create `start_incident_response` and `stop_incident_response` methods - Load and save user preferences for `AutomatedIncidentResponse`
1 parent a1e5024 commit a1561d7

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

app.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def create_widgets(self):
5858
self.adware_manager_tab = ttk.Frame(self.tab_control)
5959
self.ai_integration_tab = ttk.Frame(self.tab_control)
6060
self.deployment_manager_tab = ttk.Frame(self.tab_control)
61+
self.incident_response_tab = ttk.Frame(self.tab_control)
6162

6263
self.tab_control.add(self.logs_tab, text="Logs")
6364
self.tab_control.add(self.exploits_tab, text="Exploits")
@@ -68,6 +69,7 @@ def create_widgets(self):
6869
self.tab_control.add(self.adware_manager_tab, text="Adware Manager")
6970
self.tab_control.add(self.ai_integration_tab, text="AI Integration")
7071
self.tab_control.add(self.deployment_manager_tab, text="Deployment Manager")
72+
self.tab_control.add(self.incident_response_tab, text="Incident Response")
7173

7274
self.tab_control.pack(expand=1, fill="both")
7375

@@ -80,6 +82,7 @@ def create_widgets(self):
8082
self.create_adware_manager_tab()
8183
self.create_ai_integration_tab()
8284
self.create_deployment_manager_tab()
85+
self.create_incident_response_tab()
8386

8487
self.create_menu()
8588
self.add_user_onboarding()
@@ -112,6 +115,7 @@ def create_menu(self):
112115
self.module_menu.add_command(label="Adware Manager", command=self.show_adware_manager)
113116
self.module_menu.add_command(label="AI Integration", command=self.show_ai_integration)
114117
self.module_menu.add_command(label="Deployment Manager", command=self.show_deployment_manager)
118+
self.module_menu.add_command(label="Incident Response", command=self.show_incident_response)
115119

116120
def toggle_dark_mode(self):
117121
self.dark_mode = not self.dark_mode
@@ -205,6 +209,16 @@ def create_deployment_manager_tab(self):
205209
self.update_deployment_method_button = ttk.Button(self.deployment_manager_tab, text="Update Deployment Method", command=self.update_deployment_method)
206210
self.update_deployment_method_button.pack()
207211

212+
def create_incident_response_tab(self):
213+
self.incident_response_text = tk.Text(self.incident_response_tab, wrap="word")
214+
self.incident_response_text.pack(expand=1, fill="both")
215+
216+
self.start_incident_response_button = ttk.Button(self.incident_response_tab, text="Start Incident Response", command=self.start_incident_response)
217+
self.start_incident_response_button.pack()
218+
219+
self.stop_incident_response_button = ttk.Button(self.incident_response_tab, text="Stop Incident Response", command=self.stop_incident_response)
220+
self.stop_incident_response_button.pack()
221+
208222
def refresh_logs(self):
209223
self.logs_text.delete(1.0, tk.END)
210224
with open("logs/deployment.log", "r") as f:
@@ -299,6 +313,15 @@ def update_deployment_method(self):
299313
# Implement deployment method update logic here
300314
messagebox.showinfo("Deployment Method Update", "Deployment method updated successfully!")
301315

316+
def start_incident_response(self):
317+
incident_details = self.incident_response_text.get(1.0, tk.END).strip()
318+
if incident_details:
319+
self.automated_incident_response.handle_incident("incident_type", {"details": incident_details})
320+
messagebox.showinfo("Incident Response", "Incident response started successfully!")
321+
322+
def stop_incident_response(self):
323+
messagebox.showinfo("Incident Response", "Incident response stopped successfully!")
324+
302325
def setup_logging(self):
303326
logging.basicConfig(filename='logs/gui.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
304327

@@ -309,7 +332,11 @@ def load_user_preferences(self):
309332
except FileNotFoundError:
310333
self.user_preferences = {}
311334

335+
# Load preferences for AutomatedIncidentResponse module
336+
self.automated_incident_response_preferences = self.user_preferences.get("automated_incident_response", {})
337+
312338
def save_user_preferences(self):
339+
self.user_preferences["automated_incident_response"] = self.automated_incident_response_preferences
313340
with open('config.json', 'w') as f:
314341
json.dump(self.user_preferences, f)
315342

@@ -561,6 +588,9 @@ def show_ai_integration(self):
561588
def show_deployment_manager(self):
562589
self.tab_control.select(self.deployment_manager_tab)
563590

591+
def show_incident_response(self):
592+
self.tab_control.select(self.incident_response_tab)
593+
564594
if __name__ == "__main__":
565595
root = tk.Tk()
566596
app = C2Dashboard(root)

src/dashboard.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ def _display_main_dashboard(self):
132132
self._display_module_widget("Adware Manager", self.adware_manager)
133133
self._display_module_widget("AI Integration", self.ai_integration)
134134
self._display_module_widget("Deployment Manager", self.deployment_manager)
135+
self._display_module_widget("Automated Incident Response", self.automated_incident_response)
135136

136137
def _display_module_widget(self, name: str, module: AttackModule):
137138
status = "Running" if module.is_running else "Stopped"

src/dashboard_update_manager.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,8 @@ def handle_deployment_manager_updates(self, update_data: Dict[str, Any]):
5757
self.logger.info(f"Handling Deployment Manager updates: {update_data}")
5858
# Placeholder for handling Deployment Manager updates
5959
self.trigger_dashboard_update()
60+
61+
def handle_automated_incident_response_updates(self, update_data: Dict[str, Any]):
62+
self.logger.info(f"Handling Automated Incident Response updates: {update_data}")
63+
# Placeholder for handling Automated Incident Response updates
64+
self.trigger_dashboard_update()

0 commit comments

Comments
 (0)