• ModSecurity CRS笔记[转]


    转自:http://danqingdani.blog.163.com/blog/static/186094195201472304841643/
    ModSecurity的规则因为奇怪的正则(可读性差?正则都很天书地说!)及被绕过案例(哪个WAF没有被绕过的经历呢?),还有性能啥的,被不少的安全人员围攻,但从架构层面来说,是款非常优秀的WAF,对构造我们自己的WAF非常具有借鉴性。
     
     
    一、ModSecurity CRS笔记

    对安全人员而言,WAF貌似最有价值的是规则,我们来看看ModSecurity CRS规则集的组织结构。ModSecurity  CRS 规则集包括一个配置文件与四个部分(基础规则集、SLR规则集、可选规则集、实验性质规则集)

    配置文件

    modsecurity_crs_10_setup.conf

    第一部分:基础规则集

    modsecurity_crs_20_protocol_violations.conf HTTP协议规范相关规则
    modsecurity_crs_21_protocol_anomalies.conf HTTP协议规范相关规则
    modsecurity_crs_23_request_limits.conf HTTP协议大小长度限制相关规则
    modsecurity_crs_30_http_policy.conf HTTP协议白名单相关规则
    modsecurity_crs_35_bad_robots.conf 恶意扫描器与爬虫规则
    modsecurity_crs_40_generic_attacks.conf 常见的攻击例如命令执行,代码执行,注入,文件包含、敏感信息泄露、会话固定、HTTP响应拆分等相关规则
    modsecurity_crs_41_sql_injection_attacks.conf SQL注入相关规则(竟然有一条MongoDB注入的规则,很全)
    modsecurity_crs_41_xss_attacks.conf XSS相关规则
    modsecurity_crs_42_tight_security.conf 目录遍历相关规则
    modsecurity_crs_45_trojans.conf webshell相关规则
    modsecurity_crs_47_common_exceptions.conf Apache异常相关规则
    modsecurity_crs_49_inbound_blocking.conf 协同防御相关规则
    modsecurity_crs_50_outbound.conf 检测response_body中的错误信息,警告信息,列目录信息

    modsecurity_crs_59_outbound_blocking.conf 协同防御相关规则
    modsecurity_crs_60_correlation.conf 协同防御相关规则

    第二部分:SLR规则集

    来自确定APP的PoC,不会误报,检测方法是先检查当前请求的文件路径是否出现在data文件中,若出现再进行下一步测试,否则跳过该规则集的检测

    modsecurity_crs_46_slr_et_joomla_attacks.conf JOOMLA应用的各种漏洞规则
    modsecurity_crs_46_slr_et_lfi_attacks.conf 各种APP的本地文件包含相关规则
    modsecurity_crs_46_slr_et_phpbb_attacks.conf PHPBB应用的各种漏洞规则
    modsecurity_crs_46_slr_et_rfi_attacks.conf 各种APP的远程文件包含相关规则
    modsecurity_crs_46_slr_et_sqli_attacks.conf 各种APPSQL注入相关规则
    modsecurity_crs_46_slr_et_wordpress_attacks.conf WORDPRESS应用的各种漏洞规则
    modsecurity_crs_46_slr_et_xss_attacks.conf 各种APPXSS相关规则

    第三部分:可选规则集

    modsecurity_crs_10_ignore_static.conf 静态文件不过WAF检测的相关规则
    modsecurity_crs_11_avs_traffic.conf AVS(授权的漏洞扫描器)的IP白名单规则
    modsecurity_crs_13_xml_enabler.conf 请求体启用XML解析处理
    modsecurity_crs_16_authentication_tracking.conf 记录登陆成功与失败的请求

    modsecurity_crs_16_session_hijacking.conf 会话劫持检测
    modsecurity_crs_16_username_tracking.conf 密码复杂度检测

    modsecurity_crs_25_cc_known.conf CreditCard验证

    modsecurity_crs_42_comment_spam.conf 垃圾评论检测
    modsecurity_crs_43_csrf_protection.conf modsecurity_crs_16_session_hijacking.conf联合检测,使用内容注入动作append注入CSRF Token

    modsecurity_crs_46_av_scanning.conf 使用外部脚本扫描病毒
    modsecurity_crs_47_skip_outbound_checks.conf modsecurity_crs_10_ignore_static.conf的补充

    modsecurity_crs_49_header_tagging.conf WAF规则命中情况配合Apache RequestHeader指令注入到请求头中,以供后续应用进一步处理
    modsecurity_crs_55_application_defects.conf 安全头(X-XSS-Protection,X-FRAME-OPTIONS,X-Content-Type-Options)设置,安全Cookie设置(Domainhttponly,secure),字符集设置等规则
    modsecurity_crs_55_marketing.conf记录MSN/Google/Yahoo robot情况

    第四部分:实验性规则集

    modsecurity_crs_11_brute_force.conf 防御暴力破解相关规则
    modsecurity_crs_11_dos_protection.conf DoS攻击相关规则
    modsecurity_crs_11_proxy_abuse.conf 检测X-Forwarded-For是否是恶意代理IPIP黑名单

    modsecurity_crs_11_slow_dos_protection.conf Slow HTTP DoS攻击规则

    modsecurity_crs_25_cc_track_pan.conf 检测响应体credit card信息

    modsecurity_crs_40_http_parameter_pollution.conf 检测参数污染
    modsecurity_crs_42_csp_enforcement.conf CSP安全策略设置

    modsecurity_crs_48_bayes_analysis.conf 使用外部脚本采取贝叶斯分析方法分析HTTP请求,区分正常与恶意请求
    modsecurity_crs_55_response_profiling.conf 使用外部脚本将响应体中的恶意内容替换为空
    modsecurity_crs_56_pvi_checks.conf使用外部脚本检测 REQUEST_FILENAME是否在osvdb漏洞库中

    modsecurity_crs_61_ip_forensics.conf 使用外部脚本收集IP的域名、GEO等信息

    modsecurity_crs_40_appsensor_detection_point_2.0_setup.conf APPSENSOR检测设置文件

    modsecurity_crs_40_appsensor_detection_point_3.0_end.conf APPSENSOR检测设置文件

    modsecurity_crs_16_scanner_integration.conf 对扫描器设置IP白名单,并调用扫描器API来进行检测

    modsecurity_crs_46_scanner_integration.conf

    使用modsecurity_crs_40_appsensor_detection_point_2.0_setup.confmodsecurity_crs_40_appsensor_detection_point_3.0_end.conf 来跟踪XSS漏洞参数与SQLI漏洞参数

    modsecurity_crs_40_appsensor_detection_point_2.1_request_exception.conf 使用外部脚本检测请求方法,参数个数,参数名字,参数长度,参数字符等限制
    modsecurity_crs_40_appsensor_detection_point_2.9_honeytrap.conf 使用隐藏参数设置蜜罐

    ModSecurity CRS单条规则的内容,请参看ModSecurity CRS详解

     
    二、WAF防御checklist
    对使用者而言,考察一款WAF的有效性,最关键的一点就是攻击的防御情况,我们看看ModSecurity对漏洞防御的checklist
     
    扫描器scanner
     
    恶意爬虫crawler
    webshell Trojans
             shell上传:见文件上传
             shell连接:get/post/cookie

    SQLi/BlindSQLI(Reflected SQLi, Stored SQLi)
         GET
         POST
         Referer
         Cookie
         X_Forwarded_For
         UserAgent
         Basic-Authorization

    LFI/RFI
         get lfi/rfi
         post lfi/rfi
         cookie lrfi/rfi
         data://URI
         php://input
         php://filter
         get directory traversal
         post directory traversal

    File Upload
         php
         asp(x)
         jsp    

    RCE
         struts2
         nginx CVE
         PHP CGI
         get rce
         post rce

    XSS( Reflected XSS, Stored XSS DOM XSS) /CSRF/flash xss/json xss 
         GET
        POST

    code injection
         get code injection
         post code injection

    XPath injection

    LDAP injection

    XML injection

    expression language injection

    server side includes injection

    server side request forgery

    HTTP响应拆分
     
    CRLF注入
     
    服务器解析漏洞
     
    敏感信息泄漏info leak
          svn/cvs
          后台暴露

    http parameter pollution参数污染

    brute force暴力破解(weak password)

    DoS

    slow HTTP DoS

    URL Redirect  

    session fixation会话固定/ easily-guessable session IDs

    会话劫持

    垃圾评论

    防病毒

    access control(vertical, horizontal)/Unauthorized File Exposure(download)

    logic flaws逻辑漏洞

    协议异常
         不合规范的RequestLine
         异常文件名
         请求体解析错误
         multipart请求体解析错误
         Content-Length异常
         Content-Enoding异常
         Range异常
         Request-Range异常
         Expect异常
         Connection异常
         Pragma Cache-Control
         Host异常
         User-Agent异常
         Accpet异常
         X-Forwarded-For异常
         编码异常,url编码异常,utf-8异常
         charset设置缺失或不一致
         Cookie Domain/httponly/secure设置错误
         安全头设置错误X-XSS-ProtectionX-FRAME-OPTIONSX-Content-Type-Options

    协议限制
         允许请求方法 GET/POST/HEAD
         允许协议版本HTTP/1.0 or HTTP/1.1
         允许ContentType
         允许的文件后缀名
         允许的请求头
         长度限制
         参数名长度限制
         参数值长度限制
         参数个数限制
         参数的总大小
         上传文件大小限制
         上传文件总大小限制
         编码限制

    IP白名单/黑名单/恶意代理
  • 相关阅读:
    server域名与IIS的目录安全性
    机械臂生成URDF文件操作过程
    ROS2 学习参考链接
    solidworks 导入urdf 到ubuntu 在rviz 和 gazebo 显示
    vscode koroFileHeader插件配置
    python 获取当前类中非私有方法
    solidworks 导出urdf 在python ikpy库 使用注意点
    solidworks 打开step 文件并导出文件
    ikpy joint和 link区别
    python 导入包错误
  • 原文地址:https://www.cnblogs.com/fangyuan303687320/p/5810416.html
Copyright © 2020-2023  润新知