Loading

File fields

Elastic Stack Serverless

A file is defined as a set of information that has been created on, or has existed on a filesystem.

File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric.

Field Description Level
file.accessed Last time the file was accessed.

Note that not all filesystems keep track of access time.

type: date

OTel Badge relation file.accessed
extended
file.attributes Array of file attributes.

Attributes names will vary by platform. Here’s a non-exhaustive list of values that are expected in this field: archive, compressed, directory, encrypted, execute, hidden, read, readonly, system, write.

type: keyword

Note: this field should contain an array of values.

example: ["readonly", "system"]

OTel Badge relation file.attributes
extended
file.created File creation time.

Note that not all filesystems store the creation time.

type: date

OTel Badge relation file.created
extended
file.ctime Last time the file attributes or metadata changed.

Note that changes to the file content will update mtime. This implies ctime will be adjusted at the same time, since mtime is an attribute of the file.

type: date

OTel Badge relation file.changed
extended
file.device Device that is the source of the file.

type: keyword

example: sda
extended
file.directory Directory where the file is located. It should include the drive letter, when appropriate.

type: keyword

example: /home/alice

OTel Badge relation file.directory
extended
file.drive_letter Drive letter where the file is located. This field is only relevant on Windows.

The value should be uppercase, and not include the colon.

type: keyword

example: C
extended
file.extension File extension, excluding the leading dot.

Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz").

type: keyword

example: png

OTel Badge relation file.extension
extended
file.fork_name A fork is additional data associated with a filesystem object.

On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.

On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name, and some_fork_name is the value that should populate fork_name. filename.extension should populate file.name, and extension should populate file.extension. The full path, file.path, will include the fork name.

type: keyword

example: Zone.Identifer

OTel Badge relation file.fork_name
extended
file.gid Primary group ID (GID) of the file.

type: keyword

example: 1001

OTel Badge relation file.group.id
extended
file.group Primary group name of the file.

type: keyword

example: alice

OTel Badge relation file.group.name
extended
file.inode Inode representing the file in the filesystem.

type: keyword

example: 256383

OTel Badge relation file.inode
extended
file.mime_type MIME type should identify the format of the file or stream of bytes using IANA official types, where possible. When more than one type is applicable, the most specific type should be used.

type: keyword
extended
file.mode Mode of the file in octal representation.

type: keyword

example: 0640

OTel Badge relation file.mode
extended
file.mtime Last time the file content was modified.

type: date

OTel Badge relation file.modified
extended
file.name Name of the file including the extension, without the directory.

type: keyword

example: example.png

OTel Badge relation file.name
extended
file.owner File owner’s username.

type: keyword

example: alice

OTel Badge relation file.owner.name
extended
file.path Full path to the file, including the file name. It should include the drive letter, when appropriate.

type: keyword

Multi-fields:

- file.path.text (type: match_only_text)

example: /home/alice/example.png

OTel Badge relation file.path
extended
file.size File size in bytes.

Only relevant when file.type is "file".

type: long

example: 16384

OTel Badge relation file.size
extended
file.target_path Target path for symlinks.

type: keyword

Multi-fields:

- file.target_path.text (type: match_only_text)

OTel Badge relation file.symbolic_link.target_path
extended
file.type File type (file, dir, or symlink).

type: keyword

example: file
extended
file.uid The user ID (UID) or security identifier (SID) of the file owner.

type: keyword

example: 1001

OTel Badge relation file.owner.id
extended

The file fields are expected to be nested at:

  • threat.enrichments.indicator.file
  • threat.indicator.file

Note also that the file fields may be used directly at the root of the events.

Location Field Set Description
file.code_signature.* code_signature These fields contain information about binary code signatures.
file.hash.* hash Hashes, usually file hashes.
file.pe.* pe These fields contain Windows Portable Executable (PE) metadata.
file.x509.* x509 These fields contain x509 certificate metadata.
Location Field Set Description
file.elf.* elf These fields contain Linux Executable Linkable Format (ELF) metadata.
file.macho.* macho These fields contain Mac OS Mach Object file format (Mach-O) metadata.