Repository navigation
Conversation
Network events from boundary-mediated connections named the binary with pid 0 (bash(0)) because the caller identity crossing the sandbox protocol carried executable paths and digests but no process. The runtime already read the pid, parent pid, and start time from procfs while resolving that identity and dropped them. Carry the owning process (thread-group pid, parent pid, start time) on BinaryIdentity and ResolvedBinaryIdentity as audit context that never authorizes. The supervisor uses it for the OCSF actor on network and HTTP events: actor.process.pid, created_time, and the parent's pid. pid and created_time together identify one process even after its pid is reused. The connecting task can be any thread, so resolution now records the thread group in its validated snapshot and reports the leader's pid and start time. Ancestry is bounded by the thread group too: a thread of the process-tree root reports no ancestors instead of walking past the root. Refs #4268 Signed-off-by: Kris Hicks <[email protected]>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
This was referenced Nov 4, 2026
2 of 10 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Network and HTTP events from boundary-mediated connections named the binary with pid 0 (
bash(0)). The runtime already read the caller's pid, parent pid, and start time while resolving its identity; this carries them to the supervisor so the OCSF actor identifies the actual process.First of a stack of four for #4268:
Related Issue
Refs #4268
Changes
BinaryIdentityandResolvedBinaryIdentitycarry the owning process (thread-group pid, parent pid, start time) as audit context. It never authorizes.actor.process.pid,created_time, and the parent's pid on network and HTTP events.pid+created_timeidentify one process even after pid reuse, and are the join key the later PRs use.Before:
After (in-sandbox:
pid=82 ppid=78):created_timematches the process's start time from/proc/<pid>/statin the sandbox.Known limitations:
windowsbranch needsprocess: Noneatopenshell-mxc-boundary/src/launch.rsandopenshell-supervisor/src/backend_setup/mxc.rswhen it next merges main.Testing
rust:format:check, and every CI clippy invocation (--locked, including perf-harness) pass on macOS and the aarch64 Linux target for this commitChecklist