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 ![Hubble UI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f3598d0077090218.png) ## 安全状态 ### 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截图, 上游代理, 威胁检测, 实时响应, 容器安全, 敏感词过滤, 模块化设计, 策略执行, 网络流量观测, 网络策略, 自动化修复, 自定义请求头, 零信任网络