Mozdef / tests /alerts /test_promisc_kernel.py
ineso22's picture
Upload folder using huggingface_hub
7c89ed7 verified
from .positive_alert_test_case import PositiveAlertTestCase
from .negative_alert_test_case import NegativeAlertTestCase
from .alert_test_suite import AlertTestSuite
class TestPromiscKernel(AlertTestSuite):
alert_filename = "promisc_kernel"
# This event is the default positive event that will cause the
# alert to trigger
default_event = {
"_source": {
"category": "syslog",
"summary": "device eth0 entered promiscuous mode",
"hostname": "logging.server.com",
"details": {
"program": "kernel",
}
}
}
# This alert is the expected result from running this task
default_alert = {
"category": "promisc",
"severity": "WARNING",
"summary": "Promiscuous mode enabled on logging.server.com [10]",
"tags": ['promisc', 'kernel'],
}
test_cases = []
test_cases.append(
PositiveAlertTestCase(
description="Positive test case with good event",
events=AlertTestSuite.create_events(default_event, 10),
expected_alert=default_alert
)
)
events = AlertTestSuite.create_events(default_event, 10)
for event in events:
event['_source']['utctimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda(date_timedelta={'minutes': 1})
event['_source']['receivedtimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda(date_timedelta={'minutes': 1})
test_cases.append(
PositiveAlertTestCase(
description="Positive test case with an event with somewhat old timestamp",
events=events,
expected_alert=default_alert
)
)
events = AlertTestSuite.create_events(default_event, 10)
for event in events:
event['_source']['category'] = "badcategory"
test_cases.append(
NegativeAlertTestCase(
description="Negative test case with bad eventName",
events=events,
)
)
events = AlertTestSuite.create_events(default_event, 10)
for event in events:
event['_source']['summary'] = "Promisc: Interface eth0 set promiscuous off"
test_cases.append(
NegativeAlertTestCase(
description="Negative test case with bad summary",
events=events,
)
)
events = AlertTestSuite.create_events(default_event, 10)
for event in events:
event['_source']['summary'] = "device vethc0c001e entered promiscuous mode"
test_cases.append(
NegativeAlertTestCase(
description="Negative test case with a bad interface",
events=events,
)
)
events = AlertTestSuite.create_events(default_event, 10)
for event in events:
event['_source']['utctimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda({'minutes': 3})
event['_source']['receivedtimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda({'minutes': 3})
test_cases.append(
NegativeAlertTestCase(
description="Negative test case with old timestamp",
events=events,
)
)