OpenRung
무료·프라이버시 우선 릴레이 네트워크로 개방형 인터넷 접근을 지원 오픈소스·비영리 운영
Deterministic execution barrier and eBPF kernel runtime for autonomous AI agents.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Network, exec and file policy decided in the kernel, before the action, with a signed record of every decision.
Install · Policy · Architecture · Threat model · Evidence · Website
AI agents run shell commands, read files and open network connections with real privileges. Guardrails that inspect prompts or tool calls sit in front of the agent; a prompt injection, a bug or a child process can step around them. Reality Kernel puts the decision where it cannot be stepped around: in eBPF programs attached to the Linux kernel's BPF-LSM and cgroup socket hooks, for every process in a governed cgroup.
Every statement below links to the criterion whose tests prove it, on every supported kernel, in every CI run (how this is checked).
EPERM, over TCP and UDP, IPv4 and IPv6. evidencerk run from its first instruction, and every process it starts. evidence · evidenceA governed workload makes a system call. An eBPF program attached to the kernel decides it against the compiled policy, before the action happens, and the decision streams to the audit log. The verdict never waits for userspace.
flowchart LR
subgraph user["User space"]
agent["Agent process<br/>and its children"]
sensor["rk-sensor"]
end
subgraph kernel["Linux kernel"]
hooks["BPF-LSM and<br/>cgroup sock_addr hooks"]
maps[("Policy maps")]
ring[["Ring buffer"]]
end
agent -- "connect · execve · openat · unlink · ..." --> hooks
maps --> hooks
hooks -- "allow, or -1 EPERM" --> agent
hooks --> ring --> sensor
sensor --> audit["Signed OCSF audit log"]
sensor --> metrics["Prometheus metrics"]
sensor --> traces["OpenTelemetry traces"]
A workload becomes governed when it is placed in a cgroup bound to a profile:
flowchart LR
policy["policy.toml"] -- "validate, compile,<br/>swap atomically" --> maps[("Policy maps")]
run["rk run --profile P"] --> agentd["rk-agentd"]
nri["Kubernetes pod<br/>(annotation)"] --> plugin["rk-nri plugin"] --> agentd
agentd -- "cgroup created and bound<br/>before the first instruction" --> cgroup["rk.slice/<agent>"]
cgroup -. "looked up per syscall" .-> maps
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗
bpf(), signals, ptrace and removing its pins. evidence