@@ -513,9 +513,6 @@ def risk_event_exists(self) -> bool:
513
513
events = self .get_risk_events (force_update = True )
514
514
return len (events ) > 0
515
515
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...)
519
516
def get_risk_events (self , force_update : bool = False ) -> list [RiskEvent ]:
520
517
"""Get risk events from the Splunk instance
521
518
@@ -548,8 +545,6 @@ def get_risk_events(self, force_update: bool = False) -> list[RiskEvent]:
548
545
events : list [RiskEvent ] = []
549
546
try :
550
547
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?
553
548
# sanity check that this result from the iterator is a risk event and not some
554
549
# other metadata
555
550
if result ["index" ] == Indexes .RISK_INDEX :
@@ -563,6 +558,13 @@ def get_risk_events(self, force_update: bool = False) -> list[RiskEvent]:
563
558
raise
564
559
events .append (event )
565
560
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 )
566
568
except ServerError as e :
567
569
self .logger .error (f"Error returned from Splunk instance: { e } " )
568
570
raise e
@@ -632,6 +634,13 @@ def get_notable_events(self, force_update: bool = False) -> list[NotableEvent]:
632
634
raise
633
635
events .append (event )
634
636
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 )
635
644
except ServerError as e :
636
645
self .logger .error (f"Error returned from Splunk instance: { e } " )
637
646
raise e
@@ -679,8 +688,6 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
679
688
)
680
689
return self ._risk_dm_events
681
690
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
684
691
# TODO (#248): Refactor risk/notable querying to pin to a single savedsearch ID
685
692
# Search for all risk data model events from a single scheduled search (indicated by
686
693
# orig_sid)
@@ -691,8 +698,6 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
691
698
)
692
699
result_iterator = self ._search (query )
693
700
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?
696
701
# Iterate over the events, storing them in a list and checking for any errors
697
702
events : list [BaseSecurityEvent ] = []
698
703
risk_count = 0
@@ -729,6 +734,13 @@ def get_risk_dm_events(self, force_update: bool = False) -> list[BaseSecurityEve
729
734
self .logger .debug (
730
735
f"Found notable event in risk data model for '{ self .name } ': { event } "
731
736
)
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 )
732
744
except ServerError as e :
733
745
self .logger .error (f"Error returned from Splunk instance: { e } " )
734
746
raise e
@@ -856,10 +868,6 @@ def validate_notable_events(self) -> None:
856
868
"(e.g. TTP), or the number of risk modifiers."
857
869
)
858
870
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
863
871
def notable_in_risk_dm (self ) -> bool :
864
872
"""Check if notables are in the risk data model
865
873
0 commit comments