You need to enable JavaScript to run this app. 如何编写YARA规则匹配指定URL路径且排除特定子目录?
优惠活动
大模型
产品
解决方案
定价
更多

如何编写YARA规则匹配指定URL路径且排除特定子目录?

可行YARA规则实现方案

实现思路

  • 不需要依赖负向前瞻,利用YARA原生的匹配计数能力即可实现需求
  • 核心逻辑:只要文件中存在至少1个目标域名下非排除路径的一级目录URL,就命中规则,仅当所有目标域名的URL都是排除路径时不命中

完整YARA规则

rule match_example_com_url_without_only_baz
{
    meta:
        description = "匹配example.com下任意一级目录URL,仅当所有匹配都是/baz时不命中"
    strings:
        // 匹配example.com下所有一级目录URL(默认过滤路径后的参数、锚点)
        $all_domain_url = /https:\/\/example\.com\/[^\/\s"\?#]+/ ascii wide
        // 匹配需要排除的特定路径
        $excluded_url = "https://example.com/baz" ascii wide
    condition:
        // 匹配到的总URL数大于排除路径的匹配数,说明至少有一个非排除的URL存在
        #all_domain_url > #excluded_url
}

规则适配说明

  • 若需要匹配带查询参数、锚点的URL,可将$all_domain_url的正则调整为/https:\/\/example\.com\/[^\/\s"]+/
  • 规则中的ascii wide修饰符用于同时匹配普通ASCII编码和宽字节编码的字符串,若仅需匹配纯文本文件可删除wide修饰符

规则效果验证

  • 仅存在https://example.com/baz:#all_domain_url = 1,#excluded_url = 1,条件不成立,不命中,符合要求
  • 仅存在https://example.com/foo等非排除路径:#all_domain_url = 1,#excluded_url = 0,条件成立,命中,符合要求
  • 同时存在非排除路径和/baz路径:#all_domain_url ≥ 2,#excluded_url = 1,条件成立,命中,符合要求

内容的提问来源于stack exchange,提问作者jdgregson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 07:15:00