aragossa/pii-shield
GitHub: aragossa/pii-shield
面向 Kubernetes 的零代码日志脱敏 Sidecar,通过熵分析和确定性哈希在日志离开 Pod 前自动清洗敏感信息,助力 GDPR/SOC2 合规。
Stars: 45 | Forks: 3
# PII-Shield 🛡️
**面向 Kubernetes 的零代码日志清洗 Sidecar。**
通过在日志离开 Pod *之前* 编辑 PII,防止数据泄露 (GDPR/SOC2)。







“别让 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, 大语言模型安全, 子域名突变, 安全助手, 安全合规, 安全防御评估, 对抗攻击, 敏感信息检测, 数据泄露防护, 日志处理, 日志审计, 日志脱敏, 机密管理, 熵分析, 确定性哈希, 网络代理, 网络安全, 网络安全审计, 网络探测, 请求拦截, 隐私保护, 零代码