CodeBuildder/argus-k8s
GitHub: CodeBuildder/argus-k8s
基于 eBPF 的 Kubernetes 原生安全平台,实现威胁检测、策略 enforcement 与 AI 驱动的实时响应。
Stars: 0 | Forks: 0
# Argus
## 集群状态
| Node | Role | IP | Status |
|---|---|---|---|
| k3s-master | Control plane | 192.168.139.42 | ✅ Ready |
| k3s-worker1 | Worker | 192.168.139.77 | ✅ Ready |
| k3s-worker2 | Worker | 192.168.139.45 | ✅ Ready |
**Cilium:** v1.15.0 — eBPF mode,kube-proxy 替换已启用
**Hubble:** Relay + UI 已启用 — 实时网络流量观测活动
### Hubble UI — 3/3 节点,20.6 flows/s

## 安全状态
### Falco — 运行时威胁检测
- **Driver:** modern_ebpf(CO-RE,无需内核头文件)
- **Status:** ✅ 在全部 3 个节点上运行(DaemonSet)
- **Output:** 通过 HTTP webhook 输出 JSON → Argus 代理
- **Test:** `cat /etc/shadow` 在容器中 → <1ms 内检测到,标记为 MITRE T1555
- **Custom rules:** 生产环境使用 shell,出站连接,/etc 写入,curl/wget,特权提升
**为何为 Argus 选择 Falco:** Argus 需要一个低层级事件流,以便用 AI 代理进行推理。Falco 位于 syscall 层——在应用程序之下,在容器运行时之下——因此能捕获应用程序级日志完全遗漏的内容:意外的 shell 启动、对敏感路径的文件读取,以及本应静默的工作负载的出站连接。结构化的 JSON 输出直接馈送到代理 webhook,提供带有 MITRE ATT&CK 标签的机器可读事件,无需日志抓取或解析——只需一个代理可以处理的清晰信号。
### Kyverno — 准入控制
- **Status:** ✅ 运行中(v1.17.1)
- **Namespace:** kyverno
- **Mode:** Enforce(在准入阶段阻止不符合策略的工作负载)
- **Policies:**
- `disallow-root-containers` — 拒绝未设置 runAsNonRoot=true 的 Pod
- `require-resource-limits` — 拒绝缺少 CPU/内存限制的资源
- `approved-registries-only` — 拒绝来自非批准镜像仓库的镜像
### Cilium Network Policies — 零信任网络分段
- **Status:** ✅ 已应用
- **Model:** 默认拒绝入站,显式允许
- **Rules:**
- `prod` 和 `staging` 命名空间:默认拒绝所有入站流量
- `monitoring` 命名空间:允许从 prod/staging 抓取指标
- `argus-system` 命名空间:允许访问 prod/staging 以进行代理修复
- 跨命名空间流量:被阻止并在 Hubble UI 中显示为丢弃的流量
## 堆栈
| Layer | Tool | Why |
|---|---|---|
| Local cluster | k3s 在 OrbStack VMs 上运行 | 轻量级、ARM 原生、生产级拓扑 |
| CNI | Cilium + Hubble | eBPF 原生,替换 kube-proxy,提供 L7 网络观测能力 |
| Runtime security | Falco | CNCF 毕业,syscall 级威胁检测,结构化 JSON 事件 |
| Admission control | Kyverno | K8s 原生策略即代码,在部署前拒绝不符合策略的工作负载 |
| mTLS | Linkerd | 自动零信任服务加密,比 Istio 更轻量 |
| Metrics | Prometheus | 行业标准的抓取与告警 |
| Logs | Loki + Promtail | 轻量级日志聚合,Grafana 原生集成 |
| Dashboards | Grafana | 统一观测性 — 指标、日志、安全事件 |
| AI Agent | Python + Claude API | 丰富 Falco 告警的集群上下文,评估威胁严重性并路由修复操作 |
| UI | React + Tailwind | 实时事件流、人工审批队列、代理聊天 |
## 模块
| Module | Description | Status |
|---|---|---|
| 1 — Cluster Foundation | OrbStack VMs、k3s、Cilium、Hubble | ✅ 已完成 |
| 2 — Security Layers | Falco、Kyverno、CiliumNetworkPolicy | 🔨 进行中 |
| 3 — Observability Stack | Prometheus、Grafana、Loki | ⏳ 待处理 |
| 4 — AI Agent Engine | Falco webhook → 上下文丰富 → Claude → 动作路由 | ⏳ 待处理 |
| 5 — Command & Control UI | React 仪表盘、审批队列、代理聊天 | ⏳ 待处理 |
## 工作原理
[fill in after agent is built]
## 本地设置
### 先决条件
- macOS(Apple Silicon M 系列)
- 已安装 OrbStack(`brew install orbstack`)
- CLI 工具:`brew install kubectl helm k3sup cilium-cli hubble k9s`
### 启动集群
```
make cluster-up
```
这将配置 3 个 OrbStack VM,安装 k3s,部署带有 eBPF 的 Cilium(替换 kube-proxy),启用 Hubble 并创建所有命名空间。
### 验证
```
make cluster-status
cilium hubble ui
```
## 架构决策
参见 [docs/decisions/](docs/decisions/) 了解每个工具选择的理由。
标签:AI推理代理, AMSI绕过, APT组织, Argus, Chrome Headless, Cilium, Cloudflare, CSV导出, DevSecOps, Docker镜像, Falco, Hubble, K3s, Kubernetes安全, Lerna, MITRE ATT&CK, NPM, StruQ, Web截图, 上游代理, 威胁检测, 实时响应, 容器安全, 敏感词过滤, 模块化设计, 策略执行, 网络流量观测, 网络策略, 自动化修复, 自定义请求头, 零信任网络