-
Notifications
You must be signed in to change notification settings - Fork 418
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
Operating System field for Linux, Windows, macOS #576
Comments
Thanks for bringing this up! Totally agree we should be able to query for any Linux more easily. The link to syslist.go is very helpful in getting an overview 👍Squinting at it, I wonder if it has the same problem you're raising with regards to Unix, however. I see direct mentions of AIX & Solaris in there (so how would we query for "any Unix"? 🙂 ) Here are other sources we can take inspiration from, to try to wrap our heads around the fractal landscape of operating systems:
Here are a few thought exercises:
🤯 Two things that are playing against capturing this perfectly in a few well-defined fields are:
I wonder if we shouldn't consider approaching this with a more flexible approach in addition to a few well defined fields. Two things we could consider in this direction are tags and full text search on os.name.full. I'll leave it at that for today. But it'll be fun to think about :-) |
Also cc @randomuserid who was mentioning being hampered by this recently |
I sort of work around this today but it will become important soon when Linux or Windows events may come from two different agents (or maybe even no agent, via syslog) now that we have both Elastic and Endgame agents. The major families of signals people want are Linux, Mac, Windows. I don't think we will make signals for other UNIXES or operating systems anytime soon. Differences between Windows server / workstation are largely configuration, they are the same common OS. We may have different signals for workstations and servers however so being able to distinguish them would be nice but not critical. I consider Mac a distinct OS / thing because it has different events from a different agent (Endgame) and will have different signals. Most IOT devices will be flavors on Linux I think? But how common is it to try and run agents on them. Maybe mostly syslog or network flows. |
Since my last comment, I've been thinking that instead of adding one or more fields to capture a precise mapping of the OS landscape (which is likely impossible), perhaps we simply need a pragmatic field like Expected values, off the top of my head: Windows, Linux, Mac, Unix. |
Issues
Some of these fields appear to have very similar values in use today so maybe we can adapt one of them to contain values like linux, macos, windows. Possibilities;
|
The issue for adding a new field to capture the commercial family has been opened here #1110. Longer term we still need to clarify the guidance on the other already existing fields of the field set. |
It is hard to identify Linux events today. This would be useful, for example when looking at centralized logs from different devices - logs from the major operating systems (Linux, Windows, macOS) are very different. It often makes sense to be able to pull them apart and visualize/look at them separately and write rules/alerts that are specific to each.
None of the fields in the OS field set contain
linux
as a value, so the only way today to get all Linux events is to exclude all non-Linux events. That's not great.What we have today:
redhat
,debian
,freebsd
,windows
redhat
,debian
,darwin
,windows
centos
,ubuntu
,windows
debian
,ubuntu
,centos
,darwin
,windows
,raspbian
,ol
,opensuse-leap
Mac OS Mojave
add_host_metadata
does not fill it)Mac OS X
Debian GNU/Linux
,Oracle Linux Server
,Windows Server 2019 Datacenter
,Windows 8.1 Enterprise Evaluation
I think we should have a field that contains one value each for Linux, Windows, and macOS. Beats and other Go-based agents could fill it with the value of
runtime.GOOS
and we could take the list of possible GOOS values as the accepted values of this field (this would belinux
,darwin
,windows
for the major three, the full list is here).As to which fields, we could:
os.type
.os.family
oros.platform
./cc @webmat @MikePaquette @andrewkroh @ruflin
The text was updated successfully, but these errors were encountered: