| from .positive_alert_test_case import PositiveAlertTestCase |
| from .negative_alert_test_case import NegativeAlertTestCase |
|
|
| from .alert_test_suite import AlertTestSuite |
|
|
|
|
| class TestSSHLateral(AlertTestSuite): |
| alert_filename = 'ssh_lateral' |
| alert_classname = 'SshLateral' |
|
|
| |
| |
| default_event = { |
| '_source': { |
| 'category': 'syslog', |
| 'hostname': 'test-host.enterprise.mozilla.com', |
| 'summary': 'Accepted publickey for user1 from 10.2.3.4 port 19936 ssh2: RSA SHA256:ET72afGGbxabDersgSdQ+xJYB6ILXOFSDsLsTqDs', |
| 'details': { |
| 'program': 'sshd' |
| } |
| } |
| } |
|
|
| |
| default_alert = { |
| 'category': 'session', |
| 'severity': 'WARNING', |
| 'summary': 'SSH lateral movement outside policy: access to test-host.enterprise.mozilla.com from 10.2.3.4 (mock_hostname1.mozilla.org) as user1', |
| 'tags': ['sshd', 'syslog'], |
| } |
|
|
| test_cases = [] |
|
|
| test_cases.append( |
| PositiveAlertTestCase( |
| description='Positive test case with good event', |
| events=[AlertTestSuite.create_event(default_event)], |
| expected_alert=default_alert |
| ) |
| ) |
|
|
| event = AlertTestSuite.create_event(default_event) |
| event['_source']['category'] = 'bad' |
| test_cases.append( |
| NegativeAlertTestCase( |
| description="Negative test case with bad event category", |
| events=[event], |
| ) |
| ) |
|
|
| event = AlertTestSuite.create_event(default_event) |
| event['_source']['summary'] = 'some bad summary' |
| test_cases.append( |
| NegativeAlertTestCase( |
| description="Negative test case with bad event summary", |
| events=[event], |
| ) |
| ) |
|
|
| event = AlertTestSuite.create_event(default_event) |
| event['_source']['details']['program'] = 'ftpd' |
| test_cases.append( |
| NegativeAlertTestCase( |
| description="Negative test case with bad event details.program", |
| events=[event], |
| ) |
| ) |
|
|
| event = AlertTestSuite.create_event(default_event) |
| event['_source']['utctimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda({'minutes': 16}) |
| event['_source']['receivedtimestamp'] = AlertTestSuite.subtract_from_timestamp_lambda({'minutes': 16}) |
| test_cases.append( |
| NegativeAlertTestCase( |
| description="Negative test case with an event with old timestamp", |
| events=[event], |
| ) |
| ) |
|
|