-
Notifications
You must be signed in to change notification settings - Fork 419
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
Improve semantics of network.direction #791
Comments
@dcode Agree from a detection perspective identifying if the flow is trust-to-untrust, trust-to-trust, untrust-to-untrust is indeed useful. Do you see a gap in the current schema beyond the existing |
We had a discussion on March 27th that fell through the cracks. A proposed way forward was to simply add "ingress" and "egress" to the existing On the other hand, existing semantics of "inbound" and "outbound" would capture the semantics of traffic crossing a network boundary. This would be used when packetbeat is run as an observer via a tap or span port. It also aligns with semantics used by Zeek. Related discussion: elastic/beats#11147 |
So the idea is to define these two new values and clarify each pair's role:
I think this is simple enough, if we do not try to mix this with trust levels or other ways of classifying network exchanges. |
On the field value side I'm actually starting to think @rw-access had good points on terminology... ingress/egress seems more aligned to a concept of entering/exiting something that you would eventually exit (router, switch, highway, etc) where inbound/outbound seem to define a state of reaching/leaving a particular destination (thanks merriam-webster...) That being said I think the definition matters more: network.direction:
Observers would not populate network.direction, populating observer.[egress & | ingress].interface instead
Then we could close this out and start a separate discussion on the perimeter / groupings question... |
Would it be acceptable for the [File,Audit,Packet]beat to have in it's |
@leehinman I'd think Filebeat would choose based on source integration, tho having the option to set wouldn't be bad for custom logs... Auditbeat is a weird one, not knowing how it would deal with promiscuous sniffing on an interface (I can check on my pi-corelight and see if its being reported if I can get auditbeat running on the pi version of ubuntu (no promises...) |
@leehinman I think a config flag is a good idea to flip from perimeter inbound/outbound vs host ingress/egress. Although there may be subtleties around whether that beat will "only" capture perimeter events, when that switch is flipped. Perhaps there should be a way to change this per pipeline / module / protocol? |
are you thinking the same field for either - that seems like a really bad idea (as it could be either/both) |
network.direction
is currently defined ambiguously. The semantics depend on the source of the data making it very difficult to analyze.We need a specifier that indicates whether the record is using host-level semantics or network-level semantics. Namely, if an event is marked as
outbound
, from a detection perspective, we need to know if that means the traffic is leaving our internal trust boundary to the Internet, or if it simply means that we're sending packets out of the local network interface to perhaps a local server without our internal trust boundary.The text was updated successfully, but these errors were encountered: