用strace/ebpf做tracing,同时采集数据内容。用哈希计算内容的相似性,进行异常/正常的对比。
CaT’s Design and Architecture
CaTracer。
主要跟踪以下信息: 连接/接受(连接/接受一个套接字),发送(SND)/接收(RCV)(从套接字写/读),打开(打开一个文件),以及写(WR)/读(RD)(从一个文件描述写/读)
生成的一个Log的例子: <type:SND, pid:123, socket:TCP, src:node1, dst:node2, size:12, message:“Hello world!”>
Trace Processor。 用来把上面的Log改一改喂进Falcon里面。
HB Model Generator。 用的也是Falcon的东西,生成happens-before关系。
CaSolver。 利用哈希算出相似关系。
Visualizer。 可视化
CaT’s Algorithms and Prototype
Content-aware tracing
CatStrace。 基于命令行的strace改的。
CatBpf。 用go写的。
Similarity-based analysis
分成两步
- the signatures computation
- min-wise hashing
- the processing of events’ signatures
- 用Locality Sensitive Hash减少对比空间 + 用Jaccard index计算结果
Visual representation
染相同的颜色代表内容接近。