zhengchao
|
732a944ff4
|
EX_data中的hash表使用RCU更新,替代读写锁,提高多线程下的访问性能。
|
2022-01-21 22:31:13 +05:00 |
|
zhengchao
|
6e50978258
|
maat stat输出plugin(含EX data)、fqdn_plugin、IP_plugin中有效规则的数量。调整outer scan_status的计数方式。
|
2021-10-24 12:04:11 +03:00 |
|
zhengchao
|
d954c5a011
|
expr_plus和interval_plus表的district对英文大小写不敏感。
|
2021-10-20 00:02:43 +03:00 |
|
zhengchao
|
342c3c36b3
|
将rulescan.h的编码由GBK转为utf8
|
2021-10-12 11:52:45 +03:00 |
|
zhengchao
|
2eb2a4aca9
|
修复bug:对于已命中编译配置的mid,扫描expr_plus或interval_plus表,命中表达式/区间,但没命中district时,会错误的返回之前已命中的编译配置。
|
2021-10-11 19:16:17 +03:00 |
|
zhengchao
|
593bcfb907
|
修复 TSG-7994 ,避免处理未知district时出现误命中。
|
2021-10-11 12:00:26 +03:00 |
|
zhengchao
|
d86d220f33
|
Rebase. 适配支持Prometheus输出的Field Stat2
|
2021-08-19 22:10:36 +08:00 |
|
liuxueli
|
97ea56eb86
|
TSG-7066: 支持--prefix参数安装,支持查看changelog
TSG-7390: 支持输出扫描状态到prometheus
|
2021-08-14 16:22:10 +08:00 |
|
zhengchao
|
50934de91d
|
Plugin表更新后,不需要进行Hierarchy的重建。
|
2021-08-05 13:51:17 +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
|
479eb77369
|
基于Maat_cmd的测试用例增加扫描状态输出。
|
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
|
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 |
|
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
|
fe73ef1156
|
Hierarchy中,使用垃圾回收方式释放compile,避免bool_matcher命中已删除的compile后,从而非法内存访问导致段错误。 修复 TSG-6548
|
2021-06-01 21:40:20 +08:00 |
|
zhengchao
|
f2fac87894
|
修复bug: TSG-6324 在流式扫描过程中,发生版本号回滚导致的全量更新后,Maat_stream_scan_string_end释放rulescan流式扫描句柄时,会非法访问已被销毁的rulescan句柄内存,从而导致段错误。
|
2021-05-13 16:11:37 +08:00 |
|
zhengchao
|
1460f891c6
|
支持加载使用gzip命令压缩的maat JSON文件。允许先压缩、后加密,不支持先加密后压缩。
|
2021-04-28 21:44:04 +08:00 |
|
zhengchao
|
c1355dd3e5
|
为了便于单元测试,支持设置垃圾回收时间,默认10秒。
|
2021-04-28 12:06:34 +08:00 |
|
zhengchao
|
cd5f2c7c26
|
Maat Hierarchy中的compile mid结构体保留了Hier的指针,可能指向已被释放的hier,导致扫描线程死锁。
|
2021-04-20 12:47:05 +08:00 |
|
郑超
|
f82454a310
|
修复bug:ip_plugin和fqdn_plugin的扫描线程可能访问到无效的EX_data_container,导致#26; plugin的扫描线程和更新线程发生线程不安全访问EX_data_rt中的uthash。
|
2021-03-20 08:09:52 +00:00 |
|
zhengchao
|
a925ed039d
|
region_compile中compile_rule缓存数组的大小,调整为与调用参数相同。去除部分无效代码。
|
2020-12-05 16:54:04 +06:00 |
|
yangwei
|
d7034e56c6
|
🐞fix: 兼容C99标准,inline函数前增加static描述符
|
2020-10-14 17:53:03 +08:00 |
|
zhengchao
|
807ffd4270
|
加载全量配置读取value时,如key中不包含生效的table name则不加载。
|
2020-09-30 15:48:34 +08:00 |
|
zhengchao
|
2f45768d2a
|
支持虚拟表建立在多个不同类型物理表上。
|
2020-09-27 23:02:02 +08:00 |
|
zhengchao
|
0713a4a576
|
FQDN Plugin加载、扫描、更新测试通过,遗留FQDN_engine后缀匹配不命中的Bug待修复。
|
2020-09-19 21:11:38 +08:00 |
|
zhengchao
|
58daab14ad
|
引入FQDN Engine,以支持FQDN Plugin。
|
2020-09-19 10:08:56 +08:00 |
|
fengweihao
|
e9fbcfc743
|
对外提供BOOL_MATCH头文件
|
2020-09-02 20:16:08 +08:00 |
|
liuxueli
|
0c694b5f98
|
增加增强数值扫描功能及对应测试用例
增加changelog到rpm包
|
2020-08-22 18:52:25 +08:00 |
|
zhengchao
|
a44e14f82d
|
删除IP Plugin表项时,未能及时更新ip_matcher,也未能正确同步uthash和ip_matcher的状态,导致ip_matcher返回了已被删除的ex_data。解决方案:
- 在IP Plugin的table runtime中增加垃圾回收队列,延迟删除EX_data,并延后ip_matcher在扫描线程的生效时机。
- 在scanner中增加ip_plugin_update_q_size,在IP Plugin的table runtime中增加changed_flag,以判断ip_matcher是否需要更新
|
2020-08-19 22:57:37 +08:00 |
|
zhengchao
|
121cfea4fc
|
fix #23 Maat_plugin_exdata的回调使用以'\0'结尾的key。
|
2020-07-07 17:57:11 +08:00 |
|
zhengchao
|
2962c6c90a
|
修复删除region时,笔误导致错误计算rulescan expr_id的bug,该bug导致rulescan_update失败的assert。
|
2020-07-06 19:46:55 +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
|
207f99714e
|
EX_data系列函数使用uthash替代MESA_htable,实现哈希表的动态伸缩。
|
2020-06-28 22:10:33 +08:00 |
|
zhengchao
|
73d27d983c
|
redis内部key改为unsigned long,适配性能测试用例。
|
2020-06-22 20:26:44 +08:00 |
|
zhengchao
|
af27d7197c
|
Maat command支持批量提交
|
2020-06-22 20:26:44 +08:00 |
|
zhengchao
|
2dbbd55c95
|
version3单元测试通过。
|
2020-06-22 20:26:44 +08:00 |
|
zhengchao
|
df19a8ce71
|
通过原有功能的单元测试。
|
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
|
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 |
|
zhengchao
|
a69ab5c609
|
使用glibc中的remove函数替代rm命令;清理无用代码,垃圾回收方式删除外键文件功能,在不支持MAAT_OPT_FOREIGN_CONT_LINGER选项后已不使用。
|
2020-06-22 20:26:41 +08:00 |
|
zhengchao
|
1179e9c76a
|
在编译配置级别支持合取范式,编译配置最多8个子句(Clause)组成,子句内的分组是“或”运算,子句之间是“与”运算。
|
2020-06-22 20:26:41 +08:00 |
|
zhengchao
|
48881faafe
|
头文件中keyword和district为'\0'多保留1个字节。
|
2020-06-22 20:26:40 +08:00 |
|
zhengchao
|
4b4d25b691
|
合并plugin和ip_plugin的处理逻辑,抽象为Maat_ex_data.h/cpp。
|
2020-05-13 14:53:25 +08:00 |
|