Mappings
Status: Development
This document defines the required attributes of Mapping
messages.
Attributes
A message representing a Mapping
MUST have at least one of the following
process attributes:
process.executable.build_id.gnu
process.executable.build_id.go
process.executable.build_id.htlhash
If possible all the above listed attributes SHOULD be present in a Mapping
. To promote interoperability, it is RECOMMENDED for process.executable.build_id.htlhash
to be present in every Mapping
. For the use and purpose of process.executable.build_id.go
see golang/go#68652.
Algorithm for process.executable.build_id.htlhash
In some environments GNU and/or Go build_id values are stripped or not usable - for example Alpine Linux which is often used as a base for Docker environments. For that reason and to promote interoperability, a deterministic build_id generation algorithm that hashes the first and last page of a file together with its length is defined as:
Input ← Concat(File[:4096], File[-4096:], BigEndianUInt64(Len(File)))
Digest ← SHA256(Input)
BuildID ← Digest[:16]
where Input
is the concatenation of the first and last 4096 bytes of the file (may overlap, not padded) and the 8 byte big-endian serialization of the file length. The resulting BuildID
is the truncation of the hash digest to 16 bytes (128 bits), in hex string form.
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!