Basic Security Module Auditing (xm_bsm)
This module provides support for parsing events collected from a file using the Solaris OS Basic Security Module (BSM) Auditing API. This module is normally used in combination with the im_file module to read events from a log file. An InputType is registered using the name of the module instance. See also im_bsm, which reads audit events directly from the kernel—it is recommended instead in cases where NXLog Agent is running on the local system and the device file is available for reading.
| To examine the supported platforms, see the list of installation packages. |
Setup
For information about setting up BSM Auditing, see the corresponding documentation:
-
For FreeBSD, see Audit Configuration in the FreeBSD Handbook.
-
For Solaris 10, see Enabling and Using BSM Auditing in the Logical Domains 1.2 Administration Guide.
-
For Solaris 11, see Managing the BSM Service (Tasks) in the System Administration Guide.
Configuration
The xm_bsm module accepts the following directives in addition to the common module directives.
Fields
The following fields are used by xm_bsm.
$raw_event(type: string)-
A list of event fields in key-value pairs.
$Arbitrary(type: string)-
Arbitrary data token associated with the event, if any
$Arg00.Description(type: string)-
The description of argument 0 (there may be additional arguments; for example,
Arg01)
$Arg00.Value(type: string)-
The value of argument 0
$AttributeDevID(type: string)-
The device ID the file might represent
$AttributeFsID(type: string)-
The file system ID
$AttributeGID(type: string)-
The file owner group ID (GID)
$AttributeMode(type: string)-
The file access mode and type
$AttributeNodeID(type: string)-
The file inode ID
$AttributeUID(type: string)-
The file owner user ID (UID)
$CertHash(type: string)-
certificate hash string set
$Cmd(type: string)-
The command, with arguments and environment, executed within the zone
$EventHost(type: string)-
The host name of the machine corresponding to the event
$EventModifier(type: string)-
The ID modifier that identifies special characteristics of the event
$EventName(type: string)-
The name of audit event that the record represents
$EventTime(type: datetime)-
The time at which the event occurred
$EventType(type: string)-
The type of audit event that the record represents
$ExecArgs(type: string)-
The list of arguments to an exec() system call
$ExecEnv(type: string)-
The list of the current environment variables to an exec() system call
$ExitErrno(type: string)-
The exit status as passed to the exit() system call
$ExitRetval(type: string)-
The exit return value that describes the exit status
$FileModificationTime(type: datetime)-
The last modification time of the file corresponding to the event (if applicable)
$FileName(type: string)-
The name of the file corresponding to the event (if applicable)
$Hostname(type: string)-
The IP address or hostname where the event originated
$Identity.CDHash(type: string)-
Apple Identity CDHash hex
$Identity.SignerId(type: string)-
Apple Identity signer ID
$Identity.SignerIdTruncated(type: string)-
Apple Identity signer ID truncated flag
$Identity.SignerType(type: string)-
Apple Identity signer type
$Identity.TeamId(type: string)-
Apple Identity Team ID
$Identity.TeamIdTruncated(type: string)-
Apple Identity Team ID truncated flag
$IPAddress(type: string)-
The IP address as part of the IP token
$IPC(type: string)-
The IPC handle that is used by the caller to identify a particular IPC object
$IPChecksum(type: string)-
The checksum of the IP header
$IPCPermCreatorGID(type: string)-
The IPC creator group ID (GID)
$IPCPermCreatorUID(type: string)-
The IPC creator user ID (UID)
$IPCPermGID(type: string)-
The IPC owner group ID (GID)
$IPCPermKey(type: string)-
The IPC permission key
$IPCPermMode(type: string)-
The IPC access mode
$IPCPermSeqID(type: string)-
The IPC slot sequence
$IPCPermUID(type: string)-
The IPC owner user ID (UID)
$IPDestAddr(type: string)-
The destination address in the IP header
$IPFragmentOffset(type: string)-
The fragment offset field of the IP header
$IPHeaderLen(type: string)-
The total length of the IP header
$IPIdent(type: string)-
The ID of the IP header
$IPProto(type: string)-
The IP protocol
$IPServiceType(type: string)-
The IP type of service (TOS)
$IPSrcAddr(type: string)-
The source address in the IP header
$IPTTL(type: string)-
The time-to-live (TTL) of the IP header
$IPVer(type: string)-
The version for the Internet Protocol
$KRB5Principal(type: string)-
KRB5Principal strings set
$Opaque(type: string)-
The opaque field (unformatted, hexadecimal)
$Path(type: string)-
Access path information for an object
$Privilege(type: string)-
The privilege token
$ProcessAuditID(type: string)-
The audit ID in the Process section
$ProcessGID(type: string)-
The effective group ID (GID) in the Process section
$ProcessPID(type: string)-
The process ID (PID) in the Process section
$ProcessRealGID(type: string)-
The real group ID (GID) in the Process section
$ProcessRealUID(type: string)-
The real user ID (UID) in the Process section
$ProcessSID(type: string)-
The session ID (SID) in the Process section
$ProcessTerminal.Host(type: string)-
The terminal IP address in the Process section
$ProcessTerminal.Port(type: string)-
The terminal port in the Process section
$ProcessUID(type: string)-
The effective user ID (UID) in the Process section
$ReturnErrno(type: string)-
The error status of the system call in the Return section
$ReturnRetval(type: string)-
The return value of the system call in the Return section
$Sequence(type: string)-
The sequence number
$SocketAddress(type: string)-
The remote socket address
$SocketPort(type: string)-
The remote socket port
$SocketType(type: string)-
The socket type field that indicates the type of socket referenced (TCP/UDP/UNIX)
$SubjectAuditID(type: string)-
The invariant audit ID in the Subject section
$SubjectGID(type: string)-
The effective group ID (GID) in the Subject section
$SubjectPID(type: string)-
The process ID (PID) in the Subject section
$SubjectRealGID(type: string)-
The real group ID (GID) in the Subject section
$SubjectRealUID(type: string)-
The real user ID (UID) in the Subject section
$SubjectSID(type: string)-
The session ID (SID) in the Subject section
$SubjectTerminal.Host(type: string)-
The terminal IP address in the Subject section
$SubjectTerminal.Port(type: string)-
The terminal port in the Subject section
$SubjectUID(type: string)-
The effective user ID (UID) in the Subject section
$TerminalAddress(type: string)-
The terminal address as found in a Subject and/or Process token
$TerminalLocalPort(type: string)-
The terminal local port as found in a Subject and/or Process token
$TerminalRemotePort(type: string)-
The terminal remote port as found in a Subject and/or Process token
$Text(type: string)-
A text string associated with the event
$TokenVersion(type: string)-
A number that identifies the version of the record structure
$Zone(type: string)-
The zone name to which the audit event pertains
Examples
This configuration reads BSM audit logs from a file and parses them with the InputType registered by xm_bsm.
<Extension bsm_parser>
Module xm_bsm
</Extension>
<Input in>
Module im_file
File '/var/audit/*'
InputType bsm_parser
</Input>