1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! `net.connect_attempted` probe — stub.
//!
//! Linux-only. Pre-syscall observation of `connect(2)` requires either
//! seccomp-notify, eBPF tracepoints (`tracepoint:syscalls:sys_enter_connect`),
//! or `/proc/[pid]/net/tcp{,6}` polling. The first two need a syscall surface
//! and a debugfs / BPF-mounted /sys this skeleton does not assume; the third
//! gives only post-facto state, not "attempted". Path C / post-1.0
//! territory (ADR-0006).
//!
//! For Phase F3a we emit no events. Frames the agent sends when wired up
//! will use [`probe_source::NET_CONNECT_ATTEMPTED`].
use crateProbeEvent;
/// Stub network connect-attempt probe.
///
/// TODO syscall surface — choose one of:
/// 1. seccomp-notify with the listener fd held by `cellos-init` parent
/// (kernel-version gated; needs Linux ≥ 5.0 and BPF-friendly seccomp),
/// 2. BPF tracepoint on `sys_enter_connect` (BPF mount + CAP_BPF needed),
/// 3. polling `/proc/net/tcp{,6}` for `SYN_SENT` rows (cheap; loses
/// already-completed connects between polls — false negatives the
/// `cell.observability.guest.declaration_unwitnessed` check on the
/// host will surface anyway).
;