Proofpoint ObserveIT Modeling Rule

Modeling Rule

Proofpoint ObserveIT

Details

IDProofpoint_ObserveIT_ModelingRule
From Version8.2.0

Rules (XIF)

[MODEL: dataset=observeit_observeit_raw]
alter
    int_cefSeverity = to_integer(cefSeverity)
| alter
    xdm.event.type = if(cefDeviceEventClassId = "100", "User activity", cefDeviceEventClassId = "200", "DBA activity", cefDeviceEventClassId = "300", "System events", cefDeviceEventClassId = "400", "Alerts activity", cefDeviceEventClassId = "500", "Audit activity", cefDeviceEventClassId = "600", "In-App elements", null),
    xdm.alert.name = cat,
    xdm.source.host.os_family = if(lowercase(cs2) contains "windows", XDM_CONST.OS_FAMILY_WINDOWS, lowercase(cs2) contains "mac", XDM_CONST.OS_FAMILY_MACOS, lowercase(cs2) contains "linux", XDM_CONST.OS_FAMILY_LINUX, lowercase(cs2) contains "android", XDM_CONST.OS_FAMILY_ANDROID, lowercase(cs2) contains "ios", XDM_CONST.OS_FAMILY_IOS, lowercase(cs2) contains "ubuntu", XDM_CONST.OS_FAMILY_UBUNTU, lowercase(cs2) contains "debian", XDM_CONST.OS_FAMILY_DEBIAN, lowercase(cs2) contains "fedora", XDM_CONST.OS_FAMILY_FEDORA, lowercase(cs2) contains "centos", XDM_CONST.OS_FAMILY_CENTOS, lowercase(cs2) contains "chrome", XDM_CONST.OS_FAMILY_CHROMEOS, lowercase(cs2) contains "solaris", XDM_CONST.OS_FAMILY_SOLARIS, lowercase(cs2) contains "scada", XDM_CONST.OS_FAMILY_SCADA, to_string(cs2)),
    xdm.alert.description = cs1,
    xdm.source.ipv4 = arrayindex(regextract(src, "(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"),0),
    xdm.source.ipv6 = arrayindex(regextract(src, "([a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5}[a-fA-F0-9\:]{1,5})"),0),
    xdm.logon.logon_guid = duid,
    xdm.alert.severity = if(int_cefSeverity <= 6, "Low", int_cefSeverity <= 8, "Medium", int_cefSeverity <= 10, "High", int_cefSeverity > 10, "Critical"),
    xdm.target.host.hostname = dhost,
    xdm.target.user.username = duser,
    xdm.source.host.hostname = shost,
    xdm.source.process.name = sproc,
    xdm.source.user.username = suser,
    xdm.target.domain = dntdom,
    xdm.event.description = reason,
    xdm.alert.original_alert_id = externalId,
    xdm.session_context_id = sourceServiceName,
    xdm.source.application.name = destinationServiceName;

Schema

observeit_observeit_raw

Field Type Array?
cat string
cefDeviceEventClassId string
cefSeverity string
cs1 string
cs2 string
destinationServiceName string
dhost string
dntdom string
duid string
duser string
externalId string
reason string
shost string
sourceServiceName string
sproc string
src string
suser string
Raw JSON
{
    "observeit_observeit_raw": {
        "cefDeviceEventClassId": {
          "type": "string",
          "is_array": false
        },
        "cat": {
          "type": "string",
          "is_array": false
        },
        "cs2": {
          "type": "string",
          "is_array": false
        },
        "src": {
          "type": "string",
          "is_array": false
        },
        "duid": {
          "type": "string",
          "is_array": false
        },
        "dhost": {
          "type": "string",
          "is_array": false
        },
        "duser": {
          "type": "string",
          "is_array": false
        },
        "shost": {
          "type": "string",
          "is_array": false
        },
        "sproc": {
          "type": "string",
          "is_array": false
        },
        "suser": {
          "type": "string",
          "is_array": false
        },
        "dntdom": {
          "type": "string",
          "is_array": false
        },
        "reason": {
          "type": "string",
          "is_array": false
        },
        "externalId": {
          "type": "string",
          "is_array": false
        },
        "sourceServiceName": {
          "type": "string",
          "is_array": false
        },
        "destinationServiceName": {
          "type": "string",
          "is_array": false
        },
        "cefSeverity": {
          "type": "string",
          "is_array": false
        },
        "cs1": {
          "type": "string",
          "is_array": false
        }
    }
}