安全决策报告

smart-eye

SmartEye 是合法的摄像头 PTZ 控制技能,仅在内网环境下与摄像头通信,无恶意行为,但存在轻微权限声明宽泛的问题。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/11
文件 16
IOC 12
越权项 0
发现 4

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

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

风险分是怎么被拉高的

权限声明宽泛 +10

SKILL.md 未声明 allowed-tools,代码涉及 filesystem:WRITE、network:WRITE、shell:WRITE

华为 SSL 禁用 +5

huawei_ptz.py 使用 ssl.CERT_NONE,已在文档中警告

示例凭证存在 +5

camera-devices.json 包含默认密码,已在文档中警告需替换

最关键的证据

低危 权限提升

未声明的 allowed-tools

SKILL.md 未声明 allowed-tools,代码实际使用了 filesystem:WRITE、network:WRITE、shell:WRITE 权限

SKILL.md:1
在 SKILL.md 顶部添加 allowed-tools 声明
低危 供应链

依赖无版本锁定

pyproject.toml 中 opencv-python>=4.8.0 使用了宽松版本约束

pyproject.toml:12
考虑固定版本以避免供应链风险
提示 敏感访问

华为摄像头禁用 SSL 验证

华为 PTZ 代码使用 ssl.CERT_NONE 禁用证书验证,仅适合可信内网。已在 SKILL.md 安全说明中警告。

src/protocol/brands/huawei_ptz.py:19
已文档化,符合预期
提示 敏感访问

示例凭证存在

捆绑配置文件包含示例密码 YOUR_TPLINK_PASSWORD,已在 SKILL.md 和 JSON 注释中警告需替换

devices/camera-devices.json:3
已文档化,符合预期

声明能力 vs 实际能力

文件系统 通过
声明 NONE
→
推断 WRITE
src/protocol/base.py:188 snapshot() 保存 JPG 到本地
网络访问 通过
声明 NONE
→
推断 WRITE
src/protocol/brands/onvif_ptz_control.py:54 urllib.request.urlopen() 访问摄像头
命令执行 通过
声明 NONE
→
推断 WRITE
src/protocol/brands/tplink.py:87 subprocess.Popen([vlc, rtsp])
环境变量 通过
声明 NONE
→
推断 READ
src/config.py:23 Path.home() 访问用户目录

可疑产物与外联

中危 外部 URL
http://www.onvif.org/2003/11/soap-envelope

src/protocol/brands/huawei_ptz.py:39

中危 外部 URL
http://www.onvif.org/ver20/ptz/wsdl

src/protocol/brands/huawei_ptz.py:40

中危 外部 URL
http://www.onvif.org/ver10/schema

src/protocol/brands/huawei_ptz.py:41

中危 外部 URL
http://www.w3.org/2003/05/soap-envelope

src/protocol/brands/onvif_ptz_control.py:45

中危 外部 URL
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd

src/protocol/brands/onvif_ptz_control.py:46

中危 外部 URL
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd

src/protocol/brands/onvif_ptz_control.py:47

中危 外部 URL
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest

src/protocol/brands/onvif_ptz_control.py:52

中危 外部 URL
http://www.onvif.org/ver20/ptz/wsdl/GetStatus

src/protocol/brands/onvif_ptz_control.py:81

中危 外部 URL
http://www.onvif.org/ver20/ptz/wsdl/AbsoluteMove

src/protocol/brands/onvif_ptz_control.py:102

中危 外部 URL
http://www.onvif.org/ver20/ptz/wsdl/ContinuousMove

src/protocol/brands/onvif_ptz_control.py:129

中危 外部 URL
http://www.onvif.org/ver20/ptz/wsdl/Stop

src/protocol/brands/onvif_ptz_control.py:137

中危 外部 URL
http://example/action

src/protocol/onvif.py:28

依赖与供应链

包名版本来源漏洞备注
opencv-python >=4.8.0 pip 否 宽松版本约束,建议固定版本

文件构成

16 个文件 · 1680 行
Python 13 个文件 · 1526 行Markdown 1 个文件 · 97 行JSON 1 个文件 · 43 行TOML 1 个文件 · 14 行
需关注文件 · 5
src/protocol/onvif.py Python · 202 行
http://example/action
src/protocol/brands/onvif_ptz_control.py Python · 142 行
http://www.w3.org/2003/05/soap-envelope · http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd · http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd · http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest · http://www.onvif.org/ver20/ptz/wsdl/GetStatus · http://www.onvif.org/ver20/ptz/wsdl/AbsoluteMove · http://www.onvif.org/ver20/ptz/wsdl/ContinuousMove · http://www.onvif.org/ver20/ptz/wsdl/Stop
SKILL.md Markdown · 97 行
未声明的 allowed-tools
src/protocol/brands/huawei_ptz.py Python · 112 行
华为摄像头禁用 SSL 验证 · http://www.onvif.org/2003/11/soap-envelope · http://www.onvif.org/ver20/ptz/wsdl · http://www.onvif.org/ver10/schema
devices/camera-devices.json JSON · 43 行
示例凭证存在
其他文件 · smarteye.py · base.py · huawei.py · tplink.py · config.py · base_brand.py +1

安全亮点

代码结构清晰,无混淆或隐藏指令
凭证从配置文件动态读取,无硬编码
仅在内网运行,无公网通信
文档中有安全警告(华为 SSL、示例凭证)
无凭证收割、环境变量遍历等恶意行为
无数据外泄、C2 通信等可疑行为
使用标准协议(ONVIF SOAP、RTSP)
权限仅用于声明的摄像头控制功能