예제 #1
0
 def test_format_includes_os_hostname_if_present(self, mock_file_event_log_record):
     expected_field_name = "shost"
     expected_value = "Test's MacBook Air"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #2
0
 def test_format_includes_user_uid_if_present(self, mock_file_event_log_record):
     expected_field_name = "suid"
     expected_value = "912338501981077099"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #3
0
 def test_format_includes_correct_event_name_and_signature_id_for_deleted(
     self, mock_file_event_log_record
 ):
     event_type = "DELETED"
     mock_file_event_log_record.msg["eventType"] = event_type
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert event_name_assigned_correct_signature_id(event_type, "C42202", cef_out)
예제 #4
0
 def test_format_includes_correct_event_name_and_signature_id_for_read_by_app(
     self, mock_file_event_log_record
 ):
     event_type = "READ_BY_APP"
     mock_file_event_log_record.msg["eventType"] = event_type
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert event_name_assigned_correct_signature_id(event_type, "C42203", cef_out)
예제 #5
0
 def test_format_includes_domain_name_if_present(self, mock_file_event_log_record):
     expected_field_name = "dvchost"
     expected_value = "192.168.0.3"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #6
0
 def test_format_includes_source_if_present(self, mock_file_event_log_record):
     expected_field_name = "sourceServiceName"
     expected_value = "Endpoint"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #7
0
 def test_format_includes_event_id_if_present(self, mock_file_event_log_record):
     expected_field_name = "externalId"
     expected_value = "0_1d71796f-af5b-4231-9d8e-df6434da4663_912339407325443353_918253081700247636_16"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #8
0
 def test_format_includes_device_uid_if_present(self, mock_file_event_log_record):
     expected_field_name = "deviceExternalId"
     expected_value = "912339407325443353"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #9
0
 def test_format_includes_exposure_if_present(self, mock_file_event_log_record):
     expected_field_name = "reason"
     expected_value = "ApplicationRead"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #10
0
 def test_format_includes_process_name_if_present(self, mock_file_event_log_record):
     expected_field_name = "sproc"
     expected_value = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #11
0
 def test_format_includes_file_category_if_present(self, mock_file_event_log_record):
     expected_field_name = "fileType"
     expected_value = "UNCATEGORIZED"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #12
0
 def test_format_includes_file_size_if_present(self, mock_file_event_log_record):
     expected_field_name = "fsize"
     expected_value = "86"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #13
0
 def test_format_includes_file_path_if_present(self, mock_file_event_log_record):
     expected_field_name = "filePath"
     expected_value = "/Users/testtesterson/Downloads/About Downloads.lpdf/Contents/Resources/English.lproj/"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #14
0
 def test_format_includes_md5_checksum_if_present(self, mock_file_event_log_record):
     expected_field_name = "fileHash"
     expected_value = "19b92e63beb08c27ab4489fcfefbbe44"
     cef_out = FileEventDictToCEFFormatter().format(mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(
         expected_field_name, expected_value, cef_out
     )
예제 #15
0
def _get_formatter(output_format):
    if output_format == FileEventsOutputFormat.JSON:
        return FileEventDictToJSONFormatter()
    elif output_format == FileEventsOutputFormat.CEF:
        return FileEventDictToCEFFormatter()
    else:
        return FileEventDictToRawJSONFormatter()
예제 #16
0
 def test_format_uses_correct_product_name(self, mock_file_event_log_record):
     alternate_product_name = "Security Parser Formatter Extractor Thingamabob"
     cef_out = FileEventDictToCEFFormatter(
         default_product_name=alternate_product_name
     ).format(mock_file_event_log_record)
     cef_parts = get_cef_parts(cef_out)
     assert cef_parts[2] == alternate_product_name
예제 #17
0
 def test_format_uses_correct_severity(self, mock_file_event_log_record):
     alternate_severity = "7"
     cef_out = FileEventDictToCEFFormatter(
         default_severity_level=alternate_severity).format(
             mock_file_event_log_record)
     cef_parts = get_cef_parts(cef_out)
     assert cef_parts[6] == alternate_severity
예제 #18
0
 def test_format_includes_public_ip_address_if_present(
         self, mock_file_event_log_record):
     expected_field_name = "src"
     expected_value = "71.34.4.22"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #19
0
 def test_format_includes_email_sender_if_present(
         self, mock_file_event_email_event_log_record):
     expected_field_name = "suser"
     expected_value = "TEST_EMAIL_SENDER"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_email_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #20
0
 def test_format_includes_window_title_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "requestClientApplication"
     expected_value = "TEST_WINDOW_TITLE"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #21
0
 def test_format_includes_email_recipients_if_present(
         self, mock_file_event_email_event_log_record):
     expected_field_name = "duser"
     expected_value = "[email protected],[email protected]"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_email_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #22
0
 def test_format_includes_shared_with_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "duser"
     expected_value = "[email protected],[email protected]"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #23
0
 def test_format_includes_tab_url_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "request"
     expected_value = "TEST_TAB_URL"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #24
0
 def test_format_includes_insertion_timestamp_if_present(
         self, mock_file_event_log_record):
     expected_field_name = "rt"
     expected_value = "1568069262724"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #25
0
 def test_format_includes_cloud_drive_id_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "aid"
     expected_value = "TEST_CLOUD_DRIVE_ID"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #26
0
 def test_format_includes_url_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "filePath"
     expected_value = "https://www.example.com"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #27
0
 def test_format_includes_modify_timestamp_if_present(
         self, mock_file_event_log_record):
     expected_field_name = "fileModificationTime"
     expected_value = "1355886008000"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #28
0
 def test_format_includes_create_timestamp_if_present(
         self, mock_file_event_log_record):
     expected_field_name = "fileCreateTime"
     expected_value = "1342923569000"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #29
0
 def test_format_includes_sync_destination_if_present(
         self, mock_file_event_cloud_activity_event_log_record):
     expected_field_name = "destinationServiceName"
     expected_value = "TEST_SYNC_DESTINATION"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_cloud_activity_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)
예제 #30
0
 def test_format_includes_removable_media_serial_number_label_if_present(
         self, mock_file_event_removable_media_event_log_record):
     expected_field_name = "cs4Label"
     expected_value = "Code42AEDRemovableMediaSerialNumber"
     cef_out = FileEventDictToCEFFormatter().format(
         mock_file_event_removable_media_event_log_record)
     assert key_value_pair_in_cef_extension(expected_field_name,
                                            expected_value, cef_out)