我有一个 snort.rule 文件,我需要从该行中提取 cve 编号并将其附加回去信息花括号内的同一行字段,下面是旧日志。
警报 udp $HOME_NET 1900 -> 任何任何(msg:“ET INFO UPnP 发现搜索响应易受攻击的 UPnP 设备 1”;内容:“miniupnpd/1。”;fast_pattern:only;pcre:“/^Server\x3a[^\r\n]*miniupnpd\/1\.[0-3]/mi”;参考:url/29/security -dont-play;参考:arch/Architecture-v1.1.pdf;参考:cve,2013-0229;sid:2016302;rev:5;) 警报 udp $HOME_NET 1900 -> any any(msg:“ET INFO UPnP Discovery Search Response 易受攻击的 UPnP 设备 2”;内容:“Intel SDK for UPnP devices”;pcre:“/^Server\x3a[^\r\n]*Intel SDK for UPnP devices/mi”;参考:/infosec/blog/2013/01/29;参考:arch/UPnP-arch-DeviceArchitecture-v1.1.pdf;参考:cve,2012-5958;参考:cve,2012-5959;sid:2016303;rev:4;)
所需输出,
警报 udp $HOME_NET 1900 -> 任何任何(msg:“ET INFO UPnP 发现搜索响应易受攻击的 UPnP 设备 1 {cve,2013-0229}”;内容:“miniupnpd/1。”;fast_pattern:only;pcre:“/^Server\x3a[^\r\n]*miniupnpd\/1\.[0-3]/mi”;参考:url/29/security -dont-play;参考:arch/Architecture-v1.1.pdf;参考:cve,2013-0229;sid:2016302;rev:5;) 警报 udp $HOME_NET 1900 -> any any(msg:“ET INFO UPnP 发现搜索响应易受攻击的 UPnP 设备 2 {cve,2012-5958 cve,2012-5959}”;内容:“Intel SDK for UPnP devices”;pcre:“/^Server\x3a[^\r\n]*Intel SDK for UPnP devices/mi”;参考:/infosec/blog/2013/01/29;参考:arch/UPnP-arch-DeviceArchitecture-v1.1.pdf;参考:cve,2012-5958;参考:cve,2012-5959;sid:2016303;rev:4;)
我可以提取 CVE 编号,但附加后却无法获取
cat /tmp/snort.rule | grep -o -E -e 'sid:[^;]+' -e 'reference:cve,[^;]+'