[MODEL: dataset = microsoft_amsi_raw] alter get_originalsize = to_integer(json_extract_scalar(event_data ,"$.originalsize")), get_contentsize = to_integer(json_extract_scalar(event_data ,"$.contentsize")), get_scanResult = json_extract_scalar(event_data ,"$.scanResult") | alter xdm.event.id = to_string(event_id), xdm.observer.type = provider_name, xdm.session_context_id = to_string(record_id), xdm.source.host.os = os_subtype, xdm.source.process.command_line = replex(process_cmd, "^\"|\"$", ""), xdm.source.process.executable.md5 = process_md5, xdm.source.process.executable.path = process_path, xdm.source.process.executable.sha256 = process_sha256, xdm.source.process.name = process_name, xdm.source.process.pid = to_integer(process_pid), xdm.source.process.thread_id = to_integer(process_thread_id), xdm.source.user.identifier = json_extract_scalar(event_data ,"$.SubjectUserSid"), xdm.event.log_level = if(log_level ~= "info", XDM_CONST.LOG_LEVEL_INFORMATIONAL, log_level ~= "err", XDM_CONST.LOG_LEVEL_ERROR, log_level ~= "warn", XDM_CONST.LOG_LEVEL_WARNING, log_level="crit", XDM_CONST.LOG_LEVEL_CRITICAL, to_string(coalesce(opcode,log_level))), xdm.source.application.name = json_extract_scalar(event_data ,"$.appname"), xdm.event.description = message, xdm.alert.description = json_extract_scalar(event_data ,"$.content"), xdm.target.resource.name = json_extract_scalar(event_data ,"$.contentname"), xdm.source.sent_bytes = coalesce(get_originalsize, get_contentsize), xdm.target.module.sha256 = json_extract_scalar(event_data ,"$.hash"), xdm.source.user.username = json_extract_scalar(event_data ,"$.SubjectUserName"), xdm.event.outcome = if( get_scanResult = "0", XDM_CONST.OUTCOME_SUCCESS, get_scanResult = "1", XDM_CONST.OUTCOME_UNKNOWN, get_scanResult = "0x8000", XDM_CONST.OUTCOME_PARTIAL, get_scanResult = "0x4000", XDM_CONST.OUTCOME_FAILED, get_scanResult !~= "0x40{3}", XDM_CONST.OUTCOME_FAILED, null), xdm.event.outcome_reason = if( get_scanResult = "0", "AMSI_RESULT_CLEAN", get_scanResult = "1", "AMSI_RESULT_NOT_DETECTED", get_scanResult = "0x8000", "AMSI_RESULT_DETECTED", get_scanResult = "0x4000", "AMSI_RESULT_BLOCKED_BY_ADMIN_BEGIN", get_scanResult !~= "0x40{3}", "AMSI_RESULT_BLOCKED_BY_ADMIN_END", null);