From c2154ae6c380c53d763dbb8da249a20d26925dee Mon Sep 17 00:00:00 2001 From: taylor_socfortress <111797488+taylorwalton@users.noreply.github.com> Date: Fri, 14 Jul 2023 14:18:50 -0600 Subject: [PATCH] Alerts by rule description (#26) * alert routes * alerts by rule description pie chart pdf --- backend/alerts_by_host.png | Bin 23273 -> 23342 bytes backend/alerts_by_host_report.pdf | Bin 0 -> 25491 bytes backend/alerts_by_rule.png | Bin 0 -> 57155 bytes backend/alerts_by_rule_report.pdf | Bin 0 -> 53800 bytes backend/app/routes/alerts.py | 56 +++- backend/app/routes/smtp.py | 9 +- backend/app/services/WazuhIndexer/alerts.py | 71 +++++ backend/app/services/smtp/create_report.py | 78 +++--- backend/app/services/smtp/send_report.py | 87 +++--- backend/app/static/swagger.json | 282 +++++++++++++++++++- backend/report.pdf | Bin 25446 -> 25444 bytes 11 files changed, 501 insertions(+), 82 deletions(-) create mode 100644 backend/alerts_by_host_report.pdf create mode 100644 backend/alerts_by_rule.png create mode 100644 backend/alerts_by_rule_report.pdf diff --git a/backend/alerts_by_host.png b/backend/alerts_by_host.png index 7a23f721ab72cc1a3fbe38f32d6fc59bb0110e20..da0cf397332cbcd7ec5fac0c3a1a864396e2301b 100644 GIT binary patch literal 23342 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 F{|^Q7IRF3v diff --git a/backend/alerts_by_host_report.pdf b/backend/alerts_by_host_report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e934c6a85ff052d9fa90762040b620a3cd4e3e8d GIT binary patch literal 25491 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ℑbauqa#H58m@o9I8dxnbR5;2_ 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 Qnj{<4U)iiQ9sKpb0Sv~G6aWAK literal 0 HcmV?d00001 diff --git a/backend/app/routes/alerts.py b/backend/app/routes/alerts.py index 368f10ec..32721a87 100644 --- a/backend/app/routes/alerts.py +++ b/backend/app/routes/alerts.py @@ -27,7 +27,7 @@ def get_alerts() -> jsonify: @bp.route("/alerts/top_10", methods=["GET"]) def get_top_10_alerts() -> jsonify: """ - Retrieves top 10 alerts from the AlertsService. + Retrieves top 10 alerts from the AlertsService per index. This endpoint retrieves top 10 alerts from the AlertsService. It does this by creating an instance of the AlertsService class and calling its `collect_alerts` method. The result is a list of top 10 alerts currently @@ -42,6 +42,24 @@ def get_top_10_alerts() -> jsonify: return jsonify(alerts) +@bp.route("/alerts/index/", methods=["GET"]) +def get_alerts_by_index(index_name: str) -> jsonify: + """ + Retrieves all alerts from the AlertsService by index name. + + This endpoint retrieves all available alerts from the AlertsService. It does this by creating an instance of + the AlertsService class and calling its `collect_alerts_by_index` method. The result is a list of all alerts currently + available. + + Returns: + jsonify: A JSON response containing a list of alerts. Each item in the list is a dictionary representing an alert, + containing all its associated data. + """ + service = AlertsService() + alerts = service.collect_alerts_by_index(index_name=index_name, size=1000) + return jsonify(alerts) + + @bp.route("/alerts/hosts", methods=["GET"]) def get_hosts() -> jsonify: """ @@ -58,3 +76,39 @@ def get_hosts() -> jsonify: service = AlertsService() hosts = service.collect_alerts_by_host() return jsonify(hosts) + + +@bp.route("/alerts/rules", methods=["GET"]) +def get_rules() -> jsonify: + """ + Retrieves all rules from the AlertsService that have an alert. + + This endpoint retrieves all available rules from the AlertsService. It does this by creating an instance of + the AlertsService class and calling its `collect_alerts_by_rule` method. The result is a list of all rules currently + available. + + Returns: + jsonify: A JSON response containing a list of rules. Each item in the list is a dictionary representing a rule, + containing all its associated data. + """ + service = AlertsService() + rules = service.collect_alerts_by_rule() + return jsonify(rules) + + +@bp.route("/alerts/rules/host", methods=["GET"]) +def get_rules_by_host() -> jsonify: + """ + Retrieves all rules from the AlertsService that have an alert and organizes by host. + + This endpoint retrieves all available rules from the AlertsService. It does this by creating an instance of + the AlertsService class and calling its `collect_alerts_by_rule_per_host` method. The result is a list of all rules currently + available. + + Returns: + jsonify: A JSON response containing a list of rules. Each item in the list is a dictionary representing a rule, + containing all its associated data. + """ + service = AlertsService() + rules = service.collect_alerts_by_rule_per_host() + return jsonify(rules) diff --git a/backend/app/routes/smtp.py b/backend/app/routes/smtp.py index bcbedbea..5729ac7e 100644 --- a/backend/app/routes/smtp.py +++ b/backend/app/routes/smtp.py @@ -3,7 +3,7 @@ from flask import request from loguru import logger -from app.services.smtp.send_report import send_email_with_pdf +from app.services.smtp.send_report import EmailReportSender from app.services.smtp.universal import UniversalEmailCredentials bp = Blueprint("smtp", __name__) @@ -58,6 +58,9 @@ def send_report() -> jsonify: if not request.is_json: return jsonify({"message": "Missing JSON in request", "success": False}), 400 - # template_name = request.json.get("template_name", None) - send_report = send_email_with_pdf() + to_email = request.json.get("to_email", None) + if not to_email: + return jsonify({"message": "Missing 'to_email' in request", "success": False}), 400 + + send_report = EmailReportSender(to_email).send_email_with_pdf() return jsonify(send_report), 201 diff --git a/backend/app/services/WazuhIndexer/alerts.py b/backend/app/services/WazuhIndexer/alerts.py index b5224b13..2b5402aa 100644 --- a/backend/app/services/WazuhIndexer/alerts.py +++ b/backend/app/services/WazuhIndexer/alerts.py @@ -89,6 +89,24 @@ def collect_alerts(self, size: int) -> Dict[str, object]: "alerts_summary": alerts_summary, } + def collect_alerts_by_index(self, index_name: str, size: int) -> Dict[str, Any]: + """ + Collects alerts from the given index. + """ + if not self.is_valid_index(index_name): + return self._error_response("Invalid index name") + + alerts = self._collect_alerts(index_name=index_name, size=size) + if not alerts["success"]: + return alerts + + return { + "message": f"Successfully collected top {size} alerts from {index_name}", + "success": True, + "alerts": alerts["alerts"], + "total_alerts": len(alerts["alerts"]), + } + def collect_alerts_by_host(self) -> Dict[str, int]: """ Collects the number of alerts per host. @@ -113,6 +131,59 @@ def collect_alerts_by_host(self) -> Dict[str, int]: "alerts_by_host": alerts_by_host_list, } + def collect_alerts_by_rule(self) -> Dict[str, int]: + """ + Collects the number of alerts per rule. + """ + indices_validation = self._collect_indices_and_validate() + if not indices_validation["success"]: + return indices_validation + + alerts_by_rule_dict = {} + for index_name in indices_validation["indices"]: + alerts = self._collect_alerts(index_name=index_name, size=1000) + if alerts["success"]: + for alert in alerts["alerts"]: + rule = alert["_source"]["rule_description"] + alerts_by_rule_dict[rule] = alerts_by_rule_dict.get(rule, 0) + 1 + + alerts_by_rule_list = [{"rule": rule, "number_of_alerts": count} for rule, count in alerts_by_rule_dict.items()] + + return { + "message": "Successfully collected alerts by rule", + "success": True, + "alerts_by_rule": alerts_by_rule_list, + } + + def collect_alerts_by_rule_per_host(self) -> Dict[str, int]: + """ + Collects the number of alerts per rule per host. + """ + indices_validation = self._collect_indices_and_validate() + if not indices_validation["success"]: + return indices_validation + + alerts_by_rule_per_host_dict = {} + for index_name in indices_validation["indices"]: + alerts = self._collect_alerts(index_name=index_name, size=1000) + if alerts["success"]: + for alert in alerts["alerts"]: + rule = alert["_source"]["rule_description"] + host = alert["_source"]["agent_name"] + alerts_by_rule_per_host_dict[rule] = alerts_by_rule_per_host_dict.get(rule, {}) + alerts_by_rule_per_host_dict[rule][host] = alerts_by_rule_per_host_dict[rule].get(host, 0) + 1 + + alerts_by_rule_per_host_list = [] + for rule, hosts in alerts_by_rule_per_host_dict.items(): + for host, count in hosts.items(): + alerts_by_rule_per_host_list.append({"rule": rule, "hostname": host, "number_of_alerts": count}) + + return { + "message": "Successfully collected alerts by rule per host", + "success": True, + "alerts_by_rule_per_host": alerts_by_rule_per_host_list, + } + @staticmethod def _error_response(message: str) -> Dict[str, bool]: """ diff --git a/backend/app/services/smtp/create_report.py b/backend/app/services/smtp/create_report.py index b676029d..a30b9cbb 100644 --- a/backend/app/services/smtp/create_report.py +++ b/backend/app/services/smtp/create_report.py @@ -5,64 +5,64 @@ matplotlib.use( "Agg", -) # set the backend to Agg which is a non-interactive backend suitable for -# scripts and web servers. This should resolve the main thread is not in main -# loop issue as it bypasses the need for tkinter. +) # set the backend to Agg which is a non-interactive backend suitable +# for scripts and web servers. This should resolve the main thread is not +# in main loop issue as it bypasses the need for tkinter. import matplotlib.pyplot as plt from app.services.WazuhIndexer.alerts import AlertsService -def create_bar_chart(alerts_by_host: dict) -> None: - """ - Creates a horizontal bar chart with hostnames on the y-axis and the number of alerts on the x-axis. +def fetch_alert_data(service, fetch_func): + alerts = fetch_func() + logger.info(alerts) + return alerts - Args: - alerts_by_host (dict): A dictionary containing hostnames and the corresponding number of alerts. - Returns: - None - """ - hostnames = [alert["hostname"] for alert in alerts_by_host["alerts_by_host"]] - num_alerts = [alert["number_of_alerts"] for alert in alerts_by_host["alerts_by_host"]] +def create_bar_chart(alerts: dict, title: str, output_filename: str) -> None: + entities = [alert["hostname"] for alert in alerts["alerts_by_host"]] + num_alerts = [alert["number_of_alerts"] for alert in alerts["alerts_by_host"]] - plt.figure(figsize=(10, 6)) # Set the figure size - plt.barh(hostnames, num_alerts, color="blue") # Create a horizontal bar chart - plt.xlabel("Number of Alerts") # Label x-axis - plt.ylabel("Hostnames") # Label y-axis - plt.title("Number of Alerts by Host") # Title of the chart + plt.figure(figsize=(10, 6)) + plt.barh(entities, num_alerts, color="blue") + plt.xlabel("Number of Alerts") + plt.ylabel("Hostnames") + plt.title(title) plt.tight_layout() - plt.savefig("alerts_by_host.png") # Save the figure as a .png file + plt.savefig(output_filename) -def create_pdf() -> None: - """ - Creates a PDF file with a title and an image of the bar chart. +def create_pie_chart(alerts: dict, title: str, output_filename: str) -> None: + entities = [alert["rule"] for alert in alerts["alerts_by_rule"]] + num_alerts = [alert["number_of_alerts"] for alert in alerts["alerts_by_rule"]] - Returns: - None - """ - c = canvas.Canvas("report.pdf", pagesize=letter) + plt.figure(figsize=(10, 6)) + plt.pie(num_alerts, labels=entities, autopct="%1.1f%%") + plt.title(title) + plt.tight_layout() + plt.savefig(output_filename) + + +def create_pdf(title: str, image_filename: str, pdf_filename: str) -> None: + c = canvas.Canvas(pdf_filename, pagesize=letter) width, height = letter c.setFont("Helvetica", 24) - c.drawString(30, height - 50, "Test") - c.drawImage("alerts_by_host.png", 50, height / 2, width=400, height=300) # Draw the image in the canvas + c.drawString(30, height - 50, title) + c.drawImage(image_filename, 50, height / 2, width=400, height=300) c.save() def create_alerts_by_host_pdf() -> None: - """ - Creates a PDF report of alerts per host. + service = AlertsService() + alerts_by_host = fetch_alert_data(service, service.collect_alerts_by_host) + + create_bar_chart(alerts_by_host, "Number of Alerts by Host", "alerts_by_host.png") + create_pdf("Test", "alerts_by_host.png", "alerts_by_host_report.pdf") - This function fetches the alerts per host from the AlertsService, generates a bar chart image using the fetched data, - and finally creates a PDF file with the generated image. - Returns: - None - """ +def create_alerts_by_rules_pdf() -> None: service = AlertsService() - alerts_by_host = service.collect_alerts_by_host() - logger.info(alerts_by_host) + alerts_by_rules = fetch_alert_data(service, service.collect_alerts_by_rule) - create_bar_chart(alerts_by_host) - create_pdf() + create_pie_chart(alerts_by_rules, "Number of Alerts by Rule", "alerts_by_rule.png") + create_pdf("Test", "alerts_by_rule.png", "alerts_by_rule_report.pdf") diff --git a/backend/app/services/smtp/send_report.py b/backend/app/services/smtp/send_report.py index c553331d..27cf52fb 100644 --- a/backend/app/services/smtp/send_report.py +++ b/backend/app/services/smtp/send_report.py @@ -3,54 +3,69 @@ from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText +from typing import List from app.services.smtp.create_report import create_alerts_by_host_pdf +from app.services.smtp.create_report import create_alerts_by_rules_pdf from app.services.smtp.universal import EmailTemplate from app.services.smtp.universal import UniversalEmailCredentials -def create_email_message(subject: str, from_email: str, to_email: str, body: str) -> MIMEMultipart: - msg = MIMEMultipart() - msg["From"] = from_email - msg["To"] = to_email - msg["Subject"] = subject - msg.attach(MIMEText(body, "html")) - return msg +class EmailReportSender: + def __init__(self, to_email: str): + self.to_email = to_email + def _get_credentials(self) -> dict: + try: + return UniversalEmailCredentials.read_all()["emails_configured"][0] + except IndexError: + return {"error": "No email credentials found"} -def attach_pdf(msg: MIMEMultipart, filename: str) -> MIMEMultipart: - with open(filename, "rb") as attachment_file: - part = MIMEBase("application", "octet-stream") - part.set_payload(attachment_file.read()) - encoders.encode_base64(part) - part.add_header("Content-Disposition", f"attachment; filename= {filename}") - msg.attach(part) - return msg + def create_email_message(self, subject: str, body: str) -> MIMEMultipart: + msg = MIMEMultipart() + credentials = self._get_credentials() + if "error" in credentials: + return credentials + msg["From"] = credentials["email"] + msg["To"] = self.to_email + msg["Subject"] = subject + msg.attach(MIMEText(body, "html")) + return msg + def attach_pdfs(self, msg: MIMEMultipart, filenames: List[str]) -> MIMEMultipart: + for filename in filenames: + with open(filename, "rb") as attachment_file: + part = MIMEBase("application", "octet-stream") + part.set_payload(attachment_file.read()) + encoders.encode_base64(part) + part.add_header("Content-Disposition", f"attachment; filename= {filename}") + msg.attach(part) + return msg -def send_email_with_pdf(): - # Generate the PDF report - create_alerts_by_host_pdf() + def send_email_with_pdf(self): + # Generate the PDF reports + create_alerts_by_host_pdf() + create_alerts_by_rules_pdf() - # Get email credentials - try: - credentials = UniversalEmailCredentials.read_all()["emails_configured"][0] - except IndexError: - raise Exception("No email credentials found in the database.") + # Render the email body + template = EmailTemplate("email_template") + body = template.render_html_body(template_name="email_template") - # Render the email body - template = EmailTemplate("email_template") - body = template.render_html_body(template_name="email_template") + # Create the email message and attach the PDFs + msg = self.create_email_message("Test Report", body) + if isinstance(msg, dict) and "error" in msg: + return {"message": msg["error"], "success": False} + msg = self.attach_pdfs(msg, ["alerts_by_host_report.pdf", "alerts_by_rule_report.pdf"]) - # Create the email message and attach the PDF - msg = create_email_message("Test Report", credentials["email"], "walton.taylor23@gmail.com", body) - msg = attach_pdf(msg, "report.pdf") + credentials = self._get_credentials() + if "error" in credentials: + return {"message": credentials["error"], "success": False} - # Send the email - with smtplib.SMTP(credentials["smtp_server"], credentials["smtp_port"]) as server: - server.starttls() - server.login(credentials["email"], credentials["password"]) - text = msg.as_string() - server.sendmail(credentials["email"], "walton.taylor23@gmail.com", text) + # Send the email + with smtplib.SMTP(credentials["smtp_server"], credentials["smtp_port"]) as server: + server.starttls() + server.login(credentials["email"], credentials["password"]) + text = msg.as_string() + server.sendmail(credentials["email"], self.to_email, text) - return {"message": "Report sent successfully", "success": True} + return {"message": "Report sent successfully", "success": True} diff --git a/backend/app/static/swagger.json b/backend/app/static/swagger.json index 692d769a..13b86789 100644 --- a/backend/app/static/swagger.json +++ b/backend/app/static/swagger.json @@ -925,6 +925,282 @@ "tags": ["Wazuh-Indexer"] } }, + "/alerts/top_10": { + "get": { + "summary": "Get top 10 alerts", + "description": "Endpoint to get top 10 alerts.", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "alerts": { + "type": "array", + "items": { + "type": "object", + "description": "Alert details" + } + } + } + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "operationId": "getTop10Alerts", + "tags": ["Wazuh-Indexer"] + } + }, + "/alerts/index/{index_name}": { + "get": { + "summary": "Get alerts from an index", + "description": "Endpoint to get alerts from an index.", + "parameters": [ + { + "name": "index_name", + "in": "path", + "description": "The name of the index to get alerts from.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "alerts": { + "type": "array", + "items": { + "type": "object", + "description": "Alert details" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + } + } + } + }, + "404": { + "description": "Index not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "operationId": "getAlertsFromIndex", + "tags": ["Wazuh-Indexer"] + } + }, + "/alerts/hosts": { + "get": { + "summary": "Get hosts with alerts", + "description": "Endpoint to get hosts with alerts.", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "hosts": { + "type": "array", + "items": { + "type": "object", + "description": "Host details" + } + } + } + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "operationId": "getHostsWithAlerts", + "tags": ["Wazuh-Indexer"] + } + }, + "/alerts/rules": { + "get": { + "summary": "Get rules with alerts", + "description": "Endpoint to get rules with alerts.", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "type": "object", + "description": "Rule details" + } + } + } + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "operationId": "getRulesWithAlerts", + "tags": ["Wazuh-Indexer"] + } + }, + "/alerts/rules/host": { + "get": { + "summary": "Get rules with alerts per host", + "description": "Endpoint to get rules with alerts per host", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "type": "object", + "description": "Rule details" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + } + } + } + }, + "404": { + "description": "Host not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "operationId": "getRulesWithAlertsFromHost", + "tags": ["Wazuh-Indexer"] + } + }, "/wazuh_indexer/allocation": { "get": { "summary": "Get node allocation of the Wazuh-Indexer nodes", @@ -2356,12 +2632,12 @@ "schema": { "type": "object", "properties": { - "template_name": { + "to_email": { "type": "string", - "description": "Name of report template" + "description": "Name of recipient" } }, - "required": ["template_name"] + "required": ["to_email"] } } } diff --git a/backend/report.pdf b/backend/report.pdf index f3d699306d8d0131fac010c2d9a003629b9131ee..e3c482134e0eebc57a1c74cfe94901037cdba7d6 100644 GIT binary patch delta 4631 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 mbsxt(%J)x1fVFU!{a;-Er^heOCZ?Cr>~Zg* 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 UZ~yB4!=JF$pNmCq$^ZF30aM0QAOHXW