返回顶部
d

data-leak-detector数据泄露检测

数据泄露检测工具。Use when user wants to scan skills, files, or folders for potential data leaks, privacy risks, or suspicious behavior. Detects network calls, file access, process spawning, and environment variable access. 数据安全、隐私检测、安全审计。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
136
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

data-leak-detector

技能名称: data-leak-detector
详细描述:

数据泄露检测器

扫描技能、文件和文件夹,以发现潜在的数据泄露和隐私风险。

特性

  • - 🔍 静态分析:扫描 SKILL.md 中的可疑模式
  • 🌐 网络检测:检测外部 API 调用
  • 📁 文件访问:检测文件读写操作
  • 🔄 进程检测:检测子进程生成
  • 🔐 环境变量访问:检测环境变量访问
  • 📊 风险评分:0-100 风险评分及建议

风险等级

等级颜色含义
🟢 低绿色安全,无需担忧
🟡 中
黄色 | 建议审查 | | 🔴 高 | 红色 | 需要谨慎 |

检测模式

网络风险

  • - curl/wget 调用
  • requests/httpx 使用
  • 外部 API 端点
  • WebSocket 连接

文件风险

  • - 文件读写操作
  • 目录遍历
  • 敏感文件访问
  • 临时文件创建

进程风险

  • - subprocess 调用
  • os.system 使用
  • Shell 命令执行
  • 进程生成

环境变量风险

  • - 环境变量访问
  • 配置文件读取
  • 凭据访问

触发条件

  • - 检查这个skill安全吗 / Check if this skill is safe
  • 扫描数据泄露 / Scan for data leaks
  • 这个skill有没有风险 / Does this skill have risks
  • data-leak-detector

Python 代码

python
import os
import re
import json
from pathlib import Path

class DataLeakDetector:
def init(self):
self.patterns = {
network: {
high: [
rcurl\s+,
rwget\s+,
rrequests\.(get|post|put|delete),
rhttp[s]?://,
rurllib\.request,
rhttpx\.,
rwebsocket,
],
medium: [
rfetch\(,
raxios\.,
]
},
file_access: {
high: [
ropen\s*\(,
ros\.remove,
ros\.rmdir,
rshutil\.rmtree,
],
medium: [
rreadFile,
rwriteFile,
ros\.path\.exists,
rglob\.,
]
},
process: {
high: [
rsubprocess\.,
ros\.system,
ros\.popen,
rexec\(,
reval\(,
],
medium: [
rPopen,
rcall\(,
]
},
env_access: {
high: [
ros\.environ,
ros\.getenv,
r\$[A-Z_]+,
],
medium: [
rconfig\[,
rsecrets\[,
]
}
}

def scan_file(self, filepath):
扫描单个文件以发现风险

risks = []

try:
with open(filepath, r, encoding=utf-8) as f:
content = f.read()
except:
return risks

for category, levels in self.patterns.items():
for level, patterns in levels.items():
for pattern in patterns:
matches = re.finditer(pattern, content, re.IGNORECASE)
for match in matches:
line_num = content[:match.start()].count(\n) + 1
risks.append({
category: category,
level: level,
pattern: pattern,
line: line_num,
match: match.group()[:50]
})

return risks

def scanskill(self, skillpath):
扫描整个技能以发现风险

skillpath = Path(skillpath)

all_risks = []
files_scanned = 0

for ext in [.md, .py, .js, .ts]:
for filepath in skill_path.rglob(f*{ext}):
risks = self.scan_file(str(filepath))
for risk in risks:
risk[file] = str(filepath.relativeto(skillpath))
all_risks.extend(risks)
files_scanned += 1

return allrisks, filesscanned

def calculateriskscore(self, risks):
计算总体风险评分 (0-100)

if not risks:
return 0

score = 0
for risk in risks:
if risk[level] == high:
score += 20
elif risk[level] == medium:
score += 10

return min(score, 100)

def generatereport(self, skillpath, risks, files_scanned):
生成风险评估报告

riskscore = self.calculaterisk_score(risks)

if risk_score <= 20:
risk_level = 🟢 低
recommendation = 可安全使用
elif risk_score <= 50:
risk_level = 🟡 中
recommendation = 安装前请审查
else:
risk_level = 🔴 高
recommendation = 需要谨慎

# 按类别分组
by_category = {}
for risk in risks:
cat = risk[category]
if cat not in by_category:
by_category[cat] = []
by_category[cat].append(risk)

report = []
report.append(f{=*60})
report.append(f数据泄露检测器 - 安全报告)
report.append(f{=*60})
report.append(f)
report.append(f技能: {os.path.basename(skill_path)})
report.append(f扫描文件数: {files_scanned})
report.append(f发现风险总数: {len(risks)})
report.append(f)
report.append(f风险评分: {riskscore}/100 ({risklevel}))
report.append(f建议: {recommendation})
report.append(f)

# 类别细分
report.append(f{=*60})
report.append(f风险细分)
report.append(f{=*60})

for category, categoryrisks in bycategory.items():
high = len([r for r in category_risks if r[level] == high])
medium = len([r for r in category_risks if r[level] == medium])
report.append(f)
report.append(f{category.upper()}:)
report.append(f 高: {high} | 中: {medium})

for risk in category_risks[:3]: # 显示前3个
report.append(f - [{risk[level].upper()}] {risk[match]} (行 {risk[line]}))

# 建议
report.append(f)
report.append(f{=*60})
report.append(f建议)
report.append(f{=*60})

if network in by_category:
report.append(f- 审查网络调用:验证目标地址)
if fileaccess in bycategory:
report.append(f- 审查文件访问:检查敏感文件)
if process in by_category:
report.append(f- 审查子进程调用:验证命令)
if envaccess in bycategory:
report.append(f- 审查环境变量访问:检查凭据访问)

return \n.join(report)

使用示例

detector = DataLeakDetector()

扫描技能

risks, filesscanned = detector.scanskill(/path/to/skill) report = detector.generatereport(/path/to/skill, risks, filesscanned) print(report)

使用示例

用户: 检查这个skill安全吗
代理: 扫描 SKILL.md 并生成风险报告

用户: 扫描我的skills有没有数据泄露
代理: 扫描所有已安装的技能

用户: 这个skill有没有网络访问
代理: 重点关注网络风险



备注

  • - 仅限静态分析(无运行时监控)
  • 快速扫描(秒级)
  • 无外部 API 调用
  • 跨平台兼容

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 data-leak-detector-1775969701 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 data-leak-detector-1775969701 技能

通过命令行安装

skillhub install data-leak-detector-1775969701

下载

⬇ 下载 data-leak-detector v1.0.0(免费)

文件大小: 4.07 KB | 发布时间: 2026-4-13 09:58

v1.0.0 最新 2026-4-13 09:58
数据泄露检测工具:静态分析,检测网络/文件/进程/环境变量风险,生成安全报告

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部