talus-process-monitor是一个基于eBPF的Linux勒索软件检测器,从内核层追踪execve/openat系统调用,通过per-CPU perf缓冲区实时流式处理事件,标记批量文件重写加扩展名变更等行为模式。作者认为签名检测对Linux勒索软件几乎无效——多数样本是短命脚本,用find、mv、gzip等合法工具循环包装,能抓到的是破坏形态本身。
用户态用Rust,eBPF侧用libbpf/C加CO-RE,一次编译跨内核6.x运行。作者踩过的坑包括struct file字段偏移差异,以及单一全局环形缓冲区在并行负载下丢事件,改用per-CPU缓冲加用户态按进程重排事件顺序解决。
评分是最大难点。朴素"短时间内写N个文件"规则会在cargo build、内核模块编译、测试套件上疯狂误报。三个可用启发式:扩展名批量变更(勒索软件重命名doc.docx为doc.docx.locked,构建工具很少批量改名已有文件)、写后读密度(加密器必须先读明文再重写,构建器写新文件不读旧文件)、目录广度vs深度(target/是深子树,勒索软件在$HOME广度优先横扫)。
作者建议:先发布审计模式,在真实桌面收集数周日志再强制拦截;阈值按目录类别(构建目录、home、媒体)分别配置而非全局;eBPF验证器限制从第一天就要当设计约束。
🔗 原文:点击查看
