Synthèse automatique
Ce skill exploite des outils MCP basés sur eBPF pour tracer le comportement d'un processus (accès fichiers, connexions réseau, execve, ioctl) à des fins de débogage, d'audit et de détection d'anomalies.
Points forts
- Couvre quatre dimensions d'observation concrètes : fichiers, réseau, arborescence de processus et usage des ressources
- Fournit des règles d'anomalie explicites (accès à ~/.ssh/id_rsa, balayage de ports, tentative de privilege escalation, exfiltration) directement applicables
- Propose plusieurs modes d'accès aux événements (flux temps réel via query_events, historique via tail_events, métriques via get_system_health) selon le besoin
- Décrit une gradation de réponse allant du simple log au blocage réseau, fichier ou cgroup via le wrapper
Limites
- Dépend entièrement d'un collecteur eBPF/MCP externe (agent_tracker, wrapper) qui n'est pas fourni par le skill lui-même
- Le filtrage par nom de commande repose sur une correspondance exacte de 16 octets, ce qui peut manquer des processus
- La détection reste heuristique : les seuils (>10 cibles, >100 fichiers) sont des valeurs par défaut à ajuster manuellement
À utiliser lorsqu'il faut comprendre ou auditer ce qu'un agent ou un processus fait réellement au niveau système, notamment en cas de comportement suspect.
À éviter si aucun collecteur eBPF ni serveur MCP de télémétrie n'est déployé, ou pour un simple profilage de performances applicatives.
Analyse de sécurité
PrudenceNothing here is exfiltrating or obfuscated — it is defensive eBPF-based observability and enforcement, which is legitimate. However it grants broad, lightly-scoped control over host processes (network/file blocking, cgroup isolation, kill), matches targets by process name so false positives are likely, and touches sensitive credential paths, so it warrants a caution rating rather than safe.
- •No allowed-tools declared, yet the skill instructs use of numerous powerful MCP tools (add_tracked_command, add_tracked_path, query_events, tail_events, get_system_health, block_network_destination, block_file_access, block_process_cgroup) — permission scope and provenance of the backing MCP server are unspecified.
- •Includes active intervention steps (blocking network destinations, blocking file access, cgroup network isolation, terminating processes). If the agent follows the 'high risk' response section, it could disrupt unrelated processes, since tracking is by command name (python3) and 'exact 16-byte comm match' will match many benign processes.
- •Guidance to monitor sensitive paths (/etc/shadow, ~/.ssh/id_rsa, ~/.aws/credentials, /proc/*/environ) means captured event data may contain sensitive credential-adjacent information that could later be surfaced or logged.
- •Pseudo-code blocks (Python register_pid, JavaScript registerPID, a monitoring while-loop with sleep/block calls) are illustrative but written in executable-looking fences; an agent could attempt to run them, and the dependencies (agent_tracker, agent-wrapper, /config/wrapper-rules) are not defined in the file.
- •No explicit safety constraints, rate limits, or confirmation requirements before destructive/blocking actions are described.
Exemples
Register python3 as a tracked command with tag 'ai-agent', then query the last 200 events for PID 12345 and summarise which files it opened and which hosts it connected to.Pull all openat events for the running agent process and flag any access to /etc/shadow, ~/.ssh/id_rsa, ~/.aws/credentials or /proc/*/environ.List every execve event for the tracked process, build the process tree, and tell me whether any /bin/sh -c invocation contains user-controlled arguments.name: monitor-process description: 监控特定进程的行为,包括文件访问、网络连接、子进程创建、系统调用模式等,用于调试、审计和异常检测。
Monitor Process - 进程行为监控
本 skill 用于深度监控特定进程的运行时行为,通过 eBPF 追踪其系统调用活动。
使用场景
- 调试 Agent 的文件访问问题
- 审计进程的安全行为
- 分析进程的资源使用模式
- 检测异常或恶意行为
- 追踪工具调用链(tool call → subprocess → file access)
监控准备
1. 注册进程进行追踪
选项 A:追踪命令名
使用 add_tracked_command MCP 工具:
{
"command": "python3",
"tag": "ai-agent"
}
这会追踪所有名为 python3 的进程(精确 16 字节匹配)。
选项 B:Agent 自注册
如果进程是 Python/Node Agent,使用 adapter 注册:
# Python
from agent_tracker import register_pid
register_pid(tag="my-agent", agent_run_id="run-123")
// Node.js
const { registerPID } = require('./agentTracker');
registerPID({ tag: 'my-agent', agentRunId: 'run-123' });
2. 配置追踪路径(可选)
如果只关心特定路径的访问,使用 add_tracked_path:
{
"path": "/home/user/.ssh/id_rsa",
"tag": "sensitive-file"
}
监控方法
方法 1:实时事件流(推荐)
使用 query_events MCP 工具按 PID 或 comm 过滤:
{
"pid": 12345,
"limit": 200
}
或按命令名过滤:
{
"comm": "python3",
"limit": 200
}
优点:
- 低延迟,实时获取
- 可精确过滤
- 包含完整事件详情
缺点:
- 需要轮询或周期调用
- 不保证捕获所有事件(如果进程活动频繁)
方法 2:历史事件回放
使用 tail_events 获取最近的事件历史:
{
"limit": 500
}
然后在本地过滤出目标进程的事件。
优点:
- 可回溯分析
- 适合事后调查
- 支持持久化日志(如果启用)
缺点:
- 延迟较高
- 需要在海量事件中过滤
方法 3:系统健康和性能指标
使用 get_system_health MCP 工具查看:
- collectorHealth: 事件采集器状态
- tracepointBootstrap: eBPF 程序加载状态
- otelExporter: OTLP 导出器状态
- cgroupSandboxAttached: 网络拦截是否启用
- lsmEnforcerAttached: 文件拦截是否启用
监控维度
1. 文件访问模式
关注事件类型:
openat: 打开文件unlinkat: 删除文件mkdirat: 创建目录
分析要点:
- 访问频率(是否频繁读写?)
- 路径模式(集中在哪些目录?)
- 敏感文件(是否访问 /etc/passwd、~/.ssh/ 等?)
- 临时文件(/tmp/ 下的活动)
示例查询:
步骤:
- 调用
query_events,参数{ "pid": 12345, "eventType": "openat", "limit": 100 }。 - 提取所有
path字段。 - 按目录前缀分组统计。
- 识别异常:
- 访问
/proc/<other_pid>/:可能在探测其他进程。 - 访问
/sys/kernel/debug/:可能在尝试提权。 - 访问
~/.aws/credentials:可能在窃取凭证。
- 访问
2. 网络行为模式
关注事件类型:
connect: TCP 连接bind: 监听端口sendto: UDP 发送recvfrom: UDP 接收
分析要点:
- 连接目标(IP、域名、端口)
- 连接频率(是否有 DDoS 行为?)
- 监听行为(是否开放后门端口?)
- 协议选择(TCP vs UDP)
示例分析:
- 获取该进程的所有
connect事件。 - 提取目标 IP 和端口。
- 按目标分组:
- API 服务器(
api.openai.com:443):正常。 - C&C 服务器(可疑 IP:8443):告警。
- 本地服务(
127.0.0.1:5432):数据库访问。
- API 服务器(
- 计算连接成功率(
ESTABLISHEDvsFAILED)。 - 识别端口扫描(短时间大量不同端口)。
3. 进程创建链
关注事件类型:
execve: 执行新程序
分析要点:
- 父子进程关系
- 执行的命令行参数
- 是否有 shell 注入风险
- 是否执行了意外的子程序
示例分析:
获取该进程的所有 execve 事件,并绘制进程树:
flowchart TD
Python["python3 (12345)"] --> Git["git clone ... (12346)"]
Git --> SSH["ssh ... (12347)"]
检查:
- 命令参数是否包含用户输入(注入风险)
- 执行路径是否在 PATH 中(劫持风险)
- 是否有
/bin/sh -c "..."模式(shell 注入)
4. 资源使用模式
关注事件类型:
ioctl: I/O 控制(可能涉及硬件访问)- 高频
openat+unlinkat: 临时文件管理 - 大量
connect: 网络密集
分析要点:
- 事件频率分布
- 高频操作类型
- 资源竞争(多次失败重试)
异常检测规则
规则 1:未授权文件访问
IF 进程尝试访问:
- /etc/shadow
- ~/.ssh/id_rsa
- ~/.aws/credentials
- /proc/*/environ
THEN 告警:"敏感文件访问"
规则 2:异常网络行为
判定条件:进程在短时间内(5 秒)满足以下任一项时,告警并考虑隔离:
- 连接
>10个不同目标:端口扫描 - 连接已知恶意 IP:
C&C 通信 - 监听非预期端口(非
8000-9000):后门
规则 3:提权尝试
IF 进程执行:
- sudo / su
- pkexec
- setuid 程序(如 passwd)
- 修改 /etc/sudoers
THEN 告警:"提权尝试"
规则 4:数据外泄
IF 进程:
- 读取大量文件(>100 个)
- 然后立即发起网络连接
- 上传大量数据(通过 TLS 捕获观察)
THEN 告警:"疑似数据外泄"
响应策略
低风险行为
- 仅记录日志
- 添加到审计报告
中风险行为
- 实时告警
- 使用
block_network_destination阻止可疑连接 - 使用
block_file_access阻止敏感文件访问
高风险行为
- 立即告警
- 使用
block_process_cgroup隔离整个进程(阻止所有网络) - 使用 BPF LSM 阻止进一步文件操作
- 终止进程(通过 wrapper 或手动 kill)
集成 Wrapper 策略
如果进程通过 agent-wrapper 启动,可以在检测到异常后:
1. 通过 wrapper 规则预先限制行为:
- BLOCK 特定命令
- REWRITE 命令参数(移除危险参数)
- ALERT 但允许执行(仅记录)
2. 动态调整规则:
- 检测异常后,POST /config/wrapper-rules 添加新规则
- 该规则立即生效,影响后续执行
性能优化
- 使用
limit参数控制返回事件数量 - 按
eventType精确过滤,减少无关事件 - 对于长期监控,启用 OTLP 导出到外部系统
- 定期清理内存中的事件缓存(通过
maxEventAge)
完整监控流程示例
# 1. 准备
add_tracked_command({ command: "python3", tag: "agent" })
# 2. 启动 Agent(假设 PID=12345)
# 3. 实时监控(轮询)
while monitoring:
events = query_events({ pid: 12345, limit: 50 })
# 分析文件访问
for event in filter(events, type="openat"):
if is_sensitive(event.path):
alert("敏感文件访问", event)
# 分析网络连接
for event in filter(events, type="connect"):
if is_suspicious(event.dstIP):
block_network_destination({ ip: event.dstIP })
alert("阻止可疑连接", event)
# 分析进程创建
for event in filter(events, type="execve"):
if has_shell_injection(event.args):
alert("疑似 shell 注入", event)
sleep(1)
# 4. 事后分析
history = tail_events({ limit: 1000 })
generate_audit_report(history, pid=12345)
验证方法
- 启动一个测试进程(如 Python REPL)
- 追踪该进程(add_tracked_command 或自注册)
- 在进程中执行操作:
- 打开文件:
open('/etc/passwd') - 网络请求:
import requests; requests.get('http://example.com') - 创建子进程:
import subprocess; subprocess.run(['ls'])
- 打开文件:
- 调用
query_events查询该 PID 的事件 - 验证所有操作都被正确捕获
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/process-behavior-monitor-mrwak9w9' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/process-behavior-monitor-mrwak9w9/download' --output '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md.part' && mv '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md.part' '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md' && test -s '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/monitor-process' && cp -R '.skill-downloads/process-behavior-monitor-mrwak9w9' '.claude/skills/monitor-process'Cursor
test -f '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md' && test -s '.skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/monitor-process' && cp -R '.skill-downloads/process-behavior-monitor-mrwak9w9' '.cursor/skills/monitor-process'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/process-behavior-monitor-mrwak9w9'openskills read 'process-behavior-monitor-mrwak9w9'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/process-behavior-monitor-mrwak9w9/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Sécurité AMM DeFi
Securite
Checklist de sécurité pour les contrats Solidity AMM, pools de liquidité et flux de swap. Couvre réentrance, attaques par donation, manipulation d'oracles, etc.
Créateur de règles Semgrep
Securite
Crée des règles Semgrep personnalisées pour détecter des vulnérabilités de sécurité, des motifs de bugs et des motifs de code. Inclut une méthodologie de test en premier, le support du mode taint et des étapes de validation. Utile pour construire des détections d'analyse statique ciblées.
Revue barre d'outils développement
Securite
Règles de sécurité pour la barre d'outils de développement, le client PostHog et les feature flags. À utiliser lors de la revue de modifications des composants dev-tools et connexes.