← BACK TO CYBER PROJECTS

FEATURED RESEARCH PROJECT / 2026

ZayoSentry

eBPF-Based Context-Aware Linux Detection

ZayoSentry correlates Linux kernel telemetry with userspace context before it produces a detection verdict. Live mode monitors host activity; Scan mode combines isolated execution with host-side telemetry and ZayoELF static inspection.

RESEARCH PROTOTYPE — NOT A PRODUCTION EDReBPF · libbpf · Python · Podman · ZayoELF
02

The Detection Problem

Legitimate Linux software also renames tasks, opens connections, starts shells, and uses debugging interfaces. Treating one unusual syscall as a malware verdict creates noise rather than detection. ZayoSentry keeps kernel events neutral until time, PID context, and independent behavioral signals support correlation.

TELEMETRY+CONTEXT+TIME+INDEPENDENT SIGNALS=CORRELATED DETECTION
Detection without context is noise.
03

Architecture

The kernel layer reports facts. A C/libbpf sensor reads ring-buffer events, while the Python layer adds process context, correlates signals, invokes ZayoELF when applicable, and writes the incident report.

04

Kernel Telemetry

The sensor exposes behavioral primitives; it does not label them malicious in the kernel. Coverage verified from the BPF and C userspace sources:

TRACEPOINT / CALLTELEMETRY PRIMITIVECONTEXT
sched_process_execProcess executionExec lifecycle and executable path
sched_process_exitProcess exitExit code and measured lifetime
socket(AF_PACKET)Packet socketRaw packet visibility
setsockopt(SO_ATTACH_FILTER)Classic BPF filterSocket-filter attachment
prctl(PR_SET_NAME)Process renameTask-name change signal
connect(AF_INET)Outbound connectionIPv4 destination and port
ptracePtrace activityDebugging or injection context
unlinkatSelf-deletion contextDeleted backing executable check
open / openat / openat2Persistence writeWritable access to configured startup paths

Current network destination telemetry is IPv4-only. The AF_PACKET hook records domain 17 socket creation; the userspace output describes it as raw-socket telemetry.

05

Context-Aware Correlation

15sPID context window
6critical score threshold
QUALITY GATEscore alone cannot alert

A critical detection requires score ≥ 6 and either two strong categories, or one strong category plus at least three distinct scored categories. A category contributes points once per PID context, preventing repeated weak events from inflating the result.

CATEGORYSCOREQUALITY
persistence_write+4strong
raw_socket+3strong
writable_dir_execution+3strong
self_deletion+3strong
ptrace+3strong
bpf_socket_filter+2medium
suspicious_shell+2medium
abnormal_pid_file+2medium
process_renaming+1weak
outbound_connection+1weak
shell_execution0neutral
memfd_execution0neutral
readonly_temp_mount_execution0neutral
06

Operating Modes

MODE 01

LIVE

Starts the host eBPF sensor, correlates telemetry across system processes, and writes a Markdown incident report when the session ends.

MODE 02

SCAN

Runs one target ELF in an isolated container or unshare fallback, filters host-side sensor output to the target process tree, adds ZayoELF output, and writes a verdict report.

TARGET ELF→PODMAN SANDBOX→HOST eBPF TELEMETRY
+ ZAYOELF STATIC
→CORRELATED REPORT
  • Podman preferred; Docker then unshare are fallbacks.
  • Default network: none
  • Read-only root filesystem and read-only target bind mount
  • 256 MB memory, 100 PID, 15-second default timeout
  • Container executes as UID 10001; these controls reduce exposure but are not an isolation guarantee.
07

ZayoELF Integration

ZayoELF remains an independent static-analysis project. In Scan mode, ZayoSentry runs it host-side against the target before dynamic execution; after a correlated live detection it can also inspect the process backing file. Results and SHA-256 metadata are included in the incident record.

READ THE ZAYOELF REPORT →
08

Detection Logic / ATT&CK Context

The rules attach ATT&CK context to reported actions. Several mappings are intentionally broad or combined; they are reporting context, not proof that a complete technique occurred.

RULE CONTEXTMITRE ATT&CK
Suspicious shell executionT1059
Writable-directory executionT1204 / T1036
Boot-script persistenceT1547.010
Self-deletionT1070.004
Ptrace activityT1055
AF_PACKET / BPF filterT1040
Process renamingT1036.003
Outbound connectionT1071 / T1090
09

Validation

A controlled BPFDoor-inspired fixture exercises a writable-directory launch followed by process renaming, AF_PACKET raw-socket creation, classic BPF filter attachment, and an IPv4 connection. It is validation of that behavior chain—not a claim of coverage for every BPFDoor variant.

DETECTION SCORE6
FINAL SCORE7
CORRELATED THREAT1
EVENT COUNT5
  1. readonly_temp_mount_execution+0
  2. process_renaming+1
  3. raw_socket+3
  4. bpf_socket_filter+2
  5. outbound_connection+1
10

Engineering Decisions

Read-only execution

Execution from a temporary path scores 0 when its mount is read-only, covering the scan bind mount and similar contexts.

memfd

A memfd-backed executable is normalized to neutral memfd execution rather than scored as masquerading.

Shell context

Shell execution starts at 0 and becomes +2 only when a strong category exists in the same context window.

Self exclusion

Sensor, dashboard, and ZayoELF processes use PID and exact-name matching rather than broad substring suppression.

11

Limitations & Future Work

RESEARCH PROTOTYPE — NOT A PRODUCTION EDR
  • Replace the text/regex sensor interface with a structured NDJSON or binary event protocol.
  • Add unit tests and CI for rules, garbage collection, and correlation behavior.
  • Track cgroup/container identity alongside PID context.
  • Extend connect telemetry to IPv6.
  • Clarify thread identity with explicit TID/TGID handling.
  • Measure sensor overhead and event throughput.
12

Project Lineage

The project builds on a research progression rather than replacing earlier work: ATT&CK labs developed reproducible behavior studies; ZayoELF added ELF triage; Red Menshen/BPFDoor research supplied a Linux tradecraft case; ZayoSentry brings those threads into telemetry and detection engineering.

13

Technical Stack / Source

KERNEL / SENSOR
eBPF · CO-RE · C · libbpf · ring buffer
ENGINE
Python · PyYAML · PID context · Markdown reports
ANALYSIS
Podman / Docker / unshare · ZayoELF · pyelftools
SOURCE
No verified public ZayoSentry source URL was present in the supplied archive or portfolio data.