From 1acd39af7a54e72253f837800cf535163c7fdfda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Praszmo?= Date: Tue, 30 Apr 2024 12:21:27 +0200 Subject: [PATCH] Refactor MISP config initialization to ease inheritance (#26) * Refactor misp config processing to ease inheritance --- karton/misp_pusher/misp_pusher.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/karton/misp_pusher/misp_pusher.py b/karton/misp_pusher/misp_pusher.py index 8aff5e5..aae948b 100644 --- a/karton/misp_pusher/misp_pusher.py +++ b/karton/misp_pusher/misp_pusher.py @@ -41,7 +41,12 @@ def __init__(self, *args, **kwargs) -> None: if not self.config.get("misp", "key"): raise RuntimeError("Misp config section is missing the key parameter") + self.misp_url = http_url(self.config.get("misp", "url")) + self.misp_key = self.config.get("misp", "key") + self.misp_ssl = not self.config.getboolean("misp", "insecure", False) + self.misp_timeout = self.config.getint("misp", "timeout", 10) self.tag_events = self.config.getboolean("misp", "tag_events", True) + self.misp_published = self.config.getboolean("misp", "published", False) self.cluster_mapping = {} if self.config.get("misp", "galaxy_clusters_mapping"): @@ -65,10 +70,10 @@ def process(self, task: Task) -> None: return misp = PyMISP( - url=http_url(self.config.get("misp", "url")), - key=self.config.get("misp", "key"), - ssl=not self.config.getboolean("misp", "insecure", False), - timeout=self.config.getint("misp", "timeout", 10), + url=self.misp_url, + key=self.misp_key, + ssl=self.misp_ssl, + timeout=self.misp_timeout, ) # Upload structured data to MISP @@ -115,7 +120,7 @@ def process(self, task: Task) -> None: for o in iocs.to_misp(): event.add_object(o) - event.published = self.config.getboolean("misp", "published", False) + event.published = self.misp_published misp.add_event(event)