Skip to content

数据防泄漏 (dlp)

Headless 命令 — 不依赖桌面 GUI,直接使用核心包运行。适用于服务器、CI/CD、容器化等无桌面环境。

核心特性

  • 🔍 内容扫描: 实时扫描内容中的敏感数据,匹配正则和关键词策略
  • 🚨 事件管理: 查看所有 DLP 违规事件,按渠道和严重级别过滤
  • 事件解决: 对违规事件进行审核和关闭处理
  • 📊 DLP 统计: 扫描次数、拦截次数、告警次数、事件总数等指标
  • 📜 策略管理: 创建、列出和删除 DLP 策略,支持自定义规则

概述

ChainlessChain CLI 数据防泄漏(DLP)模块提供内容级别的敏感数据保护。scan 命令根据已配置的策略扫描内容,匹配正则表达式和关键词规则,根据策略配置执行 allow(放行)、alert(告警)、block(拦截)或 quarantine(隔离)操作。

每次扫描命中策略都会生成事件记录。incidents 查看所有违规事件,resolve 对事件进行审核关闭。stats 提供全局统计。policy 子命令管理 DLP 策略的创建、列表和删除。

命令参考

dlp scan — 扫描内容

bash
chainlesschain dlp scan <content>
chainlesschain dlp scan "用户密码是 p@ssw0rd123" -c email -u user01
chainlesschain dlp scan "信用卡号 4111-1111-1111-1111" --json

扫描内容是否违反 DLP 策略。返回是否放行、执行的动作、匹配策略数和事件列表。

dlp incidents — 查看事件

bash
chainlesschain dlp incidents
chainlesschain dlp incidents -c email -s high
chainlesschain dlp incidents --json

列出所有 DLP 违规事件,支持按渠道和严重级别过滤。

dlp resolve — 解决事件

bash
chainlesschain dlp resolve <incident-id>
chainlesschain dlp resolve inc-001 -r "确认为误报,已排除"

关闭指定违规事件,附带解决说明。

dlp stats — DLP 统计

bash
chainlesschain dlp stats
chainlesschain dlp stats --json

显示 DLP 统计:扫描次数、拦截次数、告警次数、事件总数、未解决事件数。

dlp policy create — 创建策略

bash
chainlesschain dlp policy create <name>
chainlesschain dlp policy create "信用卡检测" \
  -p "\d{4}-\d{4}-\d{4}-\d{4}" \
  -k "visa,mastercard" \
  -a block -s high

创建 DLP 策略,指定正则模式、关键词、动作和严重级别。

动作类型:allow(放行)、alert(告警)、block(拦截)、quarantine(隔离)。

dlp policy list — 列出策略

bash
chainlesschain dlp policy list
chainlesschain dlp policy list --json

列出所有 DLP 策略及其配置。

dlp policy delete — 删除策略

bash
chainlesschain dlp policy delete <policy-id>
chainlesschain dlp policy delete pol-001

删除指定 DLP 策略。

数据库表

表名说明
dlp_incidents违规事件(渠道、用户、严重级别、动作、匹配内容、解决状态)
dlp_policiesDLP 策略(名称、正则模式、关键词、动作、严重级别、启用状态)

系统架构

用户命令 → dlp.js (Commander) → dlp-engine.js

                ┌─────────────────────┼─────────────────────┐
                ▼                     ▼                     ▼
           内容扫描              事件管理               策略引擎
     (正则+关键词匹配)      (记录/查看/解决)      (创建/列出/删除)
                ▼                     ▼                     ▼
          dlp_policies         dlp_incidents          dlp_policies

关键文件

  • packages/cli/src/commands/dlp.js — 命令实现
  • packages/cli/src/lib/dlp-engine.js — DLP 引擎库

测试

bash
npx vitest run __tests__/unit/dlp-engine.test.js
# 25 tests, all pass

使用示例

场景 1:配置策略并扫描

bash
# 创建信用卡检测策略
chainlesschain dlp policy create "信用卡号检测" \
  -p "\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}" \
  -a block -s high

# 创建密码泄露策略
chainlesschain dlp policy create "密码检测" \
  -k "password,密码,secret" \
  -a alert -s medium

# 扫描内容
chainlesschain dlp scan "请将密码发送到 email"
chainlesschain dlp scan "卡号 4111-1111-1111-1111" --json

场景 2:事件管理

bash
# 查看所有高严重级别事件
chainlesschain dlp incidents -s high

# 解决误报事件
chainlesschain dlp resolve inc-abc123 \
  -r "确认为测试数据,非真实信用卡号"

# 查看统计
chainlesschain dlp stats --json

故障排查

症状可能原因解决方案
扫描总是放行无策略配置先使用 dlp policy create 创建策略
"Incident not found"事件 ID 不存在使用 dlp incidents 查看有效事件 ID
策略不生效策略已禁用检查策略 enabled 状态
正则匹配失败模式语法错误验证正则表达式语法

安全考虑

  • 实时扫描: 内容在传输前即被检测,防止敏感数据外泄
  • 多级响应: 支持放行、告警、拦截、隔离四种响应级别
  • 事件审计: 所有违规事件完整记录,支持事后审计
  • 策略灵活性: 支持正则表达式和关键词的组合匹配规则

相关文档

基于 MIT 许可发布