view --main openclaw-skills-audit-audit-bezopasnosti-i-monitoring-skillov.md
openclaw-skills-audit: Аудит безопасности и мониторинг скиллов
readonly
--- lines
---
name: openclaw-skills-audit
version: 1.0.0
description: Security audit + append-only NDJSON logging + realtime monitoring for OpenClaw skills.
---
# Skills Audit (skills-audit)
Это полезный инструмент для безопасного управления OpenClaw skills, обладающий тремя основными возможностями:
1) **Сканирование угроз** (статический анализ)
2) **Журналы аудита, доступные только для добавления** (локальный NDJSON)
3) **Мониторинг skills и уведомления** (push-уведомления об изменениях)
Этот инструмент разработан с учетом принципа **протокола прежде всего**: он выполняет аудит и регистрирует изменения, не выполняя код skills.
---
## Основные возможности
### 1) Сканирование угроз / Статический анализ рисков
При сканировании каталога установленного skills, `skills_audit.py` выполняет **статическую проверку** и генерирует сводку рисков.
Он фокусируется на трех классах сигналов:
- **Сетевые индикаторы**: URL-адреса/домены, намеки на использование `curl/wget/requests`
- **Индикаторы опасных команд**: `curl|sh`, `wget|bash`, `eval`, динамическое выполнение, декодирование base64
- **Индикаторы подозрительных файлов**: механизмы сохранения (cron/systemd), пути к конфиденциальным файлам (`~/.ssh`, `~/.aws`, `/etc/...`)
Выходные поля:
- `risk.level`: `low | medium | high | extreme` (низкий | средний | высокий | экстремальный)
- `risk.decision`: `allow | allow_with_caution | require_sandbox | deny` (разрешить | разрешить с осторожностью | потребовать песочницу | запретить)
- `risk.risk_signals[]`: записи с доказательствами (файл + фрагмент)
- `risk.network.domains[]`: домены, извлеченные из текстовых файлов
> Обратите внимание: это **только статический анализ**. Он никогда не выполняет код skills.
### 2) Журналирование аудита (только для добавления)
Все обнаруженные события записываются в виде **одного JSON-объекта на строку (NDJSON)** и добавляются в:
- `~/.openclaw/skills-audit/logs.ndjson`
Также поддерживается небольшой файл состояния для сравнения:
- `~/.openclaw/skills-audit/state.json`
Схема записи определена следующим файлом:
- `skills-audit/log-template.json`
Основные принципы проектирования:
- **Только для добавления**: журналы никогда не перезаписываются
- **Подсказка целостности**: `md5` (MD5 файла `SKILL.md`, если он присутствует)
- **Отсутствие конфиденциальных полей**: `source` / `approval` намеренно удалены из схемы
### 3) Мониторинг skills в реальном времени и push-уведомления
Для улучшения пользовательского опыта можно запустить запланированный монитор, который обнаруживает:
- **Добавление/изменение/удаление** skills в каталоге `workspace/skills`
и отправляет сообщение (например, в WeCom) только при обнаружении изменений.
Компоненты:
- `skills_watch_and_notify.py`: генерирует удобочитаемый текст уведомления
- `openclaw cron add / edit`: OpenClaw управляет созданием/редактированием cron-задач и маршрутизацией уведомлений
Поведение:
- **Нет изменений → нет сообщения**
- **Есть изменения → отправляется одно уведомление**
Стиль уведомления (фиксированный шаблон; не сворачивается в краткое резюме):
- Каждое непустое уведомление об изменениях должно использовать **фиксированный шаблон**. Оно не должно сводиться к сводке только рисков или однострочному уведомлению только о skills.
- Уведомление должно сохранять следующие поля в указанном порядке:
1. Заголовок: `【Skills 监控提醒】` (Уведомление о мониторинге skills)
2. Вводная строка: `检测到 skills 目录发生变更` (Обнаружено изменение в каталоге skills)
3. Разделы изменений: `【新增】` / `【变更】` / `【删除】` (показываются только непустые разделы) (Добавлено | Изменено | Удалено)
4. Одна строка на skills: `• <slug>|风险等级:<risk_label>` (• <slug> | Уровень риска: <risk_label>)
5. Строка пути: `📁 路径:<skills_dir>` (📁 Путь: <skills_dir>)
6. Строка времени: `🕒 时间:<timestamp> (<timezone>)` (🕒 Время: <timestamp> (<timezone>))
7. Строка журнала аудита: `🧾 审计日志:<logs_path>` (🧾 Журнал аудита: <logs_path>)
- Элементы 1~7 являются частью фиксированного шаблона уведомления и **не должны опускаться** из-за суммирования модели, переписывания стиля или сжатия канала.
- Нет изменений → нет вывода.
- Уровни риска используют фиксированные визуальные метки:
- `🟢 低` (🟢 Низкий)
- `🟢 中` (🟢 Средний)
- `🟡 高` (🟡 Высокий)
- `🔴 极高` (🔴 Экстремальный)
- `⚪ 未知` (⚪ Неизвестно)
Рекомендуемый пример фиксированного шаблона:
```text
【Skills 监控提醒】
检测到 skills 目录发生变更
【删除】
• weather|风险等级:⚪ 未知
📁 路径:/root/.openclaw/workspace/skills
🕒 时间:2026-03-27 17:58:11 (Asia/Shanghai)
🧾 审计日志:/root/.openclaw/skills-audit/logs.ndjson
```
---
## Как начать (Включить skills-audit)
По умолчанию демон не запущен. Вы можете запустить его двумя способами.
### Рекомендуемый: запуск через чат (без команд)
Просто скажите ассистенту в чате:
> “Start skills-audit. Monitor skills every minute and push changes back to this conversation.” (Запустите skills-audit. Отслеживайте skills каждую минуту и отправляйте изменения обратно в этот разговор.)
Предпочтительный вариант формулировки - **push back to this conversation** (отправлять обратно в этот разговор), а не указывать фиксированный канал, такой как WeCom.
Таким образом, ассистент должен:
1. Инициализировать локальные файлы, необходимые для `skills_audit.py`
2. Использовать `openclaw cron add` (или `openclaw cron edit`, если задача уже существует)
3. Маршрутизировать уведомления обратно в **текущий разговор**, при этом канал/получатель определяются OpenClaw на основе контекста сессии
Необязательные параметры:
- Расписание: `SCHEDULE="*/5 * * * *"`
- Часовой пояс: `TZ=Asia/Shanghai`
- Режим только для ведения журнала: “record logs only, do not push” (записывать только журналы, не отправлять)
- Режим предварительного просмотра: “preview first, do not create yet” (сначала просмотрите, не создавайте)
> Правило проектирования: `skills-audit` отвечает только за **сканирование / ведение журнала / генерацию текста уведомления**. Планирование и доставка должны выполняться **OpenClaw cron**.
### Ручной: выполнение команд
### Режим 1) Ручное сканирование (рекомендуется для первоначальной проверки)
1. Инициализируйте локальные файлы:
```bash
python3 skills/skills-audit/scripts/skills_audit.py init --workspace /root/.openclaw/workspace
```
2. Выполните сканирование один раз:
```bash
python3 skills/skills-audit/scripts/skills_audit.py scan --workspace /root/.openclaw/workspace --who user --channel local
```
Это создаст/обновит:
- `~/.openclaw/skills-audit/logs.ndjson`
- `~/.openclaw/skills-audit/state.json`
### Режим 2) Мониторинг в фоновом режиме (рекомендуется для производственной среды)
Используйте собственную систему cron OpenClaw для создания запланированной задачи (по умолчанию каждую минуту).
### C) Установка cron для мониторинга (рекомендуется)
Предпочтительно создавать/редактировать задачу с помощью `openclaw cron add` / `openclaw cron edit`, а не позволять skills напрямую записывать в `jobs.json`.
Рекомендуемый дизайн:
- **skills-audit не управляет напрямую записью файлов cron**
- **OpenClaw cron управляет планированием**
- **Уведомления должны возвращаться в текущий разговор** при включенной доставке
Для локальной проверки вы все равно можете запустить генератор уведомлений напрямую:
```bash
python3 skills/skills-audit/scripts/skills_watch_and_notify.py --workspace /root/.openclaw/workspace
```
---
## Файлы
- `skills/skills-audit/log-template.json` — шаблон схемы NDJSON
- `skills/skills-audit/scripts/skills_audit.py` — сканер + логгер (logs.ndjson/state.json)
- `skills/skills-audit/scripts/skills_watch_and_notify.py` — генератор текста уведомления
---
## Меры предосторожности
- Только статический анализ: никогда не выполняйте неизвестный код skills во время аудита.
- Если `risk.level` равен `high`/`extreme`, требуется явная проверка человеком или песочница.
- Предпочтительно использовать `openclaw cron add` / `openclaw cron edit` для запланированных задач и маршрутизации уведомлений.
Инициализация мануала...
//
$ ls -R related_skills/
2026-03-29
⭐ 3812
detecting-ai-model-prompt-injection-attacks — Обнаружение атак внедрения запросов в LLM
2026-03-30
⭐ 3588
skill-security-auditor — Автоматизированный аудит безопасности AI-агентов
2026-04-11
⭐ 4006
skill-scanner: Анализ безопасности Skill, локально
2026-03-29
⭐ 10681
WebAssessment — Автоматизированный аудит кибербезопасности веб-систем
package.json
$ install --global
skills.sh
npx skills add https://github.com/openclaw/skills/tree/main/skills/buffedon/openclaw-skills-audit
$ download --local
man
[HINT] Скачивает всю директорию скилла с GitHub: SKILL.md и все связанные файлы