Commit Graph

836 Commits

Author SHA1 Message Date
zhengchao
d482a8d226 加载plugint table和xx_plugin table时,table中的rule计数仅统计上次更新后的生效rule数量。 在全量更新时,rule number会变为0,部分解释了 TSG-11071 。 v3.6.10 2022-06-30 17:16:39 +08:00
zhengchao
258ece3fa1 从redis读取到无对应table的rule时,写日志。 2022-06-30 14:39:22 +08:00
zhengchao
432337da6d 新创建的clause,在加入哈希表时,使用了compile中的literal_ids指针,导致内存非法读。修复 TSG-9741 TSG-10495 v3.6.9 2022-04-29 20:37:01 +08:00
zhengchao
af4cdebe2c 修复bug: IP Plugin和FQDN Plugin更新时, 先释放了哈希表索引的ex data, 后进行匹配引擎重建,导致匹配线程从旧的匹配引擎中访问到已释放的结构体,造成Segmentation fault TSG-10486 v3.6.7 2022-04-28 11:32:14 +08:00
zhengchao
d814b4e9eb 修复bug:ex_data释放时,使用错误的hash表删除索引。 This fix is related to TSG-10486 v3.6.6 2022-04-27 14:25:15 +08:00
zhengchao
fd88b6a266 EX_data_rt_row2EX_data返回-1时,ip_rule和fqdn_rule内存未释放,导致内存泄漏 TSG-10475。 v3.6.5 2022-04-26 16:34:54 +08:00
zhengchao
742512e10f 修复由于笔误将Maat_hierarchy_clause_fetch中的局部变量的定义为静态变量的错误。 多个maat实例同时重建布尔表达式运算器时,该错误会导致线程不安全访问静态变量,但不应导致 TSG-9741 。 2022-04-23 18:17:28 +08:00
zhengchao
a4fcb73f8a 在ex data更新时,操作哈希时笔误,导致断错误。 v3.6.3 2022-03-04 13:01:28 +05:00
zhengchao
a184be53de ex data更新可能耗时10秒以上,超过全局垃圾回收时间,导致非法内存访问。因此, 每个表的ex data使用独立的垃圾回收队列,每次更新完毕时强制回收。 v3.6.2 2022-03-03 15:39:39 +05:00
刘学利
377d0da92c TSG-9690: 适配Rocky Linux8.5 v3.6.1 2022-03-02 03:13:16 +00:00
zhengchao
7e1f3eb3d6 删除无用的成员。 v3.6.0 2022-01-22 11:36:58 +05:00
zhengchao
732a944ff4 EX_data中的hash表使用RCU更新,替代读写锁,提高多线程下的访问性能。 2022-01-21 22:31:13 +05:00
zhengchao
dd86ba5fc1 JSON文件中不包含有效配置时,避免段错误。 TSG-9349 v3.5.3 2022-01-13 12:06:09 +05:00
zhengchao
d2db95e528 Maat_rule_get_ex_data读取compile rule的exdata时,对scanner判空,避免无配置时发生段错误。 修复 TSG-9349 2022-01-12 10:43:46 +05:00
zhengchao
65712be21c 未正确统计0号线程的outer_mid和inner_mid计数 v3.5.2 2021-10-24 17:23:08 +03:00
zhengchao
ab22b32a25 Use new method to stat rule number of plugin, ip_plugin and fqdn_plugin table. v3.5.1 2021-10-24 15:16:43 +03:00
zhengchao
6e50978258 maat stat输出plugin(含EX data)、fqdn_plugin、IP_plugin中有效规则的数量。调整outer scan_status的计数方式。 2021-10-24 12:04:11 +03:00
zhengchao
aee1da170e 修复expr表无配置时,maat_stat文件输出的stream计数出现负数的bug。 2021-10-24 09:23:56 +03:00
zhengchao
9e91bc0973 Expr_plus表增加中英文混合district的测试用例 v3.5.0 2021-10-20 10:54:55 +03:00
zhengchao
d954c5a011 expr_plus和interval_plus表的district对英文大小写不敏感。 2021-10-20 00:02:43 +03:00
zhengchao
342c3c36b3 将rulescan.h的编码由GBK转为utf8 v3.4.11 2021-10-12 11:52:45 +03:00
zhengchao
51b26e3a54 修复expr_plus和expr混合扫描时,expr漏命中的问题。 2021-10-12 09:55:53 +03:00
zhengchao
2eb2a4aca9 修复bug:对于已命中编译配置的mid,扫描expr_plus或interval_plus表,命中表达式/区间,但没命中district时,会错误的返回之前已命中的编译配置。 v3.4.10 2021-10-11 19:16:17 +03:00
liuxueli
42c017467f 设置district命中策略后,使用同一个scan_mid再设置不同的district也命中策略 2021-10-11 22:13:22 +08:00
zhengchao
593bcfb907 修复 TSG-7994 ,避免处理未知district时出现误命中。 v3.4.9 2021-10-11 12:00:26 +03:00
liuxueli
a2f2adc82a 策略中的district与扫描时设置的district不一致时命中了策略 2021-10-11 14:57:18 +08:00
liuxueli
c84fb97aae 如果扫描无规则数值类型的table时直接返回,导致未进行非表达式的运算。 v3.4.8.1 v3.4.8-hotfix v3.4.8 2021-08-20 14:44:09 +08:00
zhengchao
d86d220f33 Rebase. 适配支持Prometheus输出的Field Stat2 2021-08-19 22:10:36 +08:00
zhengchao
465ad3ca6a 如果扫描无规则table时直接返回,导致未进行非表达式的运算。 2021-08-19 21:47:38 +08:00
zhengchao
293ad8e21c 让非表达式的测试用例更复杂 2021-08-19 21:47:38 +08:00
zhengchao
bcba756119 增加非表达式测试用例:对于compile {url!=a&ip=b}, 先扫非条件(url不命中),后扫命中条件(ip命中) 2021-08-19 21:47:37 +08:00
zhengchao
3cc9c5dcb7 增加IP Composition表的非规则测试用例 2021-08-19 21:47:37 +08:00
liuxueli
03d351f1ab 修复执行--prefix参数未生效的问题 v3.4.7 2021-08-16 16:26:09 +08:00
刘学利
863030088d Bugfix changelog error by character conflict v3.4.6 2021-08-14 09:20:13 +00:00
liuxueli
97ea56eb86 TSG-7066: 支持--prefix参数安装,支持查看changelog
TSG-7390: 支持输出扫描状态到prometheus
2021-08-14 16:22:10 +08:00
zhengchao
50934de91d Plugin表更新后,不需要进行Hierarchy的重建。 v3.4.5 2021-08-05 13:51:17 +08:00
zhengchao
0cb6a59d31 增加FQDN Plugin多线程扫描和更新的测试用例 2021-08-05 11:50:53 +08:00
zhengchao
c4c1ade152 变更table runtime垃圾回收机制的单元测试通过。 2021-08-05 10:08:21 +08:00
zhengchao
c7e9b29309 IP Plugin和FQDN Plugin内部实现垃圾回收,不再由外部调用。 2021-08-05 00:39:32 +08:00
zhengchao
e356d74bc0 重构table runtime工作量较大,准备放弃。 2021-08-05 00:22:00 +08:00
zhengchao
7e3b746eaa 未对FQDN Plugin表的changed_flag进行重置,产生不必要的FQDN Engine重建 2021-08-04 23:18:02 +08:00
zhengchao
96abe1d9f4 Maat_hierarchy_build_region2clause_hash中,不在对group中的region id排序和去重, 可以提高大Group的加载性能。 v3.4.4 2021-07-27 15:17:29 +08:00
zhengchao
dc057b2562 减少增量更新时hier重建的写锁临界区,减少扫描线程的所冲突。 修复 TSG-7211 2021-07-27 11:54:24 +08:00
zhengchao
479eb77369 基于Maat_cmd的测试用例增加扫描状态输出。 v3.4.2 2021-07-21 15:30:30 +08:00
zhengchao
0037646ef6 因使用MAAT_SET_SCAN_NO_COUNT后,在Group移除region id时会出现误命中,移除对MAAT_SET_SCAN_NO_COUNT的支持。 回调表使用feather中的垃圾回收队列,便于观察队列长度。 2021-07-21 14:48:08 +08:00
zhengchao
72ffbd9809 修复bug:上一版本引入,region更新不能反映到compile命中;
改善Maat_hierarchy_compile_mid_udpate的处理性能。
v3.4.1
2021-07-20 20:55:52 +08:00
zhengchao
524edff8be 优化hit_path增加性能 v3.2.4 2021-07-19 20:55:13 +08:00
zhengchao
53beb2f221 compile_mid使用ut_arrary替代tailq存储hit_path。 2021-07-19 20:55:13 +08:00
zhengchao
0ef61c7e0b 更新性能测试用例: 验证多线程、高命中情况下的扫描性能。 2021-07-19 20:55:13 +08:00
zhengchao
1e2e3a1798 改进Hierarchy的多线程扫描性能: Hierarchy使用rwlock来保证更新线程和扫描线程间的线程安全, 测试发现在不发生读写锁冲突的情况下, 读写锁的固有开销会导致并发扫描速度降低。
reference:
https://stackoverflow.com/questions/11866486/how-many-simultaneous-readers-can-a-pthread-rwlock-have
2021-07-19 20:55:12 +08:00