Decoders Syntax

Overview

Options

decoder

Each decoder must have its name defined for reference by rules and other decoders.

Attributes:

  • name:

Example:

<decoder name="atomic-widget">
decoder.parent

A decoder may be the child of another decoder, offering further parsing. The child decoders will not be checked if the parent does not match the log message.

Example:

<decoder name="atomic-widget-login">
  <parent>atomic-widget</parent>
decoder.accumulate

New in version 2.9.0.

Allow OSSEC to track events over multiple log messages based on a decoded id.

<decoder name="example">
  ...
  <order>id</order>
  <accumulate/>
</decoder>

Note

Requires a regex populating the id field using regex or pcre2.

decoder.program_name

For many log messages a program name can be extracted automatically. This option compares the value with the decoded program_name value.

Allowed: Any OS_Match/sregex Syntax

Example:

<decoder name="atomic-widget">
  <program_name>atomic-widget</program_name>
decoder.program_name_pcre2

For many log messages a program name can be extracted automatically. This option compares the value with the decoded program_name value.

Allowed: A pcre2 compliant string to match the program_name.

decoder.prematch

prematch looks for a string to determine whether the decoder is applicable.

Allowed: Any OS_Match/sregex Syntax

decoder.prematch_pcre2

prematch uses pcre2 to look for a string to determine whether the decoder is applicable.

Allowed: A pcre2 compliant string.

decoder.regex

This option will allow parts of the log messages to be extracted into fields defined in the order option, using the OSSEC regex syntax.

Allowed: Any OS_Regex/regex Syntax

decoder.pcre2

This option will allow parts of the log messages to be extracted into fields defined in the order option, using the PCRE2 syntax.

Allowed: A pcre2 compliant search string.

decoder.order

This option names the fields used by the regex or pcre2 options. The field names are comma separated.

Field Name List:

  • location - where the log came from (only on FTS)
  • srcuser - extracts the source username
  • dstuser - extracts the destination (target) username
  • user - an alias to dstuser (only one of the two can be used)
  • srcip - source ip
  • dstip - dst ip
  • srcport - source port
  • dstport - destination port
  • protocol - protocol
  • id - event id
  • url - url of the event
  • action - event action (deny, drop, accept, etc)
  • status - event status (success, failure, etc)
  • extra_data - Any extra data

Active Response fields:

The following fields may be used for active responses.

  • user
  • srcip
  • filename
decoder.fts

fts is the First Time Seen option inside of analysisd. It will alert the first time any defined decoded field is populated with a new value.

Allowed: Field names as listed in order above.

Example:

<decoder name="atomic-widget-login">
  <parent>atomic-widget</parent>
  <regex>user=(\S+)</regex>
  <order>srcuser</order>
  <fts>srcuser</fts>
decoder.ftscomment

Unused at this time.