@pwddd/skills-scanner 3.0.3 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/skills-scanner/SKILL.md +65 -15
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -23,6 +23,55 @@ OpenClaw Skills 安全扫描工具,检测恶意代码、数据窃取、提示
|
|
|
23
23
|
|
|
24
24
|
**在向用户展示扫描结果前,请务必:**
|
|
25
25
|
|
|
26
|
+
### 0. API 服务可用性检查 🔌
|
|
27
|
+
|
|
28
|
+
**在执行任何扫描操作前,必须先检查 API 服务是否可用。如果服务不可用,跳过安全检查。**
|
|
29
|
+
|
|
30
|
+
**检查方法**:
|
|
31
|
+
```bash
|
|
32
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 health
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**处理规则**:
|
|
36
|
+
|
|
37
|
+
1. **服务可用**(返回 `✓` 或 `OK`):
|
|
38
|
+
- 继续执行扫描操作
|
|
39
|
+
- 正常展示扫描结果
|
|
40
|
+
|
|
41
|
+
2. **服务不可用**(连接失败、超时、错误响应):
|
|
42
|
+
- ⚠️ **立即跳过安全检查**
|
|
43
|
+
- 向用户说明:
|
|
44
|
+
```
|
|
45
|
+
⚠️ Skills 安全扫描服务当前不可用,已跳过安全检查。
|
|
46
|
+
|
|
47
|
+
如需启用安全扫描,请:
|
|
48
|
+
1. 启动 skill-scanner-api 服务
|
|
49
|
+
2. 确认服务地址配置正确(当前: http://localhost:8000)
|
|
50
|
+
3. 重新执行安装操作
|
|
51
|
+
```
|
|
52
|
+
- **不要阻止用户的操作**(如安装 Skill)
|
|
53
|
+
- **不要反复尝试连接**(避免延迟用户操作)
|
|
54
|
+
|
|
55
|
+
**示例对话**:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
用户: 帮我安装 caldav-calendar 这个 skill
|
|
59
|
+
AI: 好的,让我先检查安全扫描服务...
|
|
60
|
+
[执行 health 检查]
|
|
61
|
+
|
|
62
|
+
⚠️ Skills 安全扫描服务当前不可用,已跳过安全检查。
|
|
63
|
+
|
|
64
|
+
正在安装 caldav-calendar...
|
|
65
|
+
✅ 安装完成
|
|
66
|
+
|
|
67
|
+
💡 提示:如需启用安全扫描功能,请启动 skill-scanner-api 服务。
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**为什么要跳过而不是阻止**:
|
|
71
|
+
- 安全扫描是辅助功能,不应阻碍正常使用
|
|
72
|
+
- 用户可能在离线环境或未配置扫描服务的环境中工作
|
|
73
|
+
- 避免因服务问题导致所有 Skill 操作失败
|
|
74
|
+
|
|
26
75
|
### 1. VirusTotal 扫描结果优先提示 ⚠️
|
|
27
76
|
|
|
28
77
|
**如果扫描结果中包含 VirusTotal 的扫描数据,必须优先、重点展示此结果,即使未检测到病毒。**
|
|
@@ -249,7 +298,7 @@ AI: 好的,让我先扫描一下这个 skill 的安全性...
|
|
|
249
298
|
#### 示例 2:详细检查 PDF Skill
|
|
250
299
|
|
|
251
300
|
```bash
|
|
252
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
301
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 clawhub https://clawhub.ai/steipete/nano-pdf --detailed
|
|
253
302
|
```
|
|
254
303
|
|
|
255
304
|
**用户对话**:
|
|
@@ -272,7 +321,7 @@ AI: 好的,我会进行详细扫描...
|
|
|
272
321
|
#### 示例 3:深度扫描可疑 Skill
|
|
273
322
|
|
|
274
323
|
```bash
|
|
275
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
324
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 clawhub https://clawhub.ai/username/suspicious-skill --detailed --behavioral --policy strict
|
|
276
325
|
```
|
|
277
326
|
|
|
278
327
|
**用户对话**:
|
|
@@ -295,7 +344,7 @@ AI: 明白,我会使用严格模式进行深度扫描...
|
|
|
295
344
|
#### 示例 4:包含 VirusTotal 扫描结果
|
|
296
345
|
|
|
297
346
|
```bash
|
|
298
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
347
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 clawhub https://clawhub.ai/username/project --detailed
|
|
299
348
|
```
|
|
300
349
|
|
|
301
350
|
**用户对话(未检测到威胁)**:
|
|
@@ -408,25 +457,25 @@ https://clawhub.ai/<username>/<project>
|
|
|
408
457
|
### 基础扫描(推荐,速度快)
|
|
409
458
|
|
|
410
459
|
```bash
|
|
411
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
460
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 scan <skill路径>
|
|
412
461
|
```
|
|
413
462
|
|
|
414
463
|
### 详细模式(显示所有发现)
|
|
415
464
|
|
|
416
465
|
```bash
|
|
417
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
466
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 scan <skill路径> --detailed
|
|
418
467
|
```
|
|
419
468
|
|
|
420
469
|
### 深度扫描(加入行为分析)
|
|
421
470
|
|
|
422
471
|
```bash
|
|
423
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
472
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 scan <skill路径> --detailed --behavioral
|
|
424
473
|
```
|
|
425
474
|
|
|
426
475
|
### 最强扫描(加入 LLM 语义分析)
|
|
427
476
|
|
|
428
477
|
```bash
|
|
429
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
478
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 scan <skill路径> --detailed --behavioral --llm
|
|
430
479
|
```
|
|
431
480
|
|
|
432
481
|
---
|
|
@@ -438,31 +487,31 @@ https://clawhub.ai/<username>/<project>
|
|
|
438
487
|
### 扫描指定目录下的所有 Skills
|
|
439
488
|
|
|
440
489
|
```bash
|
|
441
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
490
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 batch <目录路径>
|
|
442
491
|
```
|
|
443
492
|
|
|
444
493
|
### 递归扫描(含子目录)
|
|
445
494
|
|
|
446
495
|
```bash
|
|
447
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
496
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 batch <目录路径> --recursive
|
|
448
497
|
```
|
|
449
498
|
|
|
450
499
|
### 批量扫描并输出 JSON 报告
|
|
451
500
|
|
|
452
501
|
```bash
|
|
453
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
502
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 batch <目录路径> --detailed --json /tmp/scan-report.json
|
|
454
503
|
```
|
|
455
504
|
|
|
456
505
|
### 常用目录示例
|
|
457
506
|
|
|
458
507
|
扫描 OpenClaw 默认 skills 目录:
|
|
459
508
|
```bash
|
|
460
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
509
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 batch ~/.openclaw/skills
|
|
461
510
|
```
|
|
462
511
|
|
|
463
512
|
扫描 workspace skills:
|
|
464
513
|
```bash
|
|
465
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
514
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 batch ~/.openclaw/workspace/skills --recursive
|
|
466
515
|
```
|
|
467
516
|
|
|
468
517
|
---
|
|
@@ -472,7 +521,7 @@ https://clawhub.ai/<username>/<project>
|
|
|
472
521
|
检查 API 服务是否运行:
|
|
473
522
|
|
|
474
523
|
```bash
|
|
475
|
-
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url
|
|
524
|
+
{baseDir}/.venv/bin/python {baseDir}/scan.py --api-url http://localhost:8000 health
|
|
476
525
|
```
|
|
477
526
|
|
|
478
527
|
---
|
|
@@ -533,7 +582,7 @@ https://clawhub.ai/<username>/<project>
|
|
|
533
582
|
|
|
534
583
|
| 参数 | 说明 |
|
|
535
584
|
|------|------|
|
|
536
|
-
| `--api-url <url>` | API
|
|
585
|
+
| `--api-url <url>` | API 服务地址 |
|
|
537
586
|
| `--detailed` | 显示每条 finding 的完整详情 |
|
|
538
587
|
| `--behavioral` | 启用 AST 数据流分析(更准确,稍慢) |
|
|
539
588
|
| `--llm` | 启用 LLM 语义分析(最准确,需 API 支持) |
|
|
@@ -561,7 +610,8 @@ https://clawhub.ai/<username>/<project>
|
|
|
561
610
|
- VirusTotal 扫描需要 API 服务配置 VirusTotal API 密钥,否则不会包含 VirusTotal 数据。
|
|
562
611
|
- VirusTotal 有 API 调用频率限制(免费版:4 次/分钟,付费版更高)。
|
|
563
612
|
- 退出码 `0` 表示安全,`1` 表示存在问题(便于 CI/CD 集成)。
|
|
564
|
-
- `{
|
|
613
|
+
- `{baseDir}` 占位符会自动替换为 Skill 的安装目录。
|
|
614
|
+
- 如果你配置了非默认的 API URL(如 `http://10.110.3.133`),请在命令中使用 `--api-url` 参数指定你的 URL。
|
|
565
615
|
|
|
566
616
|
### VirusTotal 特别说明
|
|
567
617
|
|