Skip to content

adaptive_export: wire dark-vector pod-enrichment into the streaming scanner (complete #89) - #95

Open
ConstanzeTU wants to merge 1 commit into
fix/ae-protocol-export-pxexportfrom
fix/ae-streaming-dark-vector-export
Open

adaptive_export: wire dark-vector pod-enrichment into the streaming scanner (complete #89)#95
ConstanzeTU wants to merge 1 commit into
fix/ae-protocol-export-pxexportfrom
fix/ae-streaming-dark-vector-export

Conversation

@ConstanzeTU

Copy link
Copy Markdown

Completes #89 on the steered live path. The streaming TableScanner.buildPxL hardcoded px.upid_to_(df.upid) for every table, so dark-vector tables (dc_snoop/creds_change/dx_, raw pid / no upid) threw 'Column upid not found' and never exported via the path AE is steered through. Now reuses pxl.PodEnrichPxL(table) (native→upid, dark→process_stats pid-merge) + skips the pod-allowlist for IsDarkVector (node-scoped; transient attack pids resolve blank pod). Native behavior byte-identical. New test TestScanner_DarkVectorPidMergeNodeScoped; streaming pkg green. Root cause: #89 updated the retention builder only; the streaming scanner is a second, duplicated PxL builder (from #53) that it missed.

…canner (complete #89)

#89 restored dark-vector tracepoint export but only in the retention query builder
(pxl/queryfor.go + compile.go via PodEnrichPxL/IsDarkVector). The streaming
TableScanner (the steered live path, from #53) kept its own duplicated buildPxL
hardcoding px.upid_to_namespace/pod_name(df.upid) — so every dark-vector table
(dc_snoop, creds_change, dx_*) threw "Column 'upid' not found in parent dataframe"
(those tables carry a raw kernel pid, no upid) and never exported on the live path.

Reuses the single dark-aware builder: buildPxL now calls pxl.PodEnrichPxL(table)
(native → upid resolution; dark-vector → process_stats pid-merge), and skips the
pod-allowlist regex for IsDarkVector tables — they are node-scoped, since a
transient child (sh→whoami) resolves a blank pod and a pod filter would drop
exactly the malignant evidence; the node-wide dark rows are lineage-scoped
downstream. Native-table behavior is byte-identical (PodEnrichPxL's native branch
emits the same two upid lines). New test TestScanner_DarkVectorPidMergeNodeScoped;
streaming pkg green.
@ConstanzeTU

Copy link
Copy Markdown
Author

@build-agent — please build the AE (adaptive_export) image from branch build/ae-ppid-plus-streaming-darkfix (= #94 feat/dc-snoop-ppid-ancestry ppid/pcomm dc_snoop capture + this PR's streaming-scanner dark-vector fix). I need to redeploy on my live rig to confirm dc_snoop/creds_change now export through the steered streaming path (they currently 0-export with 25d4077db due to the upid regression this fixes). Please reply with the image tag (ghcr.io/k8sstormcenter/vizier-adaptive_export_image:<tag>) when green. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants