vsenatorov/auditvision

GitHub: vsenatorov/auditvision

面向 OpenShift 和 Kubernetes 的实时审计日志浏览器,通过集群内 AI 模型对操作事件进行本地风险评分,帮助企业实现合规审计与操作追踪。

Stars: 17 | Forks: 1

# Audit Radar

Audit Radar

面向 OpenShift 和 Kubernetes 的实时审计日志浏览器
谁在什么时候做了什么 —— 横跨您的整个集群。具备 AI 风险评分和登录跟踪功能。

🌐 audit-radar.com · Docker Hub · Apache 2.0

## 截图 ![Audit Radar — 实时事件流](https://static.pigsec.cn/wp-content/uploads/repos/cas/7d/7d2bc70cbd1d37de1d9f80777d9efdb2fc4d8e53949f0b659ba761b6867e9911.png) *带有 AI 风险评估的实时审计事件流 —— OpenShift 集群* ## 功能 | | | |---|---| | 🔴 **实时事件流** | 实时审计数据流 —— 按 actor、namespace、verb、resource、风险等级过滤 | | 🤖 **AI 风险评分** | 每个事件均由通过 Ollama 运行的 IBM Granite 3.2 评定为 HIGH/MEDIUM/LOW —— 在集群内运行,数据不外传 | | 🔐 **登录跟踪** | 专属的 Logins 标签页 —— 谁登录了、何时登录、从哪里登录、通过 Web Console 还是 CLI | | 🔔 **Webhook 告警** | Slack 和电子邮件规则 —— 例如:“在 namespace production 中执行 DELETE -> 向 #ops 发送告警” | | 📊 **摘要仪表板** | 汇总视图:热门 actor、风险事件、verb 分布 | | 📥 **CSV 导出** | 导出已过滤的事件用于合规报告 | | 🚫 **排除过滤器** | 在嘈杂的 service account 流量写入数据库之前将其丢弃 | | 🔑 **OCP OAuth2 SSO** | 使用 OpenShift 组(`audit-radar-admins`、`audit-radar-editors`、viewer)登录 | | 🔑 **Basic auth** | 用户名/密码后备方案 —— 同时适用于 OCP 和普通 Kubernetes | **SOC2 / PCI 就绪** —— 跨所有 namespace 的人员和系统操作完整审计追踪。 ## 架构 ``` kube-apiserver │ audit events ▼ CLF (OpenShift) Vector DaemonSet (Kubernetes/k3s) │ HTTP POST │ HTTP POST └──────────────┬───────────┘ ▼ audit-collector ──── PostgreSQL │ audit-analyzer (Granite 3.2 via Ollama) audit-alerter (Slack / email) │ audit-ui ◄──── OCP OAuth2 / basic auth │ browser ``` | 组件 | 镜像 | 描述 | |-----------|-------|-------------| | audit-ui | `hybrid2k3/audit-ui` | Go HTTP 服务器 —— UI、API、设置 | | audit-collector | `hybrid2k3/audit-collector` | 接收、标准化并存储事件 | | audit-analyzer | `hybrid2k3/audit-analyzer` | 通过 Granite 3.2 进行 AI 风险评分 | | audit-alerter | `hybrid2k3/audit-alerter` | 基于规则的 Slack/电子邮件告警 | | ollama | `ollama/ollama` | 本地 LLM 运行时 | | postgres | `registry.redhat.io/rhel9/postgresql-15` (OCP) / `postgres:15` (k8s) | 事件存储 | ## Helm Charts 两个独立的 chart —— 每个平台一个: | Chart | 路径 | 平台 | |-------|------|----------| | `audit-radar-openshift` | `Helm/audit-radar-openshift/` | Red Hat OpenShift 4.x | | `audit-radar-k8s` | `Helm/audit-radar-k8s/` | Kubernetes / k3s | ## 在 OpenShift 上安装 ### 前置条件 - OpenShift 4.x 且具有 cluster-admin 权限 - Helm 3.x ### 1. 安装 OpenShift Logging operator ``` oc apply -f deploy/04b-logging-operator.yaml # 等待约 2-3 分钟直到状态为 Succeeded oc get csv -n openshift-logging -w ``` ### 2. 部署 Audit Radar ``` helm install audit-radar ./Helm/audit-radar-openshift ``` 所有密钥(PostgreSQL 密码、OAuth 客户端密钥、Basic auth 密码)都会自动生成 —— 无需手动配置。 ### 3. 应用集群级别的配置 ``` # Cluster Log Forwarder — 将 audit 事件转发给 collector oc apply -f deploy/05-clf.yaml ``` ``` # APIServer audit policy — 启用字段级别的变更捕获 # ⚠ 警告:将触发 kube-apiserver pods 的滚动重启(约 5-10 分钟)。 # Cluster 保持可用。使用以下命令监控:oc get pods -n openshift-kube-apiserver -w oc apply -f deploy/07-apiserver-audit.yaml ``` ### 4. 添加管理员用户 ``` oc adm groups add-users audit-radar-admins ``` ### 5. 打开 UI ``` oc get route audit-ui -n audit-vision ``` ### 6. 获取管理员密码 ``` oc get secret audit-ui-basic-secret -n audit-vision \ -o jsonpath='{.data.AUTH_BASIC_PASS}' | base64 -d && echo ``` 使用 `admin` 及上述密码登录。 ## 在 Kubernetes / k3s 上安装 ### 前置条件 - Kubernetes 1.24+ 或 k3s 且具有 cluster-admin 权限 - Helm 3.x - 在 kube-apiserver 上启用审计日志记录 ### 1. 启用审计日志记录 Audit Radar 需要 kube-apiserver 将审计日志写入节点上的文件中。请参阅您所用发行版的文档。审计日志路径必须与 values 中的 `vector.auditLogPath`(默认为:`/var/log/k3s-audit.log`)相匹配。 `deploy-k8s/audit-policy.yaml` 中包含了示例审计策略。 ### 2. 部署 Audit Radar ``` helm install audit-radar ./Helm/audit-radar-k8s \ --set ui.ingress.host=audit.192.168.10.30.nip.io ``` ### 3. 打开 UI ``` kubectl get ingress -n audit-vision ``` ### 4. 获取管理员密码 ``` kubectl get secret audit-ui-basic-secret -n audit-vision \ -o jsonpath='{.data.AUTH_BASIC_PASS}' | base64 -d && echo ``` 使用 `admin` 及上述密码登录。 ## 默认凭据 Helm chart 会在安装时自动生成密码。请使用上方安装章节中的命令获取它,或者: ``` # OpenShift oc get secret audit-ui-basic-secret -n audit-vision \ -o jsonpath='{.data.AUTH_BASIC_PASS}' | base64 -d && echo # Kubernetes kubectl get secret audit-ui-basic-secret -n audit-vision \ -o jsonpath='{.data.AUTH_BASIC_PASS}' | base64 -d && echo ``` 在**不使用 Helm** 安装时,默认凭据为 `admin` / `changeme` —— 请立即更改。 ## 角色映射 ### OpenShift | 来源 | 角色 | 权限 | |--------|------|--------| | OCP 组 `audit-radar-admins` | admin | 完全访问权限,包括设置 | | OCP 组 `audit-radar-editors` | editor | 告警规则管理,无设置权限 | | 任何经过认证的 OCP 用户 | viewer | 只读事件流 | | Basic auth 用户 | admin | 完全访问权限 | ``` oc adm groups add-users audit-radar-admins alice oc adm groups add-users audit-radar-editors bob ``` ### Kubernetes 单一 Basic auth 用户。具有独立角色的多用户支持需要 OIDC 提供商(Keycloak、Dex)。 ## 配置 ### 关键参数 —— OpenShift | 参数 | 默认值 | 描述 | |-----------|---------|-------------| | `collector.retentionDays` | `30` | 事件保留天数 | | `ui.auth.adminGroup` | `audit-radar-admins` | 具有 admin 角色的 OCP 组 | | `ollama.enabled` | `true` | 部署 AI 分析器 | | `ollama.model` | `granite3.2:2b` | 模型(约 1.5GB) | | `alerter.slack.webhookUrl` | `""` | Slack 入站 Webhook URL | ### 关键参数 —— Kubernetes | 参数 | 默认值 | 描述 | |-----------|---------|-------------| | `ui.ingress.host` | `audit.192.168.10.30.nip.io` | Ingress 主机名 —— **请修改此项** | | `vector.auditLogPath` | `/var/log/k3s-audit.log` | 宿主机上的审计日志路径 | | `ollama.enabled` | `true` | 部署 AI 分析器 | ### 禁用 AI 分析器(资源受限的集群) ``` helm install audit-radar ./Helm/audit-radar-k8s \ --set ollama.enabled=false \ --set analyzer.enabled=false ``` ## 排除过滤器 在 **Settings -> Exclusion Filters** 中丢弃嘈杂的 service account 流量。支持通配符匹配: ``` system:serviceaccount:cert-manager:* system:serviceaccount:openshift-* ``` 规则每 30 秒重载一次 —— 无需重启。 ## 升级 / 卸载 ``` # 升级 helm upgrade audit-radar ./Helm/audit-radar-openshift # or audit-radar-k8s # 卸载 — OpenShift helm uninstall audit-radar oc delete namespace audit-vision oc delete clusterrole audit-ui-groups-reader audit-ui-oauth-sync audit-vision-collector oc delete clusterrolebinding audit-ui-groups-reader audit-ui-oauth-sync audit-vision-collector oc delete oauthclient audit-radar # 卸载 — Kubernetes helm uninstall audit-radar kubectl delete namespace audit-vision kubectl delete clusterrole audit-vision-collector kubectl delete clusterrolebinding audit-vision-collector ``` ## Docker 镜像 | 镜像 | 链接 | |-------|------| | audit-ui | [hybrid2k3/audit-ui](https://hub.docker.com/r/hybrid2k3/audit-ui) | | audit-collector | [hybrid2k3/audit-collector](https://hub.docker.com/r/hybrid2k3/audit-collector) | | audit-analyzer | [hybrid2k3/audit-analyzer](https://hub.docker.com/r/hybrid2k3/audit-analyzer) | | audit-alerter | [hybrid2k3/audit-alerter](https://hub.docker.com/r/hybrid2k3/audit-alerter) | ## 许可证 Apache 2.0
标签:AI风险缓解, DevSecOps, EVTX分析, OpenShift, 上游代理, 审计日志, 日志审计, 测试用例, 请求拦截, 运维监控