Commit Graph

34 Commits

Author SHA1 Message Date
zhengchao
233bc2f0ef Maat_set_scan_status可以设置MAAT_SET_SCAN_NO_COUNT类型参数, 指示下一次扫描不进行计数,以减少hit path的存储开销。 2021-07-19 20:55:12 +08:00
zhengchao
99e8ffb510 修改scan status重的测试用例,覆盖更多分支。 2021-07-19 20:55:11 +08:00
zhengchao
1c08363dc4 bool Matcher对输入的item id(clause id)排序和去重,会改变外部ut_array内容,可能造成风险, 去除bool matcher 中的这部分代码。 2021-07-01 14:42:14 +08:00
郑超
8bf48ba1f3 Feature faster bool matcher on reptead item 2021-06-15 01:32:46 +00:00
zhengchao
fe73ef1156 Hierarchy中,使用垃圾回收方式释放compile,避免bool_matcher命中已删除的compile后,从而非法内存访问导致段错误。 修复 TSG-6548 2021-06-01 21:40:20 +08:00
zhengchao
7980d87924 bool matcher中引用了已经被释放的compile,导致段错误。 TSG-6548 2021-06-01 21:19:41 +08:00
zhengchao
6b9162272d 修复bug: Bool matcher重建时,maat hierarchy会重新生成clause id,会引发两种bug现象:
1. 新生成的clause id,与扫描状态mid中缓存的clause id冲突,导致误命中。引发 TSG-6419
2. mid中已缓存了clause id,但是由于构造的bool macher使用新的clause id,导致漏命中。
修复方案:
1. 将生成clause id的哈希表保存在hierarchy中, 保证增量更新前后clause id不变化;
2. 在mid中增加时间戳作为版本号,旧版本的mid不进行bool matcher运算,以免误命中。
2021-05-27 20:44:21 +08:00
zhengchao
cd5f2c7c26 Maat Hierarchy中的compile mid结构体保留了Hier的指针,可能指向已被释放的hier,导致扫描线程死锁。 2021-04-20 12:47:05 +08:00
zhengchao
ac4b39e6f5 Maat_hierarchy_region_compile按照用户传入的结果数量申请缓存,当bool mactcher返回的结果中包含之前命中过的compile时, 可能导致bool matcher未返回全部的命中结果。 2021-04-19 10:27:12 +08:00
zhengchao
0f6eccbb47 增加hierarachy中为每个线程分配expr_buff,以修复使用用户设置的缓冲区大小,导致不命中的bug。 2021-04-19 10:27:11 +08:00
zhengchao
e3b3288dc1 集成支持expr_id的bool matcher 2021-04-19 10:27:11 +08:00
liuxueli
0eff6faae6 使用流式扫描接口,命中多个不同策略时导致死循环 2021-04-18 21:10:27 +08:00
刘学利
912749b1cd Fix memory leak by update uncare table 2021-04-01 02:28:12 +00:00
zhengchao
e12bef3033 Maat_hierarchy_compile_mid_update_by_compile中的assert并不准确:在扫描命中region后,进行region_compile之前,该region被删除时,此region不会加入hit_path。 2021-01-29 21:06:32 +08:00
zhengchao
f908f2e3ac 修复加载8个字符串与表达式报错的bug TSG-4717;增加Hierarchy日志中输出去重后Clause的数量。 2020-12-16 10:51:34 +06:00
zhengchao
a925ed039d region_compile中compile_rule缓存数组的大小,调整为与调用参数相同。去除部分无效代码。 2020-12-05 16:54:04 +06:00
zhengchao
df48863c65 1. 提高group被大量compile同时引用的性能
2. 修复Maat_hierarchy_region_compile中对literal_ids的线程不安全访问,在配置更新时可导致段错误。
2020-12-05 13:39:48 +06:00
liuxueli
e6a7f24863 同时命中compile数量过多时,仅对MAX_GROUP_CACHE个数中间结果的进行排序,减少循环的次数 2020-11-25 11:28:01 +06:00
zhengchao
b9779088b9 对命中clause_id的数量设置上限,避免同时命中compile数量过多时,utarray排序耗时过大。 2020-11-24 21:08:40 +06:00
zhengchao
dda54b519e 修复删除FQDN Plugin配置时产生的内存泄露。 2020-10-19 16:11:25 +08:00
zhengchao
5931b445ff 增加对group_num为0的编译配置的处理。 2020-07-31 19:30:16 +08:00
zhengchao
41b3628b53 region_rule_inner中增加magic_num,以诊断region配置删除时可能发生的野指针访问;同时hierarchy增加对region_id查找的判空,以避免在一个region扫描命中后,hierarchy中该region又被删除,产生的空指针访问。 2020-07-06 16:46:41 +08:00
zhengchao
639feb17b0 为提高命中大量region时的性能,扫描中间状态使用utarray替代数组存储clause_id。 2020-07-03 19:45:16 +08:00
zhengchao
aef9f80891 Maat_hierarchy总是返回可用的compile_rule,以同步修复master分支中的bug:在对编译配置排序时,如果其已被删除,compile_sort_para_set会访问空指针,导致段错误。 2020-07-02 20:59:59 +08:00
zhengchao
61efaef045 Maat_hierarchy在删除group时,不同时删除igraph中的vertex,避免vertex id发生变化,导致段错误 2020-07-02 18:37:51 +08:00
zhengchao
2dbbd55c95 version3单元测试通过。 2020-06-22 20:26:44 +08:00
zhengchao
df19a8ce71 通过原有功能的单元测试。 2020-06-22 20:26:43 +08:00
zhengchao
469539ab5a 基础扫描功能的测试用例通过。 2020-06-22 20:26:43 +08:00
zhengchao
2c80ba4c0a 代码适配Maat command、maat json。 2020-06-22 20:26:43 +08:00
zhengchao
7e1cb56d4f 完成Maat_hierarchy规则加载重构的代码编写,未编译。 2020-06-22 20:26:42 +08:00
zhengchao
c083777f3b 准备放弃sqlite,改用multimap。sqlite必须集中提交以获得高性能,这将不利于Maat进行异常处理。同时考察了以下key value stores:
* LevelDB和RocksDB太重了
* Berkeley DB也有点重,而且免费版使用类似AGPL的高传染性License,收费版一个Processor就要1000-13000美元。它提供的bdbfirewallexample很有意思,以后可能有机会使用。
* LMDB轻量、快速,Mark下,以后有机会使用。
2020-06-22 20:26:42 +08:00
zhengchao
6b3dd3d0b6 准备用sqlite3替代MESA_htable进行Maat hierarchy构建。 2020-06-22 20:26:42 +08:00
zhengchao
2a10f85aa0 抽象垃圾回收模块,新增Maat_garbage_collection.cpp/h 2020-06-22 20:26:42 +08:00
zhengchao
8a89dcfdae 尝试分离hierarchy的中间版本 2020-06-22 20:26:41 +08:00