首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
AI 自身安全
发新帖
0
4
[原创]从CC-Monitor的设计开发看AI Agent的EDR功能需求
发表于: 1天前
283
[原创]从CC-Monitor的设计开发看AI Agent的EDR功能需求
0xroot
1
1天前
283
## 写在开头 周末一个人躺在沙发上,看着我的电脑它在自己写代码、自己修Bug、自己逆向分析、自己调用GDB动态调试,忽然之间觉得有点像灵异事件:好像是有一个你看不见的人在操作你的电脑。 突然想起来一个老段子:单位里有个人去世了,但他工位上的电脑一直没关。 有一天晚上,其他同事远程控制着他的电脑干活。恰好有个人晚上去单位取东西,路过那个工位,发现电脑屏幕亮着,鼠标指针自己在动,甚至还在操作/写代码,但工位上根本没人。 他当时以为……闹鬼了。 后来才知道,是有人在远程控制那台电脑。 和这个段子唯一不同的是,现在并没有人在远程控制我的电脑。 最近出现AI中转站被恶意投毒、执行窃取Token key 凭证数据的新闻: <mark class="encrypted">f3eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5i4K6u0W2j5$3!0E0i4K6u0r3M7$3S2G2N6h3y4U0j5$3y4Q4x3V1k6K6N6r3q4@1N6i4y4Q4x3V1j5J5x3o6V1^5x3e0j5&6y4K6R3J5y4e0b7I4y4U0x3I4z5o6M7I4</mark> <mark class="encrypted">5f2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5i4K6u0W2j5$3!0E0i4K6u0r3M7$3S2G2N6h3y4U0j5$3y4Q4x3V1k6K6N6r3q4@1N6i4y4Q4x3V1j5J5x3o6b7J5y4o6t1K6y4K6p5K6x3o6p5&6y4o6p5J5z5e0b7I4</mark> <mark class="encrypted">c41K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7Y4S2A6N6W2)9J5k6h3!0J5k6#2)9J5c8X3q4T1M7#2)9J5c8U0t1$3x3o6c8Q4x3X3f1H3z5o6b7H3y4H3`.`.</mark> 鉴于最近大模型中转站被注入恶意工具调用并窃取凭证的攻击事件频繁发生,审计AI在电脑里面读了什么内容,修改了哪些代码以及执行了哪些操作这种措施就必不可少了,趁周末有空,写了个工具插件,可以监测Claude Code在电脑上所有的操作和行为. 效果图如下: !<a href="elink@801K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8U0m8^5M7X3!0G2N6q4)9J5k6i4N6G2M7X3c8H3M7X3g2K6M7#2)9J5k6h3y4G2L8g2)9J5c8Y4N6H3i4K6u0V1j5$3!0F1N6r3g2F1N6q4)9J5c8Y4g2H3L8r3!0S2k6s2y4Q4x3V1j5J5x3o6t1$3i4K6u0r3x3o6W2Q4x3V1k6U0j5$3#2E0L8h3#2E0i4K6u0W2M7r3&6Y4">首页效果图</a> 目前可以识别Claude Code发起的行为包括: ##### 一、破坏性操作 | 规则 id | 动作 | 检测效果 | |---|---|---| | `dangerous_delete` | 拦截 | `rm -rf`/`rm -fr` 对根目录、`~`、`$HOME`、`..` 的删除 | | `disk_overwrite` | 拦截 | `dd`/`mkfs`/`fdisk`/`parted` 磁盘级覆写/分区操作 | | `fork_bomb` | 拦截 | `:(){ :|:& };:` 这类 fork bomb 写法 | | `db_destructive_command` | 确认 | `mysql`/`psql`/`redis-cli`/`mongo`/`sqlite3` 直接执行 `DROP`/`DELETE`/`TRUNCATE`/`FLUSHALL`/`FLUSHDB` | | `git_hard_reset_clean` | 确认 | `git reset --hard`/`git clean -f` | | `history_tampering` | 确认 | 清空/删除/重定向覆盖 `.bash_history`/`.zsh_history` | ##### 二、命令执行/代码执行类攻击手法 | 规则 id | 动作 | 检测效果 | |---|---|---| | `curl_pipe_shell` | 拦截 | `curl/wget \| sh/bash/zsh` 下载直接管道执行 | | `curl_download_then_exec` | 确认 | 先下载脚本文件再单独执行(非管道,两步走) | | `reverse_shell_pattern` | 拦截 | `/dev/tcp` 反弹、`nc -e`/`ncat`/`netcat` 各变体、`socat exec:`、`mkfifo` 命名管道拼接反弹 shell | | `shell_escape_via_utility` | 拦截 | GTFOBins 式"借道"逃逸:`find -exec sh`、`awk system()`、`perl exec`、Python `pty.spawn`/`os.system`、`tar --checkpoint-action=exec=`、`vim -c :!sh`、`zip --unzip-command=`、`script -qc`、`ssh ProxyCommand=` | | `encoded_payload_exec` | 拦截 | `base64 -d`/`xxd -r` 解码后直接管道给 shell/python 执行 | | `dynamic_exec_in_write` | 记录 | 写入内容里出现 `eval()`/`exec()`/`os.system()`/`subprocess(shell=True)` 等动态执行 | ##### 三、渗透测试/攻击工具链 | 规则 id | 动作 | 检测效果 | |---|---|---| | `c2_framework_execution` | 确认 | Metasploit(`msfconsole`/`msfvenom`)、Cobalt Strike、PowerShell Empire、Sliver、Pacu 等 C2 框架 | | `post_exploitation_tool_execution` | 确认 | LinPEAS、NetExec、BloodHound/SharpHound、smbmap、rpcclient、enum4linux 等后渗透枚举工具 | | `pentest_recon_tool_execution` | 记录 | nmap/masscan/sqlmap/hydra/nikto/gobuster/wpscan/hashcat 等侦察/爆破工具(18+ 覆盖,纯记录不拦截) | | `mcp_suspicious_tool_name` | 确认 | MCP 工具名本身包含 `reverse_shell`/`c2server`/`beacon`/`backdoor` 等可疑字样 | | `ssh_tunnel_reverse_proxy` | 确认 | `ssh -R/-D/-L` 隧道转发、`socat`、`chisel client/server` | | `covert_tunnel_tool_execution` | 确认 | dnscat2/iodine/dns2tcp/ptunnel/icmptunnel/pingtunnel 等隐蔽隧道(DNS/ICMP tunneling) | | `crypto_miner_pool_domain_command` / `_write` | 确认 | 命令或写入内容中出现矿池域名/`stratum+tcp://` 协议 | ##### 四、权限提权 | 规则 id | 动作 | 检测效果 | |---|---|---| | `chmod_world_writable_recursive` | 拦截 | `chmod -R 777` 作用于根目录/家目录 | | `chown_root_recursive` / `chgrp_root_recursive` | 拦截 | 递归改属主/属组到根目录/家目录 | | `setuid_setgid_bit` | 确认 | `chmod u+s`/`g+s`/`4xxx`/`2xxx` 设置 SUID/SGID 位 | | `chmod_recursive_generic` | 确认 | 任意 `chmod -R`(不限 777) | | `chmod_777_single_file` | 确认 | 单文件 `chmod 777`(非递归,相对路径也覆盖) | | `sudo_usage` | 确认 | 命令行首/管道后出现 `sudo` | | `su_pkexec_privilege_escalation` | 确认 | `su`/`pkexec` 提权 | | `sudo_pip_install` | 拦截 | `sudo pip install`(系统级 Python 环境风险) | ##### 五、持久化后门 | 规则 id | 动作 | 检测效果 | |---|---|---| | `ssh_authorized_keys_bash_write` | 拦截 | 追加写入 `authorized_keys`/`id_*`/SSH config | | `crontab_persistence` | 确认 | `crontab -e/-r/-l` 或写 `/etc/cron*` | | `systemd_persistence` | 确认 | `systemctl enable/start` 新建持久化服务 | | `git_hooks_persistence` | 确认 | `git config core.hooksPath`/`url.insteadOf`、直接写 `.git/hooks/` | | `git_hooks_file_write` | 确认 | `Write`/`Edit` 工具直接改 `.git/hooks/` 下的文件 | | `user_account_management` | 确认 | `useradd`/`userdel`/`usermod`/`passwd` 账号管理 | ##### 六、防绕过 / 自我保护类规则 | 规则 id | 动作 | 检测效果 | |---|---|---| | `disable_security_controls` | 拦截 | `setenforce 0`、`ufw disable`、`iptables -F`、停用防火墙/SELinux 等安全控制 | | `kill_monitoring_process` | 确认 | `kill`/`pkill`/`killall` 目标是 CC-Monitor 自己的探针/hook 进程 | | `process_kill` | 记录 | 通用 `kill`/`pkill`/`killall`(非监测进程,兜底记录避免警报疲劳) | | `claude_config_tamper` | 确认 | 改 `.claude/settings.json`/`.claude/hooks/`/`CLAUDE.md`/`.mcp.json`(比杀进程更隐蔽的绕过手法) | ##### 七、敏感文件/凭据读写 | 规则 id | 动作 | 检测效果 | |---|---|---| | `sensitive_file_write` | 拦截 | `Write`/`Edit` 直接写 `.ssh/`、`.aws/credentials`、`.env`、私钥文件 | | `sensitive_file_read` / `sensitive_file_read_bash` | 记录 | `Read` 或 `cat`/`less`/`head`/`strings`/`xxd` 等命令读取同一批敏感文件 | | `browser_credential_read` / `_bash` | 确认 | 读取浏览器 Cookies/Login Data/Web Data(Chrome/Chromium/Brave 等) | | `credential_grep_scan` | 确认 | `grep -r`/`rg`/`ag` 递归搜索 `password`/`secret` 等关键词 | | `cloud_vpn_config_write` / `_read` | 确认/记录 | OpenVPN/WireGuard/阿里云/腾讯云/kubeconfig 配置读写 | | `proc_env_read` | 确认 | 读 `/proc/<pid>/environ` 或 `/cmdline` 拿其它进程的环境变量/命令行 | | `env_dump` | 记录 | `env`/`printenv`/`export -p` 打印全部环境变量(已修复对 `env VAR=val cmd` 场景的误判) | | `secret_pattern_in_write` | 确认 | 写入内容里出现私钥文件头、AWS/GitHub/Anthropic/OpenAI/Slack/Google/npm/Stripe 等平台固定前缀密钥格式 | | `pii_pattern_in_write` | 记录 | 写入内容里出现身份证号/手机号/邮箱等 PII 模式 | | `history_read` / `history_file_read` | 记录 | 读 shell/数据库客户端的历史命令文件(可能留有明文凭据) | ##### 八、Web/数据库攻击面 | 规则 id | 动作 | 检测效果 | |---|---|---| | `webshell_pattern_in_write` | 拦截 | 写入内容出现动态执行 `$_POST`/`$_GET`/`$_REQUEST`/`$_COOKIE` 参数的 PHP webshell 特征 | | `db_arbitrary_file_write` / `_content` | 确认 | `INTO OUTFILE/DUMPFILE`、MySQL `general_log_file` 任意文件写(命令和写入内容两个入口都覆盖) | | `docker_privileged_or_host_mount` | 确认 | `docker run --privileged`、挂载 `/`、挂载 Docker socket(容器逃逸) | ##### 九、系统/环境变更 | 规则 id | 动作 | 检测效果 | |---|---|---| | `system_package_install` | 确认 | `apt`/`yum`/`dnf`/`pacman` 等系统包安装/卸载 | | `pip_install_no_venv` / `pip_install_venv_context` | 确认/记录 | 不在虚拟环境下 `pip install`(有 venv 上下文的降级为记录) | | `npm_global_install` / `npm_local_install` | 确认/记录 | `npm install -g`(全局)vs 本地安装 | | `package_install_other` | 记录 | `gem`/`cargo`/`go install`/`composer` | | `npx_pipx_ephemeral_run` | 确认 | `npx`/`pnpm dlx`/`bunx`/`pipx run`/`uvx` 临时运行未审计过的第三方包 | | `shell_rc_write` | 确认 | 写 `.bashrc`/`.zshrc`/`.profile` 等 shell 启动脚本 | | `system_config_write` | 确认 | 写 `/etc`、`/boot`、`/System`、`/Library` 下的系统配置 | | `git_force_push` | 确认 | `git push --force`/`-f` | ##### 十、可见性记录(低风险,纯留痕) | 规则 id | 动作 | 检测效果 | |---|---|---| | `outbound_request` | 记录 | `WebFetch` 访问的每个 URL | | `web_search` | 确认 | `WebSearch` 的搜索关键词 | | `user_clarifying_question` | 通知 | Claude Code 发起的 `AskUserQuestion` 澄清性提问(非风险事件,只做可见性同步) | ##### 十一、系统层/绕过检测(独立于上述规则表) - **`hook_bypass_suspected`**:探针(eBPF `execve` 观测)实测到的命令,在对应时间窗口内的 hook 记录里找不到匹配(去引号子串比对),标记为"可能绕过监测" - **进程树识别**:`sched_process_fork` 持续传播"属于 Claude Code 派生进程"这个标记,即使子进程改名也跟得上 - **网络层**:`connect()` 系统调用直接抓目标 IP:port,`tcp_sendmsg`/`tcp_cleanup_rbuf` 统计上传/下载字节数,`uprobe:libc:getaddrinfo` 捕获应用层解析的域名 ##### 十二、首页分类统计(可见性归类,不触发拦截判定) 这些是对 Bash 命令文本做的行为分类,用于首页统计卡片,本身不产生 block/confirm 决策: - **GitHub 操作**:push / clone / commit / pull-fetch / gh CLI / 其它 git 操作 - **SSH 操作**:ssh / scp / sftp / 密钥管理 / 其它 - **下载行为**:wget / curl / aria2 / 其它 - **Docker 操作**:run / build / exec / compose / 其它 - **压缩/归档**:tar / zip / 7z / gzip / 其它 - **网络诊断工具**:nc / nmap / telnet / 其它 - **逆向分析工具**:IDA / Ghidra / radare2/rizin / GDB / 其它(含 frida、binwalk、checksec、diaphora、bindiff、jadx、apktool、dex2jar、jd-gui、uncompyle6 等反编译/脱壳/调试工具) - **进程管理/后台驻留**:nohup / disown / 后台任务(`&`) / 其它 - **子代理派生**:按 `subagent_type` 分组统计 - **敏感操作细分**:SSH 密钥 / 凭据 / 环境变量查找 / 其它(对已命中规则的事件做二次归类) - **敏感数据细分**:对已命中的敏感文件/内容规则按类型二次归类(如 VPN/云 CLI 配置) - **高级威胁**:把 10 条高危规则(挖矿/数据库文件写/webshell/反弹与逃逸 shell/下载执行/C2/后渗透/可疑 MCP/渗透侦察/隐蔽隧道)汇总到一张卡片统一呈现 - **截屏审计**:识别截图 CLI 命令 / `Read` 打开的图片文件 / MCP 截图类工具调用,只记路径不读图像内容本身 ## 1. 背景与目标 监测对象:Claude Code 在本机执行的所有可能影响系统安全或数据安全的操作——文件读写、命令执行、网络访问、以及其它 Claude Code 工具能触发的操作。 目标: - **可见**:记录 Claude Code 做了什么(谁、何时、对什么、做了什么操作、结果如何)。 - **可控**:对高危操作能够拦截/告警/需人工确认,而不是只能事后审计。 - **难绕过**:监测能力不能被 Claude Code 自身(无论是正常行为还是被提示注入劫持后的行为)轻易关闭。 - **跨平台**:Linux 和 macOS 都要能用,核心逻辑尽量共用一套代码。 ## 2. 监测范围 对应 Claude Code 的操作可归纳为四类: | 类别 | 具体操作 | 对应 Claude Code 工具 | |---|---|---| | 文件读写 | 读取文件、写入/覆盖文件、编辑(diff)、批量替换 | Read / Write / Edit / NotebookEdit | | 命令执行 | Shell 命令、后台进程、脚本 | Bash | | 网络访问 | 抓取网页、调用外部 API/MCP 服务 | WebFetch / WebSearch / MCP 工具 | | 元操作 | 派生子 Agent、跨会话消息、权限模式切换 | Agent / SendMessage / 权限模式变更 | 需要重点防范的两类结果:**破坏系统**(删文件、改配置、执行危险命令)和**泄露数据**(读取凭据/密钥后通过网络外发)。 ## 3. 总体思路:双层监测架构 单纯依赖 Claude Code 自身上报(hooks)有一个根本问题:如果 Claude Code 进程被绕过、hooks 配置被篡改,或者攻击者通过其它路径(比如诱导用户直接改配置)关闭监测,监测就形同虚设。因此设计上采用 **应用层 + 系统层** 两道防线: - **应用层(主力,语义丰富)**:利用 Claude Code 内置的 Hooks 机制(`PreToolUse` / `PostToolUse` 等),在每次工具调用前后拦截,拿到结构化信息(工具名、参数、cwd、session_id)。优点是信息语义清晰("Bash 执行了 rm -rf /tmp/x"),成本低(几个 shell/Python 脚本即可跨平台)。缺点是这一层运行在被监测对象自己的框架内,理论上可被篡改配置绕过。 - **系统层(兜底,防绕过)**:在 OS 层面对 Claude Code 进程树做审计/沙箱化,独立于 Claude Code 是否配合。即使应用层被绕过,系统层依然能看到真实的 `execve`/`open`/`connect` 系统调用,作为最后一道防线。 两层各自独立上报到同一个本地 Agent,互为校验(比如系统层看到了一次文件写入,但应用层没有对应事件,就说明监测被绕过,本身就是一个高危信号)。 ```mermaid flowchart TB subgraph App["应用层(语义层)"] CC["Claude Code 进程"] -- PreToolUse/PostToolUse --> Hook["Hook 脚本"] end subgraph OS["系统层(兜底层)"] CC -- 真实系统调用 --> Kernel["内核: execve/open/connect"] Kernel --> Probe["OS 探针\n(eBPF / auditd / ESF)"] end Hook --> Agent["本地监测 Agent (常驻)"] Probe --> Agent Agent --> Policy["策略引擎\n(规则匹配/风险分级)"] Policy -->|放行/记录| Log["审计日志\n(本地存储+可选上传)"] Policy -->|高危| Block["阻断 / 弹窗确认 / 告警"] Block -. exit code 2 .-> CC ``` ## 4. 核心组件设计 ### 4.1 Hook 拦截器(应用层入口) - 在 `~/.claude/settings.json`(全局)或项目 `.claude/settings.json` 中注册 `PreToolUse` 和 `PostToolUse` hook,matcher 覆盖 `Bash|Write|Edit|Read|WebFetch|...`。 - Hook 收到的 stdin JSON 包含 `session_id`、`cwd`、`tool_name`、`tool_input`(如命令原文/文件路径)。 - 脚本用 Python 或编译好的 Go 二进制实现(跨平台、无依赖),把事件转发给本地 Agent(Unix Domain Socket,延迟低、权限可控)。 - `PreToolUse` hook 若判定为高危操作,直接以特定退出码拒绝,Claude Code 会中止该工具调用并把拒绝原因反馈给模型。 ### 4.2 系统层探针(OS 层,Phase 2 已实现 Linux 部分) | 能力 | Linux 方案 | macOS 方案 | |---|---|---| | 进程事件审计(`execve` 级绕过检测) | **已实现**:`bpftrace` 脚本(`cc_monitor/probe_linux.bt`),跟踪从 `claude` 进程派生出来的所有子进程的 `execve`/`connect`,不依赖 auditd | Endpoint Security Framework(`eslogger` 可无需自研 System Extension 快速验证;生产版本需签名的 ES 客户端 + 用户授权 Full Disk Access),暂未实现——这一层是 `CC-Monitor verify` 绕过检测的基础,目前仍是 Linux 独有 | | 强制沙箱(拦截而非只审计) | Landlock LSM(内核 ≥5.13,按路径限制读写)或 bubblewrap/firejail 包一层,限制可写目录、挂载只读根——暂未实现 | `sandbox-exec`(配合自定义 profile)或跑在容器/轻量 VM(OrbStack/Docker Desktop)中——暂未实现 | | 网络监测 | **已实现**:直接用 eBPF 抓 `connect()` 系统调用拿目标 IP:port(+ `uprobe:libc:getaddrinfo` 在应用层解析域名的那一刻记下来,反向 DNS 兜底),再加 `tcp_sendmsg`/`tcp_cleanup_rbuf` 两个内核探点统计上传/下载字节数,不解密 TLS、不用装 CA 证书;Web UI 有专门的"网络流量"页做明细表 + IP 归属地(本地 MaxMind/DB-IP Lite 数据库)+ WebGL2 世界地图 | **已实现**(`cc_monitor/probe_darwin.py`):用系统自带的 `nettop` 每 2 秒采样 claude 进程树的连接,拿目标 IP:port 和上传/下载字节增量,写进跟 Linux 一致的 `network_traffic` 表,**不需要 root**;跟 Linux 版的差异是没有 `getaddrinfo` 域名捕获(域名只能靠反向 DNS 兜底)、也没有 `execve` 观测(上一行的绕过检测在 macOS 上不成立) | **进程树识别方式**:子进程 fork 出来、真正 exec 新程序之前,`comm` 还没变,仍然继承自父进程 ("claude");一旦这个子进程 execve 到别的程序,就是它是 Claude Code 派生进程的证据,用 `sched_process_fork` 把这层派生关系持续传播给后续所有子进程,实测能干净地把 Claude Code 自己 的操作和桌面上其它进程(conky、gnome-shell 等)的噪音分开。 **交叉验证**:`CC-Monitor-probe` 把观测到的顶层 shell 调用(`bash -c "..."` 之类)跟最近的 `hook_pre` Bash 记录做模糊比对(时间窗口 + 去除引号后的子串匹配,因为 Claude Code 的 Bash 工具 经常会把原始命令包一层 `eval '<command>'` 的 shell 快照脚本再执行)。对不上的会标记成 `hook_bypass_suspected`,典型场景是"被批准执行的命令本身很短,但运行时自己又 exec 了一个完全 没被审查过的命令"——用 `CC-Monitor verify` 查看。 Linux 上需要 root 权限运行(bpftrace 需要 `CAP_BPF`/`CAP_PERFMON` 或直接 root);macOS 上的 `nettop` 网络探针**不需要 root**。两个平台目前都是手动启动,还没有做成开机自启的常驻服务 (要不要装成 systemd/launchd service 属于运维决定,MVP 阶段先手动跑)。 MVP 阶段建议:系统层先只做**审计**(不强制阻断,成本低、无需内核扩展/签名),文件与命令的**拦截**主要靠应用层 Hook 完成;网络层用本地代理统一管控(这个方案 Linux/macOS 完全一致,性价比最高)。系统层的强制沙箱(Landlock/sandbox-exec/容器化)作为 Phase 2 的"高安全模式"可选开启。 ### 4.3 策略引擎(Policy Engine) 规则示例(可配置,YAML/JSON 存放): - **高危(默认拦截+告警)**:`rm -rf`、`dd`、`chmod -R 777 /`、`curl|bash`、`sudo`/`su`/`pkexec` 提权、写入 `~/.ssh/*`、`.env`、`~/.aws/credentials`、访问白名单外域名并同时读取过敏感文件(读+外发组合触发更高风险)、试图 `kill`/`pkill` 掉监控自身的探针/hook 进程(第 3 节讲的"双层监测互为校验"在规则层面的具体落地——这个动作本身就是"正在尝试绕过监测"的信号)、`mysql`/`psql`/`redis-cli`/`mongo`/`sqlite3` 等数据库客户端直接执行 `DROP`/`DELETE`/`TRUNCATE`/`FLUSHALL`(跟"删文件"是同一类风险,但完全在文件系统监测的视野之外)、反弹 shell/后门执行(`nc`/`ncat`/`netcat` 的 `-e`/`-c` 两种写法、`socat exec:`、`mkfifo` 配合命名管道拼出来的反弹 shell 等多种变体,覆盖面持续在扩,因为这类命令的隐蔽写法本来就层出不穷)、**篡改 Claude Code 自身的配置**(`~/.claude/settings.json`、`.claude/hooks/`、`CLAUDE.md`——`kill_monitoring_process` 是"杀掉监测进程"这个绕过手法的进程层版本,这条是配置层版本,改配置删掉 hook 注册比杀进程更隐蔽,不需要任何进程死亡就能让应用层监测下一次调用起就失效)、Docker socket 挂载逃逸(`-v /var/run/docker.sock:...`,比 `--privileged`/`-v /:/` 更常见的容器逃逸手法)、写入内容里出现私钥文件头或 AWS/GitHub/Anthropic 等平台的固定前缀密钥格式(不再要求文件名本身看起来敏感)、git hooks/config 持久化(`core.hooksPath`、`url.insteadOf`,跟 `crontab_persistence`/`systemd_persistence` 同一类持久化后门风险的 git 生态版本)。 - **中危(记录+弹窗确认)**:跨项目目录写入、修改系统配置文件(`/etc/*`)、大批量删除文件。 - **低危(仅记录)**:项目目录内的常规读写、git 操作、读取 shell 历史文件或执行裸 `history`(历史命令里可能留着过去输入过的明文凭据,风险比直接读密钥文件低一档,够不上高危,但值得留痕)。 匹配方式:命令用规则+关键词/正则,必要时结合一个轻量本地模型做语义判断(比如把命令块解释一下"这条命令的意图是什么,是否匹配已知破坏性模式"),文件路径用 glob 黑白名单。 **双层监测架构**(核心设计): - **应用层**:Claude Code `PreToolUse`/`PostToolUse`/`PermissionRequest` hooks,每次工具调用前后同步拦截判定,覆盖 Bash/Write/Edit/Read/WebFetch 等全部工具 - **系统层**:`CC-Monitor-probe`——Linux 用 eBPF(`probe_linux.bt`,bpftrace 脚本,挂 `execve`/`connect`/`tcp_sendmsg` 等内核 tracepoint),macOS 用 `nettop`(`probe_darwin.py`,不需要 root,只覆盖网络部分)——独立于 hooks 之外做交叉验证,即使 hooks 被绕过/篡改也能兜底发现 ## 策略引擎(`cc_monitor/policy.py` + `default_rules.json`) - 70 条内置规则,first-match-wins 正则匹配,三级风险(high/medium/low,另有 1 条 info 级)× 三种动作(block/confirm/log,另有 notify) - 覆盖类别:破坏性删除/覆盖、反弹 shell 与 GTFOBins 式 shell 逃逸、编码 payload 执行、下载后执行、C2 框架、后渗透工具、可疑 MCP 工具名、渗透测试侦察工具、权限提权(chmod/chown/sudo/su/pkexec/setuid)、fork bomb、用户账号管理、SSH 密钥/后门持久化(crontab/systemd/git hooks)、禁用安全控制、kill 监控进程、包管理器风险安装、Git 破坏性操作、历史指令篡改/读取、数据库破坏性命令与任意文件写、Docker 特权/socket 挂载、敏感文件读写(含写入内容里的密钥/PII/webshell 特征扫描)、云/VPN 配置读写、浏览器凭据读取、环境变量转储、Claude Code 自身配置篡改 - 规则文件首次使用拷贝到 `~/.cc-monitor/rules.json`,新版本规则按 id 自动合并(用户改过/删过的不动);改规则后台自动重判历史事件(`rematch`),不用手动跑命令 ## CLI(`cc_monitor/cli.py`) - `tail`:实时事件流,人类可读格式化(事件类型+摘要+结果)+ 终端彩色高亮 + Bash 命令语法着色(命令名/参数/字符串/变量/管道分色) - `rules`:查看当前生效规则 - `stats`:按风险等级/决策结果统计 - `verify`:绕过检测(探针实测命令 vs hook 记录做模糊比对) - `audit pause/start`:临时暂停/恢复判定(不影响 Claude Code 正常执行) 项目地址:<a href="elink@a79K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8U0m8^5M7X3!0G2N6q4)9J5c8V1y4o6i4K6u0V1e0h3!0F1K9i4c8G2M7R3`.`."><mark class="encrypted">c57K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8U0m8^5M7X3!0G2N6q4)9J5c8V1y4o6i4K6u0V1e0h3!0F1K9i4c8G2M7R3`.`.</mark></a> 欢迎大家体验使用,反馈Bug和意见建议~ 感谢
回复或点赞可查看完整内容
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
最后于
1天前 被0xroot编辑 ,原因: 更新内容
收藏
・
0
点赞
・
4
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
wx_木天廖
谢谢你的细致分析,受益匪浅!
24分钟前
wx_Kiyose
感谢你的贡献,论坛因你而更加精彩!
41分钟前
dxzhang
为你点赞!
1天前
git_51951meggadf3df
非常支持你的观点!
1天前
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
5
)
0xroot
雪 币:
1044
活跃值:
(1503)
能力值:
( LV4,RANK:50 )
在线值:
发帖
4
回帖
19
粉丝
8
关注
私信
0xroot
1
2
楼
By the way,今天看到微步把AI渗透工具CyberStrike AI收购了 有没有老板把这个也收购了啊
(bushi 狗头保命,溜了溜了
1天前
0
0xroot
雪 币:
1044
活跃值:
(1503)
能力值:
( LV4,RANK:50 )
在线值:
发帖
4
回帖
19
粉丝
8
关注
私信
0xroot
1
3
楼
首页效果图被吞了 URL
42eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8U0m8^5M7X3!0G2N6q4)9J5k6i4N6G2M7X3c8H3M7X3g2K6M7#2)9J5k6h3y4G2L8g2)9J5c8Y4N6H3i4K6u0V1j5$3!0F1N6r3g2F1N6q4)9J5c8Y4g2H3L8r3!0S2k6s2y4Q4x3V1j5J5x3o6t1$3i4K6u0r3x3o6W2Q4x3V1k6U0j5$3#2E0L8h3#2E0i4K6u0W2M7r3&6Y4
1天前
0
fengyunabc
雪 币:
5333
活跃值:
(6142)
能力值:
( LV4,RANK:50 )
在线值:
发帖
11
回帖
630
粉丝
27
关注
私信
fengyunabc
1
4
楼
感谢分享。
1天前
0
wx_Huber Barrientos
雪 币:
0
能力值:
( LV1,RANK:0 )
在线值:
发帖
0
回帖
206
粉丝
1
关注
私信
wx_Huber Barrientos
5
楼
666
1天前
0
拍拖
雪 币:
2790
活跃值:
(6961)
能力值:
( LV6,RANK:90 )
在线值:
发帖
22
回帖
423
粉丝
15
关注
私信
拍拖
2
6
楼
感谢分享。
20小时前
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
0xroot
1
4
发帖
19
回帖
50
RANK
关注
私信
他的文章
[原创]从CC-Monitor的设计开发看AI Agent的EDR功能需求
278
[原创]用 AI 写了一套 IoT 固件扫描审计系统 IFDA
3006
[原创]软件无线电在智能硬件漏洞挖掘中的应用 part 2: 4G LTE NBIoT 以及5G NR的实现
10832
软件无线电在智能硬件漏洞挖掘中的应用
13911
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部