安全决策报告

smyx-child-focus-analysis-analysis

A legitimate child study-behavior analysis skill with minor supply-chain and doc-declaration gaps; no confirmed malicious behavior, credential theft, or code execution observed.

安装决策优先 来源: ClawHub 扫描时间: 2026/8/13
文件 31
IOC 12
越权项 1
发现 4

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 12 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 4 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

Missing requests dependency +10

skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt lack 'requests', which is imported and used in api_service.py, smyx_child_focus_analysis_analysis.py, and smyx_analysis.py. SKILL.md declares it under '前置准备' but sub-package requirements.txt files omit it.

Undeclared network:WRITE capability +8

SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but POST requests to lifeemergence.com APIs (with user tokens, open-ids, and potentially video data) are not declared.

Undeclared database:WRITE capability +5

SQLite database creation and user/token storage via dao.py and OpenIdUtil is not declared in SKILL.md. The database stores tokens and open-ids in the agent data directory.

Silent identity auto-creation +5

OpenIdUtil automatically generates a default open-id (User_xxxxxx) if none exists, writes it to the SQLite DB, and reuses it. This undeclared persistence mechanism is not mentioned in docs.

Subprocess commented out +-5

skills/smyx_common/scripts/skill.py contains commented-out subprocess.run() code for openclaw agent invocation; confirmed inactive.

最关键的证据

中危 供应链

requests library used but not declared in sub-package requirements

The 'requests' library is imported and used in skills/smyx_analysis/scripts/smyx_analysis.py (line 23), skills/smyx_analysis/scripts/api_service.py, and skills/smyx_common/scripts/util.py (line 11), but is absent from skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt. Only pydash==8.0.6, SQLAlchemy==2.0.46, and PyYAML==6.0.3 are declared. The top-level SKILL.md mentions requests>=2.28.0 but this is not propagated to sub-package requirement files.

skills/smyx_analysis/requirements.txt:1
Add 'requests>=2.28.0' to both skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt. Pin to a specific version.
低危 文档欺骗

Network WRITE capability not declared in allowed-tools mapping

SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but does not declare that the skill makes POST requests with Bearer tokens, open-ids, and user data to remote lifeemergence.com APIs. Data exfiltration scope includes: video URL parameters, open_id, user tokens, and analysis results.

SKILL.md:1
Update allowed-tools to include network:WRITE and document what user data is transmitted to external services.
低危 敏感访问

Silent identity creation and persistence not declared

OpenIdUtil.resolve_current_open_id() in skills/smyx_common/scripts/util.py auto-creates a persistent default user identity (User_xxxxxx) if none exists, stores it in a SQLite database, and reuses it across sessions. This automatic identity generation is not mentioned in SKILL.md's capability or behavior sections.

skills/smyx_common/scripts/util.py:338
Declare the automatic identity creation behavior in SKILL.md or document it as an internal mechanism.
低危 权限提升

SQLite database write to agent data directory not declared

The dao.py module creates and writes to a SQLite database (smyx-common-claw.db) in the agent's data directory, storing user tokens, open-ids, and metadata. This database:WRITE behavior is not declared in SKILL.md.

skills/smyx_common/scripts/dao.py:96
Declare database:WRITE capability in SKILL.md if it should be listed, or document the local persistence mechanism.

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
scripts/smyx_child_focus_analysis_analysis.py:37 reads local video files
文件系统 通过
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:96 writes SQLite DB to agent data directory
网络访问 阻止
声明 READ
→
推断 WRITE
skills/smyx_common/scripts/util.py:261-267 POSTs requests with tokens and data to https://open.lifeemergence.com
环境变量 通过
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:89-93 reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID
数据库 通过
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:87-130 creates SQLite DB, stores user tokens/open-ids
命令执行 通过
声明 NONE
→
推断 NONE
skills/smyx_common/scripts/skill.py:32-62 subprocess code is fully commented out

可疑产物与外联

中危 外部 URL
https://lifeemergence.com/sample.html

SKILL.md:34

中危 外部 URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

中危 外部 URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-child-focus-analysis-analysis

skill-card.md:35

中危 外部 URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

中危 外部 URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

中危 外部 URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

中危 外部 URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

中危 外部 URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

中危 外部 URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

中危 外部 URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

中危 外部 URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

中危 外部 URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

依赖与供应链

包名版本来源漏洞备注
pydash 8.0.6 pip 否 Pinned in sub-package requirements.txt
SQLAlchemy 2.0.46 pip 否 Pinned in sub-package requirements.txt
yaml 6.0.3 pip 否 Listed as 'yaml' in requirements.txt; PyYAML==6.0.3 pinned
requests * pip 否 MISSING from sub-package requirements.txt - used in code but not declared

文件构成

31 个文件 · 2718 行
Python 18 个文件 · 2363 行Markdown 4 个文件 · 315 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行JSON 1 个文件 · 5 行
需关注文件 · 4
skills/smyx_common/scripts/util.py Python · 718 行
Silent identity creation and persistence not declared
skills/smyx_common/scripts/dao.py Python · 499 行
SQLite database write to agent data directory not declared
SKILL.md Markdown · 178 行
Network WRITE capability not declared in allowed-tools mapping · https://lifeemergence.com/sample.html
skill-card.md Markdown · 56 行
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-child-focus-analysis-analysis
其他文件 · config.py · skill.py · smyx_analysis.py · smyx_child_focus_analysis_analysis.py · api_service.py · skill.py +2

安全亮点

No subprocess execution - commented-out subprocess code confirmed inactive in skills/smyx_common/scripts/skill.py
No obfuscation detected - no base64, eval(), or dynamic code execution found
No credential theft - tokens stored locally, not exfiltrated; no harvesting of ~/.ssh, ~/.aws, or .env files
No direct IP C2 communication - all external URLs resolve to legitimate domain lifeemergence.com
Dependencies are version-pinned in sub-packages (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)
skill-card.md already acknowledges data transmission to external services and known risks
No hidden HTML comments, no prompt injection instructions found
No supply-chain typosquatting or malicious package references detected
No persistence mechanisms (no cron jobs, startup hooks, or backdoor installation)