Skip to main content

Normalize

Transform

Synopsis

Converts log field names between different normalization formats (ECS, CIM, ASIM, CEF, LEEF, CSL).

Schema

normalize:
- source_format: <string>
- target_format: <string>
- description: <text>
- if: <script>
- ignore_failure: <boolean>
- on_failure: <processor[]>
- on_success: <processor[]>
- tag: <string>

Configuration

FieldRequiredDefaultDescription
source_formatNauto-detectSource format (ecs, cim, asim, cef, leef, csl)
target_formatY-Target format to convert to
descriptionN-Documentation note
ifN-Conditional expression
ignore_failureNfalseSkip processing errors
on_failureN-Error handling processors
on_successN-Success handling processors
tagN-Identifier for logging

Details

The processor automatically detects source formats when not specified and handles field name transformations while preserving values.

note

Format detection is case-insensitive - i.e. "ECS", "ecs", and "Ecs" are equivalent.

The processor automatically detects the source format based on characteristic fields. Some commonly used field mappings:

ECSCIMASIM
Network
source.ipsrcSrcIp
destination.ipdestDstIp
network.directiondirectionNetworkDirection
Event
@timestamp_timeTimeGenerated
event.typeactionEventType
event.categorycategoryEventCategory
User
user.nameuserActorUsername
user.iduser_idActorUserId
user.domainuser_domainActorUserDomain
warning

Field mapping is non-reversible if the targeted format doesn't have equivalent fields. Test conversions with sample data.

Examples

ECS to CIM

ECS fields...

{
"source": {
"ip": "128.232.110.120"
},
"destination": {
"ip": "192.168.1.1"
},
"network": {
"direction": "inbound"
}
}
normalize:
- source_format: ecs
- target_format: cim

are mapped to CIM fields:

{
"src": "128.232.110.120",
"dest": "192.168.1.1",
"direction": "inbound"
}

CIM to ECS

CIM fields...

{
"src": "128.232.110.120",
"dest": "192.168.1.1",
"direction": "outbound"
}
normalize:
- source_format: cim
- target_format: ecs

are mapped to ECS fields:

{
"source": {
"ip": "128.232.110.120"
},
"destination": {
"ip": "192.168.1.1"
},
"network": {
"direction": "outbound"
}
}

Auto-detection

Auto-detection discovers CIM...

{
"_time": "2023-01-01T00:00:00Z",
"src": "128.232.110.120",
"dest": "192.168.1.1",
"direction": "outbound"
}
normalize:
- target_format: asim

and maps the fields to ASIM:

{
"TimeGenerated": "2023-01-01T00:00:00Z",
"SrcIp": "128.232.110.120",
"DstIp": "192.168.1.1",
"NetworkDirection": "outbound"
}

Error Handling

Handling conversion errors...

{
"source": {
"invalid": true
}
}
normalize:
- target_format: cim
- ignore_failure: true
- on_failure:
- set:
- field: error
- value: "Conversion failed"

captures the error information:

{
"source": {
"invalid": true
},
"error": "Conversion failed"
}