详细内容
ModSecurity for Apache2[四十]
发布日期:2010-07-22     点击:2079     字体:[ ]
MULTIPART_CRLF_LF_LINES
当多请求使用混合线路终端这个变量将设置为1,multipart/form-data RFC需要CRLF序列来终止线路。
 
因为一些客户端的实施只需要LF来终止线路,你可能想他们在特定的环境下应该继续(如果你想这么做你需要用MULTIPART_STRICT_ERROR来并且检查每个组成部分的标记,避免MULTIPART_LF_LINE)。然而,混合的CRLF和LF行结束符是危险的,因为它可以允许回避。因此,在这种情况下,你必须添加一个MULTIPART_CRLF_LF_LINES检查。

MULTIPART_STRICT_ERROR
MULTIPART_STRICT_ERROR将被设置为1,只要有下列变量设置为1:
REQBODY_PROCESSOR_ERROR,MULTIPART_BOUNDARY_QUOTED,MULTIPART_BOUNDARY_WHITESPACE,MULTIPART_DATA_BEFORE,MULTIPART_DATA_AFTER,MULTIPART_HEADER_FOLDING,MULTIPART_LF_LINE,MULTIPART_SEMICOLON_MISSING MULTIPART_INVALID_QUOTING MULTIPART_INVALID_HEADER_FOLDING MULTIPART_FILE_LIMIT_EXCEEDED。
这些变量的每一个都包含在multipart/form-data格式下的请求体的一个不寻常的方面,你的策略总是应该检查这些变量中的一个或多个(如果你很清晰的知道你想完成什么), 当规则触发时你应该决定误报率和你的默认策略是应该阻止还是警告。

最好的方法是像下面这里例子里使用的:
 
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"phase:2,t:none,log,deny,msg:'Multipart request body \
failed strict validation: \
PE %{REQBODY_PROCESSOR_ERROR}, \
BQ %{MULTIPART_BOUNDARY_QUOTED}, \
BW %{MULTIPART_BOUNDARY_WHITESPACE}, \
DB %{MULTIPART_DATA_BEFORE}, \
DA %{MULTIPART_DATA_AFTER}, \
HF %{MULTIPART_HEADER_FOLDING}, \
LF %{MULTIPART_LF_LINE}, \
SM %{MULTIPART_SEMICOLON_MISSING}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IQ %{MULTIPART_INVALID_HEADER_FOLDING}, \
FE %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
 

multipart/form-data分析器在ModSecurity v2.1.3得到升级,它可以积极地寻找逃避的迹象。
很多变量(如上述)在分析过程中被增加了暴露事实。MULTIPART_STRICT_ERROR变量在出现异常时立即检查,单个变量可根据你的情况进行微调以减少误报率,以后会有更新详细的文档说明这些技术。
用户评论
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计