Skip to content

Commit 300e87f

Browse files
removing some TODOs and adding better logging
1 parent 5c0a493 commit 300e87f

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

contentctl/objects/correlation_search.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,6 @@ def risk_event_exists(self) -> bool:
513513
events = self.get_risk_events(force_update=True)
514514
return len(events) > 0
515515

516-
# TODO (cmcginley): to minimize number of queries, perhaps filter these events from the
517-
# returned risk dm events? --> I think no; we want to validate product behavior; we should
518-
# instead compare the risk dm and the risk index (maybe...)
519516
def get_risk_events(self, force_update: bool = False) -> list[RiskEvent]:
520517
"""Get risk events from the Splunk instance
521518
@@ -548,8 +545,6 @@ def get_risk_events(self, force_update: bool = False) -> list[RiskEvent]:
548545
events: list[RiskEvent] = []
549546
try:
550547
for result in result_iterator:
551-
# TODO (cmcginley): Do we need an else condition here for when the index is
552-
# anything other than expected?
553548
# sanity check that this result from the iterator is a risk event and not some
554549
# other metadata
555550
if result["index"] == Indexes.RISK_INDEX:
@@ -563,6 +558,13 @@ def get_risk_events(self, force_update: bool = False) -> list[RiskEvent]:
563558
raise
564559
events.append(event)
565560
self.logger.debug(f"Found risk event for '{self.name}': {event}")
561+
else:
562+
msg = (
563+
f"Found event for unexpected index ({result['index']}) in our query "
564+
f"results (expected {Indexes.RISK_INDEX})"
565+
)
566+
self.logger.error(msg)
567+
raise ValueError(msg)
566568
except ServerError as e:
567569
self.logger.error(f"Error returned from Splunk instance: {e}")
568570
raise e
@@ -632,6 +634,13 @@ def get_notable_events(self, force_update: bool = False) -> list[NotableEvent]:
632634
raise
633635
events.append(event)
634636
self.logger.debug(f"Found notable event for '{self.name}': {event}")
637+
else:
638+
msg = (
639+
f"Found event for unexpected index ({result['index']}) in our query "
640+
f"results (expected {Indexes.NOTABLE_INDEX})"
641+
)
642+
self.logger.error(msg)
643+
raise ValueError(msg)
635644
except ServerError as e:
636645
self.logger.error(f"Error returned from Splunk instance: {e}")
637646
raise e
@@ -679,8 +688,6 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
679688
)
680689
return self._risk_dm_events
681690

682-
# TODO (cmcginley): optimize this query? don't REALLY need the full events here for the
683-
# depth of validation we're doing -> really just need the index
684691
# TODO (#248): Refactor risk/notable querying to pin to a single savedsearch ID
685692
# Search for all risk data model events from a single scheduled search (indicated by
686693
# orig_sid)
@@ -691,8 +698,6 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
691698
)
692699
result_iterator = self._search(query)
693700

694-
# TODO (cmcginley): make parent structure for risk and notabel events for shared fields (** START HERE **)
695-
# TODO (cmcginley): make new structure for risk DM events? parent structure for risk/notable events?
696701
# Iterate over the events, storing them in a list and checking for any errors
697702
events: list[BaseSecurityEvent] = []
698703
risk_count = 0
@@ -729,6 +734,13 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
729734
self.logger.debug(
730735
f"Found notable event in risk data model for '{self.name}': {event}"
731736
)
737+
else:
738+
msg = (
739+
f"Found event for unexpected index ({result['index']}) in our query "
740+
f"results (expected {Indexes.NOTABLE_INDEX} or {Indexes.RISK_INDEX})"
741+
)
742+
self.logger.error(msg)
743+
raise ValueError(msg)
732744
except ServerError as e:
733745
self.logger.error(f"Error returned from Splunk instance: {e}")
734746
raise e
@@ -856,10 +868,6 @@ def validate_notable_events(self) -> None:
856868
"(e.g. TTP), or the number of risk modifiers."
857869
)
858870

859-
# TODO (cmcginley): implement... Should this maybe be baked into the notable validation
860-
# routine? since we are returning an integration test result; I think yes; get the risk dm
861-
# events directly in the notable validation routine and ensure no notables are found in the
862-
# data model
863871
def notable_in_risk_dm(self) -> bool:
864872
"""Check if notables are in the risk data model
865873

contentctl/objects/notable_event.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
class NotableEvent(BaseSecurityEvent):
66
# TODO (PEX-434): implement deeper notable validation
7-
# TODO (cmcginley): do I need to define the abstractmethods?
8-
pass
97

108
def validate_against_detection(self, detection: Detection) -> None:
119
"""

0 commit comments

Comments
 (0)