医学--modsecurity调研工作汇报

医学--modsecurity调研工作汇报

ID:19842856

大小:935.63 KB

页数:72页

时间:2018-10-06

医学--modsecurity调研工作汇报_第1页
医学--modsecurity调研工作汇报_第2页
医学--modsecurity调研工作汇报_第3页
医学--modsecurity调研工作汇报_第4页
医学--modsecurity调研工作汇报_第5页
资源描述:

《医学--modsecurity调研工作汇报》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Modsecurity调研报告郭川2012年2月13日调研目的分析Modsecurity模块作为Apache框架下的一个规则引擎的执行流程,以期在Nginx下实现具有类似功能的规则引擎模块内容Modsecurity执行流程Modsecurity移植问题重要函数流程图Modsecurity执行流程读取规则、翻译规则、规则生效简介规则格式、指令哈希表、规则引擎介绍读取规则、翻译规则、规则生效详解读取规则时间:Apache启动阶段位置:配置文件,例如httpd.conf中存储数据结构:配置树,数据结构选择树是由配置

2、文件中的配置信息结构决定的翻译规则时间:Apache启动阶段,读取配置文件后方法:利用规则引擎(规则引擎是Modsecurity模块添加的一个钩子函数建立的)存储结构:Modsecurity模块中定义了存储一条及多条规则的结构体结果:构建了存储多条可使用的规则的结构体规则生效时间:Apache读取、处理以及响应请求过程中的某一点(Modsecurity模块注册了钩子函数的地方)过程:根据翻译好的规则,进行匹配检查结果:若匹配,则执行规则中的相应动作规则格式一条规则实例:SecRuleREMOTE_ADDR"^

3、192.168.1.105$""redirect:http://www.modsecurity.org"其中SecRule是指令名称,其后所跟是该指令的参数。Modsecurity定义的指令有60多条,并且各条指令的参数格式不同。指令(Directives)举例:SecAction;SecDefaultAction;SecMarker;SecRuleEngine;SecRule;SecRuleInheritance;SecRequestBodyAccess…规则格式SecRule的参数格式如下:Sec

4、RuleVARIABLESOPERATOR[TRANSFORMATION_FUNCTIONS,ACTIONS]VARIABLES举例:QUERY_STRING;REMOTE_ADDR;REQUEST_BODY…OPERATOR举例:rx;eq;ge;gt;le;lt…TRANSFORMATION_FUNCTIONS举例:lowercase;urlDecode;removeWhitespace…ACTIONS举例:allow;msg;id;deny;phase;skip;chain…指令哈希表Apache的每一

5、个模块都有自己定义的指令数组指令数组在模块被添加的时候被Apache保存所有的指令被Apache保存在指令哈希表中。利用这个哈希表,由指令名字可以快速获取到Apache中保存的关于该条指令的一个结构体指令哈希表指令哈希表是在Apache启动阶段加载模块的过程中通过读取模块定义的指令数组建立的存储指令的哈希表Modsecurity模块的定义:moduleAP_MODULE_DECLARE_DATAsecurity2_module={STANDARD20_MODULE_STUFF,create_directory

6、_config,merge_directory_configs,NULL,/*create_server_config*/NULL,/*merge_server_configs*/module_directives,register_hooks};其中,moduel_directives是Modsecurity模块定义的指令数组。哈希表结构体哈希表元素结构体模块链结构体模块结构体指令哈希表ap_conf_hash指令存储结构体建立规则引擎时间:读取规则之后,解析规则之前使用Modsecurity的钩子函数ho

7、ok_pre_configSecRule的语法也即其参数格式如下:SecRuleVARIABLESOPERATOR[TRANSFORMATION_FUNCTIONS,ACTIONS]将VARIABLESOPERATORTRANSFORMATION_FUNCTIONSACTIONS四个域对应的所有可选值存储到一个类型为msc_egine的结构体中,这个结构体就称为规则引擎。规则引擎modsecurity模块引擎结构体规则引擎结构体规则变换函数结构体规则变量结构体规则操作符结构体规则动作结构体读取规则读取配置文

8、件中的每条配置信息,形成一颗配置树结构。配置树中结点结构如下:配置树中指令结点结构体读取规则配置树:配置树ap_conftree配置树中指令结点结构体遍历配置树并执行每个结点中的指令的过程读取规则翻译规则遍历配置树中的每一条规则根据规则名称查找指令哈希表执行指令结构中的相应函数指令哈希表中的指令存储结构SecRule指令的存储结构,相应的函数即cmd_rule()翻译规则cmd_rule()函数利用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。