ELF header fields
Elastic Stack Serverless
These fields contain Linux Executable Linkable Format (ELF) metadata.
Warning
These fields are in beta and are subject to change.
Field | Description | Level |
---|---|---|
elf.architecture | Machine architecture of the ELF file. type: keyword example: x86-64 |
extended |
elf.byte_order | Byte sequence of ELF file. type: keyword example: Little Endian |
extended |
elf.cpu_type | CPU type of the ELF file. type: keyword example: Intel |
extended |
elf.creation_date | Extracted when possible from the file’s metadata. Indicates when it was built or compiled. It can also be faked by malware creators. type: date |
extended |
elf.exports | List of exported element names and types. type: flattened Note: this field should contain an array of values. |
extended |
elf.go_import_hash | A hash of the Go language imports in an ELF file excluding standard library imports. An import hash can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values. The algorithm used to calculate the Go symbol hash and a reference implementation are available here: https://github.com/elastic/toutoumomoma type: keyword example: 10bddcb4cee42080f76c88d9ff964491 |
extended |
elf.go_imports | List of imported Go language element names and types. type: flattened |
extended |
elf.go_imports_names_entropy | Shannon entropy calculation from the list of Go imports. type: long |
extended |
elf.go_imports_names_var_entropy | Variance for Shannon entropy calculation from the list of Go imports. type: long |
extended |
elf.go_stripped | Set to true if the file is a Go executable that has had its symbols stripped or obfuscated and false if an unobfuscated Go executable. type: boolean |
extended |
elf.header.abi_version | Version of the ELF Application Binary Interface (ABI). type: keyword |
extended |
elf.header.class | Header class of the ELF file. type: keyword |
extended |
elf.header.data | Data table of the ELF header. type: keyword |
extended |
elf.header.entrypoint | Header entrypoint of the ELF file. type: long |
extended |
elf.header.object_version | "0x1" for original ELF files. type: keyword |
extended |
elf.header.os_abi | Application Binary Interface (ABI) of the Linux OS. type: keyword |
extended |
elf.header.type | Header type of the ELF file. type: keyword |
extended |
elf.header.version | Version of the ELF header. type: keyword |
extended |
elf.import_hash | A hash of the imports in an ELF file. An import hash can be used to fingerprint binaries even after recompilation or other code-level transformations have occurred, which would change more traditional hash values. This is an ELF implementation of the Windows PE imphash. type: keyword example: d41d8cd98f00b204e9800998ecf8427e |
extended |
elf.imports | List of imported element names and types. type: flattened Note: this field should contain an array of values. |
extended |
elf.imports_names_entropy | Shannon entropy calculation from the list of imported element names and types. type: long |
extended |
elf.imports_names_var_entropy | Variance for Shannon entropy calculation from the list of imported element names and types. type: long |
extended |
elf.sections | An array containing an object for each section of the ELF file. The keys that should be present in these objects are defined by sub-fields underneath elf.sections.* .type: nested Note: this field should contain an array of values. |
extended |
elf.sections.chi2 | Chi-square probability distribution of the section. type: long |
extended |
elf.sections.entropy | Shannon entropy calculation from the section. type: long |
extended |
elf.sections.flags | ELF Section List flags. type: keyword |
extended |
elf.sections.name | ELF Section List name. type: keyword |
extended |
elf.sections.physical_offset | ELF Section List offset. type: keyword |
extended |
elf.sections.physical_size | ELF Section List physical size. type: long |
extended |
elf.sections.type | ELF Section List type. type: keyword |
extended |
elf.sections.var_entropy | Variance for Shannon entropy calculation from the section. type: long |
extended |
elf.sections.virtual_address | ELF Section List virtual address. type: long |
extended |
elf.sections.virtual_size | ELF Section List virtual size. type: long |
extended |
elf.segments | An array containing an object for each segment of the ELF file. The keys that should be present in these objects are defined by sub-fields underneath elf.segments.* .type: nested Note: this field should contain an array of values. |
extended |
elf.segments.sections | ELF object segment sections. type: keyword |
extended |
elf.segments.type | ELF object segment type. type: keyword |
extended |
elf.shared_libraries | List of shared libraries used by this ELF object. type: keyword Note: this field should contain an array of values. |
extended |
elf.telfhash | telfhash symbol hash for ELF file. type: keyword |
extended |
The elf
fields are expected to be nested at:
file.elf
process.elf
Note also that the elf
fields are not expected to be used directly at the root of the events.