我正在使用Trellix DLP解决方案,并有IP地址分类,以阻止传出IP地址信息。
我的判断是\b(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\b
但是,这也会阻止具有4个级别编号列表的文档,例如:
1.blah
1.1 blah blah
1.1.1 blah blah blah
1.1.1.1 blah blah blah blah (DLP thinks this is an IP Address and block the document)有没有办法绕过这件事。
发布于 2022-09-13 13:55:27
雷吉斯有时觉得自己有魔力,但不幸的是,他们不是。regex不能区分ip地址与编号的脚注或文章。
您可以尝试在regex中添加某种智能(可以说),但最终会出现假阳性/阴性。这种智能来自于检查先前或下一个字符。
如果您尝试这样做,那么开始使用一个只匹配有效ip地址的正则表达式( regex可以匹配300.1.2.3,这是无效的)
还要确定您想要避免的ip地址。因为如果您试图避免只使用私有ip地址,那么如果您设计了一个只匹配私有ip地址的正则表达式,那么获得假阳性的机会就会更少。
如果您试图获取任何ip地址,那么尝试避免匹配之前有4个或更多空格的匹配(或小于4和开始行)。这是为了尽量避免编号标题。
(?<!^\h)(?<!^\h\h)(?<!^\h\h\h)(?<!\h\h\h\h)\b(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\b注意:使用m修饰符。如果不能指定标志,请尝试像这样使用regex:
(?m)(?<!^\h)(?<!^\h\h)(?<!^\h\h\h)(?<!\h\h\h\h)\b(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\b注意:如果您的工具不支持\h,请将它们更改为[\t\p{Zs}]或[ \t]
您有一个非常基本的演示这里。请继续阅读,然后再把它用于制作:-)
当然,由于负查找通常不能是可变长度的(除非某些特定的编程语言/工具),所以在带有额外空格的负查找后面添加的情况越多,越有可能跳过这些文章,而不会得到假的否定。
当然,该工具还必须支持负查找。
您甚至可以将这两种情况结合起来:匹配172.x.x.x和192.x.x.x私有地址的regex (不包括10.x.x.x私有地址,因为它们很低),在这种情况下,它可能不会考虑额外的约束,或者任何其他具有额外约束的有效ip地址(比如空格)。
你有没有发现更多的假阳性?试着为他们制定类似的规则。例如,考虑到可以匹配这样的脚注:<<See 1.2.3.4>>或*1.2.3.4。例如,尝试为以*开头或以>>结尾的类ip地址字符串添加异常。
总之:“你不能”,但如果你坚持或试图.
https://stackoverflow.com/questions/73702631
复制相似问题