Portnox Modeling Rule

Modeling Rule

Portnox

Details

IDportnox_ModelingRule
From Version8.3.0
Tagsportnox

Rules (XIF)

[MODEL:dataset="portnox_portnox_raw"]
filter cefVersion = null
| alter deviceVersion = arrayindex(regextract(_raw_log ,"CEF\:0\|Portnox\|Portnox\|([^\|]+)\|"),0),
    deviceEventClassId = arrayindex(regextract(_raw_log ,"CEF\:0\|Portnox\|Portnox\|[^\|]+\|([^\|]+)\|"),0),
    action = arrayindex(regextract(_raw_log ,"CEF\:0\|Portnox\|Portnox\|[^\|]+\|[^\|]+\|([^\|]+)\|"),0),
    src_user = arrayindex(regextract(_raw_log ,"\|user\s(\S+)\s"),0),
    src_ipv4 = arrayindex(regextract(_raw_log ,"\(ip\:(\d+\.\d+\.\d+\.\d+)\)"),0),
    dst_user = arrayindex(regextract(_raw_log ,"user\s\'([^\']+)\'"),0),
    dst_group = arrayindex(regextract(_raw_log ,"group\s\'([^\']+)\'"),0),
    target_resource = arrayindex(regextract(_raw_log ,"\s\'([^\']+)\'"),0),
    event_description = arrayindex(regextract(_raw_log ,"\|([^\|]+)$"),0),
    dest_hostname = arrayindex(regextract(_raw_log ,"for\sdevice\s([^\.]+)\."),0)
| alter xdm.event.operation_sub_type = action,
    xdm.source.user.username = src_user,
    xdm.target.user.username= dst_user,
    xdm.target.user.groups = arraycreate(dst_group),
    xdm.event.description = event_description,
    xdm.target.host.hostname = dest_hostname,
    xdm.source.ipv4 = src_ipv4,
    xdm.observer.version = deviceVersion,
    xdm.event.id = deviceEventClassId,
    xdm.target.resource.name = target_resource;

filter cefVersion != null
| alter xdm.event.operation_sub_type = act,
    xdm.target.vlan = to_integer(cn1),
    xdm.source.host.os = cs2,
    xdm.event.outcome =  if(outcome in("success","sucess") , XDM_CONST.OUTCOME_SUCCESS  , outcome in ("failure"),XDM_CONST.OUTCOME_FAILED ,to_string(outcome)),
    xdm.auth.auth_method = cs3,
    xdm.target.port = to_integer(dpt),
    xdm.target.ipv4 = dst,
    xdm.event.description = coalesce(msg, description),
    xdm.target.host.mac_addresses = arraycreate(dmac),
    xdm.target.host.hostname = dhost,
    xdm.source.host.hostname = shost,
    xdm.target.file.path = filePath,
    xdm.alert.subcategory = alert_category,
    xdm.source.ipv4 = if(is_ipv4(SourceAddress),SourceAddress, is_ipv4(device_ip), device_ip, null),
    xdm.target.domain = destinationDnsDomain,
    xdm.source.port = to_integer(sourceTranslatedPort),
    xdm.target.process.name = destinationServiceName,
    xdm.observer.version = cefDeviceVersion,
    xdm.network.rule = coalesce(policy, group),
    xdm.source.host.mac_addresses = if(mac_address != null and mac_address != "", arraycreate(mac_address), null),
    xdm.event.id = cefDeviceEventClassId;

Schema

portnox_portnox_raw

Field Type Array?
SourceAddress string
_raw_log string
act string
alert_category string
cefDeviceEventClassId string
cefDeviceVersion string
cefVersion string
cn1 string
cs2 string
cs3 string
description string
destinationDnsDomain string
destinationServiceName string
device_ip string
dhost string
dmac string
dpt string
dst string
filePath string
group string
mac_address string
msg string
outcome string
policy string
shost string
sourceTranslatedPort string
Raw JSON
{
  "portnox_portnox_raw": {
      "_raw_log": {
          "type": "string",
          "is_array": false
      },"act": {
          "type": "string",
          "is_array": false
      },"description": {
          "type": "string",
          "is_array": false
      },"alert_category": {
          "type": "string",
          "is_array": false
      },"device_ip": {
          "type": "string",
          "is_array": false
      },"policy": {
          "type": "string",
          "is_array": false
      },"mac_address": {
          "type": "string",
          "is_array": false
      },"group": {
          "type": "string",
          "is_array": false
      },"cn1": {
          "type": "string",
          "is_array": false
      },"cs2": {
          "type": "string",
          "is_array": false
      },"outcome": {
          "type": "string",
          "is_array": false
      },"cs3": {
          "type": "string",
          "is_array": false
      },"dpt": {
          "type": "string",
          "is_array": false
      },"dst": {
          "type": "string",
          "is_array": false
      },"msg": {
          "type": "string",
          "is_array": false
      },"dmac": {
          "type": "string",
          "is_array": false
      },"dhost": {
          "type": "string",
          "is_array": false
      },"shost": {
          "type": "string",
          "is_array": false
      },"filePath": {
          "type": "string",
          "is_array": false
      },"SourceAddress": {
          "type": "string",
          "is_array": false
      },"destinationDnsDomain": {
          "type": "string",
          "is_array": false
      },"sourceTranslatedPort": {
          "type": "string",
          "is_array": false
      },"destinationServiceName": {
          "type": "string",
          "is_array": false
      },"cefVersion": {
          "type": "string",
          "is_array": false
      },"cefDeviceEventClassId": {
          "type": "string",
          "is_array": false
      },"cefDeviceVersion": {
          "type": "string",
          "is_array": false
      }
  }
}