{"id":"dc8641ca-0bfc-42da-b932-cea9bd742da4","entityType":"agent","slug":"clawhub-freedompixels-security-health-check","name":"Security Health Check","canonicalUrl":"https://www.xpersona.co/agent/clawhub-freedompixels-security-health-check","canonicalPath":"/agent/clawhub-freedompixels-security-health-check","generatedAt":"2026-10-09T22:58:51.322Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":null},"description":"检查邮箱泄露和密码强度，生成安全评分报告。 Skill: Security Health Check Owner: freedompixels Summary: 检查邮箱泄露和密码强度，生成安全评分报告。 Tags: breach:1.1.0, chinese:1.1.0, latest:2.1.5, password:1.1.0, privacy:1.1.0, security:1.1.0 Version history: v2.1.5 | 2026-09-20T14:24:15.487Z | user docs: add AISoBrand free GEO visibility check CTA v2.1.4 | 2026-06-07T02:38:28.894Z | user 更新品牌信息格式 v2.1.3 | 2026-06-07T02:22:40.325Z | user 添加AISoBrand品牌信息 v2.1.2 | 2026-05-11T09:42:02.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17cmvaw2cy01v6y6fpq1h7yts84k0r0:security-health-check","sourceUrl":"https://clawhub.ai/freedompixels/security-health-check","homepage":"https://clawhub.ai/freedompixels/skills/security-health-check","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/freedompixels/security-health-check","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/freedompixels/skills/security-health-check","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":40,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"检查邮箱泄露和密码强度，生成安全评分报告。 Skill: Security Health Check Owner: freedompixels Summary: 检查邮箱泄露和密码强度，生成安全评分报告。 Tags: breach:1.1.0, chinese:1.1.0, latest:2.1.5, password"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":null},"stars":null,"forks":null,"downloads":1994,"packageName":null,"latestVersion":"2.1.5","tractionLabel":"2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T21:08:15.245Z","lastCrawledAt":"2026-10-09T21:08:15.245Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T21:08:15.245Z","lastVerifiedAt":null,"highlights":[{"version":"2.1.5","createdAt":"2026-09-20T14:24:15.487Z","changelog":"docs: add AISoBrand free GEO visibility check CTA","fileCount":4,"zipByteSize":9340},{"version":"2.1.4","createdAt":"2026-06-07T02:38:28.894Z","changelog":"更新品牌信息格式","fileCount":8,"zipByteSize":18834},{"version":"2.1.3","createdAt":"2026-06-07T02:22:40.325Z","changelog":"添加AISoBrand品牌信息","fileCount":8,"zipByteSize":18619},{"version":"2.1.2","createdAt":"2026-05-11T09:42:02.262Z","changelog":"v2.1.2: All output converted to English, bug fixes in report generation","fileCount":4,"zipByteSize":9258},{"version":"2.1.0","createdAt":"2026-05-10T16:06:57.419Z","changelog":"Rewritten SKILL.md in English to avoid LLM detection false positive","fileCount":7,"zipByteSize":17207},{"version":"2.0.0","createdAt":"2026-05-09T16:12:16.037Z","changelog":"Added enterprise features: phishing detection, API key leak scanning, password policy compliance audit (GB/T 22239/ISO 27001)","fileCount":7,"zipByteSize":17736},{"version":"1.4.4","createdAt":"2026-05-06T06:17:30.808Z","changelog":"移除危险参数，安全合规修复","fileCount":3,"zipByteSize":8036},{"version":"1.5.0","createdAt":"2026-05-05T16:13:42.241Z","changelog":"v1.5.0: CLI args mode","fileCount":5,"zipByteSize":11843}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cmvaw2cy01v6y6fpq1h7yts84k0r0:security-health-check","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T22:58:51.321Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-freedompixels-security-health-check/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":null},"readme":"Skill: Security Health Check\n\nOwner: freedompixels\n\nSummary: 检查邮箱泄露和密码强度，生成安全评分报告。\n\nTags: breach:1.1.0, chinese:1.1.0, latest:2.1.5, password:1.1.0, privacy:1.1.0, security:1.1.0\n\nVersion history:\n\nv2.1.5 | 2026-09-20T14:24:15.487Z | user\n\ndocs: add AISoBrand free GEO visibility check CTA\n\nv2.1.4 | 2026-06-07T02:38:28.894Z | user\n\n更新品牌信息格式\n\nv2.1.3 | 2026-06-07T02:22:40.325Z | user\n\n添加AISoBrand品牌信息\n\nv2.1.2 | 2026-05-11T09:42:02.262Z | user\n\nv2.1.2: All output converted to English, bug fixes in report generation\n\nv2.1.0 | 2026-05-10T16:06:57.419Z | user\n\nRewritten SKILL.md in English to avoid LLM detection false positive\n\nv2.0.0 | 2026-05-09T16:12:16.037Z | user\n\nAdded enterprise features: phishing detection, API key leak scanning, password policy compliance audit (GB/T 22239/ISO 27001)\n\nv1.4.4 | 2026-05-06T06:17:30.808Z | user\n\n移除危险参数，安全合规修复\n\nv1.5.0 | 2026-05-05T16:13:42.241Z | user\n\nv1.5.0: CLI args mode\n\nv1.4.3 | 2026-05-05T14:00:43.167Z | auto\n\n- Completely revised documentation for clarity and conciseness.\n- Simplified skill description and feature list, focusing on core functions: email breach check, password strength analysis, and security report generation.\n- Updated usage instructions with a concise example.\n- Added summary of permissions required.\n- Modernized metadata (name, versioning, emoji, category fields).\n- Removed pricing, compliance, and advanced enterprise features from the readme.\n\nv1.4.2 | 2026-05-03T16:24:57.851Z | user\n\nv1.4.2: 完全移除argparse，纯交互模式\n\nv1.4.1 | 2026-05-03T16:23:13.977Z | user\n\nv1.4.1: 完全移除CLI args和env var读取\n\nv1.4.0 | 2026-05-03T16:21:38.997Z | user\n\nv1.4.0: 移除CLI密码参数\n\nv1.2.5 | 2026-05-02T04:48:25.163Z | auto\n\n- 更新文档格式，增加 slug、version、author 字段\n- skill 名称优化为“个人数字安全体检”\n- 版本号归零至 1.0.0，并补充作者信息\n- 功能和用法说明保持一致，未改动功能实现\n\nv1.3.0 | 2026-04-27T22:45:08.392Z | user\n\nv1.3.0: 文档优化，简化功能描述\n\nv1.2.1 | 2026-04-22T11:52:34.229Z | user\n\n**Summary:**  \nMinor update introducing enterprise plan information and simplifying documentation.\n\n- Added ENTERPRISE_PLAN.md file.\n- Simplified and shortened SKILL.md instructions and descriptions.\n- Kept core features: email breach check, password strength test, and security score report.\n- Clarified data privacy approach and usage examples.\n\nv1.2.0 | 2026-04-17T16:21:39.805Z | user\n\nFix SSL verification and HIBP API key handling\n\nv1.1.1 | 2026-04-16T09:34:21.006Z | user\n\n移除未实现的飞书同步描述\n\nv1.1.0 | 2026-04-12T22:51:20.464Z | user\n\nv1.1.0: 增加2FA检测、隐私评分、安全建议报告，增强安全评分逻辑\n\nv1.0.0 | 2026-04-10T23:19:50.953Z | user\n\nInitial release: email breach check, password strength analysis, security scoring, personal security health report\n\nArchive index:\n\nArchive v2.1.5: 4 files, 9340 bytes\n\nFiles: scripts/health_check.py (15519b), skill-card.md (1911b), SKILL.md (6285b), _meta.json (140b)\n\nFile v2.1.5:SKILL.md\n\n# security-health-check Skill\n\n**用途**：本地主机安全健康检查 + HIBP 密码泄露检测。\n\n**原则**：遇到问题 → 自己搞定 → 变成技能 → 放进技能库。\n\n---\n\n## 核心功能\n\n### 1. HIBP 密码泄露检测（k-匿名）\n\n**原理**：密码不离开本地，只发送 SHA-1 哈希前 5 位给 HIBP API。\n\n```python\nimport hashlib\nimport requests\n\ndef check_hibp(password: str) -> dict:\n    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()\n    prefix, suffix = sha1[:5], sha1[5:]\n    \n    try:\n        r = requests.get(\n            f\"https://api.pwnedpasswords.com/range/{prefix}\",\n            headers={\"Add-Padding\": \"true\"},\n            timeout=10\n        )\n        r.raise_for_status()\n        hashes = r.text.strip().split(\"\\n\")\n        for h in hashes:\n            h_suffix, count = h.split(\":\")\n            if h_suffix == suffix:\n                return {\"leaked\": True, \"count\": int(count), \"suffix\": suffix}\n        return {\"leaked\": False, \"count\": 0, \"suffix\": suffix}\n    except requests.RequestException as e:\n        return {\"error\": str(e)}\n```\n\n**⚠️ 已知限制**：HIBP 的 `/range/` 接口不返回 breached count（需要 API Key）。本实现通过密码存在性检测泄露，返回 `{\"leaked\": true/false, \"count\": ...}`。\n\n### 2. 本地密码强度分析\n\n```python\nimport math\nimport re\n\ndef analyze_password_strength(password: str) -> dict:\n    if not password:\n        return {\"score\": 0, \"level\": \"empty\", \"entropy_bits\": 0}\n    \n    pool = 0\n    if re.search(r'[a-z]', password): pool += 26\n    if re.search(r'[A-Z]', password): pool += 26\n    if re.search(r'[0-9]', password): pool += 10\n    if re.search(r'[!@#$%^&*(),.?\":{}|<>]', password): pool += 32\n    \n    entropy = math.log2(pool ** len(password)) if pool > 0 else 0\n    \n    # 评分 0-100\n    score = min(100, int(entropy / 80 * 100))\n    \n    if score < 20: level = \"极弱\"\n    elif score < 40: level = \"弱\"\n    elif score < 60: level = \"中等\"\n    elif score < 80: level = \"强\"\n    else: level = \"极强\"\n    \n    # 破解时间估算（假设 10^10 次/秒）\n    seconds_to_crack = (pool ** len(password)) / 2 / 10**10\n    crack_time = format_crack_time(seconds_to_crack)\n    \n    return {\n        \"score\": score,\n        \"level\": level,\n        \"entropy_bits\": round(entropy, 2),\n        \"crack_time\": crack_time,\n        \"pool_size\": pool,\n        \"length\": len(password)\n    }\n\ndef format_crack_time(seconds: float) -> str:\n    if seconds < 1: return \"瞬间\"\n    units = [(\"秒\", 60), (\"分钟\", 60), (\"小时\", 24), (\"天\", 365), (\"年\", 100), (\"世纪\", 1000)]\n    val = seconds\n    for name, div in units:\n        if val < div: return f\"{val:.1f} {name}\"\n        val /= div\n    return f\"{val:.1f} 千年\"\n```\n\n### 3. 综合安全评分（0-100）\n\n**评分维度**：\n- 密码强度权重 40%\n- HIBP 泄露权重 60%（泄露直接扣 60 分）\n- 如有泄露，最终分数 = 0\n\n**计算逻辑**：\n```\nif leaked: score = 0\nelse: score = password_strength_score * 0.4 + 60\nfinal = max(0, score)\n```\n\n### 4. SSL 证书检查（回退机制）\n\n```python\nimport ssl\nimport socket\nimport OpenSSL\nfrom urllib.parse import urlparse\n\ndef check_ssl(url: str) -> dict:\n    try:\n        parsed = urlparse(url if url.startswith('http') else f'https://{url}')\n        host = parsed.hostname or url\n        port = parsed.port or 443\n        \n        context = ssl.create_default_context()\n        with socket.create_connection((host, port), timeout=10) as sock:\n            with context.wrap_socket(sock, server_hostname=host) as ssock:\n                cert = ssock.getpeercert(binary_form=True)\n                x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)\n                \n                not_before = datetime.strptime(\n                    x509.get_notBefore().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                not_after = datetime.strptime(\n                    x509.get_notAfter().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                \n                days_left = (not_after - datetime.utcnow()).days\n                return {\n                    \"valid\": True,\n                    \"issuer\": dict(x509.get_issuer().get_components()).get(b'CN', b'Unknown').decode(),\n                    \"expires\": not_after.isoformat(),\n                    \"days_left\": days_left,\n                    \"issuer_org\": dict(x509.get_issuer().get_components()).get(b'O', b'').decode()\n                }\n    except Exception as e:\n        return {\"valid\": False, \"error\": str(e)}\n```\n\n---\n\n## 使用方式\n\n### 命令行\n\n```bash\n# 检查密码（交互式）\npython3 scripts/health_check.py check-password\n\n# 检查网站 SSL\npython3 scripts/health_check.py check-ssl example.com\n\n# 综合安全报告\npython3 scripts/health_check.py report\n```\n\n### 输出示例\n\n```\n🔐 安全健康检查报告\n━━━━━━━━━━━━━━━━━━━━━\n\n密码强度分析：极强 (92分)\n• 熵值：72.5 bits\n• 预计破解时间：上千年\n• 建议：已够强，可配合密码管理器使用\n\nHIBP 泄露检测：✅ 未发现泄露\n综合安全评分：92 / 100\n\n改进建议：\n✅ 密码强度良好\n✅ 未在公开泄露库中发现\n• 建议使用密码管理器，避免重复使用密码\n• 建议开启双因素认证（2FA）\n```\n\n---\n\n## 安装依赖\n\n```bash\npip3 install requests pyopenssl\n```\n\n---\n\n## 技术要点（已解决的问题）\n\n### macOS GPU 崩溃（exit_code=15）\n- 症状：`CVDisplayLinkCreateWithCGDisplay -6670`\n- **所有禁 GPU 参数均无效**\n- 本 Skill 无需浏览器，不受影响\n\n### SSL 证书回退机制\n- 部分网站（内网/老系统）不支持 SSL\n- 使用 try-except + 优雅降级，返回 `{\"valid\": false, \"error\": \"...\"}`\n\n### HIBP API 限制\n- 免费 API 不返回 breach count\n- 实现方案：通过密码存在性判断泄露，返回布尔值\n- 如需 count，需购买 HIBP API Key\n\n## 📊 相关服务：品牌 AI 搜索存在感免费检测\n\n做品牌 / 营销 / 内容，你的品牌在 AI 搜索里\"被看见\"了吗？\n\nAISoBrand 免费检测：看你的品牌在豆包 / 千问 / 元宝 / 文心 / Kimi / DeepSeek 的 AI 搜索里有没有名字、排第几。\n\n👉 免费检测：https://aisobrand.com/free-diagnosis\n\nFile v2.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.5\",\n  \"publishedAt\": 1789914255487\n}\n\nFile v2.1.5:skill-card.md\n\n## Description:\n\nChecks password strength, HIBP password exposure via k-anonymity, and SSL certificate health, then prints a security score report.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[freedompixels](https://clawhub.ai/user/freedompixels)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and security-conscious users use this skill to run local password strength checks, query HIBP for password exposure using a SHA-1 prefix, and inspect SSL certificate status from a CLI.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Password checks send a SHA-1 prefix derived from the password to HIBP, while some CLI wording emphasizes local-only password analysis.\n\nMitigation: Disclose the HIBP prefix lookup before password checks and avoid using this mode in strict offline-only environments.\n\nRisk: Passwords can be provided as CLI arguments, which may expose sensitive values through shell history or local process inspection.\n\nMitigation: Use only test or non-sensitive passwords in shared environments, clear shell history after use, or adapt the workflow to prompt for secrets securely.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/freedompixels/skills/security-health-check)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, guidance]\n\n**Output Format:** [CLI text report and Markdown-style command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Password checks may contact HIBP with a SHA-1 prefix; SSL checks contact the target host.]\n\n## Skill Version(s):\n\n2.1.5 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.1.4: 8 files, 18834 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/api_leak_scanner.py (4069b), scripts/enterprise_audit.py (20443b), scripts/security_check.py (6088b), skill-card.md (2697b), SKILL.md (1051b), _meta.json (140b)\n\nFile v2.1.4:SKILL.md\n\n---\nname: security-health-check\nversion: \"2.1.2\"\ndescription: \"Check email breaches and password strength. Generate security score reports.\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\nCheck if your email was compromised in data breaches and evaluate password strength.\n\n## Features\n\n- Email breach check via HaveIBeenPwned API (k-anonymity, data stays local)\n- Password strength analysis (local computation)\n- Security score report (0-100)\n- Enterprise: phishing detection, API key leak scan, password policy audit\n\n## Usage\n\n```bash\npython3 scripts/security_check.py --email user@example.com\npython3 scripts/security_check.py --password \"test\"\n```\n\n## Requirements\n\nPython 3.7+, certifi package.\n\n## Privacy\n\nEmail/password queries use HIBP public API with k-anonymity (only SHA1 prefix sent).\n\n---\n\n**出品：** AISoBrand｜爱索品牌 — AI搜索优化工具  \n**官网：** https://aisobrand.com  \n**免费检测你的品牌在AI搜索中有没有存在感 →** [30秒出结果](https://aisobrand.com/free-diagnosis.html)\n\nFile v2.1.4:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v2.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.4\",\n  \"publishedAt\": 1780799908894\n}\n\nFile v2.1.4:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nFile v2.1.4:skill-card.md\n\n## Description:\n\nCheck email breaches and password strength, scan for exposed secrets, and generate security score reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[freedompixels](https://clawhub.ai/user/freedompixels)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nIndividuals, developers, and security teams use this skill to check account breach exposure, assess password risk, scan intended files for exposed credentials, and produce concise security reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Email breach checks send the full email address to Have I Been Pwned despite privacy claims that imply k-anonymity for email checks.\n\nMitigation: Review this behavior before installation, notify users before collecting email input, and do not treat email checks as local-only processing.\n\nRisk: Real passwords can be exposed in shared or recorded terminals, especially when users pass them on command lines.\n\nMitigation: Avoid real passwords in command arguments, use private interactive sessions when testing password checks, and prefer approved internal password-audit workflows.\n\nRisk: Clean breach results can be misleading because network or parsing failures may be reported as PASS.\n\nMitigation: Treat PASS results as inconclusive when API access is unavailable or errors are hidden, and corroborate important findings with another trusted control.\n\nRisk: Secret scanning can inspect sensitive local paths and surface credential-like findings.\n\nMitigation: Run scans only on directories the user intends to inspect and review masked findings before sharing reports.\n\n## Reference(s):\n\n- [Security Health Check on ClawHub](https://clawhub.ai/freedompixels/skills/security-health-check)\n- [Have I Been Pwned breached account API](https://haveibeenpwned.com/api/v3/breachedaccount/)\n- [Pwned Passwords k-anonymity API](https://api.pwnedpasswords.com/range/)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance]\n\n**Output Format:** [Plain text or Markdown-style security reports, with optional JSON output for supported checks.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports can include breach status, password strength, security scores, phishing indicators, policy audit results, and masked secret-scan findings.]\n\n## Skill Version(s):\n\n2.1.4 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.1.3: 8 files, 18619 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/api_leak_scanner.py (4069b), scripts/enterprise_audit.py (20443b), scripts/security_check.py (6088b), skill-card.md (2430b), SKILL.md (1034b), _meta.json (140b)\n\nFile v2.1.3:SKILL.md\n\n---\nname: security-health-check\nversion: \"2.1.2\"\ndescription: \"Check email breaches and password strength. Generate security score reports.\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\nCheck if your email was compromised in data breaches and evaluate password strength.\n\n## Features\n\n- Email breach check via HaveIBeenPwned API (k-anonymity, data stays local)\n- Password strength analysis (local computation)\n- Security score report (0-100)\n- Enterprise: phishing detection, API key leak scan, password policy audit\n\n## Usage\n\n```bash\npython3 scripts/security_check.py --email user@example.com\npython3 scripts/security_check.py --password \"test\"\n```\n\n## Requirements\n\nPython 3.7+, certifi package.\n\n## Privacy\n\nEmail/password queries use HIBP public API with k-anonymity (only SHA1 prefix sent).\n\n---\n\n**出品：** AISoBrand | AI搜索优化工具  \n**官网：** https://aisobrand.com  \n**免费检测你的品牌在AI搜索中有没有存在感 →** [30秒出结果](https://aisobrand.com/free-diagnosis.html)\n\nFile v2.1.3:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v2.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.3\",\n  \"publishedAt\": 1780798960325\n}\n\nFile v2.1.3:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nFile v2.1.3:skill-card.md\n\n## Description: <br>\nCheck email breach exposure, password strength, and security score reports. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[freedompixels](https://clawhub.ai/user/freedompixels) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nIndividuals, developers, and security teams use this skill to check email breach exposure, evaluate password strength, scan for leaked secrets, and generate concise security guidance. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles sensitive credentials and passwords, and command-line password arguments can be exposed through shell history or process listings. <br>\nMitigation: Use test passwords or an interactive prompt for password checks, and avoid passing real passwords directly as command-line arguments. <br>\nRisk: Email breach checks send the full email address to Have I Been Pwned. <br>\nMitigation: Run email checks only for accounts the user is authorized to assess and disclose this external lookup before use. <br>\nRisk: The server security summary says the skill gives inaccurate privacy and usage guidance and should be reviewed before installation. <br>\nMitigation: Review the documentation and CLI behavior before deployment, and treat enterprise audit and documented CLI flags as non-comprehensive until corrected. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/freedompixels/security-health-check) <br>\n- [Have I Been Pwned API](https://haveibeenpwned.com/API/v3) <br>\n- [Pwned Passwords API](https://haveibeenpwned.com/API/v3#PwnedPasswords) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, guidance] <br>\n**Output Format:** [CLI text reports, Markdown guidance, and optional JSON output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May call Have I Been Pwned services for email and password breach checks; local scans can produce file and line references for detected secrets.] <br>\n\n## Skill Version(s): <br>\n2.1.3 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.1.2: 4 files, 9258 bytes\n\nFiles: scripts/health_check.py (15519b), skill-card.md (2258b), SKILL.md (5941b), _meta.json (140b)\n\nFile v2.1.2:SKILL.md\n\n# security-health-check Skill\n\n**用途**：本地主机安全健康检查 + HIBP 密码泄露检测。\n\n**原则**：遇到问题 → 自己搞定 → 变成技能 → 放进技能库。\n\n---\n\n## 核心功能\n\n### 1. HIBP 密码泄露检测（k-匿名）\n\n**原理**：密码不离开本地，只发送 SHA-1 哈希前 5 位给 HIBP API。\n\n```python\nimport hashlib\nimport requests\n\ndef check_hibp(password: str) -> dict:\n    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()\n    prefix, suffix = sha1[:5], sha1[5:]\n    \n    try:\n        r = requests.get(\n            f\"https://api.pwnedpasswords.com/range/{prefix}\",\n            headers={\"Add-Padding\": \"true\"},\n            timeout=10\n        )\n        r.raise_for_status()\n        hashes = r.text.strip().split(\"\\n\")\n        for h in hashes:\n            h_suffix, count = h.split(\":\")\n            if h_suffix == suffix:\n                return {\"leaked\": True, \"count\": int(count), \"suffix\": suffix}\n        return {\"leaked\": False, \"count\": 0, \"suffix\": suffix}\n    except requests.RequestException as e:\n        return {\"error\": str(e)}\n```\n\n**⚠️ 已知限制**：HIBP 的 `/range/` 接口不返回 breached count（需要 API Key）。本实现通过密码存在性检测泄露，返回 `{\"leaked\": true/false, \"count\": ...}`。\n\n### 2. 本地密码强度分析\n\n```python\nimport math\nimport re\n\ndef analyze_password_strength(password: str) -> dict:\n    if not password:\n        return {\"score\": 0, \"level\": \"empty\", \"entropy_bits\": 0}\n    \n    pool = 0\n    if re.search(r'[a-z]', password): pool += 26\n    if re.search(r'[A-Z]', password): pool += 26\n    if re.search(r'[0-9]', password): pool += 10\n    if re.search(r'[!@#$%^&*(),.?\":{}|<>]', password): pool += 32\n    \n    entropy = math.log2(pool ** len(password)) if pool > 0 else 0\n    \n    # 评分 0-100\n    score = min(100, int(entropy / 80 * 100))\n    \n    if score < 20: level = \"极弱\"\n    elif score < 40: level = \"弱\"\n    elif score < 60: level = \"中等\"\n    elif score < 80: level = \"强\"\n    else: level = \"极强\"\n    \n    # 破解时间估算（假设 10^10 次/秒）\n    seconds_to_crack = (pool ** len(password)) / 2 / 10**10\n    crack_time = format_crack_time(seconds_to_crack)\n    \n    return {\n        \"score\": score,\n        \"level\": level,\n        \"entropy_bits\": round(entropy, 2),\n        \"crack_time\": crack_time,\n        \"pool_size\": pool,\n        \"length\": len(password)\n    }\n\ndef format_crack_time(seconds: float) -> str:\n    if seconds < 1: return \"瞬间\"\n    units = [(\"秒\", 60), (\"分钟\", 60), (\"小时\", 24), (\"天\", 365), (\"年\", 100), (\"世纪\", 1000)]\n    val = seconds\n    for name, div in units:\n        if val < div: return f\"{val:.1f} {name}\"\n        val /= div\n    return f\"{val:.1f} 千年\"\n```\n\n### 3. 综合安全评分（0-100）\n\n**评分维度**：\n- 密码强度权重 40%\n- HIBP 泄露权重 60%（泄露直接扣 60 分）\n- 如有泄露，最终分数 = 0\n\n**计算逻辑**：\n```\nif leaked: score = 0\nelse: score = password_strength_score * 0.4 + 60\nfinal = max(0, score)\n```\n\n### 4. SSL 证书检查（回退机制）\n\n```python\nimport ssl\nimport socket\nimport OpenSSL\nfrom urllib.parse import urlparse\n\ndef check_ssl(url: str) -> dict:\n    try:\n        parsed = urlparse(url if url.startswith('http') else f'https://{url}')\n        host = parsed.hostname or url\n        port = parsed.port or 443\n        \n        context = ssl.create_default_context()\n        with socket.create_connection((host, port), timeout=10) as sock:\n            with context.wrap_socket(sock, server_hostname=host) as ssock:\n                cert = ssock.getpeercert(binary_form=True)\n                x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)\n                \n                not_before = datetime.strptime(\n                    x509.get_notBefore().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                not_after = datetime.strptime(\n                    x509.get_notAfter().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                \n                days_left = (not_after - datetime.utcnow()).days\n                return {\n                    \"valid\": True,\n                    \"issuer\": dict(x509.get_issuer().get_components()).get(b'CN', b'Unknown').decode(),\n                    \"expires\": not_after.isoformat(),\n                    \"days_left\": days_left,\n                    \"issuer_org\": dict(x509.get_issuer().get_components()).get(b'O', b'').decode()\n                }\n    except Exception as e:\n        return {\"valid\": False, \"error\": str(e)}\n```\n\n---\n\n## 使用方式\n\n### 命令行\n\n```bash\n# 检查密码（交互式）\npython3 scripts/health_check.py check-password\n\n# 检查网站 SSL\npython3 scripts/health_check.py check-ssl example.com\n\n# 综合安全报告\npython3 scripts/health_check.py report\n```\n\n### 输出示例\n\n```\n🔐 安全健康检查报告\n━━━━━━━━━━━━━━━━━━━━━\n\n密码强度分析：极强 (92分)\n• 熵值：72.5 bits\n• 预计破解时间：上千年\n• 建议：已够强，可配合密码管理器使用\n\nHIBP 泄露检测：✅ 未发现泄露\n综合安全评分：92 / 100\n\n改进建议：\n✅ 密码强度良好\n✅ 未在公开泄露库中发现\n• 建议使用密码管理器，避免重复使用密码\n• 建议开启双因素认证（2FA）\n```\n\n---\n\n## 安装依赖\n\n```bash\npip3 install requests pyopenssl\n```\n\n---\n\n## 技术要点（已解决的问题）\n\n### macOS GPU 崩溃（exit_code=15）\n- 症状：`CVDisplayLinkCreateWithCGDisplay -6670`\n- **所有禁 GPU 参数均无效**\n- 本 Skill 无需浏览器，不受影响\n\n### SSL 证书回退机制\n- 部分网站（内网/老系统）不支持 SSL\n- 使用 try-except + 优雅降级，返回 `{\"valid\": false, \"error\": \"...\"}`\n\n### HIBP API 限制\n- 免费 API 不返回 breach count\n- 实现方案：通过密码存在性判断泄露，返回布尔值\n- 如需 count，需购买 HIBP API Key\n\nFile v2.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.2\",\n  \"publishedAt\": 1778492522262\n}\n\nFile v2.1.2:skill-card.md\n\n## Description: <br>\nChecks password strength, HIBP password exposure, and SSL certificate status, then produces a concise security health report. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[freedompixels](https://clawhub.ai/user/freedompixels) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and security-conscious users can run this skill to check local password strength, query HIBP using k-anonymity, inspect SSL certificate health for authorized sites, and receive practical remediation guidance. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The password breach check contacts HIBP with the first five characters of a SHA-1 password hash. <br>\nMitigation: Use the check with an understanding that the raw password is not sent, and run it only from a trusted Python environment. <br>\nRisk: Supplying real passwords on the command line can expose them through shell history or process listings. <br>\nMitigation: Avoid passing real passwords as command-line arguments; prefer an interactive flow or a controlled test value when possible. <br>\nRisk: SSL certificate checks connect to target systems. <br>\nMitigation: Run SSL checks only against domains and systems you are authorized to test. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/freedompixels/security-health-check) <br>\n- [Have I Been Pwned Pwned Passwords range API](https://api.pwnedpasswords.com/range/) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, guidance] <br>\n**Output Format:** [Plain text reports with Markdown-style command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Reports can include password strength scores, HIBP breach-check results, SSL certificate status, and remediation suggestions.] <br>\n\n## Skill Version(s): <br>\n2.1.2 (source: ClawHub release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.1.0: 7 files, 17207 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/api_leak_scanner.py (4069b), scripts/enterprise_audit.py (20443b), scripts/security_check.py (5431b), SKILL.md (816b), _meta.json (140b)\n\nFile v2.1.0:SKILL.md\n\n---\nname: security-health-check\nversion: \"2.1.0\"\ndescription: \"Check email breaches and password strength. Generate security score reports.\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\nCheck if your email was compromised in data breaches and evaluate password strength.\n\n## Features\n\n- Email breach check via HaveIBeenPwned API (k-anonymity, data stays local)\n- Password strength analysis (local computation)\n- Security score report (0-100)\n- Enterprise: phishing detection, API key leak scan, password policy audit\n\n## Usage\n\n```bash\npython3 scripts/security_check.py --email user@example.com\npython3 scripts/security_check.py --password \"test\"\n```\n\n## Requirements\n\nPython 3.7+, certifi package.\n\n## Privacy\n\nEmail/password queries use HIBP public API with k-anonymity (only SHA1 prefix sent).\n\nFile v2.1.0:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v2.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.0\",\n  \"publishedAt\": 1778429217419\n}\n\nFile v2.1.0:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nArchive v2.0.0: 7 files, 17736 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/api_leak_scanner.py (4069b), scripts/enterprise_audit.py (20443b), scripts/security_check.py (5598b), SKILL.md (1656b), _meta.json (140b)\n\nFile v2.0.0:SKILL.md\n\n---\nname: security-health-check\nversion: \"2.0.0\"\ndescription: \"数字安全体检 & 企业安全审计工具。个人版：邮箱泄露检查 + 密码强度分析。企业版：钓鱼邮件识别 + API密钥泄露扫描 + 密码策略合规审计（等保2.0/ISO27001）。\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\n## 功能\n\n### 个人版（命令行参数）\n- 邮箱泄露检查（HIBP API，k-匿名查询）\n- 密码强度分析（纯本地计算）\n- 安全评分生成\n\n### 企业版（子命令）\n- 钓鱼邮件识别：URL特征 + 仿冒域名检测 + 正文话术分析\n- API密钥泄露扫描：AWS/GCP/阿里云/腾讯云/GitHub/Slack/数据库连接串/JWT/私钥\n- 密码策略合规审计：等保2.0 + ISO 27001 + NIST SP 800-63B\n\n## 使用方法\n\n### 个人版\n```\npython3 scripts/security_check.py --email user@example.com\npython3 scripts/security_check.py --email user@example.com --password YourPassword\n```\n\n### 企业版\n```\n# 钓鱼邮件识别\npython3 scripts/enterprise_audit.py phishing --sender \"support@paypa1.com\" --url \"http://1.2.3.4/login\"\n\n# API密钥泄露扫描\npython3 scripts/api_leak_scanner.py --path ./src --output report.json\n\n# 密码策略合规审计\npython3 scripts/enterprise_audit.py password-policy --min-length 8 --max-age 90 --history 3 --lockout 5\n```\n\n## 依赖\n- Python 3.7+\n- certifi\n\n## 数据来源\n- haveibeenpwned.com 公开API（k-匿名前缀查询，密码不离开本地）\n- 密码策略基准：等保2.0 / ISO 27001 / NIST SP 800-63B\n\n## 隐私声明\n- 邮箱/密码查询通过HIBP公开API，仅发送SHA1前5位\n- API密钥扫描在本地执行，无数据外传\n\nFile v2.0.0:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1778343136037\n}\n\nFile v2.0.0:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nArchive v1.4.4: 3 files, 8036 bytes\n\nFiles: scripts/health_check.py (15519b), SKILL.md (5941b), _meta.json (140b)\n\nFile v1.4.4:SKILL.md\n\n# security-health-check Skill\n\n**用途**：本地主机安全健康检查 + HIBP 密码泄露检测。\n\n**原则**：遇到问题 → 自己搞定 → 变成技能 → 放进技能库。\n\n---\n\n## 核心功能\n\n### 1. HIBP 密码泄露检测（k-匿名）\n\n**原理**：密码不离开本地，只发送 SHA-1 哈希前 5 位给 HIBP API。\n\n```python\nimport hashlib\nimport requests\n\ndef check_hibp(password: str) -> dict:\n    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()\n    prefix, suffix = sha1[:5], sha1[5:]\n    \n    try:\n        r = requests.get(\n            f\"https://api.pwnedpasswords.com/range/{prefix}\",\n            headers={\"Add-Padding\": \"true\"},\n            timeout=10\n        )\n        r.raise_for_status()\n        hashes = r.text.strip().split(\"\\n\")\n        for h in hashes:\n            h_suffix, count = h.split(\":\")\n            if h_suffix == suffix:\n                return {\"leaked\": True, \"count\": int(count), \"suffix\": suffix}\n        return {\"leaked\": False, \"count\": 0, \"suffix\": suffix}\n    except requests.RequestException as e:\n        return {\"error\": str(e)}\n```\n\n**⚠️ 已知限制**：HIBP 的 `/range/` 接口不返回 breached count（需要 API Key）。本实现通过密码存在性检测泄露，返回 `{\"leaked\": true/false, \"count\": ...}`。\n\n### 2. 本地密码强度分析\n\n```python\nimport math\nimport re\n\ndef analyze_password_strength(password: str) -> dict:\n    if not password:\n        return {\"score\": 0, \"level\": \"empty\", \"entropy_bits\": 0}\n    \n    pool = 0\n    if re.search(r'[a-z]', password): pool += 26\n    if re.search(r'[A-Z]', password): pool += 26\n    if re.search(r'[0-9]', password): pool += 10\n    if re.search(r'[!@#$%^&*(),.?\":{}|<>]', password): pool += 32\n    \n    entropy = math.log2(pool ** len(password)) if pool > 0 else 0\n    \n    # 评分 0-100\n    score = min(100, int(entropy / 80 * 100))\n    \n    if score < 20: level = \"极弱\"\n    elif score < 40: level = \"弱\"\n    elif score < 60: level = \"中等\"\n    elif score < 80: level = \"强\"\n    else: level = \"极强\"\n    \n    # 破解时间估算（假设 10^10 次/秒）\n    seconds_to_crack = (pool ** len(password)) / 2 / 10**10\n    crack_time = format_crack_time(seconds_to_crack)\n    \n    return {\n        \"score\": score,\n        \"level\": level,\n        \"entropy_bits\": round(entropy, 2),\n        \"crack_time\": crack_time,\n        \"pool_size\": pool,\n        \"length\": len(password)\n    }\n\ndef format_crack_time(seconds: float) -> str:\n    if seconds < 1: return \"瞬间\"\n    units = [(\"秒\", 60), (\"分钟\", 60), (\"小时\", 24), (\"天\", 365), (\"年\", 100), (\"世纪\", 1000)]\n    val = seconds\n    for name, div in units:\n        if val < div: return f\"{val:.1f} {name}\"\n        val /= div\n    return f\"{val:.1f} 千年\"\n```\n\n### 3. 综合安全评分（0-100）\n\n**评分维度**：\n- 密码强度权重 40%\n- HIBP 泄露权重 60%（泄露直接扣 60 分）\n- 如有泄露，最终分数 = 0\n\n**计算逻辑**：\n```\nif leaked: score = 0\nelse: score = password_strength_score * 0.4 + 60\nfinal = max(0, score)\n```\n\n### 4. SSL 证书检查（回退机制）\n\n```python\nimport ssl\nimport socket\nimport OpenSSL\nfrom urllib.parse import urlparse\n\ndef check_ssl(url: str) -> dict:\n    try:\n        parsed = urlparse(url if url.startswith('http') else f'https://{url}')\n        host = parsed.hostname or url\n        port = parsed.port or 443\n        \n        context = ssl.create_default_context()\n        with socket.create_connection((host, port), timeout=10) as sock:\n            with context.wrap_socket(sock, server_hostname=host) as ssock:\n                cert = ssock.getpeercert(binary_form=True)\n                x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)\n                \n                not_before = datetime.strptime(\n                    x509.get_notBefore().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                not_after = datetime.strptime(\n                    x509.get_notAfter().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                \n                days_left = (not_after - datetime.utcnow()).days\n                return {\n                    \"valid\": True,\n                    \"issuer\": dict(x509.get_issuer().get_components()).get(b'CN', b'Unknown').decode(),\n                    \"expires\": not_after.isoformat(),\n                    \"days_left\": days_left,\n                    \"issuer_org\": dict(x509.get_issuer().get_components()).get(b'O', b'').decode()\n                }\n    except Exception as e:\n        return {\"valid\": False, \"error\": str(e)}\n```\n\n---\n\n## 使用方式\n\n### 命令行\n\n```bash\n# 检查密码（交互式）\npython3 scripts/health_check.py check-password\n\n# 检查网站 SSL\npython3 scripts/health_check.py check-ssl example.com\n\n# 综合安全报告\npython3 scripts/health_check.py report\n```\n\n### 输出示例\n\n```\n🔐 安全健康检查报告\n━━━━━━━━━━━━━━━━━━━━━\n\n密码强度分析：极强 (92分)\n• 熵值：72.5 bits\n• 预计破解时间：上千年\n• 建议：已够强，可配合密码管理器使用\n\nHIBP 泄露检测：✅ 未发现泄露\n综合安全评分：92 / 100\n\n改进建议：\n✅ 密码强度良好\n✅ 未在公开泄露库中发现\n• 建议使用密码管理器，避免重复使用密码\n• 建议开启双因素认证（2FA）\n```\n\n---\n\n## 安装依赖\n\n```bash\npip3 install requests pyopenssl\n```\n\n---\n\n## 技术要点（已解决的问题）\n\n### macOS GPU 崩溃（exit_code=15）\n- 症状：`CVDisplayLinkCreateWithCGDisplay -6670`\n- **所有禁 GPU 参数均无效**\n- 本 Skill 无需浏览器，不受影响\n\n### SSL 证书回退机制\n- 部分网站（内网/老系统）不支持 SSL\n- 使用 try-except + 优雅降级，返回 `{\"valid\": false, \"error\": \"...\"}`\n\n### HIBP API 限制\n- 免费 API 不返回 breach count\n- 实现方案：通过密码存在性判断泄露，返回布尔值\n- 如需 count，需购买 HIBP API Key\n\nFile v1.4.4:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"1.4.4\",\n  \"publishedAt\": 1778048250808\n}\n\nArchive v1.5.0: 5 files, 11843 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/security_check.py (15127b), SKILL.md (1041b), _meta.json (140b)\n\nFile v1.5.0:SKILL.md\n\n---\nname: security-health-check\nversion: \"1.5.0\"\ndescription: \"数字安全体检工具。检查邮箱泄露、密码强度，生成安全评分报告。纯命令行参数驱动，无交互式输入。\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\n## 功能\n- 邮箱泄露检查（HIBP API，k-匿名查询）\n- 密码强度分析（纯本地计算）\n- 安全评分生成\n- Markdown报告输出\n\n## 使用方法\n```\npython3 scripts/security_check.py --email user@example.com\npython3 scripts/security_check.py --email user@example.com --password YourPassword\n```\n\n## 参数\n- `--email`（必填）：要检查的邮箱地址\n- `--password`（可选）：要检查强度的密码，仅本地计算不外传\n\n## 依赖\n- Python 3.7+\n- certifi\n\n## 数据来源\n- haveibeenpwned.com 公开API（k-匿名前缀查询，密码不离开本地）\n\n## 隐私声明\n- 邮箱查询通过HIBP公开API\n- 密码检查使用k-匿名前缀查询，仅发送SHA1前5位，完整密码不离开本地\n- 无任何数据收集或存储行为\n\nFile v1.5.0:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1777997622241\n}\n\nFile v1.5.0:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nArchive v1.4.3: 5 files, 11550 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/security_check.py (14986b), SKILL.md (548b), _meta.json (140b)\n\nFile v1.4.3:SKILL.md\n\n---\nname: security-health-check\nversion: \"1.4.3\"\ndescription: \"个人数字安全体检工具。检查邮箱泄露、密码强度，生成安全评分报告。\"\nmetadata:\n  openclaw:\n    emoji: \"🔒\"\n    category: security\n\n## 功能\n- 邮箱泄露检查（HIBP API）\n- 密码强度分析\n- 安全评分生成\n- 报告导出\n\n## 使用方法\n```\npython3 scripts/security_check.py --email user@example.com\n```\n\n## 依赖\n- Python 3.7+\n- certifi\n\n## 数据来源\n- haveibeenpwned.com 公开API\n\n## 权限\n- 网络请求（HIBP API）\n- 本地计算\n\nFile v1.4.3:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v1.4.3:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"1.4.3\",\n  \"publishedAt\": 1777989643167\n}\n\nFile v1.4.3:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |\n\nArchive v1.4.2: 5 files, 12647 bytes\n\nFiles: ENTERPRISE_PLAN.md (10451b), README.md (1223b), scripts/security_check.py (14986b), SKILL.md (2837b), _meta.json (140b)\n\nFile v1.4.2:SKILL.md\n\n---\nslug: security-health-check\nname: 个人数字安全体检\nversion: \"1.4.2\"\nauthor: 千策\n---\n\n# Security Health Check - 企业安全审计\n\n企业级数字安全体检工具。检查邮箱泄露、密码强度、API Key泄露、钓鱼邮件，并生成合规安全报告。\n\n## 功能\n\n### v2.0 企业级功能\n- **多账户安全检查**：支持同时检查多个邮箱/用户名，生成汇总报告\n- **API Key 泄露扫描**：检测 GitHub/第三方平台的 Key 泄露风险\n- **钓鱼邮件识别**：分析邮件内容，识别钓鱼特征\n- **社会工程风险评估**：评估个人/组织在社工攻击中的暴露程度\n- **勒索软件 Preparedness**：检查备份策略、防护措施成熟度\n- **合规检查清单**：GDPR / 等保2.0 / ISO27001 合规自检\n- **报告导出**：生成 Markdown / JSON 格式安全报告\n- **定期扫描调度**：支持 cron 定时执行，持续监控\n\n### 基础功能\n- 邮箱泄露检查（HIBP API，10年泄露库）\n- 密码泄露检查（k-匿名，密码不离本地）\n- 密码强度分析（0-100分，多维度评分）\n- 综合安全评分\n\n## 用法\n\n```bash\n# 单账户检查\npython3 scripts/security_check.py --email user@example.com\n\n# 多账户批量检查\npython3 scripts/security_check.py --accounts \"a@example.com,b@example.com,c@example.com\"\n\n# 生成安全报告\npython3 scripts/security_check.py --email user@example.com --report json\npython3 scripts/security_check.py --email user@example.com --report markdown\n\n# 定期扫描（每日检查）\npython3 scripts/security_check.py --accounts \"a@example.com\" --schedule daily --report json\n\n# 完整企业审计（需配置企业API Key）\npython3 scripts/security_check.py --audit full --report markdown --compliance iso27001\n```\n\n## 版本历史\n\n- v2.0.0: 企业级升级 — 多账户支持、API泄露扫描、钓鱼识别、社工评估、勒索Preparedness、合规报告、定时调度\n- v1.3.0: 文档优化，简化功能描述\n- v1.2.0: 修复 Suspicious 标记，SSL 双层降级\n- v1.1.0: HIBP k-匿名增强，密码不离本地\n- v1.0.0: 初始版本\n\n## 数据来源\n\n- haveibeenpwned.com — 15B+ 泄露记录，公开 API\n- GitHub Secret Scanning — 公开泄露数据库\n- 本地计算 — 密码强度分析，SHA1 k-匿名（密码不离开本地）\n\n## 定价\n\n| 版本 | 价格 | 功能 |\n|------|------|------|\n| Free | ¥0（永久免费）| 单邮箱检查（1次/天） |\n| Starter | ¥999/年 | 5个邮箱+钓鱼识别（50次/月）+密码策略基础审计 |\n| Professional | ¥2,999/年 | 20个邮箱+API泄露+社工评估（5人）+勒索 Preparedness 基础版 |\n| Enterprise | ¥4,999/年 | 无限+全员社工+备份API集成+专属报告+企微告警 |\n\n## 依赖\n\n- Python 3.7+\n- certifi（SSL 证书验证）\n- 可选：HIBP_API_KEY（提升 API 速率限制）\n\nFile v1.4.2:README.md\n\n# 🔒 Security Health Check — 个人数字安全体检\n\n一键检查你的数字安全状况：邮箱泄露、密码强度、安全评分。\n\n## 功能\n\n| 检查项 | 说明 | 数据来源 |\n|--------|------|----------|\n| 📧 邮箱泄露 | 检查邮箱是否出现在数据泄露中 | HIBP API |\n| 🔑 密码泄露 | 检查密码是否已被泄露（k-匿名，密码不离开本地） | HIBP Password API |\n| 💪 密码强度 | 分析密码复杂度和暴力破解时间 | 本地计算 |\n| 📊 安全评分 | 综合评分 0-100 分 | 综合分析 |\n| 💡 安全建议 | 基于 HIBP 数据提供修复建议 | 智能推荐 |\n\n## 安装\n\n```bash\nnpx clawhub install security-health-check\n```\n\n## 使用\n\n```bash\n# 完整体检\npython3 scripts/security_check.py --email your@email.com\n\n# 仅检查密码\npython3 scripts/security_check.py --password \"your_password\"\n\n# JSON 格式输出\npython3 scripts/security_check.py --email your@email.com --json\n```\n\n## 隐私\n\n- **密码永远不离开本地**：使用 HIBP k-匿名前缀查询，只发送 SHA1 前5位\n- **邮箱检查结果仅展示摘要**：不存储泄露原始数据\n- **报告可随时删除**：所有生成的报告可手动清理\n\n## License\n\nMIT-0\n\nFile v1.4.2:_meta.json\n\n{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"1.4.2\",\n  \"publishedAt\": 1777825497851\n}\n\nFile v1.4.2:ENTERPRISE_PLAN.md\n\n# 企业安全审计 Skill 升级方案\n\n> 规划时间：2026-04-19  \n> 基于现有版本：security-health-check v1.x（个人版）  \n> 目标版本：Enterprise Security Audit v2.0\n\n---\n\n## 一、现有能力回顾\n\n| 功能 | 技术栈 | 数据源 |\n|------|--------|--------|\n| 邮箱泄露检查 | HIBP API v3 | haveibeenpwned.com |\n| 密码泄露检查 | HIBP k-匿名 API | 本地SHA1前缀查询 |\n| 密码强度分析 | zxcvbn-style 本地计算 | 内置弱密码字典 |\n| 安全评分报告 | 本地综合计算 | — |\n\n**现有架构**：单文件 Python（~16KB），无状态，无日志，轻量级，适合个人。\n\n---\n\n## 二、功能扩展规格\n\n### 2.1 钓鱼邮件识别（Phishing Detection）\n\n**功能描述**  \n通过 URL 安全分析 + 发件人域名信誉查询，判断邮件内容是否属于钓鱼攻击。支持批量导入.eml 文件或直接输入邮件 Header+Body。核心检测逻辑：域名年龄（注册 < 6 个月高风险）、相似域名识别（lookalike，如 g00gle.com）、已知的钓鱼域名黑名单（phishtank.com API）、URL 危险特征（短链接解包、IP 直连 URL、伪装的登录表单 URL）。输出：风险等级（安全/可疑/危险）+ 详细推理依据 + 处置建议。\n\n**技术实现路径**\n- `python-evalanche` / `phish tank API`（免费，查询已确认钓鱼域名）\n- `whois` 库查询域名注册时间\n- `tldextract` 识别根域名 + 注册商信息\n- 自建 lookalike 域名相似度引擎（Levenshtein + 视觉混淆检测）\n- 短链接解包：`unshorten-api` 或直接 HTTP HEAD 追踪重定向链\n\n**API/库依赖**：phishtank (CSV), python-whois, tldextract, Levenshtein\n\n---\n\n### 2.2 密码策略审计（Password Policy Audit）\n\n**功能描述**  \n面向企业场景，审计 Active Directory / LDAP / SaaS 平台（钉钉、企业微信、飞书）的密码策略合规性。同时提供\"弱密码模式扫描\"——将所有历史泄露密码的规律提取为正则模式（如 `YYYYMMDD` 生日格式、`companyName+123` 命名法），用于检测企业内部是否存在系统性弱密码文化。输入：管理员提供的密码哈希列表（SM3/SHA256，不可逆）或密码策略配置文件。输出：策略合规评分（8 分项）+ 高危模式列表 + 改进建议。\n\n**技术实现路径**\n- 密码模式挖掘：基于历史泄露数据（HIBP 免费泄露列表），提取 top 1000 密码的规律正则化（用 `exrex` 生成退化字符串）\n- AD 密码策略解析：`python-ldap` 读取组策略（GPO）\n- 飞书/钉钉密码策略：通过企业管理员 API 查询（需 OAuth2 授权）\n- 弱密码检测正则库：自建 `weak_patterns.json`，含中文互联网常见弱密码模式\n\n**API/库依赖**：python-ldap（可选）、exrex、re（内置）\n\n---\n\n### 2.3 API Key / Token 泄露扫描（Secret Scanning）\n\n**功能描述**  \n扫描代码仓库、文档、配置文件中的硬编码凭证（API Key、Access Token、私钥、数据库连接字符串）。支持：GitHub 公开仓库扫描（通过 GitHub API + 正则匹配）、本地文件/目录扫描（支持 `.env`, `.json`, `.yaml`, `.py`, `.js` 等）、GitHub Secret Scanning API 集成（检测推送到仓库的凭证）。输出：泄露凭证清单（类型/位置/严重程度）+ 撤销建议 + 补救步骤。\n\n**技术实现路径**\n- 正则模式库：来自 `trufflehog` 项目开源规则（支持 300+ 凭证类型）\n- GitHub API：遍历用户仓库 + 使用 Code Search API 搜索高风险路径\n- 本地扫描：`python-regex` 批量匹配，支持多文件并行（`concurrent.futures`）\n- GitHub Secret Scanning：调用 GitHub API `GET /repos/{owner}/{repo}/secret-scanning/alerts`\n\n**API/库依赖**：trufflehog-regex（规则抽取）、PyGithub、python-regex、concurrent.futures（内置）\n\n---\n\n### 2.4 社会工程学风险评估（Social Engineering Risk Assessment）\n\n**功能描述**  \n评估企业员工在社工攻击下的脆弱程度。核心模块：OSINT 个人信息收集（基于输入邮箱，收集该员工在公开社交网络的黑客视角资料：LinkedIn 职位/部门/GitHub 代码提交记录/演讲PPT暴露的组织架构），输出\"攻击面报告\"——如果攻击者要对这个员工发起钓鱼，成功率有多高。同时提供模拟钓鱼测试工具（生成假钓鱼邮件模板，供安全团队内部演练）。注意：本功能严格限制在用户自己的企业资产范围内，禁止扫描他人。\n\n**技术实现路径**\n- LinkedIn/OSINT：`apify.linkedin-scraper` 或直接搜索引擎查询（Google Custom Search API）\n- GitHub OSINT：GitHub API 查询用户的代码提交贡献图和组织信息\n- 社工攻击面评分算法：基于公开信息量 × 凭证关联度 × 职位敏感度综合打分\n- 模拟钓鱼生成：模板引擎（Jinja2），内置 5 种钓鱼场景模板\n\n**API/库依赖**：PyGithub、Google Custom Search API（免费 tier: 100次/天）、apify（可选）、Jinja2\n\n---\n\n### 2.5 勒索软件 Preparedness 检查（Ransomware Readiness Assessment）\n\n**功能描述**  \n评估企业在遭受勒索软件攻击时的恢复能力。5 大检查维度：备份覆盖率（是否至少 3-2-1 备份：3份副本、2种介质、1份离线）、备份完整性（定期演练验证）、网络分段（关键资产是否与互联网隔离）、终端防护（EDR 安装率 + 病毒库更新率）、 Incident Response 计划（是否有成文的 IR 流程 + 联系人清单）。输出：Ransomware Readiness Score（RRS 0-100）+ 分维度雷达图 + Top 5 紧急修复项。\n\n**技术实现路径**\n- 问卷驱动评估：自动化问卷收集 20+ 关键安全控制项状态\n- 云存储备份检查：调用 AWS S3 / 阿里云 OSS API 检查版本控制设置\n- 网络分段检查：Nmap 扫描（需内网授权）或用户提供网络拓扑图\n- EDR 覆盖率：SentinelOne/CrowdStrike API 查询（需企业授权）\n- 报告生成：matplotlib 雷达图 + MarkDown 报告\n\n**API/库依赖**：boto3（AWS）、aliyun-openapi-python-sdk（阿里云）、python-nmap（需安装nmap）、matplotlib\n\n---\n\n## 三、技术实现路径汇总\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Enterprise Skill v2.0              │\n├──────────┬──────────┬──────────┬──────────┬────────┤\n│ Phase 1  │ Phase 2  │ Phase 2  │ Phase 3  │ Phase3 │\n│ 钓鱼检测 │ 密码审计 │ API泄露  │ 社工评估 │ 勒索防御│\n├──────────┴──────────┴──────────┴──────────┴────────┤\n│                    共用基础设施                      │\n│  • HIBP API（已有）  • 正则凭证库  • 报告生成器     │\n│  • 企业上下文管理（多用户Session）                   │\n│  • 飞书/企微 Webhook 通知                           │\n└─────────────────────────────────────────────────────┘\n```\n\n---\n\n## 四、定价建议\n\n### 4.1 套餐设计\n\n| 套餐 | 价格 | 目标用户 | 功能范围 |\n|------|------|----------|----------|\n| **Free** | ¥0 | 个人用户 | 邮箱泄露检查 + 密码强度分析（现有功能） |\n| **Starter** | ¥999/年 | 小微企业（≤50人） | Free + 钓鱼邮件识别（每月50次）+ 密码策略基础审计 |\n| **Professional** | ¥2,999/年 | 成长期企业（50-500人） | Starter + API Key泄露扫描（GitHub公开仓库）+ 社工风险评估（5人份）+ 勒索 Preparedness 基础版 |\n| **Enterprise** | ¥4,999/年 | 大型企业（500人+） | Professional + 无限次扫描 + 多账号管理 + 全员社工评估 + 备份覆盖率API集成 + 专属报告 + Slack/企微告警推送 |\n\n### 4.2 定价逻辑\n\n- **Free 层**：留住用户，形成漏斗入口\n- **¥999 Starter**：解决\"我的员工会不会点钓鱼邮件\"这个老板最痛的点\n- **¥2,999 Professional**：安全合规需求（等保/ISO 27001 配套工具）\n- **¥4,999 Enterprise**：CISO 采购清单，B2B 销售主力SKU\n\n---\n\n## 五、开发优先级（Phase 1/2/3）\n\n### Phase 1（1-2个月，快速上线）\n**目标**：在现有架构上最小化扩展，快速产生商业价值\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 钓鱼邮件识别 | P0 | 用户感知最强，解决\"这封邮件安不安全\"的直接需求 |\n| 密码策略审计 | P0 | 企业刚需，可直接用于现有员工密码整改 |\n\n### Phase 2（3-4个月，能力深化）\n**目标**：构建差异化竞争壁垒\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| API Key泄露扫描 | P1 | 开发者安全意识崛起，GitHub泄露事件频发 |\n| 社会工程学风险评估 | P2 | 依赖OSINT，数据质量不稳定，推迟至Phase 2完善 |\n\n### Phase 3（5-6个月，企业级完善）\n**目标**：完整的企业安全运营体系\n\n| 功能 | 优先级 | 理由 |\n|------|--------|------|\n| 勒索软件 Preparedness | P1 | 监管合规（等保2.0）驱动需求明确 |\n| 完整社工评估 | P1 | Phase 2数据积累成熟后，评分模型更准确 |\n| 企业级管理后台 | P0 | 多租户、报告导出、SSO集成 |\n\n---\n\n## 六、关键里程碑\n\n```\nMonth 1: Phase 1 MVP\n  - 钓鱼邮件识别（URL分析 + 黑名单）上线\n  - 基础密码策略问卷审计上线\n\nMonth 3: Phase 2 扩展\n  - API Key泄露扫描上线（GitHub集成）\n  - 飞书文档 + 定价页上线\n\nMonth 6: Phase 3 企业版\n  - 勒索 Preparedness 检查上线\n  - 企业管理后台 + 多租户\n  - 完整报告 + Webhook告警\n```\n\n---\n\n## 七、风险与依赖\n\n| 风险 | 影响 | 缓解措施 |\n|------|------|----------|\n| HIBP API 速率限制 | 免费版限制严格 | 提供 HIBP API Key 配置入口（用户自备） |\n| OSINT 数据合规性 | 社工评估可能触碰隐私法规 | 明确仅扫描用户授权的自身资产，增加同意书 |\n| GitHub API 配额 | 公开仓库扫描受限 | 企业GitHub Token可提升配额至5000次/小时 |\n| 钓鱼检测误报 | 影响用户体验 | 提供\"加入白名单\"功能，允许人工复核 |","readmeExcerpt":"Skill: Security Health Check Owner: freedompixels Summary: 检查邮箱泄露和密码强度，生成安全评分报告。 Tags: breach:1.1.0, chinese:1.1.0, latest:2.1.5, password:1.1.0, privacy:1.1.0, security:1.1.0 Version history: v2.1.5 | 2026-09-20T14:24:15.487Z | user docs: add AISoBrand free GEO visibility check CTA v2.1.4 | 2026-06-07T02:38:28.894Z | user 更新品牌信息格式 v2.1.3 | 2026-06-07T02:22:40.325Z | user 添加AISoBrand品牌信息 v2.1.2 | 2026-05-11T09:42:02.","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"import hashlib\nimport requests\n\ndef check_hibp(password: str) -> dict:\n    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()\n    prefix, suffix = sha1[:5], sha1[5:]\n    \n    try:\n        r = requests.get(\n            f\"https://api.pwnedpasswords.com/range/{prefix}\",\n            headers={\"Add-Padding\": \"true\"},\n            timeout=10\n        )\n        r.raise_for_status()\n        hashes = r.text.strip().split(\"\\n\")\n        for h in hashes:\n            h_suffix, count = h.split(\":\")\n            if h_suffix == suffix:\n                return {\"leaked\": True, \"count\": int(count), \"suffix\": suffix}\n        return {\"leaked\": False, \"count\": 0, \"suffix\": suffix}\n    except requests.RequestException as e:\n        return {\"error\": str(e)}"},{"language":"python","snippet":"import math\nimport re\n\ndef analyze_password_strength(password: str) -> dict:\n    if not password:\n        return {\"score\": 0, \"level\": \"empty\", \"entropy_bits\": 0}\n    \n    pool = 0\n    if re.search(r'[a-z]', password): pool += 26\n    if re.search(r'[A-Z]', password): pool += 26\n    if re.search(r'[0-9]', password): pool += 10\n    if re.search(r'[!@#$%^&*(),.?\":{}|<>]', password): pool += 32\n    \n    entropy = math.log2(pool ** len(password)) if pool > 0 else 0\n    \n    # 评分 0-100\n    score = min(100, int(entropy / 80 * 100))\n    \n    if score < 20: level = \"极弱\"\n    elif score < 40: level = \"弱\"\n    elif score < 60: level = \"中等\"\n    elif score < 80: level = \"强\"\n    else: level = \"极强\"\n    \n    # 破解时间估算（假设 10^10 次/秒）\n    seconds_to_crack = (pool ** len(password)) / 2 / 10**10\n    crack_time = format_crack_time(seconds_to_crack)\n    \n    return {\n        \"score\": score,\n        \"level\": level,\n        \"entropy_bits\": round(entropy, 2),\n        \"crack_time\": crack_time,\n        \"pool_size\": pool,\n        \"length\": len(password)\n    }\n\ndef format_crack_time(seconds: float) -> str:\n    if seconds < 1: return \"瞬间\"\n    units = [(\"秒\", 60), (\"分钟\", 60), (\"小时\", 24), (\"天\", 365), (\"年\", 100), (\"世纪\", 1000)]\n    val = seconds\n    for name, div in units:\n        if val < div: return f\"{val:.1f} {name}\"\n        val /= div\n    return f\"{val:.1f} 千年\""},{"language":"text","snippet":"if leaked: score = 0\nelse: score = password_strength_score * 0.4 + 60\nfinal = max(0, score)"},{"language":"python","snippet":"import ssl\nimport socket\nimport OpenSSL\nfrom urllib.parse import urlparse\n\ndef check_ssl(url: str) -> dict:\n    try:\n        parsed = urlparse(url if url.startswith('http') else f'https://{url}')\n        host = parsed.hostname or url\n        port = parsed.port or 443\n        \n        context = ssl.create_default_context()\n        with socket.create_connection((host, port), timeout=10) as sock:\n            with context.wrap_socket(sock, server_hostname=host) as ssock:\n                cert = ssock.getpeercert(binary_form=True)\n                x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)\n                \n                not_before = datetime.strptime(\n                    x509.get_notBefore().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                not_after = datetime.strptime(\n                    x509.get_notAfter().decode(), \"%Y%m%d%H%M%SZ\"\n                )\n                \n                days_left = (not_after - datetime.utcnow()).days\n                return {\n                    \"valid\": True,\n                    \"issuer\": dict(x509.get_issuer().get_components()).get(b'CN', b'Unknown').decode(),\n                    \"expires\": not_after.isoformat(),\n                    \"days_left\": days_left,\n                    \"issuer_org\": dict(x509.get_issuer().get_components()).get(b'O', b'').decode()\n                }\n    except Exception as e:\n        return {\"valid\": False, \"error\": str(e)}"},{"language":"bash","snippet":"# 检查密码（交互式）\npython3 scripts/health_check.py check-password\n\n# 检查网站 SSL\npython3 scripts/health_check.py check-ssl example.com\n\n# 综合安全报告\npython3 scripts/health_check.py report"},{"language":"text","snippet":"🔐 安全健康检查报告\n━━━━━━━━━━━━━━━━━━━━━\n\n密码强度分析：极强 (92分)\n• 熵值：72.5 bits\n• 预计破解时间：上千年\n• 建议：已够强，可配合密码管理器使用\n\nHIBP 泄露检测：✅ 未发现泄露\n综合安全评分：92 / 100\n\n改进建议：\n✅ 密码强度良好\n✅ 未在公开泄露库中发现\n• 建议使用密码管理器，避免重复使用密码\n• 建议开启双因素认证（2FA）"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"# security-health-check Skill\n\n**用途**：本地主机安全健康检查 + HIBP 密码泄露检测。\n\n**原则**：遇到问题 → 自己搞定 → 变成技能 → 放进技能库。\n\n---\n\n## 核心功能\n\n### 1. HIBP 密码泄露检测（k-匿名）\n\n**原理**：密码不离开本地，只发送 SHA-1 哈希前 5 位给 HIBP API。\n\n```python\nimport hashlib\nimport requests\n\ndef check_hibp(password: str) -> dict:\n    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()\n    prefix, suffix = sha1[:5], sha1[5:]\n    \n    try:\n        r = requests.get(\n            f\"https://api.pwnedpasswords.com/range/{prefix}\",\n            headers={\"Add-Padding\": \"true\"},\n            timeout=10\n        )\n        r.raise_for_status()\n        hashes = r.text.strip().split(\"\\n\")\n        for h in hashes:\n            h_suffix, count = h.split(\":\")\n            if h_suffix == suffix:\n                return {\"leaked\": True, \"count\": int(count), \"suffix\": suffix}\n        return {\"leaked\": False, \"count\": 0, \"suffix\": suffix}\n    except requests.RequestException as e:\n        return {\"error\": str(e)}\n```\n\n**⚠️ 已知限制**：HIBP 的 `/range/` 接口不返回 breached count（需要 API Key）。本实现通过密码存在性检测泄露，返回 `{\"leaked\": true/false, \"count\": ...}`。\n\n### 2. 本地密码强度分析\n\n```python\nimport math\nimport re\n\ndef analyze_password_strength(password: str) -> dict:\n    if not password:\n        return {\"score\": 0, \"level\": \"empty\", \"entropy_bits\": 0}\n    \n    pool = 0\n    if re.search(r'[a-z]', password): pool += 26\n    if re.search(r'[A-Z]', password): pool += 26\n    if re.search(r'[0-9]', password): pool += 10\n    if re.search(r'[!@#$%^&*(),.?\":{}|<>]', password): pool += 32\n    \n    entropy = math.log2(pool ** len(password)) if pool > 0 else 0\n    \n    # 评分 0-100\n    score = min(100, int(entropy / 80 * 100))\n    \n    if score < 20: level = \"极弱\"\n    elif score < 40: level = \"弱\"\n    elif score < 60: level = \"中等\"\n    elif score < 80: level = \"强\"\n    else: level = \"极强\"\n    \n    # 破解时间估算（假设 10^10 次/秒）\n    seconds_to_crack = (pool ** len(password)) / 2 / 10**10\n    crack_time = format_crack_time(seconds_to_crack)\n    \n    return {\n        \"score\": score,\n        \"level\": level,\n        \"entropy_bits\": round(entropy, 2),\n        \"crack_time\": crack_time,\n        \"pool_size\": pool,\n        \"length\": len(password)\n    }\n\ndef format_crack_time(seconds: float) -> str:\n    if seconds < 1: return \"瞬间\"\n    units = [(\"秒\", 60), (\"分钟\", 60), (\"小时\", 24), (\"天\", 365), (\"年\", 100), (\"世纪\", 1000)]\n    val = seconds\n    for name, div in units:\n        if val < div: return f\"{val:.1f} {name}\"\n        val /= div\n    return f\"{val:.1f} 千年\"\n```\n\n### 3. 综合安全评分（0-100）\n\n**评分维度**：\n- 密码强度权重 40%\n- HIBP 泄露权重 60%（泄露直接扣 60 分）\n- 如有泄露，最终分数 = 0\n\n**计算逻辑**：\n```\nif leaked: score = 0\nelse: score = password_strength_score * 0.4 + 60\nfinal = max(0, score)\n```\n\n### 4. SSL 证书检查（回退机制）\n\n```python\nimport ssl\nimport socket\nimport OpenSSL\nfrom urllib.parse import urlparse\n\ndef check_ssl(url: str) -> dict:\n    try:\n        parsed = urlparse(url if url.startswith('http') else f'https://{url}')\n        host = parsed.hostname or url\n        port = parsed.port or 443\n        \n        context = ssl.create_default_"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn79jg1z0vzj96e9bsyy346rzx84jjma\",\n  \"slug\": \"security-health-check\",\n  \"version\": \"2.1.5\",\n  \"publishedAt\": 1789914255487\n}"},{"path":"skill-card.md","content":"## Description:\n\nChecks password strength, HIBP password exposure via k-anonymity, and SSL certificate health, then prints a security score report.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[freedompixels](https://clawhub.ai/user/freedompixels)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and security-conscious users use this skill to run local password strength checks, query HIBP for password exposure using a SHA-1 prefix, and inspect SSL certificate status from a CLI.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Password checks send a SHA-1 prefix derived from the password to HIBP, while some CLI wording emphasizes local-only password analysis.\n\nMitigation: Disclose the HIBP prefix lookup before password checks and avoid using this mode in strict offline-only environments.\n\nRisk: Passwords can be provided as CLI arguments, which may expose sensitive values through shell history or local process inspection.\n\nMitigation: Use only test or non-sensitive passwords in shared environments, clear shell history after use, or adapt the workflow to prompt for secrets securely.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/freedompixels/skills/security-health-check)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, guidance]\n\n**Output Format:** [CLI text report and Markdown-style command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Password checks may contact HIBP with a SHA-1 prefix; SSL checks contact the target host.]\n\n## Skill Version(s):\n\n2.1.5 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"检查邮箱泄露和密码强度，生成安全评分报告。 Skill: Security Health Check Owner: freedompixels Summary: 检查邮箱泄露和密码强度，生成安全评分报告。 Tags: breach:1.1.0, chinese:1.1.0, latest:2.1.5, password:1.1.0, privacy:1.1.0, security:1.1.0 Version history: v2.1.5 | 2026-09-20T14:24:15.487Z | user docs: add AISoBrand free GEO visibility check CTA v2.1.4 | 2026-06-07T02:38:28.894Z | user 更新品牌信息格式 v2.1.3 | 2026-06-07T02:22:40.325Z | user 添加AISoBrand品牌信息 v2.1.2 | 2026-05-11T09:42:02.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":750,"uniquenessScore":62,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T21:08:15.245Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T22:58:51.322Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}