aragossa/pii-shield

GitHub: aragossa/pii-shield

面向 Kubernetes 的零代码日志脱敏 Sidecar,通过熵分析和确定性哈希在日志离开 Pod 前自动清洗敏感信息,助力 GDPR/SOC2 合规。

Stars: 45 | Forks: 3

# PII-Shield 🛡️ **面向 Kubernetes 的零代码日志清洗 Sidecar。** 通过在日志离开 Pod *之前* 编辑 PII,防止数据泄露 (GDPR/SOC2)。 ![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg) ![Docker Pulls](https://img.shields.io/docker/pulls/thelisdeep/pii-shield) ![Go Report Card](https://goreportcard.com/badge/github.com/aragossa/pii-shield?v=1) ![Go Reference](https://pkg.go.dev/badge/github.com/aragossa/pii-shield.svg) ![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5553d83752031326.svg) ![Coverage Status](https://codecov.io/gh/aragossa/pii-shield/branch/main/graph/badge.svg) ![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/aragossa/pii-shield?sort=semver) “别让 PII 毒害你的 AI 模型。” PII-Shield 确保敏感数据永远不会进入你的训练数据集,让你免受 GDPR 强制要求下的模型重新训练之苦。 ## 为什么选择 PII-Shield? 开发者经常忘记屏蔽敏感数据。Fluentd/Logstash 中的传统正则过滤器速度慢、难以维护,并且会消耗日志聚合器上昂贵的 CPU 资源。 **PII-Shield 就驻留在你的应用容器旁:** - **生产就绪:** 为 Kubernetes Sidecar 优化,具有**超低内存分配**(热路径上零 GC 开销)和确定性的 O(1) 正则匹配。 - **上下文感知熵分析:** 即使没有键名,也能通过分析上下文关键词检测高熵机密(例如 `Error: ... 44saCk9...`)。 - **自定义正则规则:** 对结构化数据(UUID、ID)进行确定性编辑,覆盖熵检查,确保已知模式的 100% 合规性。 - **100% 准确率:** 针对“野蛮”压力测试进行了验证,包括二进制垃圾数据、JSON 嵌套和多语言日志。 - **确定性哈希:** 用唯一的哈希值替换机密(例如 `[HIDDEN:a1b2c]`),允许 QA 在不查看原始数据的情况下关联错误。 - **即插即用:** 无需代码更改。适用于任何语言(Node, Python, Java, Go)。 - **白名单支持:** 使用 `PII_SAFE_REGEX_LIST` 显式允许安全模式(例如 git hashes, system IDs),以防止误报。 ## 信赖用户 **GuardSpine** (AI 治理内核) 集成了 PII-Shield 的 **In-Process WASM**,在其 Node.js 和 Python 代理内部直接清洗敏感证据链。 ## 性能考量 虽然 PII-Shield 经过了高度优化,但对复杂日志的深度检查仍需仔细关注配置。 - **文本日志:** 极快 (>100k 行/秒)。 - **JSON 日志:** 零分配解析(无 `encoding/json` 开销)。扫描器手动解析 JSON 结构,以确保高吞吐量 (~7MB/s) 且无内存峰值。 - **建议:** 适用于高吞吐量场景。我们使用递归保护措施来防止深度嵌套 JSON 上的堆栈溢出。 ## 安装 ### Docker 从 Docker Hub 获取最新的轻量级镜像: ``` docker pull thelisdeep/pii-shield:latest ``` ### 从源码构建 你可以直接从源代码构建二进制文件: ``` go build -o pii-shield ./cmd/cleaner/main.go ``` ## 配置 请参阅 [CONFIGURATION.md](CONFIGURATION.md) 获取完整的环境变量列表,包括: - `PII_SALT`:自定义 HMAC salt(生产环境必需)。 - `PII_ADAPTIVE_THRESHOLD`:启用动态熵基线。 - `PII_DISABLE_BIGRAM_CHECK`:针对非英语日志进行优化。 - `PII_CUSTOM_REGEX_LIST`:用于确定性编辑的自定义正则规则。 - `PII_SAFE_REGEX_LIST`:要忽略的白名单正则规则(匹配项按原样返回)。 ### 熵灵敏度表(默认阈值:3.6) | 熵值 | 数据类型 | 示例 | |---------|-----------|---------| | **0.0 - 3.0** | 常用词,重复字符 | `password`, `admin`, `111111` | | **3.0 - 3.6** | 驼峰式命名,部分哈希 | `ProgramCampaignInstanceJob`, `8f3a11b2c` | | **3.6 - 4.5** | 路径,UUID,弱密码 | `/opt/application/runtime`, `P@ssw0rd2026!` | | **4.5 - 5.0** | 中等强度 Token | `E8s9d_2kL1` | | **5.0+** | 高熵密钥 | (SHA-256, API Keys) | ## 快速开始 1. 本地测试 (CLI) 你可以通过管道将任何日志输出传递给 PII-Shield,以立即查看其效果: ``` # 模拟包含敏感密码的日志 echo "Error: User password=MySecretPass123! failed login" | docker run -i --rm thelisdeep/pii-shield:latest # 输出:Error: User password=[HIDDEN:8f3a11] failed login ``` 2. Kubernetes (Sidecar 模式) 要将 PII-Shield 用作应用程序的管道包装器,请使用 `initContainer` 将二进制文件复制到共享卷中。 ``` apiVersion: v1 kind: Pod metadata: name: secure-app spec: volumes: - name: bin-dir emptyDir: {} # 1. Copy the PII-Shield binary to a shared volume initContainers: - name: install-shield image: thelisdeep/pii-shield:latest command: ["cp", "/bin/pii-shield", "/opt/bin/pii-shield"] volumeMounts: - name: bin-dir mountPath: /opt/bin # 2. Run your app and pipe logs through PII-Shield containers: - name: my-app image: my-app:1.0 command: ["/bin/sh", "-c"] # Pipe stderr/stdout through the sanitizer args: ["./start-app.sh 2>&1 | /opt/bin/pii-shield"] volumeMounts: - name: bin-dir mountPath: /opt/bin ``` ## 验证 该项目已通过全面的套件验证: 1. **单元测试**:覆盖边缘情况、多语言支持和 JSON 完整性。 2. **模糊测试**:原生 Go 模糊测试确保针对无效输入的崩溃安全性。 3. **冒烟测试**:`./run_smoke.sh` 验证混合工作负载下的 100% 检测准确率。 ## 许可证 根据 Apache 2.0 许可证分发。有关更多信息,请参阅 `LICENSE`。
标签:AI 训练安全, Docker, EVTX分析, GDPR, Go, PII, Ruby工具, Sidecar, SOC2, 大语言模型安全, 子域名突变, 安全助手, 安全合规, 安全防御评估, 对抗攻击, 敏感信息检测, 数据泄露防护, 日志处理, 日志审计, 日志脱敏, 机密管理, 熵分析, 确定性哈希, 网络代理, 网络安全, 网络安全审计, 网络探测, 请求拦截, 隐私保护, 零代码