-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Agent] Agent UUID #14439
Comments
Original comment by @tsg: This is potentially interesting for the SIEM team as well, where we have an interest in establishing the "identity" of a host. Pinging @elastic/secops. |
Original comment by @tsg: Also, we've found out that the linux machine-id is not great, because terraform + GCP creates all VMs with the same machine-id :). |
Original comment by @cwurm: The
That is the best we could come up with. Out of those, only macOS seems to be guaranteed unique so far. We've seen real-world duplicates of the Linux machine-id as Tudor says, and there are reports of MachineGuid not being unique either (e.g. when a Windows machine is cloned or backup/restored).
We tried using the On the whole, I'm not convinced it's possible to 100% guarantee a unique ID (or hostname, or any other identifier) per host. But that's ok in most (all?) cases I think. Some edge cases might be annoying, but the user can always fix it (e.g. changing to a unique hostname, re-generating a duplicate host ID to be unique, or specifying a custom name in the Beats config as the last resort). I'm curious, I would think that in the Fleet API we have to go beyond the host ID? Since there will often be multiple Beats on a machine, even multiple Beats of the same type (e.g. multiple Filebeat instances for different log files). So we'd have to somehow identify each one of these, too? |
Original comment by @ph:
Yes this is a good point, currently in beats we have two ids, we have one that we persist on disk on the uuid.json file but we also have what we call an
Heh this is a bummer, which is for sure we cannot only use that information, we need a combination machine + network information probably. |
Instead of Generating a fingerprint of the machine where a fingerprint could generated twice we should instead do the following:
|
@michalpristas can you update the issue with a TODO / checkbox? On top of my head I see we need to persist it to disk. |
yes this pretty much sums it up.
|
@michalpristas One more thing we also need to have the Generation of the UUID done at enroll time. |
Original comment by @ph:
As Fleet API, I want to make sure the machine talking to me is the same machine that was enrolled.
To do that we want to generate a fingerprint of the machine and use that fingerprint as a machine-id,
I think we could use theses source to create the ID, we could also add the mac address to it.
We should not expose that key directly to the api, we should cryptographically hash the key.
The text was updated successfully, but these errors were encountered: