{
  "schemaVersion": "1.0",
  "item": {
    "slug": "skill-security-scanner-clean",
    "name": "skill-security-scanner-clean",
    "source": "tencent",
    "type": "skill",
    "category": "安全合规",
    "sourceUrl": "https://clawhub.ai/CookieMikeLiu/skill-security-scanner-clean",
    "canonicalUrl": "https://clawhub.ai/CookieMikeLiu/skill-security-scanner-clean",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/skill-security-scanner-clean",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=skill-security-scanner-clean",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/install_guard.py",
      "scripts/security_scanner.py",
      "references/rules-reference.md",
      "assets/logo.svg"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/skill-security-scanner-clean"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/skill-security-scanner-clean",
    "agentPageUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Skill Security Scanner",
        "body": "Protect your OpenClaw installation from malicious skills. This scanner performs static analysis on skill code to detect:\n\nCode Execution Threats: eval, exec, os.system, subprocess calls\nData Exfiltration: Hidden network requests, suspicious URLs, IP connections\nSystem Compromise: File deletion, permission changes, privilege escalation\nCredential Theft: Environment variable access, secret harvesting\nCryptojacking: Mining malware, suspicious compute patterns\nObfuscation: Hidden code, base64 encoding, minification\nSpyware: Keyloggers, screen capture, surveillance features"
      },
      {
        "title": "Quick Start",
        "body": "# Basic scan\npython scripts/security_scanner.py /path/to/skill\n\n# Strict mode (catches more suspicious patterns)\npython scripts/security_scanner.py /path/to/skill --strict\n\n# Save JSON report\npython scripts/security_scanner.py /path/to/skill --format json -o report.json\n\n# Generate markdown report\npython scripts/security_scanner.py /path/to/skill --format markdown -o report.md"
      },
      {
        "title": "Verdict Levels",
        "body": "VerdictEmojiMeaningActionPASS🟢No critical issues foundSafe to installREVIEW🟡Some concerns, review recommendedCheck findings before installingWARNING🟠High-risk patterns detectedStrongly reconsider installationREJECT🔴Critical threats identifiedDO NOT INSTALL"
      },
      {
        "title": "Security Score",
        "body": "90-100: Excellent - minimal risk\n70-89: Good - minor issues\n50-69: Fair - requires review\n0-49: Poor - significant risks"
      },
      {
        "title": "Critical (🔴)",
        "body": "RuleDescriptionExampleEXEC001Code execution functionseval(), exec(), compile()SUSPICIOUS001Keylogger functionalitypynput, keyboard modulesSUSPICIOUS003Cryptocurrency miningmining, bitcoin, stratum+tcp"
      },
      {
        "title": "High (🟠)",
        "body": "RuleDescriptionExampleEXEC002System command executionos.system(), subprocess.call()NET002Raw socket connectionssocket.connect()ENV001Sensitive credential accessos.environ['PASSWORD']OBF001Code obfuscationBase64, hex-encoded codeSUSPICIOUS002Screen capturepyautogui.screenshot()NET004Short URL usagebit.ly, tinyurl links"
      },
      {
        "title": "Medium (🟡)",
        "body": "RuleDescriptionExampleNET001HTTP network requestsrequests.get(), fetch()ENV002Environment enumerationos.environ.items()FILE001File deletionos.remove(), shutil.rmtree()DATA001Unsafe deserializationpickle.loads(), yaml.load()NET003Hardcoded IP addressesDirect IP in URLsOBF002Base64 encoded blocksLarge base64 strings"
      },
      {
        "title": "Low/Info (🔵/⚪)",
        "body": "RuleDescriptionFILE002File write operationsCRYPTO001Cryptographic operationsDOC001Insufficient documentationDOC002Missing security statements"
      },
      {
        "title": "Before Installing a New Skill",
        "body": "Download the skill to a temporary directory\n\n\nRun the security scanner\n\n\nReview the verdict:\n\n🟢 PASS: Proceed with installation\n🟡 REVIEW: Examine findings, verify legitimate use\n🟠 WARNING: Only install from trusted sources\n🔴 REJECT: Do not install\n\n\n\nFor 🟡/🟠 findings, manually review the flagged code\n\n\nConfirm the skill's behavior matches its documentation"
      },
      {
        "title": "Before Updating an Existing Skill",
        "body": "Run scanner on the new version\nCompare results with previous version's scan\nCheck for new critical/high findings\nReview any new network/file operations"
      },
      {
        "title": "Automated Integration",
        "body": "Add to your skill installation workflow:\n\nimport subprocess\nimport sys\n\ndef safe_install_skill(skill_path):\n    # Run security scan\n    result = subprocess.run(\n        ['python', 'scripts/security_scanner.py', skill_path, '--format', 'json'],\n        capture_output=True,\n        text=True\n    )\n    \n    import json\n    report = json.loads(result.stdout)\n    \n    if report['summary']['verdict'] == 'REJECT':\n        print(\"❌ Installation blocked: Critical security issues found\")\n        return False\n    \n    if report['summary']['verdict'] == 'WARNING':\n        response = input(\"⚠️ High-risk patterns detected. Install anyway? (y/N): \")\n        if response.lower() != 'y':\n            return False\n    \n    # Proceed with installation\n    return True"
      },
      {
        "title": "Handling False Positives",
        "body": "Some legitimate skills may trigger warnings:\n\nNetwork requests: Skills that fetch data from APIs\nFile operations: Skills that modify documents\nEncryption: Skills handling sensitive data\n\nWhen you trust the source and understand the functionality, you can:\n\nReview the specific code flagged\nVerify it matches the documented purpose\nManually approve if confident"
      },
      {
        "title": "Reporting Issues",
        "body": "If you find a skill with confirmed malicious intent:\n\nDo not install or run it\nReport to the skill repository/hosting platform\nNotify OpenClaw community channels\nShare scan report (without executing the skill)"
      },
      {
        "title": "Best Practices",
        "body": "Only install skills from trusted sources\nAlways scan before installing - even from trusted sources\nReview findings carefully - understand what the skill does\nKeep scanner updated - new detection rules added regularly\nUse strict mode for untrusted sources - catches more suspicious patterns\nCheck skill updates - re-scan when updating existing skills"
      },
      {
        "title": "Exit Codes",
        "body": "The scanner returns specific exit codes:\n\nCodeMeaning0PASS or REVIEW - installation may proceed1WARNING - high-risk patterns found2REJECT - critical threats detected\n\nUse in scripts:\n\npython scripts/security_scanner.py ./skill || {\n    echo \"Security check failed\"\n    exit 1\n}"
      }
    ],
    "body": "Skill Security Scanner\n\nProtect your OpenClaw installation from malicious skills. This scanner performs static analysis on skill code to detect:\n\nCode Execution Threats: eval, exec, os.system, subprocess calls\nData Exfiltration: Hidden network requests, suspicious URLs, IP connections\nSystem Compromise: File deletion, permission changes, privilege escalation\nCredential Theft: Environment variable access, secret harvesting\nCryptojacking: Mining malware, suspicious compute patterns\nObfuscation: Hidden code, base64 encoding, minification\nSpyware: Keyloggers, screen capture, surveillance features\nQuick Start\n# Basic scan\npython scripts/security_scanner.py /path/to/skill\n\n# Strict mode (catches more suspicious patterns)\npython scripts/security_scanner.py /path/to/skill --strict\n\n# Save JSON report\npython scripts/security_scanner.py /path/to/skill --format json -o report.json\n\n# Generate markdown report\npython scripts/security_scanner.py /path/to/skill --format markdown -o report.md\n\nUnderstanding Results\nVerdict Levels\nVerdict\tEmoji\tMeaning\tAction\nPASS\t🟢\tNo critical issues found\tSafe to install\nREVIEW\t🟡\tSome concerns, review recommended\tCheck findings before installing\nWARNING\t🟠\tHigh-risk patterns detected\tStrongly reconsider installation\nREJECT\t🔴\tCritical threats identified\tDO NOT INSTALL\nSecurity Score\n90-100: Excellent - minimal risk\n70-89: Good - minor issues\n50-69: Fair - requires review\n0-49: Poor - significant risks\nDetection Rules\nCritical (🔴)\nRule\tDescription\tExample\nEXEC001\tCode execution functions\teval(), exec(), compile()\nSUSPICIOUS001\tKeylogger functionality\tpynput, keyboard modules\nSUSPICIOUS003\tCryptocurrency mining\tmining, bitcoin, stratum+tcp\nHigh (🟠)\nRule\tDescription\tExample\nEXEC002\tSystem command execution\tos.system(), subprocess.call()\nNET002\tRaw socket connections\tsocket.connect()\nENV001\tSensitive credential access\tos.environ['PASSWORD']\nOBF001\tCode obfuscation\tBase64, hex-encoded code\nSUSPICIOUS002\tScreen capture\tpyautogui.screenshot()\nNET004\tShort URL usage\tbit.ly, tinyurl links\nMedium (🟡)\nRule\tDescription\tExample\nNET001\tHTTP network requests\trequests.get(), fetch()\nENV002\tEnvironment enumeration\tos.environ.items()\nFILE001\tFile deletion\tos.remove(), shutil.rmtree()\nDATA001\tUnsafe deserialization\tpickle.loads(), yaml.load()\nNET003\tHardcoded IP addresses\tDirect IP in URLs\nOBF002\tBase64 encoded blocks\tLarge base64 strings\nLow/Info (🔵/⚪)\nRule\tDescription\nFILE002\tFile write operations\nCRYPTO001\tCryptographic operations\nDOC001\tInsufficient documentation\nDOC002\tMissing security statements\nWorkflow\nBefore Installing a New Skill\n\nDownload the skill to a temporary directory\n\nRun the security scanner\n\nReview the verdict:\n\n🟢 PASS: Proceed with installation\n🟡 REVIEW: Examine findings, verify legitimate use\n🟠 WARNING: Only install from trusted sources\n🔴 REJECT: Do not install\n\nFor 🟡/🟠 findings, manually review the flagged code\n\nConfirm the skill's behavior matches its documentation\n\nBefore Updating an Existing Skill\nRun scanner on the new version\nCompare results with previous version's scan\nCheck for new critical/high findings\nReview any new network/file operations\nAutomated Integration\n\nAdd to your skill installation workflow:\n\nimport subprocess\nimport sys\n\ndef safe_install_skill(skill_path):\n    # Run security scan\n    result = subprocess.run(\n        ['python', 'scripts/security_scanner.py', skill_path, '--format', 'json'],\n        capture_output=True,\n        text=True\n    )\n    \n    import json\n    report = json.loads(result.stdout)\n    \n    if report['summary']['verdict'] == 'REJECT':\n        print(\"❌ Installation blocked: Critical security issues found\")\n        return False\n    \n    if report['summary']['verdict'] == 'WARNING':\n        response = input(\"⚠️ High-risk patterns detected. Install anyway? (y/N): \")\n        if response.lower() != 'y':\n            return False\n    \n    # Proceed with installation\n    return True\n\nHandling False Positives\n\nSome legitimate skills may trigger warnings:\n\nNetwork requests: Skills that fetch data from APIs\nFile operations: Skills that modify documents\nEncryption: Skills handling sensitive data\n\nWhen you trust the source and understand the functionality, you can:\n\nReview the specific code flagged\nVerify it matches the documented purpose\nManually approve if confident\nReporting Issues\n\nIf you find a skill with confirmed malicious intent:\n\nDo not install or run it\nReport to the skill repository/hosting platform\nNotify OpenClaw community channels\nShare scan report (without executing the skill)\nBest Practices\nOnly install skills from trusted sources\nAlways scan before installing - even from trusted sources\nReview findings carefully - understand what the skill does\nKeep scanner updated - new detection rules added regularly\nUse strict mode for untrusted sources - catches more suspicious patterns\nCheck skill updates - re-scan when updating existing skills\nExit Codes\n\nThe scanner returns specific exit codes:\n\nCode\tMeaning\n0\tPASS or REVIEW - installation may proceed\n1\tWARNING - high-risk patterns found\n2\tREJECT - critical threats detected\n\nUse in scripts:\n\npython scripts/security_scanner.py ./skill || {\n    echo \"Security check failed\"\n    exit 1\n}"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/CookieMikeLiu/skill-security-scanner-clean",
    "publisherUrl": "https://clawhub.ai/CookieMikeLiu/skill-security-scanner-clean",
    "owner": "CookieMikeLiu",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean",
    "downloadUrl": "https://openagent3.xyz/downloads/skill-security-scanner-clean",
    "agentUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-security-scanner-clean/agent.md"
  }
}